40 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 |