| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/bin/sh
- REPOS="$1"
- TXN="$2"
- SVNLOOK=/usr/bin/svnlook
- svnl() {
- cmd=$1
- shift
- $SVNLOOK $cmd "$REPOS" -t "$TXN" $*
- }
- rc=0
- # exclude all third-party files from consideration, we don't want to do any
- # checks for them
- #
- # Also don't impose any constraints on commits to previous 2.x branches.
- all_changed_files=`svnl changed | \
- grep "^[AU]" | \
- sed 's/^....//' | \
- egrep -v "branches/WX_2_" | \
- egrep -v "wxWidgets/vendor" | \
- egrep -v "src/(expat|tiff|regex|jpeg|stc/scintilla|zlib)" | \
- egrep -v "src/msw/version.rc" | \
- egrep -v "_wrap.cpp" | \
- egrep -v "wxPython/.*/docs/.*\.html$"`
- # analyze the changed files to find all non-binary and all source files
- for f in $all_changed_files; do
- mimetype=`svnl proplist -v $f |
- fgrep "svn:mime-type" |
- sed 's/^ svn:mime-type : //'`
- case $mimetype in
- ''|text/*)
- ;;
- *)
- continue
- ;;
- esac
- changed_text_files="$changed_text_files $f"
- case $f in
- *.cpp|*.h|*.py)
- changed_sources="$changed_sources $f"
- ;;
- esac
- done
- for f in $changed_sources; do
- if svnl cat $f | fgrep -q ' '; then
- echo "Please remove TABs from $f before committing." >&2
- rc=1
- fi
- case $f in
- */wx/chartype.h)
- # This file defines _T() for compatibility so don't check it.
- ;;
- */docs/doxygen/overviews/changes_since28.h)
- # And this one describes changes from _T() to wxT().
- ;;
- *)
- if svnl cat $f | fgrep -qw '_T'; then
- echo "Please use wxT() instead of _T() in $f." >&2
- rc=1
- fi
- ;;
- esac
- done
- for f in $changed_text_files; do
- if ! svnl 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
- echo "(or set svn:mime-type property correctly if the file is binary)." >&2
- rc=1
- fi
- done
- exit $rc
|