projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix leak in test
[yaz-moved-to-github.git]
/
util
/
marcdump.c
diff --git
a/util/marcdump.c
b/util/marcdump.c
index
1542fb1
..
4a5ac25
100644
(file)
--- a/
util/marcdump.c
+++ b/
util/marcdump.c
@@
-2,7
+2,7
@@
* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
* 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.52 2007-04-17 20:26:18 adam Exp $
*/
#define _FILE_OFFSET_BITS 64
*/
#define _FILE_OFFSET_BITS 64
@@
-90,8
+90,8
@@
static void marcdump_read_line(yaz_marc_t mt, const char *fname)
{
WRBUF wrbuf = wrbuf_alloc();
yaz_marc_write_mode(mt, wrbuf);
{
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);
}
}
fclose(inf);
}
@@
-116,9
+116,9
@@
static void marcdump_read_xml(yaz_marc_t mt, const char *fname)
{
yaz_marc_write_mode(mt, wrbuf);
{
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);
}
}
xmlFreeDoc(doc);
}
@@
-181,10
+181,10
@@
static void dump(const char *fname, const char *from, const char *to,
fprintf (cfile, "char *marc_records[] = {\n");
for(;; marc_no++)
{
fprintf (cfile, "char *marc_records[] = {\n");
for(;; marc_no++)
{
- char *result = 0;
+ const char *result = 0;
size_t len;
size_t rlen;
size_t len;
size_t rlen;
- int len_result;
+ size_t len_result;
size_t r;
char buf[100001];
size_t r;
char buf[100001];
@@
-235,6
+235,15
@@
static void dump(const char *fname, const char *from, const char *to,
r = fread (buf + 5, 1, rlen, inf);
if (r < rlen)
break;
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];
if (split_fname)
{
char fname[256];
@@
-265,7
+274,7
@@
static void dump(const char *fname, const char *from, const char *to,
fclose(sf);
}
}
fclose(sf);
}
}
- len_result = (int) rlen;
+ len_result = rlen;
r = yaz_marc_decode_buf(mt, buf, -1, &result, &len_result);
if (r > 0 && result)
{
r = yaz_marc_decode_buf(mt, buf, -1, &result, &len_result);
if (r > 0 && result)
{
@@
-318,7
+327,7
@@
int main (int argc, char **argv)
const char *split_fname = 0;
const char *leader_spec = 0;
int write_using_libxml2 = 0;
const char *split_fname = 0;
const char *leader_spec = 0;
int write_using_libxml2 = 0;
-
+
#if HAVE_LOCALE_H
setlocale(LC_CTYPE, "");
#endif
#if HAVE_LOCALE_H
setlocale(LC_CTYPE, "");
#endif
@@
-341,6
+350,15
@@
int main (int argc, char **argv)
fprintf(stderr, "%s: bad input format: %s\n", prog, arg);
exit(1);
}
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 ..
break;
case 'o':
/* dirty hack so we can make Libxml2 do the writing ..