X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fgrs1disp.c;h=429e9fe185bb6ab6b17bd2f25cc38d28987f46b1;hp=a5fa2fc6ad7057489af4f3b5559ed9127b426ad6;hb=8cb8947e3a7bff4dbf8f124871cb4905df1adce7;hpb=05c274ef315384faafcc5900c17468f0ea2474e6 diff --git a/src/grs1disp.c b/src/grs1disp.c index a5fa2fc..429e9fe 100644 --- a/src/grs1disp.c +++ b/src/grs1disp.c @@ -1,21 +1,21 @@ -/* - * Copyright (c) 2002-2004, Index Data. +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: grs1disp.c,v 1.2 2004-10-15 00:19:00 adam Exp $ */ - /** * \file grs1disp.c * \brief Implements display of GRS-1 records */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include -#include #include +#include static void display_variant(WRBUF w, Z_Variant *v, int level) { @@ -23,12 +23,14 @@ static void display_variant(WRBUF w, Z_Variant *v, int level) for (i = 0; i < v->num_triples; i++) { - printf("%*sclass=%d,type=%d", level * 4, "", *v->triples[i]->zclass, - *v->triples[i]->type); + wrbuf_printf(w, "%*sclass=" ODR_INT_PRINTF ",type=" ODR_INT_PRINTF, + level * 4, "", *v->triples[i]->zclass, + *v->triples[i]->type); if (v->triples[i]->which == Z_Triple_internationalString) - printf(",value=%s\n", v->triples[i]->value.internationalString); + wrbuf_printf(w, ",value=%s\n", + v->triples[i]->value.internationalString); else - printf("\n"); + wrbuf_printf(w, "\n"); } } @@ -48,11 +50,11 @@ static void display_grs1(WRBUF w, Z_GenericRecord *r, int level) t = r->elements[i]; wrbuf_printf(w, "("); if (t->tagType) - wrbuf_printf(w, "%d,", *t->tagType); + wrbuf_printf(w, ODR_INT_PRINTF ",", *t->tagType); else wrbuf_printf(w, "?,"); if (t->tagValue->which == Z_StringOrNumeric_numeric) - wrbuf_printf(w, "%d) ", *t->tagValue->u.numeric); + wrbuf_printf(w, ODR_INT_PRINTF ") ", *t->tagValue->u.numeric); else wrbuf_printf(w, "%s) ", t->tagValue->u.string); if (t->content->which == Z_ElementData_subtree) @@ -66,22 +68,27 @@ static void display_grs1(WRBUF w, Z_GenericRecord *r, int level) } } else if (t->content->which == Z_ElementData_string) - wrbuf_printf(w, "%s\n", t->content->u.string); + { + wrbuf_puts(w, t->content->u.string); + wrbuf_puts(w, "\n"); + } else if (t->content->which == Z_ElementData_numeric) - wrbuf_printf(w, "%d\n", *t->content->u.numeric); + { + wrbuf_printf(w, ODR_INT_PRINTF "\n", *t->content->u.numeric); + } else if (t->content->which == Z_ElementData_oid) { - int *ip = t->content->u.oid; - oident *oent; - - if ((oent = oid_getentbyoid(t->content->u.oid))) - wrbuf_printf(w, "OID: %s\n", oent->desc); - else + Odr_oid *ip = t->content->u.oid; + + if (ip) { - wrbuf_printf(w, "{"); - while (ip && *ip >= 0) - wrbuf_printf(w, " %d", *(ip++)); - wrbuf_printf(w, " }\n"); + char oid_name_str[OID_STR_MAX]; + oid_class oclass; + const char *oid_name + = yaz_oid_to_string_buf(ip, &oclass, oid_name_str); + + if (oid_name) + wrbuf_printf(w, "OID: %s\n", oid_name); } } else if (t->content->which == Z_ElementData_noDataRequested) @@ -96,7 +103,7 @@ static void display_grs1(WRBUF w, Z_GenericRecord *r, int level) { printf ("External\n"); /* we cannot print externals here. Srry */ - } + } else wrbuf_printf(w, "? type = %d\n",t->content->which); if (t->appliedVariant) @@ -117,6 +124,15 @@ static void display_grs1(WRBUF w, Z_GenericRecord *r, int level) void yaz_display_grs1(WRBUF wrbuf, Z_GenericRecord *r, int flags) { - display_grs1 (wrbuf, r, 0); + display_grs1(wrbuf, r, 0); } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +