--- /dev/null
+#!/bin/sh
+
+[ -d patches ] && cd patches
+
+if [ ! -f verify-patches ]; then
+ echo "Please run this script from the root of the rsync dir"
+ echo "or from inside the patches subdir."
+ exit 1
+fi
+
+root=`cat ../CVS/Root`
+cvsdir=,cvsdir-for-patch-tests
+tmpdir=,tmpdir-for-patch-tests
+
+[ -d $tmpdir ] || mkdir $tmpdir
+cvs -d "$root" co -d $cvsdir rsync
+
+cd $tmpdir || exit 1
+
+if [ -z "$1" ]; then
+ set -- ../*.diff
+fi
+
+for xx in "${@}"; do
+ case "$xx" in
+ *gzip-rsyncable.diff) continue ;;
+ patches/*) xx=`echo $xx | sed 's:patches:..:'` ;;
+ */*.diff) ;;
+ *.diff) xx=../$xx ;;
+ *) continue ;;
+ esac
+ rsync -a --delete ../$cvsdir/ .
+ echo -e "\n----------- $xx ------------"
+ patch -p0 <$xx | tee ,patch.output
+ new=''
+ for nn in `sed -n 's/^patching file //p' ,patch.output`; do
+ [ -f ../$cvsdir/$nn ] || new="$new $nn"
+ done
+ while : ; do
+ echo -ne "\nFix rejections, Make proto.h, Edit diffs, Update, Next: [n] "
+ read ans
+ case "$ans" in
+ '') break ;;
+ [Ee]*)
+ [ ! -z "$new" ] && cvs add $new
+ new=''
+ rm -f *.rej *.orig
+ cvs diff -N | grep -v '^Index: ' |
+ grep -v '^=========' |
+ grep -v '^diff -' |
+ grep -v '^RCS file: ' |
+ grep -v '^retrieving revision ' >,new.patch
+ vim -d $xx ,new.patch
+ ;;
+ [Ff]*)
+ vim *.rej
+ ;;
+ [Mm]*)
+ cat *.c lib/compat.c | awk -f mkproto.awk >proto.h
+ echo -e "\nRegenerated proto.h"
+ ;;
+ [Uu]*)
+ if [ -f ,new.patch ]; then
+ cp -p ,new.patch $xx
+ echo -e "\nCopied ,new.patch to $xx"
+ else
+ echo -e "\n*** Edit the diffs first. ***"
+ fi
+ ;;
+ esac
+ done
+done