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
Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz
[yaz-moved-to-github.git]
/
src
/
wrbuf.c
diff --git
a/src/wrbuf.c
b/src/wrbuf.c
index
e6c53e8
..
06e49de
100644
(file)
--- a/
src/wrbuf.c
+++ b/
src/wrbuf.c
@@
-1,5
+1,5
@@
/* This file is part of the YAZ toolkit.
/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2010 Index Data
+ * Copyright (C) 1995-2011 Index Data
* See the file LICENSE for details.
*/
* See the file LICENSE for details.
*/
@@
-35,8
+35,11
@@
WRBUF wrbuf_alloc(void)
void wrbuf_destroy(WRBUF b)
{
void wrbuf_destroy(WRBUF b)
{
- xfree(b->buf);
- xfree(b);
+ if (b)
+ {
+ xfree(b->buf);
+ xfree(b);
+ }
}
void wrbuf_rewind(WRBUF b)
}
void wrbuf_rewind(WRBUF b)
@@
-149,9
+152,10
@@
void wrbuf_printf(WRBUF b, const char *fmt, ...)
va_end(ap);
}
va_end(ap);
}
-static void wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf,
- size_t size, int cdata)
+int wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf,
+ size_t size, int cdata)
{
{
+ int ret = 0;
if (cd)
{
char outbuf[128];
if (cd)
{
char outbuf[128];
@@
-167,7
+171,10
@@
static void wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf,
{
int e = yaz_iconv_error(cd);
if (e != YAZ_ICONV_E2BIG)
{
int e = yaz_iconv_error(cd);
if (e != YAZ_ICONV_E2BIG)
+ {
+ ret = -1;
break;
break;
+ }
}
if (cdata)
wrbuf_xmlputs_n(b, outbuf, outp - outbuf);
}
if (cdata)
wrbuf_xmlputs_n(b, outbuf, outp - outbuf);
@@
-182,6
+189,7
@@
static void wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf,
else
wrbuf_write(b, buf, size);
}
else
wrbuf_write(b, buf, size);
}
+ return ret;
}
void wrbuf_iconv_write(WRBUF b, yaz_iconv_t cd, const char *buf, size_t size)
}
void wrbuf_iconv_write(WRBUF b, yaz_iconv_t cd, const char *buf, size_t size)