#!/bin/sh
#
# checkCtrlM checks source code for explicit ctrl-M's
#   checks only files with the following extensions: .c, .cxx, .txx, .html, .htm
#   exits with 0, if all commited files pass the test.
#   exits with 1, if any one of the tests fails
#
# checkCtrlM can be run as a cvs commitinfo command.
# The following commitinfo line (without the #) will run the script
# ALL	$CVSROOT/CVSROOT/checkCtrlM
# 
failed=0
#
# skip the first arg, the directory
shift 1

for file in "$@"; do
  #
  # select files with extentions .txx, .cxx, .h, .html, .htm, .c, .txt, .cmake
  match=`echo $file | egrep \[\.\]txx\$\|\[\.\]cxx\$\|\[\.\]h\$\|\[\.\]html\$\|\[\.\]htm\$\|\[\.\]c\$\|\[\.\]txt\$\|\[\.\]cmake\$`
  if [ "x$match" != "x" ] ; then
    count=`grep -n 
\$ /dev/null $file|wc -c`
    results=`expr $count \| 0`
    if [ "$results" != "0" ]; then
      echo "=========================================================="
      if [ $results -lt 200 ]; then
        grep -n 
\$ /dev/null $file
      fi
      echo ""
      echo "$file has ^M's. They must be removed before you can commit."
      echo "The problem count was $results"
      echo "=========================================================="
      failed=1
    fi
  fi
done
exit $failed
