📄 matchstr.c
字号:
/* * Copyright (c) 1995-2003, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Id: matchstr.c,v 1.7 2003/02/12 21:34:57 adam Exp $ */#if HAVE_CONFIG_H#include <config.h>#endif#include <stdio.h>#include <assert.h>#include <ctype.h>#include <string.h>#include <yaz/yaz-util.h>/* * Match strings, independently of case and occurences of '-'. * fairly inefficient - will be replaced with an indexing scheme for * the various subsystems if we get a bottleneck here. */int yaz_matchstr(const char *s1, const char *s2){ while (*s1 && *s2) { char c1 = *s1; char c2 = *s2; if (c2 == '?') return 0; 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++; } 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, unsigned int line, const char *function){ fprintf (stderr, "%s in file %s line %d func %s\n", assertion, file, line, function); abort ();}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -