X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fmarcdisp.c;fp=src%2Fmarcdisp.c;h=edb0c9b1ad77808b20a3a9ccc51d8d0e4b66c63d;hp=78244a0db551aa8e1e10e7fbae5adb6c5bac9cf1;hb=b8fbcf6d00bc77c4ccdb02d68c9316f3263be15a;hpb=574ae68dc570706b4468b29e82681efe15bc7180 diff --git a/src/marcdisp.c b/src/marcdisp.c index 78244a0..edb0c9b 100644 --- a/src/marcdisp.c +++ b/src/marcdisp.c @@ -1266,19 +1266,21 @@ int yaz_marc_write_json(yaz_marc_t mt, WRBUF w) for (n = mt->nodes; n; n = n->next) { struct yaz_marc_subfield *s; - int i; const char *sep = ""; switch (n->which) { + case YAZ_MARC_LEADER: + case YAZ_MARC_COMMENT: + break; case YAZ_MARC_CONTROLFIELD: if (first) first = 0; else wrbuf_puts(w, ",\n"); wrbuf_puts(w, "\t\t{\n\t\t\t\""); - wrbuf_json_puts(w, n->u.controlfield.tag); + wrbuf_iconv_json_puts(w, mt->iconv_cd, n->u.controlfield.tag); wrbuf_puts(w, "\":\""); - wrbuf_json_puts(w, n->u.controlfield.data); + wrbuf_iconv_json_puts(w, mt->iconv_cd, n->u.controlfield.data); wrbuf_puts(w, "\"\n\t\t}"); break; case YAZ_MARC_DATAFIELD: @@ -1297,9 +1299,11 @@ int yaz_marc_write_json(yaz_marc_t mt, WRBUF w) wrbuf_puts(w, sep); sep = ",\n"; wrbuf_puts(w, "\t\t\t\t\t{\n\t\t\t\t\t\t\""); - wrbuf_json_write(w, s->code_data, using_code_len); + wrbuf_iconv_json_write(w, mt->iconv_cd, + s->code_data, using_code_len); wrbuf_puts(w, "\":\""); - wrbuf_json_puts(w, s->code_data + using_code_len); + wrbuf_iconv_json_puts(w, mt->iconv_cd, + s->code_data + using_code_len); wrbuf_puts(w, "\"\n\t\t\t\t\t}"); } wrbuf_puts(w, "\n\t\t\t\t]"); @@ -1320,6 +1324,7 @@ int yaz_marc_write_json(yaz_marc_t mt, WRBUF w) } wrbuf_puts(w, "\n\t]\n"); wrbuf_puts(w, "}\n"); + return 0; } int yaz_marc_decode_wrbuf(yaz_marc_t mt, const char *buf, int bsize, WRBUF wr)