X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Frecord_render.c;h=1291858a0f292e4861fc5b1acca1b1ea59b7dce7;hp=6acb1d72c25d5d2c992dcfd5f2878f978e28cde7;hb=7fc72f3ae149e416a297ef1f55c09271056e98f1;hpb=1533023386c841cac9832a246e871795a2b217fc diff --git a/src/record_render.c b/src/record_render.c index 6acb1d7..1291858 100644 --- a/src/record_render.c +++ b/src/record_render.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2013 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ /** @@ -167,16 +167,22 @@ static const char *return_record_wrbuf(WRBUF wrbuf, int *len, charset); else if (r->which == Z_External_octet) { - const char *ret_buf = return_marc_record( - wrbuf, marctype, len, - (const char *) r->u.octet_aligned->buf, - r->u.octet_aligned->len, - charset); - if (ret_buf) - return ret_buf; - /* not ISO2709. Return fail unless raw (ISO2709) is wanted */ - if (yaz_oid_is_iso2709(oid) && marctype != YAZ_MARC_ISO2709) - return 0; + if (oid_oidcmp(oid, yaz_oid_recsyn_xml) + && oid_oidcmp(oid, yaz_oid_recsyn_application_xml) + && oid_oidcmp(oid, yaz_oid_recsyn_mab) + && oid_oidcmp(oid, yaz_oid_recsyn_html)) + { + const char *ret_buf = return_marc_record( + wrbuf, marctype, len, + (const char *) r->u.octet_aligned->buf, + r->u.octet_aligned->len, + charset); + if (ret_buf) + return ret_buf; + /* not ISO2709. Return fail unless raw (ISO2709) is wanted */ + if (yaz_oid_is_iso2709(oid) && marctype != YAZ_MARC_ISO2709) + return 0; + } return return_string_record(wrbuf, len, (const char *) r->u.octet_aligned->buf, r->u.octet_aligned->len, @@ -439,6 +445,11 @@ const char *yaz_record_render(Z_NamePlusRecord *npr, const char *schema, ret = get_record_format(wrbuf, len, npr, YAZ_MARC_TURBOMARC, charset, format); } + else if (!strcmp(type, "json")) + { + ret = get_record_format(wrbuf, len, npr, YAZ_MARC_JSON, charset, + format); + } else if (!strcmp(type, "raw")) { ret = get_record_format(wrbuf, len, npr, YAZ_MARC_ISO2709, charset,