Function ccl_rpn_query sets attributeSet to Bib-1.
[yaz-moved-to-github.git] / zutil / yaz-ccl.c
index 6613211..f32f4f1 100644 (file)
@@ -4,7 +4,13 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: yaz-ccl.c,v $
- * Revision 1.6  2000-02-02 15:13:23  adam
+ * Revision 1.8  2000-11-16 13:03:13  adam
+ * Function ccl_rpn_query sets attributeSet to Bib-1.
+ *
+ * Revision 1.7  2000/11/16 09:58:02  adam
+ * Implemented local AttributeSet setting for CCL field maps.
+ *
+ * Revision 1.6  2000/02/02 15:13:23  adam
  * Minor change.
  *
  * Revision 1.5  2000/01/31 13:15:22  adam
@@ -85,6 +91,22 @@ static Z_AttributesPlusTerm *ccl_rpn_term (ODR o, struct ccl_rpn_node *p)
                (int *)odr_malloc(o, sizeof(int));
             *elements[i]->attributeType = attr->type;
            elements[i]->attributeSet = 0;
+           if (attr->set && *attr->set)
+           {
+               int value = oid_getvalbyname (attr->set);
+
+               if (value != VAL_NONE)
+               {
+                   int oid[OID_SIZE];
+                   struct oident ident;
+
+                   ident.oclass = CLASS_ATTSET;
+                   ident.proto = PROTO_Z3950;
+                   ident.value = value;
+                   elements[i]->attributeSet =
+                       odr_oiddup (o, oid_ent_to_oid (&ident, oid));
+               }
+           }
            elements[i]->which = Z_AttributeValue_numeric;
            elements[i]->value.numeric =
                (int *)odr_malloc (o, sizeof(int));
@@ -220,9 +242,14 @@ static Z_RPNStructure *ccl_rpn_structure (ODR o, struct ccl_rpn_node *p)
 Z_RPNQuery *ccl_rpn_query (ODR o, struct ccl_rpn_node *p)
 {
     Z_RPNQuery *zq;
+    oident bib1;
+    int oid[OID_SIZE];
+    bib1.proto = PROTO_Z3950;
+    bib1.oclass = CLASS_ATTSET;
+    bib1.value = VAL_BIB1;
 
     zq = (Z_RPNQuery *)odr_malloc (o, sizeof(*zq));
-    zq->attributeSetId = NULL;
+    zq->attributeSetId = odr_oiddup (o, oid_ent_to_oid (&bib1, oid));
     zq->RPNStructure = ccl_rpn_structure (o, p);
     return zq;
 }