| #!/bin/sh |
| # Complete check of a stateless encoding. |
| # Usage: check-stateless SRCDIR CHARSET |
| srcdir="$1" |
| charset="$2" |
| set -e |
| ./table-from "$charset" > tmp-"$charset".TXT |
| ./table-to "$charset" | sort > tmp-"$charset".INVERSE.TXT |
| cmp "${srcdir}"/"$charset".TXT tmp-"$charset".TXT 2> /dev/null |
| if test -f "${srcdir}"/"$charset".IRREVERSIBLE.TXT; then |
| cat "${srcdir}"/"$charset".TXT "${srcdir}"/"$charset".IRREVERSIBLE.TXT | sort | uniq -u > tmp-orig-"$charset".INVERSE.TXT |
| cmp tmp-orig-"$charset".INVERSE.TXT tmp-"$charset".INVERSE.TXT 2> /dev/null |
| else |
| cmp "${srcdir}"/"$charset".TXT tmp-"$charset".INVERSE.TXT 2> /dev/null |
| fi |
| rm -f tmp-"$charset".TXT tmp-"$charset".INVERSE.TXT tmp-orig-"$charset".INVERSE.TXT |
| exit 0 |
| # For a new encoding: |
| # You can create the "$charset".TXT like this: |
| # ./table-from "$charset" > "$charset".TXT |
| # You can create the "$charset".IRREVERSIBLE.TXT like this: |
| # ./table-to "$charset" | sort > "$charset".INVERSE.TXT |
| # diff "$charset".TXT "$charset".INVERSE.TXT | grep '^[<>]' | sed -e 's,^. ,,' > "$charset".IRREVERSIBLE.TXT |