## Copyright (C) 1994-2003, Index Data
## All rights reserved.
-## $Id: Makefile.am,v 1.18 2003-05-06 10:07:33 adam Exp $
+## $Id: Makefile.am,v 1.19 2003-05-22 22:44:50 adam Exp $
noinst_LTLIBRARIES = libutil.la
-TESTS = tsticonv tstnmem tstmatchstr tstwrbuf
+check_PROGRAMS = tsticonv tstnmem tstmatchstr tstwrbuf
+
+TESTS = $(check_PROGRAMS)
bin_SCRIPTS = yaz-comp
noinst_PROGRAMS = marcdump yaziconv
-EXTRA_PROGRAMS = tsticonv tstnmem tstmatchstr tstwrbuf
-
# MARC dumper utility
marcdump_LDADD = libutil.la
marcdump_SOURCES = marcdump.c
# the next line restats using tclsh \
exec tclsh "$0" "$@"
#
-# $Id: charconv.tcl,v 1.1 2002-12-16 13:13:53 adam Exp $
+# $Id: charconv.tcl,v 1.2 2003-05-22 22:44:50 adam Exp $
proc usage {} {
puts {charconv.tcl: [-p prefix] [-s split] input output}
foreach m $trie($this,content) {
puts -nonewline $f " \{\""
foreach d [lindex $m 0] {
- puts -nonewline $f "\\0x$d"
+ puts -nonewline $f "\\x$d"
}
puts -nonewline $f "\", 0x[lindex $m 1]"
puts $f "\},"
while (flat->from)
{
size_t len = strlen(flat->from);
- if (len >= inbytesleft)
+ if (len <= inbytesleft)
{
if (memcmp(flat->from, inp, len) == 0)
{
* Copyright (c) 2002-2003, Index Data
* See the file LICENSE for details.
*
- * $Id: tsticonv.c,v 1.2 2003-05-06 10:07:33 adam Exp $
+ * $Id: tsticonv.c,v 1.3 2003-05-22 22:44:50 adam Exp $
*/
#if HAVE_CONFIG_H
/* some test strings in ISO-8859-1 format */
const char *buf[] = {
- "ax" ,
- "\330",
- "eneb\346r",
- 0 };
+ "ax" ,
+ "\330",
+ "eneb\346r",
+ "\xfc",
+ "\xfb",
+ "\xfbr",
+ 0 };
+
+/* some test strings in MARC-8 format */
+const char *marc8_strings[] = {
+ "ax",
+ "\xa2", /* latin capital letter o with stroke */
+ "eneb\xb5r", /* latin small letter ae */
+ "\xe8\x75", /* latin small letter u with umlaut */
+ "\xe3\x75", /* latin small letter u with circumflex */
+ "\xe3\x75r", /* latin small letter u with circumflex */
+ 0
+};
+
+static marc8_tst()
+{
+ int i;
+ yaz_iconv_t cd;
+
+ cd = yaz_iconv_open("ISO-8859-1", "MARC8");
+ for (i = 0; buf[i]; i++)
+ {
+ size_t r;
+ char *inbuf= (char*) marc8_strings[i];
+ size_t inbytesleft = strlen(inbuf);
+ char outbuf0[24];
+ char *outbuf = outbuf0;
+ size_t outbytesleft = sizeof(outbuf0);
+
+ r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ if (r == (size_t) (-1))
+ {
+ int e = yaz_iconv_error(cd);
+
+ printf ("tsticonv 6 i=%d e=%d\n", i, e);
+ exit(6);
+ }
+ if ((outbuf - outbuf0) != strlen(buf[i])
+ || memcmp(outbuf0, buf[i], strlen(buf[i])))
+ {
+ printf ("tsticonv 7 i=%d\n", i);
+ printf ("buf=%s out=%s\n", buf[i], outbuf0);
+ exit(7);
+ }
+ }
+ yaz_iconv_close(cd);
+}
static dconvert(int mandatory, const char *tmpcode)
{
dconvert(1, "ISO-8859-1");
dconvert(1, "UCS4");
dconvert(0, "CP865");
+ marc8_tst();
exit (0);
}