78 lines
1.4 KiB
Bash
Executable File
78 lines
1.4 KiB
Bash
Executable File
#!/bin/sh -
|
|
#
|
|
# Check spelling in comments and quoted strings from the source files.
|
|
|
|
t=__wt.$$
|
|
trap 'rm -f $t; exit 0' 0 1 2 3 13 15
|
|
|
|
# Insulate against locale-specific sort order
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
|
|
# If aspell has not been installed, quit
|
|
type aspell > /dev/null 2>&1 || {
|
|
echo 'skipped: aspell not found'
|
|
exit 0
|
|
}
|
|
|
|
# replace:
|
|
# Create a replacement list of spelling words. This is here because the
|
|
# words we ignore changes over time and it's worth periodically collapsing
|
|
# the list. Don't it too often, the list is correct for many different aspell
|
|
# catalogs and generating a shorter list on any single system will break other
|
|
# systems.
|
|
replace() {
|
|
aspell --mode=ccpp --lang=en list < ../$1 |
|
|
sort -u |
|
|
comm -12 /dev/stdin s_string.ok
|
|
}
|
|
|
|
# check:
|
|
# Check the spelling of an individual file.
|
|
check() {
|
|
aspell --lang=en $1 list < ../$2 |
|
|
sort -u |
|
|
comm -23 /dev/stdin s_string.ok > $t
|
|
test -s $t && {
|
|
echo "==== $2"
|
|
cat $t
|
|
}
|
|
}
|
|
|
|
# List of files to spellchk.
|
|
l=`(cd .. &&
|
|
find bench examples ext src test -name '*.[chisy]' &&
|
|
find src -name '*.in')`
|
|
|
|
usage()
|
|
{
|
|
echo 'usage: s_string [-r]' >&2
|
|
exit 1
|
|
}
|
|
while :
|
|
do case "$1" in
|
|
-r) # -r builds replacement list of OK words
|
|
for f in $l; do
|
|
replace $f
|
|
done | sort -u > $t
|
|
cp $t s_string.ok
|
|
shift;;
|
|
*)
|
|
test "$#" -eq 0 || usage
|
|
break;;
|
|
esac
|
|
done
|
|
|
|
# Check source files.
|
|
for f in $l; do
|
|
check "--mode=ccpp" $f
|
|
done
|
|
|
|
l="NEWS"
|
|
# Check other files.
|
|
for f in $l; do
|
|
check "" $f
|
|
done
|
|
|
|
exit 0
|