X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fmatchstr.c;h=086378197185008d9320dbc01d5d07a5c47b8aa5;hb=3d18b35078096b9fd1feb8e2d6fd7e9e48755ad5;hp=e30a47d4770d904ec8cf2113c2d7962d258bbd20;hpb=161ec45b40a3ab08e08946c9654ab6fea4604760;p=yaz-moved-to-github.git diff --git a/util/matchstr.c b/util/matchstr.c index e30a47d..0863781 100644 --- a/util/matchstr.c +++ b/util/matchstr.c @@ -1,10 +1,22 @@ /* - * Copyright (c) 1995-1997, Index Data. + * Copyright (c) 1995-2000, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: matchstr.c,v $ - * Revision 1.1 1999-06-08 10:10:16 adam + * Revision 1.5 2000-02-29 13:44:55 adam + * Check for config.h (currently not generated). + * + * Revision 1.4 1999/11/30 13:47:12 adam + * Improved installation. Moved header files to include/yaz. + * + * Revision 1.3 1999/10/19 12:35:42 adam + * Minor bug fix (bug introduced by previous commit). + * + * Revision 1.2 1999/10/15 11:35:41 adam + * Character '.' matches any single character. + * + * Revision 1.1 1999/06/08 10:10:16 adam * New sub directory zutil. Moved YAZ Compiler to be part of YAZ tree. * * Revision 1.7 1997/09/30 11:47:47 adam @@ -34,10 +46,14 @@ * * */ +#if HAVE_CONFIG_H +#include +#endif + #include #include #include -#include +#include /* * Match strings, independently of case and occurences of '-'. @@ -49,24 +65,26 @@ int yaz_matchstr(const char *s1, const char *s2) { while (*s1 && *s2) { - char c1, c2; + char c1 = *s1; + char c2 = *s2; - if (*s2 == '?') + if (c2 == '?') return 0; - if (*s1 == '-') - s1++; - if (*s2 == '-') - s2++; - if (!*s1 || !*s2) - break; - c1 = *s1; - c2 = *s2; - if (isupper(c1)) - c1 = tolower(c1); - if (isupper(c2)) - c2 = tolower(c2); - if (c1 != c2) + if (c1 == '-') + c1 = *++s1; + if (c2 == '-') + c2 = *++s2; + if (!c1 || !c2) break; + if (c2 != '.') + { + if (isupper(c1)) + c1 = tolower(c1); + if (isupper(c2)) + c2 = tolower(c2); + if (c1 != c2) + break; + } s1++; s2++; }