#!/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