projects
/
ircu2.10.12-pk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Avoid crashes when handling ET_EOF for IAuth stderr before stdout.
[ircu2.10.12-pk.git]
/
ircd-patch
diff --git
a/ircd-patch
b/ircd-patch
index 560b1d6056bda1e24093b58f11125ec386c4bcfa..9637b89aa72ad77ccfd98932f1f660673cdcee49 100755
(executable)
--- a/
ircd-patch
+++ b/
ircd-patch
@@
-17,7
+17,7
@@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
-# $Id: ircd-patch,v 1.
4 2002-04-09 22:40:56 vampir
e Exp $
+# $Id: ircd-patch,v 1.
5.2.1 2005-12-29 03:41:56 entrop
e Exp $
#
#
# Experimental centralized patch system for ircu
#
#
# Experimental centralized patch system for ircu
@@
-48,24
+48,25
@@
done
update_patchlist() {
list=""
for name in $PLIST ; do
update_patchlist() {
list=""
for name in $PLIST ; do
-
[ -f $MARKS/$name ]
&& list="$list.$name"
+
test -f $MARKS/$name
&& list="$list.$name"
done
echo "/* This file was automatically generated by ircd-patch */" > $PLIST_FILE
echo "#define PATCHLIST \"$list\"" >> $PLIST_FILE
echo "Updated $PLIST_FILE"
}
done
echo "/* This file was automatically generated by ircd-patch */" > $PLIST_FILE
echo "#define PATCHLIST \"$list\"" >> $PLIST_FILE
echo "Updated $PLIST_FILE"
}
-
[ ! -d $DIFFS ] &&
(echo "*** Missing $DIFFS, creating it" ; mkdir -p $DIFFS)
-
[ ! -d $MARKS ] &&
(echo "*** Missing $MARKS, creating it" ; mkdir -p $MARKS)
+
test -d $DIFFS ||
(echo "*** Missing $DIFFS, creating it" ; mkdir -p $DIFFS)
+
test -d $MARKS ||
(echo "*** Missing $MARKS, creating it" ; mkdir -p $MARKS)
dry_run() {
dry_run() {
- patch -p0 -N -t --dry-run $2 >/dev/null < $1
+ rejects=`patch -p0 -N -t --dry-run $2 < $1 | grep "hunk FAILED" | sed -e 's/.*to file / /;s/\.rej$//'`
+ test -z "$rejects"
}
patch_list() {
echo "Available patches (* marks applied patches):"
for name in $PLIST ; do
}
patch_list() {
echo "Available patches (* marks applied patches):"
for name in $PLIST ; do
-
[ -f $MARKS/$name ]
&& echo -n " * " || echo -n " "
+
test -f $MARKS/$name
&& echo -n " * " || echo -n " "
echo $name
done
echo "Done."
echo $name
done
echo "Done."
@@
-74,11
+75,11
@@
patch_list() {
patch_test() {
echo "Testing patches:"
list="$*"
patch_test() {
echo "Testing patches:"
list="$*"
-
[ -z "$list" ]
&& list=$PLIST
+
test "z$list" = "z"
&& list=$PLIST
for name in $list ; do
fname=$DIFFS/$name.diff
echo -ne " $name\t"
for name in $list ; do
fname=$DIFFS/$name.diff
echo -ne " $name\t"
- if
[ ! -f $MARKS/$name ]
; then
+ if
test ! -f $MARKS/$name
; then
if dry_run "$fname" ; then
echo -n " OK"
else
if dry_run "$fname" ; then
echo -n " OK"
else
@@
-102,22
+103,24
@@
patch_test() {
patch_add() {
name=$1
fname="$DIFFS/$name.diff"
patch_add() {
name=$1
fname="$DIFFS/$name.diff"
- if
[ ! -f $fname ]
; then
+ if
test ! -f $fname
; then
echo "Patch $name ($fname) does not exist"
retcode=3
return
fi
echo "Patch $name ($fname) does not exist"
retcode=3
return
fi
- if
[ $force -lt 2 -a -f $MARKS/$name ]
; then
+ if
test $force -lt 2 -a -f $MARKS/$name
; then
echo "Patch $name seems already applied"
retcode=4
return
fi
echo "Patch $name seems already applied"
retcode=4
return
fi
- if
[ $force -lt 1 ]
; then
+ if
test $force -lt 1
; then
echo -n "Testing $fname... "
if ! dry_run $fname ; then
echo "Failed (use -f to force)."
echo -n "Testing $fname... "
if ! dry_run $fname ; then
echo "Failed (use -f to force)."
+ echo "The following files failed patching:"
+ echo "$rejects"
retcode=2
return
fi
retcode=2
return
fi
@@
-137,22
+140,24
@@
patch_add() {
patch_del() {
name=$1
fname="$DIFFS/$name.diff"
patch_del() {
name=$1
fname="$DIFFS/$name.diff"
- if
[ ! -f $fname ]
; then
+ if
test ! -f $fname
; then
echo "Patch $name ($fname) does not exist"
retcode=3
return
fi
echo "Patch $name ($fname) does not exist"
retcode=3
return
fi
- if
[ $force -lt 2 -a ! -f $MARKS/$name ]
; then
+ if
test $force -lt 2 -a ! -f $MARKS/$name
; then
echo "Patch $name doesn't seem to be applied"
retcode=4
return
fi
echo "Patch $name doesn't seem to be applied"
retcode=4
return
fi
- if
[ $force -lt 1 ]
; then
+ if
test $force -lt 1
; then
echo -n "Testing $fname... "
if ! dry_run $fname -R ; then
echo "Failed (use -f to force)."
echo -n "Testing $fname... "
if ! dry_run $fname -R ; then
echo "Failed (use -f to force)."
+ echo "The following files failed patching:"
+ echo "$rejects"
retcode=2
return
fi
retcode=2
return
fi
@@
-183,8
+188,8
@@
do_help() {
echo "a patch is already applied."
}
echo "a patch is already applied."
}
-while
[ "$1" == "-f" ]
; do
- force=
$[$force + 1]
+while
test "$1" = "-f"
; do
+ force=
`expr $force + 1`
shift
done
shift
done