X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fdatabase.c;h=d51cd4f124bdb255d10da82f84353eae6d7649e7;hb=b2807317725db68d786503711be67ecf163115b7;hp=3dfe74e0ef2405a319a557169ce96aad16351b34;hpb=4bace2a54c44fa467f26cbfa2cc27159cb8fc268;p=pazpar2-moved-to-github.git diff --git a/src/database.c b/src/database.c index 3dfe74e..d51cd4f 100644 --- a/src/database.c +++ b/src/database.c @@ -239,19 +239,34 @@ static int match_criterion(struct setting **settings, } if (!settings[offset]) return 0; - for (v = c->values; v; v = v->next) - { - if (offset == PZ_ID) + if (c->type == PAZPAR2_STRING_MATCH) + for (v = c->values; v; v = v->next) { - if (match_zurl(settings[offset]->value, v->value)) - break; + if (offset == PZ_ID) + { + if (match_zurl(settings[offset]->value, v->value)) + break; + } + else + { + if (!strcmp(settings[offset]->value, v->value)) + break; + } } - else + else if (c->type == PAZPAR2_SUBSTRING_MATCH) + for (v = c->values; v; v = v->next) { - if (!strcmp(settings[offset]->value, v->value)) - break; + if (offset == PZ_ID) + { + if (match_zurl(settings[offset]->value, v->value)) + break; + } + else + { + if (strstr(settings[offset]->value, v->value)) + break; + } } - } if (v) return 1; else