Fix CCL directive @case handling so that it affects both keywords and
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 19 Jun 2003 19:51:40 +0000 (19:51 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 19 Jun 2003 19:51:40 +0000 (19:51 +0000)
qualifiers.

CHANGELOG
ccl/cclqual.c

index 720feca..b9aa9a6 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@ Possible compatibility problems with earlier versions marked with '*'.
 
 --- 2.0.3 2003/06/04
 
+Fix CCL directive @case handling so that it affects both keywords and
+qualifiers.
+
 * ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and
 1.2.840.10003.9.5 are now handled by the same decoder z_IU0Update .
 Decoder has been updated with ASN.1 changes as listed in
index 3fbb6c3..577c330 100644 (file)
@@ -44,7 +44,7 @@
 /* CCL qualifiers
  * Europagate, 1995
  *
- * $Id: cclqual.c,v 1.17 2002-06-06 12:54:24 adam Exp $
+ * $Id: cclqual.c,v 1.18 2003-06-19 19:51:40 adam Exp $
  *
  * Old Europagate Log:
  *
@@ -305,14 +305,21 @@ struct ccl_rpn_attr *ccl_qual_search (CCL_parser cclp,
                                       int seq)
 {
     struct ccl_qualifier *q;
+    const char *aliases;
+    int case_sensitive = cclp->ccl_case_sensitive;
 
     ccl_assert (cclp);
     if (!cclp->bibset)
        return NULL;
+
+    aliases = ccl_qual_search_special(cclp->bibset, "case");
+    if (aliases)
+       case_sensitive = atoi(aliases);
+
     for (q = cclp->bibset->list; q; q = q->next)
         if (strlen(q->name) == len)
         {
-            if (cclp->ccl_case_sensitive)
+            if (case_sensitive)
             {
                 if (!memcmp (name, q->name, len))
                     break;