X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fcclqual.c;h=f771013225b3dcc461cd9ea48f000ac77202b944;hb=3b792849c676d96918850e2f1e0af87a75278501;hp=784349412143c45c4ec7b51d31a151ea71e751e1;hpb=fdb80724c17104b31f80527cca19b433f6c2fc33;p=yaz-moved-to-github.git diff --git a/src/cclqual.c b/src/cclqual.c index 7843494..f771013 100644 --- a/src/cclqual.c +++ b/src/cclqual.c @@ -48,7 +48,7 @@ /* CCL qualifiers * Europagate, 1995 * - * $Id: cclqual.c,v 1.9 2007-04-30 19:55:40 adam Exp $ + * $Id: cclqual.c,v 1.12 2007-05-06 20:12:20 adam Exp $ * * Old Europagate Log: * @@ -137,7 +137,7 @@ void ccl_qual_add_special_ar(CCL_bibset bibset, const char *n, int i; for (i = 0; p->values[i]; i++) xfree((char *) p->values[i]); - xfree(p->values); + xfree((char **)p->values); } } else @@ -153,10 +153,10 @@ void ccl_qual_add_special_ar(CCL_bibset bibset, const char *n, void ccl_qual_add_special(CCL_bibset bibset, const char *n, const char *cp) { size_t no = 2; - char **vlist = xmalloc(no * sizeof(*vlist)); + char **vlist = (char **) xmalloc(no * sizeof(*vlist)); yaz_tok_cfg_t yt = yaz_tok_cfg_create(); int t; - int i = 0; + size_t i = 0; yaz_tok_parse_t tp = yaz_tok_parse_buf(yt, cp); @@ -166,7 +166,7 @@ void ccl_qual_add_special(CCL_bibset bibset, const char *n, const char *cp) while (t == YAZ_TOK_STRING) { if (i >= no-1) - vlist = xrealloc(vlist, (no = no * 2) * sizeof(*vlist)); + vlist = (char **) xrealloc(vlist, (no = no * 2) * sizeof(*vlist)); vlist[i++] = xstrdup(yaz_tok_parse_string(tp)); t = yaz_tok_move(tp); } @@ -323,7 +323,7 @@ void ccl_qual_rm(CCL_bibset *b) int i; for (i = 0; sp->values[i]; i++) xfree((char*) sp->values[i]); - xfree(sp->values); + xfree((char **)sp->values); } xfree(sp); } @@ -397,31 +397,30 @@ const char **ccl_qual_search_special(CCL_bibset b, const char *name) return 0; } -int ccl_qual_match_stop(CCL_bibset bibset, ccl_qualifier_t *qa, - const char *src_str, size_t src_len) +int ccl_search_stop(CCL_bibset bibset, const char *qname, + const char *src_str, size_t src_len) { - if (qa[0]) + const char **slist = 0; + if (qname) { - char qname[80]; - const char **slist; - yaz_snprintf(qname, sizeof(qname)-1, "stop.%s", - ccl_qual_get_name(qa[0])); - slist = ccl_qual_search_special(bibset, qname); - if (!slist) - slist = ccl_qual_search_special(bibset, "stop.*"); - if (slist) - { - int i; - for (i = 0; slist[i]; i++) - if (src_len == strlen(slist[i]) - && ccl_memicmp(slist[i], src_str, src_len) == 0) - return 1; - } + char qname_buf[80]; + yaz_snprintf(qname_buf, sizeof(qname_buf)-1, "stop.%s", + qname); + slist = ccl_qual_search_special(bibset, qname_buf); + } + if (!slist) + slist = ccl_qual_search_special(bibset, "stop.*"); + if (slist) + { + int i; + for (i = 0; slist[i]; i++) + if (src_len == strlen(slist[i]) + && ccl_memicmp(slist[i], src_str, src_len) == 0) + return 1; } return 0; } - /* * Local variables: * c-basic-offset: 4