#!/bin/sh

# (a script to be run in the root directory of the distribution,
# probably as part of an enclosing do-something-with-whitespace script)
#
# Print to stdout the names of files whose whitespace we (SBCLers)
# try to keep canonical.

# glob patterns for source files in languages for which the
# canonicalization is safe (not affecting meaning, at least given the
# conservative syntax used in SBCL sources)
source_extensions='.lisp .lisp-expr .c .h .asd'
# other candidates:
#   .sh: if ./make.sh is altered, Bad Things happen
#   ?

stamp_file=whitespace-stamp

if [ -e $stamp_file ]; then
    find_opt="-newer $stamp_file"
else
    find_opt=""
fi

# SunOS find does not support -path.  Try to find a binary which does.
if   [ -n "$GNUFIND" ];        then :
elif which gfind >/dev/null;   then GNUFIND=gfind
elif which gnufind >/dev/null; then GNUFIND=gnufind
else                                GNUFIND=find; fi
if ! "$GNUFIND" /dev/null -path dummy 2>/dev/null; then
    echo "Warning: $GNUFIND might not be GNU: use of -path fails." 1>&2
fi

for source_extension in $source_extensions; do
    "$GNUFIND" . \( \
            -path contrib/asdf -o \
            -name _darcs -o \
            -name '{arch}' -o \
            -name CVS -o \
            -name .hg -o \
            -name .svn \) -type d -prune -o \
           $find_opt -name '*'$source_extension -print
done

touch $stamp_file
