diff options
author | Alexander Bokovoy <ab@samba.org> | 2003-08-28 17:16:27 +0000 |
---|---|---|
committer | Alexander Bokovoy <ab@samba.org> | 2003-08-28 17:16:27 +0000 |
commit | 37042c7bc0f349370e93e4bed37d8fa371013247 (patch) | |
tree | e13e3d492d90586436cafecf4501e28f8ef752d8 /source/script/gen-8bit-gap.sh.in | |
parent | 7105f4bcabb29126999b5494f6d60d6f766ab5cc (diff) | |
download | samba-37042c7bc0f349370e93e4bed37d8fa371013247.tar.gz samba-37042c7bc0f349370e93e4bed37d8fa371013247.tar.xz samba-37042c7bc0f349370e93e4bed37d8fa371013247.zip |
Refactor charset plugins a bit and add CP437 module.
Now all 8-bit charsets with gaps (not all symbols defined) could be produced through
one macro -- SMB_GENERATE_CHARSET_MODULE_8_BIT_GAP(CHARSETNAME) within source file
with three charset tables. Full source code for such modules can be generated by
source/script/gen-8bit-gap.sh script which was taken from GNU libc and changed slightly
to follow our data types and structure.
Diffstat (limited to 'source/script/gen-8bit-gap.sh.in')
-rwxr-xr-x | source/script/gen-8bit-gap.sh.in | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/source/script/gen-8bit-gap.sh.in b/source/script/gen-8bit-gap.sh.in new file mode 100755 index 00000000000..e66c654c22d --- /dev/null +++ b/source/script/gen-8bit-gap.sh.in @@ -0,0 +1,51 @@ +#!/bin/sh +if test $# -ne 2 ; then + echo "Usage: $0 <charmap file> <CHARSET NAME>" + exit 1 +fi + +CHARMAP=$1 +CHARSETNAME=$2 + +echo "/* " +echo " * Conversion table for $CHARSETNAME charset " +echo " * " +echo " * Conversion tables are generated using $CHARMAP table " +echo " * and source/script/gen-8bit-gap.sh script " +echo " * " +echo " * This program is free software; you can redistribute it and/or modify " +echo " * it under the terms of the GNU General Public License as published by " +echo " * the Free Software Foundation; either version 2 of the License, or " +echo " * (at your option) any later version. " +echo " * " +echo " * This program is distributed in the hope that it will be useful," +echo " * but WITHOUT ANY WARRANTY; without even the implied warranty of " +echo " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " +echo " * GNU General Public License for more details. " +echo " * " +echo " * You should have received a copy of the GNU General Public License " +echo " * along with this program; if not, write to the Free Software " +echo " * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. " +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 +echo "};" +echo +echo "static const struct charset_gap_table from_idx[] = {" +sed -ne 's/^<U\(....\).*/\1/p' \ + "$CHARMAP" | sort -u | @AWK@ -f @srcdir@/script/gap.awk +echo " { 0xffff, 0xffff, 0 }" +echo "};" +echo +echo "static const unsigned char from_ucs2[] = {" +sed -ne 's/^<U\(....\)>[[:space:]]*.x\(..\).*/\1 \2/p' \ + "$CHARMAP" | sort -u | @AWK@ -f @srcdir@/script/gaptab.awk +echo "};" +echo +echo "SMB_GENERATE_CHARSET_MODULE_8_BIT_GAP($CHARSETNAME)" +echo |