* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: tsticonv.c,v 1.26 2007-03-12 10:59:59 adam Exp $
+ * $Id: tsticonv.c,v 1.29 2007-03-20 21:37:32 adam Exp $
*/
#if HAVE_CONFIG_H
return 0;
}
else
+ {
+ yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft);
break;
+ }
}
+
return compare_buffers("tsticonv 22", 0,
expect_len, expect_buf,
outbuf - outbuf0, outbuf0);
if (e != YAZ_ICONV_E2BIG)
break;
}
+ else
+ {
+ size_t outbytesleft = sizeof(outbuf);
+ char *outp = outbuf;
+ r = yaz_iconv(cd, 0, 0, &outp, &outbytesleft);
+ wrbuf_write(b, outbuf, outp - outbuf);
+ break;
+ }
}
if (wrbuf_len(b) == strlen(cmpbuf)
&& !memcmp(cmpbuf, wrbuf_buf(b), wrbuf_len(b)))
ret = 1;
else
yaz_log(YLOG_LOG, "GOT (%.*s)", wrbuf_len(b), wrbuf_buf(b));
- wrbuf_free(b, 1);
+ wrbuf_destroy(b);
return ret;
}
return;
r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
YAZ_CHECK(r != (size_t) (-1));
+
+ r = yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft);
+ YAZ_CHECK(r != (size_t) (-1));
yaz_iconv_close(cd);
if (r == (size_t) (-1))
return;
outbytesleft = sizeof(outbuf1);
r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
YAZ_CHECK(r != (size_t) (-1));
+
+ r = yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft);
+ if (r == (size_t)(-1))
+ {
+ fprintf(stderr, "failed\n");
+ }
+ YAZ_CHECK(r != (size_t) (-1));
+
if (r != (size_t)(-1))
{
ret = compare_buffers("dconvert", i,
strlen(iso_8859_1_a[i]), iso_8859_1_a[i],
- sizeof(outbuf1) - outbytesleft, outbuf1);
+ sizeof(outbuf1) - outbytesleft, outbuf1);
YAZ_CHECK(ret);
}
yaz_iconv_close(cd);
"(\033p0\x1bs)"));
+ {
+ char *inbuf0 = "\xe2\x81\xb0";
+ char *inbuf = inbuf0;
+ size_t inbytesleft = strlen(inbuf);
+ char outbuf0[64];
+ char *outbuf = outbuf0;
+ size_t outbytesleft = sizeof(outbuf0)-1;
+ size_t r;
+#if 0
+ int i;
+#endif
+ r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ YAZ_CHECK(r != (size_t) (-1));
+
+#if 0
+ *outbuf = '\0'; /* so we know when to stop printing */
+ for (i = 0; outbuf0[i]; i++)
+ {
+ int ch = outbuf0[i] & 0xff;
+ yaz_log(YLOG_LOG, "ch%d %02X %c", i, ch, ch >= ' ' ? ch : '?');
+ }
+#endif
+
+ r = yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft);
+ YAZ_CHECK(r != (size_t) (-1));
+ *outbuf = '\0'; /* for strcmp test below and printing */
+#if 0
+ for (i = 0; outbuf0[i]; i++)
+ {
+ int ch = outbuf0[i] & 0xff;
+ yaz_log(YLOG_LOG, "ch%d %02X %c", i, ch, ch >= ' ' ? ch : '?');
+ }
+#endif
+ YAZ_CHECK(strcmp("\033p0\x1bs", outbuf0) == 0);
+ }
yaz_iconv_close(cd);
}