/* 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:
*
int i;
for (i = 0; p->values[i]; i++)
xfree((char *) p->values[i]);
- xfree(p->values);
+ xfree((char **)p->values);
}
}
else
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);
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);
}
int i;
for (i = 0; sp->values[i]; i++)
xfree((char*) sp->values[i]);
- xfree(sp->values);
+ xfree((char **)sp->values);
}
xfree(sp);
}
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