/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
/* TODO Map special codes to something possible for XML ELEMENT names */
int encode = 0;
- int index = 0;
+ size_t index = 0;
int success = 0;
for (index = 0; index < code_len; index++)
{
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:
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]");
int i;
for (i = 0; n->u.datafield.indicator[i]; i++)
{
- wrbuf_puts(w, ",\n");
- wrbuf_printf(w, "\t\t\t\t\"ind%d\":\"%c\"", i + 1,
+ wrbuf_printf(w, ",\n\t\t\t\t\"ind%d\":\"%c\"", i + 1,
n->u.datafield.indicator[i]);
}
}
}
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)
mt->write_using_libxml2 = enable;
}
+int yaz_marc_check_marc21_coding(const char *charset,
+ const char *marc_buf, int sz)
+{
+ if (charset && (!yaz_matchstr(charset, "MARC8?") ||
+ !yaz_matchstr(charset, "MARC8")) && marc_buf && sz > 25
+ && marc_buf[9] == 'a')
+ return 1;
+ return 0;
+}
+
/*
* Local variables:
* c-basic-offset: 4