#!/bin/sh
# English -- suite of English checks for latex files
#
# AUTHOR:	Gary T. Leavens

USAGE="Usage: $0 file ..."

[ -n "$echo" ] && set -x


# repeated -- Print any repeated words in a text file, such as "the the."
#
# BUGS:  This will not catch repeated words where one is capatilized and the
# other is not capitalized.
repeated()
{
USAGE="Usage: $0 file ..."

# no arguments?
if test $# -eq 0
then
	echo "$USAGE" >&2
	exit 1
fi

awk 'BEGIN	{ prev = "" }
	{ for (i=1; i<=NF; i++) {
		if (prev == $i) { if (prev ~ /[a-zA-Z]/) print $i, $i }
		prev = $i } }
' $*
}

# article -- Print any ``an foo'' or ``a object'' mistakes in a text file.
#
# BUGS:  This doesn't know about "h" and thinks "u" doesn't need "an".
#        should also work with quotations better...
article()
{
USAGE="Usage: $0 file ..."

# no arguments?
if test $# -eq 0
then
	echo "$USAGE" >&2
	exit 1
fi

awk 'BEGIN	{ prev = "" }
	{ for (i=1; i<=NF; i++) {
		if ((prev ~ /^[Aa]n$/) && ($i ~ /^[^AaEeIiOo].*$/)) {
			print prev, $i }
		if ((prev ~ /^[Aa]$/) && ($i ~ /^[AaEeIiOo].*$/)) {
			print prev, $i }
		prev = $i } }
' $*
}

# no arguments?
if test $# -eq 0
then
	echo "$USAGE" >&2
	exit 1
fi

for f
do
	echo 'checking for repeated words ...'
	repeated $f
	echo 'checking for bad indefinite articles ...'
	deroff $f | article -
        echo 'checking for spelling errors ...'
	spell $f
done

