kumquat-buildroot/package/bash/bash30-003
Mike Frysinger 4ae49294a4 bash-3.0
2004-10-18 21:04:48 +00:00

125 lines
4.6 KiB
Plaintext

BASH PATCH REPORT
=================
Bash-Release: 3.0
Patch-ID: bash30-003
Bug-Reported-by: Egmont Koblinger <egmont@uhulinux.hu>
Bug-Reference-ID: <Pine.LNX.4.58L0.0407290044500.12603@sziami.cs.bme.hu>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00279.html
Bug-Description:
Bash no longer accepts the `trap signum' syntax when in POSIX mode. This
patch restores a measure of backwards compatibility.
Patch:
*** ../bash-3.0/builtins/trap.def Thu May 27 22:26:19 2004
--- builtins/trap.def Thu Aug 5 08:55:43 2004
***************
*** 24,28 ****
$BUILTIN trap
$FUNCTION trap_builtin
! $SHORT_DOC trap [-lp] [[arg] signal_spec ...]
The command ARG is to be read and executed when the shell receives
signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC
--- 24,28 ----
$BUILTIN trap
$FUNCTION trap_builtin
! $SHORT_DOC trap [-lp] [arg signal_spec ...]
The command ARG is to be read and executed when the shell receives
signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC
***************
*** 88,92 ****
WORD_LIST *list;
{
! int list_signal_names, display, result, opt;
list_signal_names = display = 0;
--- 88,92 ----
WORD_LIST *list;
{
! int list_signal_names, display, result, opt, first_signal;
list_signal_names = display = 0;
***************
*** 119,130 ****
{
char *first_arg;
! int operation, sig;
operation = SET;
first_arg = list->word->word;
/* When in posix mode, the historical behavior of looking for a
missing first argument is disabled. To revert to the original
signal handling disposition, use `-' as the first argument. */
! if (posixly_correct == 0 && first_arg && *first_arg &&
(*first_arg != '-' || first_arg[1]) &&
signal_object_p (first_arg, opt) && list->next == 0)
--- 119,135 ----
{
char *first_arg;
! int operation, sig, first_signal;
operation = SET;
first_arg = list->word->word;
+ first_signal = first_arg && *first_arg && all_digits (first_arg) && signal_object_p (first_arg, opt);
+
+ /* Backwards compatibility */
+ if (first_signal)
+ operation = REVERT;
/* When in posix mode, the historical behavior of looking for a
missing first argument is disabled. To revert to the original
signal handling disposition, use `-' as the first argument. */
! else if (posixly_correct == 0 && first_arg && *first_arg &&
(*first_arg != '-' || first_arg[1]) &&
signal_object_p (first_arg, opt) && list->next == 0)
*** ../bash-3.0/doc/bashref.texi Sat Jun 26 14:26:07 2004
--- doc/bashref.texi Fri Aug 27 12:33:46 2004
***************
*** 5954,5958 ****
The @code{trap} builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
! disposition if it is. If users want to reset the handler for a given
signal to the original disposition, they should use @samp{-} as the
first argument.
--- 5967,5972 ----
The @code{trap} builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
! disposition if it is, unless that argument consists solely of digits and
! is a valid signal number. If users want to reset the handler for a given
signal to the original disposition, they should use @samp{-} as the
first argument.
*** ../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 2
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 3
#endif /* _PATCHLEVEL_H_ */
*** ../bash-3.0/tests/errors.right Thu May 27 22:26:03 2004
--- tests/errors.right Sat Aug 7 22:35:10 2004
***************
*** 86,90 ****
./errors.tests: line 216: trap: NOSIG: invalid signal specification
./errors.tests: line 219: trap: -s: invalid option
! trap: usage: trap [-lp] [[arg] signal_spec ...]
./errors.tests: line 225: return: can only `return' from a function or sourced script
./errors.tests: line 229: break: 0: loop count out of range
--- 86,90 ----
./errors.tests: line 216: trap: NOSIG: invalid signal specification
./errors.tests: line 219: trap: -s: invalid option
! trap: usage: trap [-lp] [arg signal_spec ...]
./errors.tests: line 225: return: can only `return' from a function or sourced script
./errors.tests: line 229: break: 0: loop count out of range