You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
36 lines
1.4 KiB
#!/bin/sh |
|
# Complete check of a stateless encoding. |
|
# Usage: check-stateless SRCDIR CHARSET |
|
srcdir="$1" |
|
charset="$2" |
|
set -e |
|
|
|
# charset, modified for use in filenames. |
|
charsetf=`echo "$charset" | sed -e 's,:,-,g'` |
|
|
|
# iconv in one direction. |
|
./table-from "$charset" > tmp-"$charsetf".TXT |
|
|
|
# iconv in the other direction. |
|
./table-to "$charset" | sort > tmp-"$charsetf".INVERSE.TXT |
|
|
|
# Check 1: charmap and iconv forward should be identical. |
|
cmp "${srcdir}"/"$charsetf".TXT tmp-"$charsetf".TXT 2> /dev/null |
|
|
|
# Check 2: the difference between the charmap and iconv backward. |
|
sed -e '/ .* 0x/d' < "${srcdir}"/"$charsetf".TXT > tmp-noprecomposed-"$charsetf".TXT |
|
if test -f "${srcdir}"/"$charsetf".IRREVERSIBLE.TXT; then |
|
cat tmp-noprecomposed-"$charsetf".TXT "${srcdir}"/"$charsetf".IRREVERSIBLE.TXT | sort | uniq -u > tmp-orig-"$charsetf".INVERSE.TXT |
|
else |
|
cp tmp-noprecomposed-"$charsetf".TXT tmp-orig-"$charsetf".INVERSE.TXT |
|
fi |
|
cmp tmp-orig-"$charsetf".INVERSE.TXT tmp-"$charsetf".INVERSE.TXT 2> /dev/null |
|
|
|
rm -f tmp-"$charsetf".TXT tmp-"$charsetf".INVERSE.TXT tmp-noprecomposed-"$charsetf".TXT tmp-orig-"$charsetf".INVERSE.TXT |
|
exit 0 |
|
# For a new encoding: |
|
# You can create the "$charsetf".TXT like this: |
|
# ./table-from "$charset" > "$charsetf".TXT |
|
# You can create the "$charsetf".IRREVERSIBLE.TXT like this: |
|
# ./table-to "$charset" | sort > "$charsetf".INVERSE.TXT |
|
# diff "$charsetf".TXT "$charsetf".INVERSE.TXT | grep '^[<>]' | sed -e 's,^. ,,' > "$charsetf".IRREVERSIBLE.TXT
|
|
|