X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fmarcdump.c;h=891174b3bc2e8885b1cd995b6d4219fd047cf875;hb=6cf32fafe48e17e937809e54edf5abc7451d557b;hp=02dacb18177da694e2b51034c84f8b4cc02ee15c;hpb=f202b762e293b75fd3aa4683c3c92ce1ae0a7454;p=yaz-moved-to-github.git diff --git a/util/marcdump.c b/util/marcdump.c index 02dacb1..891174b 100644 --- a/util/marcdump.c +++ b/util/marcdump.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2012 Index Data + * Copyright (C) 1995-2013 Index Data * See the file LICENSE for details. */ @@ -133,8 +133,7 @@ static void marcdump_read_xml(yaz_marc_t mt, const char *fname) int type = xmlTextReaderNodeType(reader); if (type == XML_READER_TYPE_ELEMENT) { - const char *name = (const char *) - xmlTextReaderLocalName(reader); + char *name = (char *) xmlTextReaderLocalName(reader); if (!strcmp(name, "record") || !strcmp(name, "r")) { xmlNodePtr ptr = xmlTextReaderExpand(reader); @@ -158,8 +157,10 @@ static void marcdump_read_xml(yaz_marc_t mt, const char *fname) wrbuf_rewind(wrbuf); } } + xmlFree(name); } } + xmlFreeTextReader(reader); } #else xmlDocPtr doc = xmlParseFile(fname); @@ -398,7 +399,10 @@ static void dump(const char *fname, const char *from, const char *to, { if ((i & 15) == 0) fprintf(cfile, " \""); - fprintf(cfile, "\\x%02X", p[i] & 255); + if (p[i] < 32 || p[i] > 126) + fprintf(cfile, "\" \"\\x%02X\" \"", p[i] & 255); + else + fputc(p[i], cfile); if (i < r - 1 && (i & 15) == 15) fprintf(cfile, "\"\n");