X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fcqlutil.c;h=1b842b1c165abc4248357cfca8ce7b5f9e208c33;hp=baa54ad0db2ccb064e061148fe2b8a547b882757;hb=42f18e58ed67f77727cde23bcee44dbd32ed242a;hpb=a4c9e87155ec7e343559946290ed8262cf5acf81 diff --git a/src/cqlutil.c b/src/cqlutil.c index baa54ad..1b842b1 100644 --- a/src/cqlutil.c +++ b/src/cqlutil.c @@ -1,5 +1,5 @@ -/* $Id: cqlutil.c,v 1.1 2003-10-27 12:21:30 adam Exp $ - Copyright (C) 2002-2003 +/* $Id: cqlutil.c,v 1.2 2004-03-10 16:34:29 adam Exp $ + Copyright (C) 2002-2004 Index Data Aps This file is part of the YAZ toolkit. @@ -33,11 +33,6 @@ struct cql_node *cql_node_dup (struct cql_node *cp) cn->u.st.modifiers = cql_node_dup(cp->u.st.modifiers); cn->u.st.prefixes = cql_node_dup(cp->u.st.prefixes); break; - case CQL_NODE_MOD: - cn = cql_node_mk_mod(cp->u.mod.name, - cp->u.mod.value); - cn->u.mod.next = cql_node_dup(cp->u.mod.next); - break; case CQL_NODE_BOOL: cn = cql_node_mk_boolean(cp->u.boolean.value); cn->u.boolean.left = cql_node_dup(cp->u.boolean.left); @@ -67,22 +62,6 @@ struct cql_node *cql_node_mk_sc(const char *index, return p; } -struct cql_node *cql_node_mk_mod(const char *name, - const char *value) -{ - struct cql_node *p = (struct cql_node *) malloc(sizeof(*p)); - p->which = CQL_NODE_MOD; - - p->u.mod.name = 0; - if (name) - p->u.mod.name = strdup(name); - p->u.mod.value = 0; - if (value) - p->u.mod.value = strdup(value); - p->u.mod.next = 0; - return p; -} - struct cql_node *cql_node_mk_boolean(const char *op) { struct cql_node *p = (struct cql_node *) malloc(sizeof(*p)); @@ -111,43 +90,13 @@ struct cql_node *cql_node_prefix(struct cql_node *n, const char *prefix, } if (cpp) { - struct cql_node *cp = cql_node_mk_mod(prefix, uri); - cp->u.mod.next = *cpp; + struct cql_node *cp = cql_node_mk_sc(prefix, "=", uri); + cp->u.st.modifiers = *cpp; *cpp = cp; } return n; } -struct cql_node *cql_node_mk_proxargs(const char *relation, - const char *distance, - const char *unit, - const char *ordering) -{ - struct cql_node *m = 0, *m1; - - if (ordering && *ordering) - m = cql_node_mk_mod("ordering", ordering); - if (unit && *unit) - { - m1 = cql_node_mk_mod("unit", unit); - m1->u.mod.next = m; - m = m1; - } - if (distance && *distance) - { - m1 = cql_node_mk_mod("distance", distance); - m1->u.mod.next = m; - m = m1; - } - if (relation && *relation) - { - m1 = cql_node_mk_mod("relation", relation); - m1->u.mod.next = m; - m = m1; - } - return m; -} - void cql_node_destroy(struct cql_node *cn) { if (!cn) @@ -161,16 +110,12 @@ void cql_node_destroy(struct cql_node *cn) cql_node_destroy(cn->u.st.modifiers); cql_node_destroy(cn->u.st.prefixes); break; - case CQL_NODE_MOD: - free (cn->u.mod.name); - free (cn->u.mod.value); - cql_node_destroy(cn->u.mod.next); - break; case CQL_NODE_BOOL: free (cn->u.boolean.value); cql_node_destroy(cn->u.boolean.left); cql_node_destroy(cn->u.boolean.right); cql_node_destroy(cn->u.boolean.prefixes); + cql_node_destroy(cn->u.boolean.modifiers); } free (cn); }