#!/bin/sh
set -e
LC_ALL=C
export LC_ALL
echo
echo Generating code page translation tables.
codepages=`cat index.txt|sed 's/
//g'`
if [ -n "$codepages" ]; then
(
n=0
echo '/* Automatically generated by gen-cp */'
for i in $codepages; do
	printf $i' ' 1>&2
	echo
	echo 'static_const struct table_entry table_'$i' [] = {'
	tail -n +3 $i.cp | sed 's/#.*$//' | grep '^0x[89a-fA-F]' | sed 's/[ 	][ 	]*/ /g' | sed 's/[ 	]*$/ },/' | sed 's/ /, /' | sed 's/^[ 	]*/	{ /' | grep '.*, .*,' | grep -v ', 0x0*[89][0-9a-fA-F] ' || true
	echo '	{ 0, 0 }'
	echo '};'
	echo
	echo 'static_const const_char_ptr aliases_'$i' [] = {'`head -2 $i.cp | tail -n +2`', NULL };'
	n=`expr $n + 1`
done
echo
echo 'static_const struct codepage_desc codepages [] = {'
for i in $codepages; do
	echo '	{ "'`head -1 $i.cp`'", aliases_'$i', table_'$i' },'
done
echo '	{ NULL, NULL, NULL }'
echo '};'
echo '#define N_CODEPAGES '$n | sed 's/
//g' > codepage.h
if cmp -s ../codepage.h codepage.h; then
	rm -f codepage.h
else
	mv codepage.h ../codepage.h
fi
) | sed 's/
//g' > ../codepage.inc
echo
echo Done.
fi
echo
