summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2003-09-01 11:33:42 +0000
committerAlexander Bokovoy <ab@samba.org>2003-09-01 11:33:42 +0000
commit39abb5caccc47ce6f16c3a0995e948076a314bf5 (patch)
tree320a705136663e965cd70f14cec366e033e0a448
parentbce1fcd76bf728c1423ffacfbff325f0947856e1 (diff)
downloadsamba-39abb5caccc47ce6f16c3a0995e948076a314bf5.tar.gz
samba-39abb5caccc47ce6f16c3a0995e948076a314bf5.tar.bz2
samba-39abb5caccc47ce6f16c3a0995e948076a314bf5.zip
Proper fix for #380 -- use different algorithm to generate codepages
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)
-rw-r--r--source3/script/gen-8bit-gap.awk18
-rwxr-xr-xsource3/script/gen-8bit-gap.sh.in4
2 files changed, 19 insertions, 3 deletions
diff --git a/source3/script/gen-8bit-gap.awk b/source3/script/gen-8bit-gap.awk
new file mode 100644
index 0000000000..59a1a23be0
--- /dev/null
+++ b/source3/script/gen-8bit-gap.awk
@@ -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
diff --git a/source3/script/gen-8bit-gap.sh.in b/source3/script/gen-8bit-gap.sh.in
index e66c654c22..bcf64a4464 100755
--- a/source3/script/gen-8bit-gap.sh.in
+++ b/source3/script/gen-8bit-gap.sh.in
@@ -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[] = {"