Fix crash in record conv rule select YAZ-812
[yaz-moved-to-github.git] / src / charconv.tcl
index d57f226..8f8cc9e 100644 (file)
@@ -16,6 +16,11 @@ proc preamble_trie {ofilehandle ifiles ofile} {
     puts $f "    Generated automatically by charconv.tcl"
     puts $f "*/"
     puts $f "\#include <string.h>"
+
+    puts $f "\#if HAVE_CONFIG_H"
+    puts $f "\#include <config.h>"
+    puts $f "\#endif"
+
     puts $f "
         struct yaz_iconv_trie_flat {
             char from\[6\];
@@ -35,7 +40,7 @@ proc preamble_trie {ofilehandle ifiles ofile} {
     "
     puts $f {
         static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp,
-                                    size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, int boffset)
+                                    size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, unsigned int boffset)
         {
             struct yaz_iconv_trie *t = ptrs[ptr-1];
             if (inbytesleft < 1)
@@ -211,7 +216,7 @@ proc dump_trie {ofilehandle} {
                set v [lindex $m 3]
                 puts $f "\}, /* $v */"
             }
-            puts $f "  \{\"\", 0\}"
+            puts $f "  \{\"\", 0, 0\}"
             puts $f "\};"
             puts $f "struct yaz_iconv_trie $trie(prefix)page${this} = \{"
             puts $f "  $trie(prefix)page${this}_flat, 0"
@@ -264,7 +269,7 @@ proc dump_trie {ofilehandle} {
     puts $f ""
 
     puts $f "unsigned long yaz_$trie(prefix)_conv
-            (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, int boffset)
+            (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining, unsigned mask, unsigned int boffset)
         {
             unsigned long code;