* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: marcdump.c,v 1.47 2007-01-03 08:42:16 adam Exp $
+ * $Id: marcdump.c,v 1.53 2007-09-23 07:40:13 adam Exp $
*/
#define _FILE_OFFSET_BITS 64
{
fprintf (stderr, "Usage: %s [-c cfile] [-f from] [-t to] "
"[-i format] [-o format] "
- "[-n] [-l pos=value] [-v] [-C chunk] [-s splitfname] file...\n",
+ "[-n] [-l pos=value] [-v] [-C chunk] [-s splitfname] [-p] file...\n",
prog);
}
{
WRBUF wrbuf = wrbuf_alloc();
yaz_marc_write_mode(mt, wrbuf);
- fputs(wrbuf_buf(wrbuf), stdout);
- wrbuf_free(wrbuf, 1);
+ fputs(wrbuf_cstr(wrbuf), stdout);
+ wrbuf_destroy(wrbuf);
}
fclose(inf);
}
{
yaz_marc_write_mode(mt, wrbuf);
- fputs(wrbuf_buf(wrbuf), stdout);
+ fputs(wrbuf_cstr(wrbuf), stdout);
}
- wrbuf_free(wrbuf, 1);
+ wrbuf_destroy(wrbuf);
}
xmlFreeDoc(doc);
}
fprintf (cfile, "char *marc_records[] = {\n");
for(;; marc_no++)
{
- char *result = 0;
+ const char *result = 0;
size_t len;
size_t rlen;
- int len_result;
+ size_t len_result;
size_t r;
char buf[100001];
r = fread (buf + 5, 1, rlen, inf);
if (r < rlen)
break;
+ while (buf[len-1] != ISO2709_RS)
+ {
+ if (len > sizeof(buf)-2)
+ break;
+ r = fread (buf + len, 1, 1, inf);
+ if (r != 1)
+ break;
+ len++;
+ }
if (split_fname)
{
char fname[256];
fclose(sf);
}
}
- len_result = (int) rlen;
+ len_result = rlen;
r = yaz_marc_decode_buf(mt, buf, -1, &result, &len_result);
if (r > 0 && result)
{
const char *split_fname = 0;
const char *leader_spec = 0;
int write_using_libxml2 = 0;
-
+
#if HAVE_LOCALE_H
setlocale(LC_CTYPE, "");
#endif
fprintf(stderr, "%s: bad input format: %s\n", prog, arg);
exit(1);
}
+#if YAZ_HAVE_XML2
+#else
+ if (input_format == YAZ_MARC_MARCXML
+ || input_format == YAZ_MARC_XCHANGE)
+ {
+ fprintf(stderr, "%s: Libxml2 support not enabled\n", prog);
+ exit(3);
+ }
+#endif
break;
case 'o':
/* dirty hack so we can make Libxml2 do the writing ..