X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fmatchstr.c;h=e2231326f14063c949c958358f2467fa4f5232e3;hb=c39a893dfdae5f792139177132e7e7a70e010aa7;hp=d5b5517c104e191f980d3b745f8accbc71c03983;hpb=008efaed7cfe4bbbfdcae17ba22187b4acafdb02;p=yaz-moved-to-github.git diff --git a/util/matchstr.c b/util/matchstr.c index d5b5517..e223132 100644 --- a/util/matchstr.c +++ b/util/matchstr.c @@ -1,49 +1,19 @@ /* - * Copyright (c) 1995-1997, Index Data. + * Copyright (c) 1995-2003, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * - * $Log: matchstr.c,v $ - * 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 - * Added function 'cause checkergcc doesn't include assert handler. - * - * Revision 1.6 1997/09/04 07:54:34 adam - * Right hande side operand of yaz_matchstr may include a ? in - * which case it returns "match ok". - * - * Revision 1.5 1997/07/21 12:48:11 adam - * Removed windows DLL stubs. - * - * Revision 1.4 1997/05/01 15:07:55 adam - * Added DLL entry point routines. - * - * Revision 1.3 1996/10/29 13:36:28 adam - * Added header. - * - * Revision 1.2 1996/02/20 17:58:42 adam - * Added const to yaz_matchstr. - * - * Revision 1.1 1996/02/20 16:33:06 quinn - * Moved matchstr to global util - * - * Revision 1.1 1995/11/01 11:56:08 quinn - * Added Retrieval (data management) functions en masse. - * - * + * $Id: matchstr.c,v 1.7 2003-02-12 21:34:57 adam Exp $ */ +#if HAVE_CONFIG_H +#include +#endif + #include #include #include -#include +#include +#include /* * Match strings, independently of case and occurences of '-'. @@ -81,6 +51,20 @@ int yaz_matchstr(const char *s1, const char *s2) return *s1 || *s2; } +int yaz_strcmp_del(const char *a, const char *b, const char *b_del) +{ + while (*a && *b) + { + if (*a != *b) + return *a - *b; + a++; + b++; + } + if (b_del && strchr(b_del, *b)) + return *a; + return *a - *b; +} + #ifdef __GNUC__ #ifdef __CHECKER__ void __assert_fail (const char *assertion, const char *file,