Introduce *-default family
[elinks.git] / Unicode / gen-cp
blob73268da8cf7b0ed8276523902266a0f9ba00699e
1 #!/bin/sh
2 # $Id: gen-cp,v 1.13 2005/03/05 22:08:22 zas Exp $
4 echo
5 echo Generating code page translation tables.
7 codepages=`cat index.txt`
9 if [ -n "$codepages" ]; then
13 n=0
15 echo '/* Automatically generated by gen-cp */'
16 echo '/* DO NOT EDIT THIS FILE! EDIT Unicode/<whatever> INSTEAD! */'
17 echo
19 for i in $codepages; do
20 echo -n $i' ' 1>&2
21 echo
23 echo
24 echo "/*** $i ***/"
25 echo
27 echo 'struct table_entry table_'$i' [] = {'
29 # TODO: Comments inside of the structure are ugliness in a pure clean
30 # form, and my aesthetical feeling shivers upon glancing at it. However
31 # we should handle commentless records. A loop with read inside would
32 # be ideal, I suppose. --pasky
33 tail -n +3 $i.cp | sed 's/# *\(.*\) *$/\/* \1 *\/ /' | grep '^0x[89a-zA-Z]' \
34 | sed 's/[ ][ ]*/ /g' | sed 's/[ ]*$/ },/' | sed 's/ /, /' \
35 | sed 's/^[ ]*/ {/' | grep '.*,.*,'
37 echo ' {0, 0}'
38 echo '};'
39 echo
41 echo 'unsigned char *aliases_'$i' [] = {'
42 head -n 2 $i.cp | tail -n +2 | sed 's/ \+/ /g; s/ $//; s/\", /\",£/g; s/$/,/' | tr "£" "\n" \
43 | sed 's/^/£/g' | tr "£" "\t"
44 echo ' NULL
45 };'
46 n=`expr $n + 1`
47 done
49 echo
50 echo 'struct codepage_desc codepages [] = {'
52 for i in $codepages; do
53 echo ' {"'`head -n 1 $i.cp`'", aliases_'$i', table_'$i'},'
54 done
56 echo ' {NULL, NULL, NULL}'
57 echo '};'
59 echo
60 echo '#define N_CODEPAGES '$n | sed 's/ //g'
62 ) | sed 's/ //g' > ../src/intl/codepage.inc
64 echo
65 echo Done.
69 echo