1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
#! /bin/sh -e
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
-unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
# DP: upstream patch bash30-007
BASH PATCH REPORT
=================
Bash-Release: 3.0
Patch-ID: bash30-007
Bug-Reported-by: Oliver Kiddle <okiddle@yahoo.co.uk>
Tim Waugh <twaugh@redhat.com>
Bug-Reference-ID: <10454.1091313247@athlon>
<20040804100140.GX8175@redhat.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00313.html
http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00056.html
Bug-Description:
Two bugs:
How does it decide what characters are allowed. The following really
looks like a bug to me:
$ echo {<C4>..D}
That's accepted and produces output that seems to wrap round to ^A and
then goes up to D. Note that I'm using an ISO-8859-1 locale. If that
works at all, it should surely descend.
This short script:
var=baz
echo foo{bar,${var}.}
echo foo{bar,${var}}
gives the following output with bash-3.0:
./test: line 2: foo${var.}: bad substitution
foobar} foobaz
Patch:
*** ../bash-3.0/braces.c Thu Dec 4 11:09:52 2003
--- braces.c Wed Aug 4 14:34:33 2004
***************
*** 341,346 ****
if (lhs_t == ST_CHAR)
{
! lhs_v = lhs[0];
! rhs_v = rhs[0];
}
else
--- 341,346 ----
if (lhs_t == ST_CHAR)
{
! lhs_v = (unsigned char)lhs[0];
! rhs_v = (unsigned char)rhs[0];
}
else
***************
*** 403,406 ****
--- 403,407 ----
pass_next = 1;
i++;
+ level++;
continue;
}
*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001
--- patchlevel.h Thu Sep 2 15:04:32 2004
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 6
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 7
#endif /* _PATCHLEVEL_H_ */
|