X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Frecord_render.c;h=82da22c429ee008b97cdc96d23cc6bc359c9d567;hb=883245e48ad6e5735ab73884e18dc6cb5c297c86;hp=6acb1d72c25d5d2c992dcfd5f2878f978e28cde7;hpb=1533023386c841cac9832a246e871795a2b217fc;p=yaz-moved-to-github.git diff --git a/src/record_render.c b/src/record_render.c index 6acb1d7..82da22c 100644 --- a/src/record_render.c +++ b/src/record_render.c @@ -167,16 +167,21 @@ 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_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,