X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=client%2Fclient.c;h=9a00c6384d475b23f9675d0eaf48dc303b5fa110;hp=d2ab870246b6087c6177175abc90dff3e109c90f;hb=15cbfd594a64e997955bbecd1aeb95bc854a1217;hpb=130d73eaa90fb40dd7d941b6a706036477ea8cdd diff --git a/client/client.c b/client/client.c index d2ab870..9a00c63 100644 --- a/client/client.c +++ b/client/client.c @@ -1616,16 +1616,16 @@ static void display_term(Z_Term *term) { switch (term->which) { case Z_Term_general: - printf("%.*s", term->u.general->len, term->u.general->buf); + printf(" %.*s", term->u.general->len, term->u.general->buf); break; case Z_Term_characterString: - printf("%s", term->u.characterString); + printf(" %s", term->u.characterString); break; case Z_Term_numeric: - printf(ODR_INT_PRINTF, *term->u.numeric); + printf(" " ODR_INT_PRINTF, *term->u.numeric); break; case Z_Term_null: - printf("null"); + printf(" null"); break; } } @@ -1658,11 +1658,11 @@ static void display_facet(Z_FacetField *facet) { facetattrs(al, &attr_values); if (!attr_values.errcode) { int term_index; - printf("Facet: %s (%d): \n", attr_values.useattr, /* attr_values.relation, attr_values.limit, */ facet->num_terms); + printf(" %s (%d): \n", attr_values.useattr, /* attr_values.relation, attr_values.limit, */ facet->num_terms); for (term_index = 0 ; term_index < facet->num_terms; term_index++) { Z_FacetTerm *facetTerm = facet->terms[term_index]; display_term(facetTerm->term); -s printf(" (" NMEM_INT_PRINTF ")\n", *facetTerm->count); + printf(" (" NMEM_INT_PRINTF ")\n", *facetTerm->count); } } @@ -1672,11 +1672,9 @@ s printf(" (" NMEM_INT_PRINTF ")\n", *facetTerm->count); static void* display_facets(Z_FacetList *fl) { int index; - printf("Facets (%d): \n", fl->num); + printf("Facets(%d): \n", fl->num); for (index = 0; index < fl->num ; index++) { - if (index) - printf(","); display_facet(fl->elements[index]); } return 0; @@ -2860,43 +2858,6 @@ static int cmd_find(const char *arg) return 2; } -static Z_FacetField* parse_facet(ODR odr, const char *facet, int length) -{ - YAZ_PQF_Parser pqf_parser = yaz_pqf_create(); - char buffer[length+1]; - Odr_oid *attributeSetId; - Z_FacetField *facet_field; - Z_AttributeList *attribute_list; - memcpy(buffer, facet, length); - buffer[length] = '\0'; - attribute_list = yaz_pqf_scan_attribute_list(pqf_parser, odr, &attributeSetId, buffer); - - if (!attribute_list) { - printf("Invalid facet definition: %s", facet); - return 0; - } - facet_field = odr_malloc(odr, sizeof(*facet_field)); - facet_field->attributes = attribute_list; - facet_field->num_terms = 0; - facet_field->terms = 0; - //debug_add_facet_term(odr, facet_field); - - return facet_field; -} - -#define FACET_DElIMITER ',' - -static int scan_facet_argument(const char *arg) { - int index; - int length = strlen(arg); - int count = 1; - for (index = 0; index < length; index++) { - if (arg[index] == FACET_DElIMITER) - count++; - } - return count; -} - static int cmd_facets(const char *arg) { int size = 0; @@ -2914,34 +2875,14 @@ static int cmd_facets(const char *arg) } else { - int index = 0; - Z_FacetField **elements; - int num_elements ; - const char *facet = arg; - // parse facets list + /* TODO Wrong odr. Loosing memory */ ODR odr = odr_createmem(ODR_ENCODE); - num_elements = scan_facet_argument(arg); - facet_list = odr_malloc(odr, sizeof(*facet_list)); - elements = odr_malloc(odr, num_elements * sizeof(*elements)); - for (index = 0; index < num_elements;) { - const char *pos = strchr(facet, FACET_DElIMITER); - if (pos == 0) - pos = facet + strlen(facet); - elements[index] = parse_facet(odr, (const char *) facet, (pos - facet)); - if (elements[index]) { - index++; - } - else - num_elements--; - facet = pos + 1; - } + facet_list = yaz_pqf_parse_facet_list(odr, arg); - if (!num_elements || !facet_list) { + if (!facet_list) { printf("Invalid facet list: %s", arg); return 0; } - facet_list->elements = elements; - facet_list->num = index; return 1; } return 2;