X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=ccl%2Fcclqual.c;h=343d64f168a66de50e3737b5095a6d3e1cb7c508;hp=2787a7baf381baa48e36af6cc920d4f3e9765492;hb=3a14421799597d61196e2bb07bdd83396000cb45;hpb=3888e88cde70f36851544ab7acc04e0943470ec6 diff --git a/ccl/cclqual.c b/ccl/cclqual.c index 2787a7b..343d64f 100644 --- a/ccl/cclqual.c +++ b/ccl/cclqual.c @@ -45,7 +45,25 @@ * Europagate, 1995 * * $Log: cclqual.c,v $ - * Revision 1.5 1996-10-11 15:00:25 adam + * Revision 1.10 1998-07-07 15:49:40 adam + * Added braces to avoid warning. + * + * Revision 1.9 1998/02/11 11:53:33 adam + * Changed code so that it compiles as C++. + * + * Revision 1.8 1997/09/29 08:56:38 adam + * Changed CCL parser to be thread safe. New type, CCL_parser, declared + * and a create/destructers ccl_parser_create/ccl_parser/destory has + * been added. + * + * Revision 1.7 1997/09/01 08:48:12 adam + * New windows NT/95 port using MSV5.0. Only a few changes made + * to avoid warnings. + * + * Revision 1.6 1997/04/30 08:52:07 quinn + * Null + * + * Revision 1.5 1996/10/11 15:00:25 adam * CCL parser from Europagate Email gateway 1.0. * * Revision 1.9 1995/05/16 09:39:27 adam @@ -110,13 +128,13 @@ void ccl_qual_add (CCL_bibset b, const char *name, int no, int *pairs) break; if (!q) { - struct ccl_qualifier *new_qual = malloc (sizeof(*new_qual)); + struct ccl_qualifier *new_qual = (struct ccl_qualifier *)malloc (sizeof(*new_qual)); assert (new_qual); new_qual->next = b->list; b->list = new_qual; - new_qual->name = malloc (strlen(name)+1); + new_qual->name = (char *)malloc (strlen(name)+1); assert (new_qual->name); strcpy (new_qual->name, name); attrp = &new_qual->attr_list; @@ -131,7 +149,7 @@ void ccl_qual_add (CCL_bibset b, const char *name, int no, int *pairs) { struct ccl_rpn_attr *attr; - attr = malloc (sizeof(*attr)); + attr = (struct ccl_rpn_attr *)malloc (sizeof(*attr)); assert (attr); attr->type = *pairs++; attr->value = *pairs++; @@ -147,7 +165,7 @@ void ccl_qual_add (CCL_bibset b, const char *name, int no, int *pairs) */ CCL_bibset ccl_qual_mk (void) { - CCL_bibset b = malloc (sizeof(*b)); + CCL_bibset b = (CCL_bibset)malloc (sizeof(*b)); assert (b); b->list = NULL; return b; @@ -186,14 +204,18 @@ void ccl_qual_rm (CCL_bibset *b) * len: Length of name. * return: Attribute info. NULL if not found. */ -struct ccl_rpn_attr *ccl_qual_search (CCL_bibset b, const char *name, int len) +struct ccl_rpn_attr *ccl_qual_search (CCL_parser cclp, + const char *name, size_t len) { struct ccl_qualifier *q; - assert (b); - for (q = b->list; q; q = q->next) + assert (cclp); + if (!cclp->bibset) + return NULL; + for (q = cclp->bibset->list; q; q = q->next) if (strlen(q->name) == len) - if (ccl_case_sensitive) + { + if (cclp->ccl_case_sensitive) { if (!memcmp (name, q->name, len)) return q->attr_list; @@ -203,6 +225,7 @@ struct ccl_rpn_attr *ccl_qual_search (CCL_bibset b, const char *name, int len) if (!ccl_memicmp (name, q->name, len)) return q->attr_list; } + } return NULL; }