#!/bin/sh REPOS="$1" TXN="$2" SVNLOOK=/usr/bin/svnlook svn_cat() { $SVNLOOK cat "$REPOS" -t "$TXN" $1 } all_changed_files=`$SVNLOOK changed "$REPOS" -t "$TXN" | \ grep "^[AU]" | \ sed 's/^....//'` # notice that breaking all_changed_files into several lines by replacing spaces # with new lines only works as long as we don't have any files with spaces in # them -- which is the case for now, but if it ever changes we'd probably need # to use a shell array for all_changed_files or just rerun svnlook here again changed_sources=`echo $all_changed_files | \ sed 's/ /\n/g' | \ egrep "\.(cpp|h|py)$" | \ egrep -v "src/(tiff|regex|jpeg|stc/scintilla)"` rc=0 set -e for f in $changed_sources; do if svn_cat $f | fgrep -q ' '; then echo "Please remove TABs from $f before committing." >&2 rc=1 fi done for f in $all_changed_files; do if ! svn_cat $f | iconv -f utf8 -t WCHAR_T > /dev/null; then echo "File $f doesn't use UTF-8, please convert it before committing." >&2 rc=1 fi done exit $rc