summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--iconvdata/big5hkscs.c5
-rwxr-xr-xiconvdata/tst-table.sh9
-rwxr-xr-xiconvdata/tst-tables.sh15
4 files changed, 26 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index c24b95e2f5..212eaa8274 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2000-09-07 Ulrich Drepper <drepper@redhat.com>
+ * iconvdata/tst-tables.sh: Actually return with an error if
+ something goes wrong.
+ * iconvdata/tst-table.sh: Return with an error if any of the cmp fails.
+ * iconvdata/big5hkscs.c (BODY of FROM_LOOP): Reject 0xff as input.
+
* iconvdata/tst-tables.sh: Add BIG5HKSCS.
* iconvdata/tst-table-to.c (main): Correct cast in iconv call.
diff --git a/iconvdata/big5hkscs.c b/iconvdata/big5hkscs.c
index e5097c75c9..316baa1e5f 100644
--- a/iconvdata/big5hkscs.c
+++ b/iconvdata/big5hkscs.c
@@ -11727,6 +11727,11 @@ static struct
\
inptr += 2; \
} \
+ else if (__builtin_expect (ch, 0) == 0xff) \
+ { \
+ result = __GCONV_ILLEGAL_INPUT; \
+ break; \
+ } \
else \
++inptr; \
\
diff --git a/iconvdata/tst-table.sh b/iconvdata/tst-table.sh
index 4cd2f6e29b..9b3fcc3dad 100755
--- a/iconvdata/tst-table.sh
+++ b/iconvdata/tst-table.sh
@@ -61,15 +61,18 @@ diff ${objpfx}tst-${charset}.table ${objpfx}tst-${charset}.inverse.table | \
grep '^[<>]' | sed -e 's,^. ,,' > ${objpfx}tst-${charset}.irreversible.table
# Check 1: charmap and iconv forward should be identical.
-cmp -s ${objpfx}tst-${charset}.charmap.table ${objpfx}tst-${charset}.table
+cmp -s ${objpfx}tst-${charset}.charmap.table ${objpfx}tst-${charset}.table ||
+exit 1
# Check 2: the difference between the two iconv directions.
if test -f ${irreversible}; then
cat ${objpfx}tst-${charset}.charmap.table ${irreversible} | sort | uniq -u \
> ${objpfx}tst-${charset}.tmp.table
- cmp -s ${objpfx}tst-${charset}.tmp.table ${objpfx}tst-${charset}.inverse.table
+ cmp -s ${objpfx}tst-${charset}.tmp.table ${objpfx}tst-${charset}.inverse.table ||
+ exit 1
else
- cmp -s ${objpfx}tst-${charset}.table ${objpfx}tst-${charset}.inverse.table
+ cmp -s ${objpfx}tst-${charset}.table ${objpfx}tst-${charset}.inverse.table ||
+ exit 1
fi
exit 0
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
index 202b52f09f..8692b2a86b 100755
--- a/iconvdata/tst-tables.sh
+++ b/iconvdata/tst-tables.sh
@@ -179,7 +179,7 @@ cat <<EOF |
ISO-IR-197
TIS-620
KOI8-U
- ISIRI-3342
+ #ISIRI-3342 This charset concept is completely broken
#
# Multibyte encodings come here
#
@@ -205,9 +205,14 @@ cat <<EOF |
EOF
while read charset charmap; do
case ${charset} in \#*) continue;; esac
- echo "Testing ${charset}" 1>&2
- ./tst-table.sh ${common_objpfx} ${objpfx} ${charset} ${charmap} \
- || { echo "failed: ./tst-table.sh ${common_objpfx} ${objpfx} ${charset} ${charmap}"; status=1; }
+ echo -n "Testing ${charset}" 1>&2
+ if ./tst-table.sh ${common_objpfx} ${objpfx} ${charset} ${charmap}; then
+ echo 1>&2
+ else
+ echo "failed: ./tst-table.sh ${common_objpfx} ${objpfx} ${charset} ${charmap}"
+ echo " *** FAILED ***" 1>&2
+ exit 1
+ fi
done
-exit $status
+exit $?