#!/bin/bash if [[ -z "$AWK" || -z "$WORKDIR" ]]; then printf '$AWK and $WORKDIR must be set\n' >&2 exit 1 fi TEMP0=$WORKDIR/test.temp.0 TEMP1=$WORKDIR/test.temp.1 TEMP2=$WORKDIR/test.temp.2 RESULT=0 fail() { echo "$1" >&2 RESULT=1 } echo T.latin1: tests of 8-bit input $AWK ' { print $0 } ' latin1 > $TEMP1 diff latin1 $TEMP1 || fail 'BAD: T.latin1 1' LC_ALL=C grep '[Å-å]' latin1 > $TEMP0 $AWK '/[Å-å]/' latin1 > $TEMP1 diff $TEMP0 $TEMP1 || fail 'BAD: T.latin1 2' $AWK '{ gsub(/\351/, "\370"); print }' latin1 > $TEMP0 $AWK '{ gsub(/é/, "ø"); print }' latin1 > $TEMP1 diff $TEMP0 $TEMP1 || fail 'BAD: T.latin1 3' $AWK '{ gsub(/[^\300-\370]/, ""); print }' latin1 > $TEMP0 $AWK '{ gsub(/[^À-ø]/, ""); print } ' latin1 > $TEMP1 diff $TEMP0 $TEMP1 || fail 'BAD: T.latin1 4' echo '/á/' > $TEMP1 $AWK -f $TEMP1 $TEMP1 > $TEMP2 diff $TEMP1 $TEMP2 || fail 'BAD: T.latin1 5' echo /[áé]/ > $TEMP1 $AWK -f $TEMP1 $TEMP1 > $TEMP2 diff $TEMP1 $TEMP2 || fail 'BAD: T.latin1 6' echo 'This is a line. Patterns like /[áé]/ do not work yet. Example, run awk /[áé]/ over a file containing just á. This is another line.' > $TEMP0 echo 'Patterns like /[áé]/ do not work yet. Example, run awk /[áé]/ over a file containing just á.' > $TEMP1 $AWK '/[áé]/' $TEMP0 > $TEMP2 diff $TEMP1 $TEMP2 || fail 'BAD: T.latin1 7' exit $RESULT