--- /dev/null
+#!/bin/sh
+# Extract names of new files from a patch, print them out
+
+PATCHFILE=$1
+case "$PATCHFILE" in
+*.gz) CMD="gzip -d < $PATCHFILE";;
+*) CMD="cat $PATCHFILE";;
+esac
+
+TMP=$(mktemp /tmp/tbp-XXXXXX) || exit 1
+TMP2=$(mktemp /tmp/tbp2-XXXXXX) || exit 1
+
+eval $CMD | egrep '^\+\+\+ |^\-\-\- ' > $TMP
+
+cat $TMP | sed -e 's@[^/]*/\([^ ]*\).*@\1@' \
+ | grep -v '^dev\/null$' \
+ | sort \
+ | uniq \
+ > $TMP2
+
+rm -f $TMP
+grep < $TMP2 '^[+][+][+]' > /dev/null
+if [ "$?" = "0" ]
+then
+ echo "WARNING: $PATCHFILE appears to be -p0 form rather than -p1." 1>&2
+ echo " Use "\'"p0-2-p1 . . < $PATCHFILE"\'" to fix" 1>&2
+ awk '{ print $2 }' < $TMP2
+else
+ cat $TMP2
+fi | grep -v '~'
+
+rm -f $TMP2