#!/bin/sh
# prints filename:x where x is the number of lines in the file
# with redundant whitespace.
#
# Could have option also to flag files that have many consequtive blank lines
#   the corresponding regexp would be? "^[ 	]*${2,}"
# Note paths with : in names will not be processed correctly

. fslver

Usage() {
	ProgName=`basename "$0"`
	echo "find Redundant whiteSpace.
Usage: $ProgName [-c] [[-r] [-f] paths(s) ...]

If -c specified then the number of lines in each
file, with redundant whitespace is reported, in addition
to the file names. Note this will take longer.

If no path(s) specified then the currrent directory is assumed."
	exit
}

for arg
do
	case "$arg" in
	-c)
		count="yes" ;;
	-h|--help|-help)
		Usage ;;
	-v|--version)
		Version ;;
	*)
		argsToPassOn="$argsToPassOn $arg" ;;
	esac
done

set -f #I don't want filename globbing
. getfpf "$argsToPassOn"

find $findArgs -type f -size +0c -printf "$FPF\0" |
xargs -r0 file |
grep ":.* text" |
cut -f1 -d: -s |
tr '\n' '\0' |
#Note in the following grep expression there's a space and tab in []
#and the second [] contains a CR so it works for DOS files
if [ "$count" == "yes" ]; then
	xargs -r0 grep -Ec "[ 	]+[
]*$" |
	grep -vE "(:0$|^0$)" |
	sort -k2,2nr -t :
else
	xargs -r0 grep -El "[ 	]+[
]*$"
fi

