Proper fix for #380 -- use different algorithm to generate codepages
authorAlexander Bokovoy <ab@samba.org>
Mon, 1 Sep 2003 11:33:42 +0000 (11:33 +0000)
committerAlexander Bokovoy <ab@samba.org>
Mon, 1 Sep 2003 11:33:42 +0000 (11:33 +0000)
source code which allows to take gaps into account thus making unneccessary
extended [index] = value, syntax in to_ucs2 array
(This used to be commit 4ab08a4bb8dbd023eb85d16a594d3c4ed066f9ac)

source3/script/gen-8bit-gap.awk [new file with mode: 0644]
source3/script/gen-8bit-gap.sh.in

diff --git a/source3/script/gen-8bit-gap.awk b/source3/script/gen-8bit-gap.awk
new file mode 100644 (file)
index 0000000..59a1a23
--- /dev/null
@@ -0,0 +1,18 @@
+BEGIN {
+       for (i=0; i<256; i++) {
+               tbl[sprintf("%02x",i)] = "0x0000";
+       }
+}
+
+/^<U([[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])>[[:space:]]*.x([[:xdigit:]][[:xdigit:]])[:space:]*.*$/ {
+       tbl[substr($2,3,2)]=sprintf("0x%s",substr($1,3,4));
+}
+
+END {
+       for(i=0; i<32; i++) {
+               for(j=0; j<8; j++) {
+                       printf(" %s,", tbl[sprintf("%02x",i*8+j)]);
+               }
+               printf "\n"
+       }
+}
\ No newline at end of file
index e66c654c22dbb35dc342127efc9b21c09e4e8e55..bcf64a4464f52f576d9cf5ce2b023208a8d32930 100755 (executable)
@@ -31,9 +31,7 @@ echo " */"
 echo '#include "includes.h"'
 echo
 echo "static const uint16 to_ucs2[256] = {"
-sed -ne '/^[^[:space:]]*[[:space:]]*.x00/d' \
-    -e 's/^<U\(....\)>[[:space:]]*.x\(..\).*/  [0x\2] = 0x\1,/p' \
-    "$CHARMAP" | sort -u
+cat "$CHARMAP" | @AWK@ -f @srcdir@/script/gen-8bit-gap.awk
 echo "};"
 echo
 echo "static const struct charset_gap_table from_idx[] = {"