/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) 1995-2013 Index Data
* See the file LICENSE for details.
*/
/** \file querytowrbuf.c
break;
if (len > 0 && i == len)
{
- for (i = 0; i<len; i++)
+ if (term[0] == '@')
+ wrbuf_putc(b, '\\');
+ for (i = 0; i < len; i++)
{
if (term[i] == '\\')
wrbuf_putc(b, '\\');
else
{
wrbuf_putc(b, '"');
- for (i = 0; i<len; i++)
+ for (i = 0; i < len; i++)
{
if (term[i] == '"' || term[i] == '\\')
wrbuf_putc(b, '\\');
if (element->attributeSet)
{
char oid_name_str[OID_STR_MAX];
- const char *setname = yaz_oid_to_string_buf(element->attributeSet,
+ const char *setname = yaz_oid_to_string_buf(element->attributeSet,
0, oid_name_str);
if (setname)
{
}
}
wrbuf_printf(b, ODR_INT_PRINTF "=", *element->attributeType);
- switch (element->which)
+ switch (element->which)
{
case Z_AttributeValue_numeric:
wrbuf_printf(b, ODR_INT_PRINTF, *element->value.numeric);
break;
case Z_AttributeValue_complex:
- for (i = 0; i<element->value.complex->num_list; i++)
+ for (i = 0; i < element->value.complex->num_list; i++)
{
if (i)
wrbuf_puts(b, ",");
wrbuf_puts(b, element->value.complex->list[i]->u.string);
else if (element->value.complex->list[i]->which ==
Z_StringOrNumeric_numeric)
- wrbuf_printf(b, ODR_INT_PRINTF,
+ wrbuf_printf(b, ODR_INT_PRINTF,
*element->value.complex->list[i]->u.numeric);
}
break;
}
}
-static void yaz_apt_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt)
+static void yaz_attributes_to_wrbuf(WRBUF w, const Z_AttributeList *al)
{
- int num_attributes = zapt->attributes->num_attributes;
int i;
- for (i = 0; i<num_attributes; i++)
- yaz_attribute_element_to_wrbuf(b,zapt->attributes->attributes[i]);
-
+ for (i = 0; i < al->num_attributes; i++)
+ yaz_attribute_element_to_wrbuf(w, al->attributes[i]);
+}
+
+static void yaz_apt_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt)
+{
+ yaz_attributes_to_wrbuf(b, zapt->attributes);
switch (zapt->term->which)
{
case Z_Term_general:
else
wrbuf_putc(b, '0');
- wrbuf_printf(b, " " ODR_INT_PRINTF " %d "
+ wrbuf_printf(b, " " ODR_INT_PRINTF " %d "
ODR_INT_PRINTF " ", *op->u.prox->distance,
*op->u.prox->ordered,
*op->u.prox->relationType);
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);
}
assert(b);
switch (q->which)
{
- case Z_Query_type_1:
+ case Z_Query_type_1:
case Z_Query_type_101:
wrbuf_puts(b,"RPN ");
yaz_rpnquery_to_wrbuf(b, q->u.type_1);
wrbuf_puts(b,"(diag not in default format?)");
else
{
- Z_DefaultDiagFormat *e=diags[0]->u.defaultFormat;
+ Z_DefaultDiagFormat *e = diags[0]->u.defaultFormat;
if (e->condition)
wrbuf_printf(b, ODR_INT_PRINTF " ",*e->condition);
else
}
}
+void yaz_facet_list_to_wrbuf(WRBUF w, const Z_FacetList *fl)
+{
+ int i;
+ for (i = 0; i < fl->num; i++)
+ {
+ Z_FacetField *ff = fl->elements[i];
+
+ if (i)
+ wrbuf_puts(w, ", ");
+ yaz_attributes_to_wrbuf(w, ff->attributes);
+ }
+}
+
/*
* Local variables:
* c-basic-offset: 4