File: bash30-003.dpatch

package info (click to toggle)
bash3 3.0-12
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,736 kB
  • ctags: 34
  • sloc: sh: 3,053; makefile: 408
file content (143 lines) | stat: -rw-r--r-- 5,122 bytes parent folder | download
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#! /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-003

			     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