wxWidgets/misc/unictabl/mk_encodings.sh
Mart Raudsepp cd1a22d1d3 Support having const encoding tables. Modify generator code to regenerate as such.
Can't simply regenerate src/common/unictabl.inc, because KOI8-U.TXT is missing, and mk_fallbacks has issues
(sort +2 isn't valid on my system)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-05 00:30:18 +00:00

123 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
# CVS-ID: $Id$
echo " * compiling C source generator..."
cc mk_ctable.c -o mk_ctable
echo " * writing copyright info..."
echo "
/*
* This file is #included by encconv.cpp
*
* CVS-ID: \$Id\$
*
* *** *** CAUTION! *** ***
* Do not modify this file by hand! It is generated by shell
* script \$(WXWIN)/misc/unictabl/regenerate
*
* Parts of this file are based on tables published by Unicode, Inc.
* Original tables are freely available at
* ftp://ftp.unicode.org/Public/MAPPINGS
*
* Original copyright info as present in mapping tables follows:
*
*
* Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
*
* This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
* No claims are made as to fitness for any particular purpose. No
* warranties of any kind are expressed or implied. The recipient
* agrees to determine applicability of information provided. If this
* file has been provided on optical media by Unicode, Inc., the sole
* remedy for any claim will be exchange of defective media within 90
* days of receipt.
*
* Unicode, Inc. hereby grants the right to freely use the information
* supplied in this file in the creation of products supporting the
* Unicode Standard, and to make copies of this file in any form for
* internal or external distribution as long as this notice remains
* attached.
*/
" > unictabl.inc
echo " * creating C tables..."
all_encodings=""
for i in mappings/*.TXT ; do
enc=`echo $i | cut -c10- | tr - _ | sed 's/\.TXT//g' |\
sed 's/8859_\(.*\)/ISO8859_\1/g
s/KOI8_R/KOI8/g'`
cat $i | sed -n '/^0x...0x..../p' | cut -f1,2 | \
./mk_ctable $i $enc >> unictabl.inc
all_encodings="$all_encodings $enc"
done
rm -f mk_ctable
echo " * adding fallback..."
echo "
/*
*
* Unicode to 7bit ASCII fallback
* (for use with wxRECODE_SUBSTITUTE recoding mode)
*
*/
static struct {
wxUint16 c /*code*/;
wxUint8 s /*inaccurate substitution*/;
} encoding_unicode_fallback[] = {
" >> unictabl.inc
cat Fallbacks | while read i ; do
code=`echo "$i" | cut -f1`
subs=`echo "$i" | cut -f2 | cut -c1-2,5-6`
echo " {$code, $subs}," >> unictabl.inc
done
echo " {0, 0}" >> unictabl.inc
echo " };" >> unictabl.inc
echo "
static unsigned encoding_unicode_fallback_count = "`cat Fallbacks | wc -l`";" >> unictabl.inc
echo " * adding reference table..."
echo "
/*
*
* Table of all supported encodings:
*
*/
static struct {
wxFontEncoding encoding; // encoding identifier
const wxUint16 *table; // 8bit to unicode table
} encodings_list[] = {
" >> unictabl.inc
for i in $all_encodings ; do
echo " { wxFONTENCODING_$i, encoding_table__$i}," >> unictabl.inc
done
echo " {wxFONTENCODING_MAX /*anything*/, NULL}" >> unictabl.inc
echo " };" >> unictabl.inc