X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fquerytowrbuf.c;h=64b2ddc2def0c512431d658f9dc27d5d6ea94d29;hb=be821514c869d68186361b5aab6bbfd1aa60e087;hp=379108211c44193bfcb680314207eebaed2ef5bc;hpb=2c5d2e0851ef4adf500a62f0bd179c775f13b7be;p=yaz-moved-to-github.git diff --git a/src/querytowrbuf.c b/src/querytowrbuf.c index 3791082..64b2ddc 100644 --- a/src/querytowrbuf.c +++ b/src/querytowrbuf.c @@ -1,13 +1,12 @@ /* - * Copyright (C) 1995-2005, Index Data ApS + * Copyright (C) 1995-2007, Index Data ApS * All rights reserved. * - * $Id: querytowrbuf.c,v 1.3 2006-01-20 14:44:55 adam Exp $ + * $Id: querytowrbuf.c,v 1.9 2007-04-12 13:52:57 adam Exp $ */ -/** - * \file querytostr.c - * \brief Query to WRBUF (to strings) +/** \file querytowrbuf.c + \brief Query to WRBUF (to strings) */ #include @@ -15,6 +14,7 @@ #include #include +#include static void yaz_term_to_wrbuf(WRBUF b, const char *term, int len) { @@ -41,14 +41,18 @@ static void yaz_attribute_element_to_wrbuf(WRBUF b, const Z_AttributeElement *element) { int i; - char *setname=""; - char *sep = ""; /* optional space after attrset name */ + char oid_name_str[OID_STR_MAX]; + const char *setname = 0; + char *sep = " "; /* optional space after attrset name */ if (element->attributeSet) { - oident *attrset; - attrset = oid_getentbyoid (element->attributeSet); - setname = attrset->desc; - sep = " "; + setname = yaz_oid_to_string_buf(element->attributeSet, + 0, oid_name_str); + } + if (!setname) + { + setname = ""; + sep = ""; } switch (element->which) { @@ -182,14 +186,13 @@ static void yaz_rpnstructure_to_wrbuf(WRBUF b, const Z_RPNStructure *zs) void yaz_rpnquery_to_wrbuf(WRBUF b, const Z_RPNQuery *rpn) { - oident *attrset; - enum oid_value ast; - - attrset = oid_getentbyoid (rpn->attributeSetId); - if (attrset) + if (rpn->attributeSetId) { - ast = attrset->value; - wrbuf_printf(b, "@attrset %s ", attrset->desc); + char oid_name_str[OID_STR_MAX]; + const char *oid_name = yaz_oid_to_string_buf(rpn->attributeSetId, + 0, oid_name_str); + if (oid_name) + wrbuf_printf(b, "@attrset %s ", oid_name); } yaz_rpnstructure_to_wrbuf(b, rpn->RPNStructure); wrbuf_chop_right(b); @@ -203,44 +206,32 @@ void yaz_query_to_wrbuf(WRBUF b, const Z_Query *q) { case Z_Query_type_1: case Z_Query_type_101: - wrbuf_printf(b,"RPN: "); + wrbuf_printf(b,"RPN "); yaz_rpnquery_to_wrbuf(b, q->u.type_1); break; case Z_Query_type_2: - wrbuf_printf(b, "CCL: %.*s", q->u.type_2->len, q->u.type_2->buf); + wrbuf_printf(b, "CCL %.*s", q->u.type_2->len, q->u.type_2->buf); break; case Z_Query_type_100: - wrbuf_printf(b, "Z39.58: %.*s", q->u.type_100->len, + wrbuf_printf(b, "Z39.58 %.*s", q->u.type_100->len, q->u.type_100->buf); break; case Z_Query_type_104: if (q->u.type_104->which == Z_External_CQL) - wrbuf_printf(b, "CQL: %s", q->u.type_104->u.cql); + wrbuf_printf(b, "CQL %s", q->u.type_104->u.cql); else - wrbuf_printf(b,"Unknown type 104 query %d", q->u.type_104->which); + wrbuf_printf(b,"UNKNOWN type 104 query %d", q->u.type_104->which); } } void yaz_scan_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt, - oid_value ast) + const int *attrbute_set) { /* should print attr set here */ + wrbuf_printf(b, "RPN "); yaz_apt_to_wrbuf(b, zapt); } -/* obsolete */ -void wrbuf_scan_term(WRBUF b, const Z_AttributesPlusTerm *zapt, oid_value ast) -{ - yaz_apt_to_wrbuf(b, zapt); -} - -/* obsolete */ -void wrbuf_put_zquery(WRBUF b, const Z_Query *q) -{ - yaz_query_to_wrbuf(b, q); -} - - /* * Local variables: * c-basic-offset: 4