--- /dev/null
+/* CCL qualifiers
+ * Europagate, 1995
+ *
+ * $Log: cclqual.c,v $
+ * Revision 1.1 1995/02/13 15:15:07 adam
+ * Added handling of qualifiers. Not finished yet.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <string.h>
+
+#include "cclp.h"
+
+struct ccl_qualifiers {
+ struct ccl_qualifier *list;
+};
+
+void ccl_qual_add (CCL_bibset b,
+ const char *name, int nuse, int *use, int relation,
+ int position, int structure, int truncation,
+ int completeness)
+{
+ struct ccl_qualifier *new_qual;
+
+ assert (b);
+ new_qual = malloc (sizeof(*new_qual));
+ assert (new_qual);
+
+ new_qual->next = b->list;
+ b->list = new_qual;
+
+ new_qual->name = malloc (strlen(name)+1);
+ assert (new_qual->name);
+ strcpy (new_qual->name, name);
+ new_qual->nuse = nuse;
+ new_qual->use = malloc (sizeof(int)*nuse);
+ assert (new_qual->use);
+ memcpy (new_qual->use, use, sizeof(int)*nuse);
+ new_qual->relation = relation;
+ new_qual->position = position;
+ new_qual->structure = structure;
+ new_qual->truncation = truncation;
+ new_qual->completeness = completeness;
+}
+
+CCL_bibset ccl_qual_mk (void)
+{
+ CCL_bibset b = malloc (sizeof(*b));
+ assert (b);
+ b->list = NULL;
+ return b;
+}
+
+void ccl_qual_rm (CCL_bibset *b)
+{
+ assert (*b);
+ *b = NULL;
+}
+
+struct ccl_qualifier *ccl_qual_search (CCL_bibset b, const char *name)
+{
+ struct ccl_qualifier *q;
+
+ assert (b);
+ for (q = b->list; q; q = q->next)
+ if (strcmp (name, q->name))
+ return q;
+ return NULL;
+}