summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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[] = {"