[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
removing duplicated code from schema_init.c
With the new code for Match/Index/Filter in schema_init.c it is
easy to remove a lot of duplicated code.
For instance caseExactSubstringsMatch() and caseExactSubstringsMatch()
are both 145 lines long, and the only difference between them is
the following:
nav = UTF8normalize( value->bv_val, UTF8_NOCASEFOLD );
sub = UTF8SubstringsassertionNormalize( assertedValue, UTF8_NOCASEFOLD );
and
nav = UTF8normalize( value->bv_val, UTF8_CASEFOLD );
sub = UTF8SubstringsassertionNormalize( assertedValue, UTF8_CASEFOLD );
I'm thinking of replacing those two with a new
caseExactIgnoreSubstringsMatch() that is basically identical. I'm
thinking of doing
casefold = strcmp( *mr->smr_mrule.mr_names, "caseIgnoreMatch" )
? UTF8_NOCASEFOLD : UTF8_CASEFOLD;
The rest of the code would be untouched except for replacing the macros
with casefold.
What do you think? Is this fine? Is there a better way? In my mind it
is cleaner to use the MR name than the oid.
Another solution would be to have wrapper routines
caseExactSubstringsMatch() and caseExactSubstringsMatch() that call
a common routine with casefold as parameter. I like the first one
better.
I thought I should check if anyone thought it was a bad idea before I
did it.
Stig