1#!/bin/bash 2 3if [[ -z "$AWK" || -z "$WORKDIR" ]]; then 4 printf '$AWK and $WORKDIR must be set\n' >&2 5 exit 1 6fi 7 8TEMP0=$WORKDIR/test.temp.0 9TEMP1=$WORKDIR/test.temp.1 10TEMP2=$WORKDIR/test.temp.2 11 12RESULT=0 13 14fail() { 15 echo "$1" >&2 16 RESULT=1 17} 18 19echo T.latin1: tests of 8-bit input 20 21$AWK ' 22{ print $0 } 23' latin1 > $TEMP1 24 25diff latin1 $TEMP1 || fail 'BAD: T.latin1 1' 26 27LC_ALL=C grep '[�-�]' latin1 > $TEMP0 28$AWK '/[�-�]/' latin1 > $TEMP1 29diff $TEMP0 $TEMP1 || fail 'BAD: T.latin1 2' 30 31$AWK '{ gsub(/\351/, "\370"); print }' latin1 > $TEMP0 32$AWK '{ gsub(/�/, "�"); print }' latin1 > $TEMP1 33diff $TEMP0 $TEMP1 || fail 'BAD: T.latin1 3' 34 35$AWK '{ gsub(/[^\300-\370]/, ""); print }' latin1 > $TEMP0 36$AWK '{ gsub(/[^�-�]/, ""); print } ' latin1 > $TEMP1 37diff $TEMP0 $TEMP1 || fail 'BAD: T.latin1 4' 38 39echo '/�/' > $TEMP1 40$AWK -f $TEMP1 $TEMP1 > $TEMP2 41diff $TEMP1 $TEMP2 || fail 'BAD: T.latin1 5' 42 43echo /[��]/ > $TEMP1 44$AWK -f $TEMP1 $TEMP1 > $TEMP2 45diff $TEMP1 $TEMP2 || fail 'BAD: T.latin1 6' 46 47 48echo 'This is a line. 49Patterns like /[��]/ do not work yet. Example, run awk /[��]/ 50over a file containing just �. 51This is another line.' > $TEMP0 52echo 'Patterns like /[��]/ do not work yet. Example, run awk /[��]/ 53over a file containing just �.' > $TEMP1 54$AWK '/[��]/' $TEMP0 > $TEMP2 55diff $TEMP1 $TEMP2 || fail 'BAD: T.latin1 7' 56 57exit $RESULT 58