X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftsticonv.c;h=feb88685eb1e5026801145a3f2d9c1d6af92e876;hp=08394edd028afeb28a6def6b7c532049049e8b92;hb=606d0755a0441402d35cc597f1c85896d554898e;hpb=ffa73561a78abb70d06d51cdcbf8ef3f8536a0ab diff --git a/test/tsticonv.c b/test/tsticonv.c index 08394ed..feb8868 100644 --- a/test/tsticonv.c +++ b/test/tsticonv.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2010 Index Data * See the file LICENSE for details. - * - * $Id: tsticonv.c,v 1.35 2008-03-12 08:53:28 adam Exp $ */ #if HAVE_CONFIG_H @@ -94,7 +92,7 @@ static int tst_convert_x(yaz_iconv_t cd, const char *buf, const char *cmpbuf, { int ret = 1; WRBUF b = wrbuf_alloc(); - char outbuf[12]; + char outbuf[16]; size_t inbytesleft = strlen(buf); const char *inp = buf; int rounds = 0; @@ -489,9 +487,9 @@ static void tst_marc8_to_latin1(void) yaz_iconv_close(cd); } -static void tst_utf8_to_marc8(void) +static void tst_utf8_to_marc8(const char *marc8_type) { - yaz_iconv_t cd = yaz_iconv_open("MARC8", "UTF-8"); + yaz_iconv_t cd = yaz_iconv_open(marc8_type, "UTF-8"); YAZ_CHECK(cd); if (!cd) @@ -602,6 +600,7 @@ static void tst_utf8_to_marc8(void) #endif YAZ_CHECK(strcmp("\033p0\x1bs", outbuf0) == 0); } + yaz_iconv(cd, 0, 0, 0, 0); yaz_iconv_close(cd); } @@ -682,6 +681,27 @@ static void tst_utf8_codes(void) YAZ_CHECK(utf8_check(100000000)); } +static void tst_danmarc_to_latin1(void) +{ + yaz_iconv_t cd = yaz_iconv_open("iso-8859-1", "danmarc"); + + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert(cd, "ax", "ax")); + + YAZ_CHECK(tst_convert(cd, "a@@b", "a@b")); + YAZ_CHECK(tst_convert(cd, "a@@@@b", "a@@b")); + YAZ_CHECK(tst_convert(cd, "@000ab", "\nb")); + + YAZ_CHECK(tst_convert(cd, "@\xe5", "aa")); + YAZ_CHECK(tst_convert(cd, "@\xc5.", "Aa.")); + + yaz_iconv_close(cd); +} + + int main (int argc, char **argv) { YAZ_CHECK_INIT(argc, argv); @@ -697,7 +717,11 @@ int main (int argc, char **argv) tst_advance_to_utf8(); tst_utf8_to_advance(); - tst_utf8_to_marc8(); + tst_utf8_to_marc8("marc8"); + tst_utf8_to_marc8("marc8lossy"); + tst_utf8_to_marc8("marc8lossless"); + + tst_danmarc_to_latin1(); tst_latin1_to_marc8(); @@ -715,7 +739,9 @@ int main (int argc, char **argv) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +