浏览代码

bash: Remove old upstream patches

Signed-off-by: Marcel Denia <naoir@gmx.net>
Marcel Denia 10 年前
父节点
当前提交
38862cb6db
共有 28 个文件被更改,包括 0 次插入1755 次删除
  1. 0
    65
      utils/bash/patches/101-upstream-bash42-001.patch
  2. 0
    50
      utils/bash/patches/102-upstream-bash42-002.patch
  3. 0
    231
      utils/bash/patches/103-upstream-bash42-003.patch
  4. 0
    40
      utils/bash/patches/104-upstream-bash42-004.patch
  5. 0
    114
      utils/bash/patches/105-upstream-bash42-005.patch
  6. 0
    37
      utils/bash/patches/106-upstream-bash42-006.patch
  7. 0
    39
      utils/bash/patches/107-upstream-bash42-007.patch
  8. 0
    65
      utils/bash/patches/108-upstream-bash42-008.patch
  9. 0
    65
      utils/bash/patches/109-upstream-bash42-009.patch
  10. 0
    56
      utils/bash/patches/110-upstream-bash42-010.patch
  11. 0
    41
      utils/bash/patches/111-upstream-bash42-011.patch
  12. 0
    145
      utils/bash/patches/112-upstream-bash42-012.patch
  13. 0
    43
      utils/bash/patches/113-upstream-bash42-013.patch
  14. 0
    38
      utils/bash/patches/114-upstream-bash42-014.patch
  15. 0
    71
      utils/bash/patches/115-upstream-bash42-015.patch
  16. 0
    37
      utils/bash/patches/116-upstream-bash42-016.patch
  17. 0
    42
      utils/bash/patches/117-upstream-bash42-017.patch
  18. 0
    57
      utils/bash/patches/118-upstream-bash42-018.patch
  19. 0
    42
      utils/bash/patches/119-upstream-bash42-019.patch
  20. 0
    47
      utils/bash/patches/120-upstream-bash42-020.patch
  21. 0
    48
      utils/bash/patches/121-upstream-bash42-021.patch
  22. 0
    46
      utils/bash/patches/122-upstream-bash42-022.patch
  23. 0
    53
      utils/bash/patches/123-upstream-bash42-023.patch
  24. 0
    40
      utils/bash/patches/124-upstream-bash42-024.patch
  25. 0
    111
      utils/bash/patches/125-upstream-bash42-025.patch
  26. 0
    48
      utils/bash/patches/126-upstream-bash42-026.patch
  27. 0
    38
      utils/bash/patches/127-upstream-bash42-027.patch
  28. 0
    46
      utils/bash/patches/128-upstream-bash42-028.patch

+ 0
- 65
utils/bash/patches/101-upstream-bash42-001.patch 查看文件

@@ -1,65 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-001
6
-
7
-Bug-Reported-by:	Juergen Daubert <jue@jue.li>
8
-Bug-Reference-ID:	<20110214175132.GA19813@jue.netz>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00125.html
10
-
11
-Bug-Description:
12
-
13
-When running in Posix mode, bash does not correctly expand the right-hand
14
-side of a double-quoted word expansion containing single quotes.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/subst.c
19
-+++ b/subst.c
20
-@@ -1379,10 +1379,12 @@ extract_dollar_brace_string (string, sin
21
-   slen = strlen (string + *sindex) + *sindex;
22
- 
23
-   /* The handling of dolbrace_state needs to agree with the code in parse.y:
24
--     parse_matched_pair() */
25
--  dolbrace_state = 0;
26
--  if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
27
--    dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
28
-+     parse_matched_pair().  The different initial value is to handle the
29
-+     case where this function is called to parse the word in
30
-+     ${param op word} (SX_WORD). */
31
-+  dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
32
-+  if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
33
-+    dolbrace_state = DOLBRACE_QUOTE;
34
- 
35
-   i = *sindex;
36
-   while (c = string[i])
37
-@@ -7176,7 +7178,7 @@ parameter_brace_expand (string, indexp, 
38
-     {
39
-       /* Extract the contents of the ${ ... } expansion
40
- 	 according to the Posix.2 rules. */
41
--      value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
42
-+      value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
43
-       if (string[sindex] == RBRACE)
44
- 	sindex++;
45
-       else
46
---- a/subst.h
47
-+++ b/subst.h
48
-@@ -56,6 +56,7 @@
49
- #define SX_NOLONGJMP	0x0040	/* don't longjmp on fatal error */
50
- #define SX_ARITHSUB	0x0080	/* extracting $(( ... )) (currently unused) */
51
- #define SX_POSIXEXP	0x0100	/* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
52
-+#define SX_WORD		0x0200	/* extracting word in ${param op word} */
53
- 
54
- /* Remove backslashes which are quoting backquotes from STRING.  Modifies
55
-    STRING, and returns a pointer to it. */
56
---- a/patchlevel.h
57
-+++ b/patchlevel.h
58
-@@ -25,6 +25,6 @@
59
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
60
-    looks for to find the patch level (for the sccs version string). */
61
- 
62
--#define PATCHLEVEL 0
63
-+#define PATCHLEVEL 1
64
- 
65
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 50
utils/bash/patches/102-upstream-bash42-002.patch 查看文件

@@ -1,50 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-002
6
-
7
-Bug-Reported-by:	Clark J. Wang <dearvoid@gmail.com>
8
-Bug-Reference-ID:	<AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
10
-
11
-Bug-Description:
12
-
13
-The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
14
-entire line.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/lib/readline/vi_mode.c
19
-+++ b/lib/readline/vi_mode.c
20
-@@ -1114,7 +1114,7 @@ rl_domove_read_callback (m)
21
-       rl_beg_of_line (1, c);
22
-       _rl_vi_last_motion = c;
23
-       RL_UNSETSTATE (RL_STATE_VIMOTION);
24
--      return (0);
25
-+      return (vidomove_dispatch (m));
26
-     }
27
- #if defined (READLINE_CALLBACKS)
28
-   /* XXX - these need to handle rl_universal_argument bindings */
29
---- a/lib/readline/callback.c
30
-+++ b/lib/readline/callback.c
31
-@@ -148,6 +148,9 @@ rl_callback_read_char ()
32
- 	  eof = _rl_vi_domove_callback (_rl_vimvcxt);
33
- 	  /* Should handle everything, including cleanup, numeric arguments,
34
- 	     and turning off RL_STATE_VIMOTION */
35
-+	  if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
36
-+	    _rl_internal_char_cleanup ();
37
-+
38
- 	  return;
39
- 	}
40
- #endif
41
---- a/patchlevel.h
42
-+++ b/patchlevel.h
43
-@@ -25,6 +25,6 @@
44
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
45
-    looks for to find the patch level (for the sccs version string). */
46
- 
47
--#define PATCHLEVEL 1
48
-+#define PATCHLEVEL 2
49
- 
50
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 231
utils/bash/patches/103-upstream-bash42-003.patch 查看文件

@@ -1,231 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-003
6
-
7
-Bug-Reported-by:	Clark J. Wang <dearvoid@gmail.com>
8
-Bug-Reference-ID:	<AANLkTikZ_rVV-frR8Fh0PzhXnMKnm5XsUR-F3qtPPs5G@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00136.html
10
-
11
-Bug-Description:
12
-
13
-When using the pattern replacement and pattern removal word expansions, bash
14
-miscalculates the possible match length in the presence of an unescaped left
15
-bracket without a closing right bracket, resulting in a failure to match
16
-the pattern.
17
-
18
-Patch (apply with `patch -p0'):
19
-
20
---- a/lib/glob/gmisc.c
21
-+++ b/lib/glob/gmisc.c
22
-@@ -77,8 +77,8 @@ wmatchlen (wpat, wmax)
23
-      wchar_t *wpat;
24
-      size_t wmax;
25
- {
26
--  wchar_t wc, *wbrack;
27
--  int matlen, t, in_cclass, in_collsym, in_equiv;
28
-+  wchar_t wc;
29
-+  int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
30
- 
31
-   if (*wpat == 0)
32
-     return (0);
33
-@@ -118,58 +118,80 @@ wmatchlen (wpat, wmax)
34
- 	  break;
35
- 	case L'[':
36
- 	  /* scan for ending `]', skipping over embedded [:...:] */
37
--	  wbrack = wpat;
38
-+	  bracklen = 1;
39
- 	  wc = *wpat++;
40
- 	  do
41
- 	    {
42
- 	      if (wc == 0)
43
- 		{
44
--	          matlen += wpat - wbrack - 1;	/* incremented below */
45
--	          break;
46
-+		  wpat--;			/* back up to NUL */
47
-+	          matlen += bracklen;
48
-+	          goto bad_bracket;
49
- 	        }
50
- 	      else if (wc == L'\\')
51
- 		{
52
--		  wc = *wpat++;
53
--		  if (*wpat == 0)
54
--		    break;
55
-+		  /* *wpat == backslash-escaped character */
56
-+		  bracklen++;
57
-+		  /* If the backslash or backslash-escape ends the string,
58
-+		     bail.  The ++wpat skips over the backslash escape */
59
-+		  if (*wpat == 0 || *++wpat == 0)
60
-+		    {
61
-+		      matlen += bracklen;
62
-+		      goto bad_bracket;
63
-+		    }
64
- 		}
65
- 	      else if (wc == L'[' && *wpat == L':')	/* character class */
66
- 		{
67
- 		  wpat++;
68
-+		  bracklen++;
69
- 		  in_cclass = 1;
70
- 		}
71
- 	      else if (in_cclass && wc == L':' && *wpat == L']')
72
- 		{
73
- 		  wpat++;
74
-+		  bracklen++;
75
- 		  in_cclass = 0;
76
- 		}
77
- 	      else if (wc == L'[' && *wpat == L'.')	/* collating symbol */
78
- 		{
79
- 		  wpat++;
80
-+		  bracklen++;
81
- 		  if (*wpat == L']')	/* right bracket can appear as collating symbol */
82
--		    wpat++;
83
-+		    {
84
-+		      wpat++;
85
-+		      bracklen++;
86
-+		    }
87
- 		  in_collsym = 1;
88
- 		}
89
- 	      else if (in_collsym && wc == L'.' && *wpat == L']')
90
- 		{
91
- 		  wpat++;
92
-+		  bracklen++;
93
- 		  in_collsym = 0;
94
- 		}
95
- 	      else if (wc == L'[' && *wpat == L'=')	/* equivalence class */
96
- 		{
97
- 		  wpat++;
98
-+		  bracklen++;
99
- 		  if (*wpat == L']')	/* right bracket can appear as equivalence class */
100
--		    wpat++;
101
-+		    {
102
-+		      wpat++;
103
-+		      bracklen++;
104
-+		    }
105
- 		  in_equiv = 1;
106
- 		}
107
- 	      else if (in_equiv && wc == L'=' && *wpat == L']')
108
- 		{
109
- 		  wpat++;
110
-+		  bracklen++;
111
- 		  in_equiv = 0;
112
- 		}
113
-+	      else
114
-+		bracklen++;
115
- 	    }
116
- 	  while ((wc = *wpat++) != L']');
117
- 	  matlen++;		/* bracket expression can only match one char */
118
-+bad_bracket:
119
- 	  break;
120
- 	}
121
-     }
122
-@@ -213,8 +235,8 @@ umatchlen (pat, max)
123
-      char *pat;
124
-      size_t max;
125
- {
126
--  char c, *brack;
127
--  int matlen, t, in_cclass, in_collsym, in_equiv;
128
-+  char c;
129
-+  int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
130
- 
131
-   if (*pat == 0)
132
-     return (0);
133
-@@ -254,58 +276,80 @@ umatchlen (pat, max)
134
- 	  break;
135
- 	case '[':
136
- 	  /* scan for ending `]', skipping over embedded [:...:] */
137
--	  brack = pat;
138
-+	  bracklen = 1;
139
- 	  c = *pat++;
140
- 	  do
141
- 	    {
142
- 	      if (c == 0)
143
- 		{
144
--	          matlen += pat - brack - 1;	/* incremented below */
145
--	          break;
146
-+		  pat--;			/* back up to NUL */
147
-+		  matlen += bracklen;
148
-+		  goto bad_bracket;
149
- 	        }
150
- 	      else if (c == '\\')
151
- 		{
152
--		  c = *pat++;
153
--		  if (*pat == 0)
154
--		    break;
155
-+		  /* *pat == backslash-escaped character */
156
-+		  bracklen++;
157
-+		  /* If the backslash or backslash-escape ends the string,
158
-+		     bail.  The ++pat skips over the backslash escape */
159
-+		  if (*pat == 0 || *++pat == 0)
160
-+		    {
161
-+		      matlen += bracklen;
162
-+		      goto bad_bracket;
163
-+		    }
164
- 		}
165
- 	      else if (c == '[' && *pat == ':')	/* character class */
166
- 		{
167
- 		  pat++;
168
-+		  bracklen++;
169
- 		  in_cclass = 1;
170
- 		}
171
- 	      else if (in_cclass && c == ':' && *pat == ']')
172
- 		{
173
- 		  pat++;
174
-+		  bracklen++;
175
- 		  in_cclass = 0;
176
- 		}
177
- 	      else if (c == '[' && *pat == '.')	/* collating symbol */
178
- 		{
179
- 		  pat++;
180
-+		  bracklen++;
181
- 		  if (*pat == ']')	/* right bracket can appear as collating symbol */
182
--		    pat++;
183
-+		    {
184
-+		      pat++;
185
-+		      bracklen++;
186
-+		    }
187
- 		  in_collsym = 1;
188
- 		}
189
- 	      else if (in_collsym && c == '.' && *pat == ']')
190
- 		{
191
- 		  pat++;
192
-+		  bracklen++;
193
- 		  in_collsym = 0;
194
- 		}
195
- 	      else if (c == '[' && *pat == '=')	/* equivalence class */
196
- 		{
197
- 		  pat++;
198
-+		  bracklen++;
199
- 		  if (*pat == ']')	/* right bracket can appear as equivalence class */
200
--		    pat++;
201
-+		    {
202
-+		      pat++;
203
-+		      bracklen++;
204
-+		    }
205
- 		  in_equiv = 1;
206
- 		}
207
- 	      else if (in_equiv && c == '=' && *pat == ']')
208
- 		{
209
- 		  pat++;
210
-+		  bracklen++;
211
- 		  in_equiv = 0;
212
- 		}
213
-+	      else
214
-+		bracklen++;
215
- 	    }
216
- 	  while ((c = *pat++) != ']');
217
- 	  matlen++;		/* bracket expression can only match one char */
218
-+bad_bracket:
219
- 	  break;
220
- 	}
221
-     }
222
---- a/patchlevel.h
223
-+++ b/patchlevel.h
224
-@@ -25,6 +25,6 @@
225
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
226
-    looks for to find the patch level (for the sccs version string). */
227
- 
228
--#define PATCHLEVEL 2
229
-+#define PATCHLEVEL 3
230
- 
231
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 40
utils/bash/patches/104-upstream-bash42-004.patch 查看文件

@@ -1,40 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-004
6
-
7
-Bug-Reported-by:	Mike Frysinger <vapier@gentoo.org>
8
-Bug-Reference-ID:	<201102182106.17834.vapier@gentoo.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
10
-
11
-Bug-Description:
12
-
13
-When used in contexts where word splitting and quote removal were not
14
-performed, such as pattern removal or pattern substitution, empty strings
15
-(either literal or resulting from quoted variables that were unset or
16
-null) were not matched correctly, resulting in failure.
17
-
18
-Patch (apply with `patch -p0'):
19
-
20
---- a/subst.c
21
-+++ b/subst.c
22
-@@ -3373,7 +3373,7 @@ expand_string_for_rhs (string, quoted, d
23
-   if (string == 0 || *string == '\0')
24
-     return (WORD_LIST *)NULL;
25
- 
26
--  td.flags = 0;
27
-+  td.flags = W_NOSPLIT2;		/* no splitting, remove "" and '' */
28
-   td.word = string;
29
-   tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
30
-   return (tresult);
31
---- a/patchlevel.h
32
-+++ b/patchlevel.h
33
-@@ -25,6 +25,6 @@
34
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
35
-    looks for to find the patch level (for the sccs version string). */
36
- 
37
--#define PATCHLEVEL 3
38
-+#define PATCHLEVEL 4
39
- 
40
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 114
utils/bash/patches/105-upstream-bash42-005.patch 查看文件

@@ -1,114 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-005
6
-
7
-Bug-Reported-by:	Dennis Williamson <dennistwilliamson@gmail.com>
8
-Bug-Reference-ID:	<AANLkTikDbEV5rnbPc0zOfmZfBcg0xGetzLLzK+KjRiNa@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
10
-
11
-Bug-Description:
12
-
13
-Systems that use tzset() to set the local timezone require the TZ variable
14
-to be in the environment.  Bash must make sure the environment has been
15
-modified with any updated value for TZ before calling tzset().  This
16
-affects prompt string expansions and the `%T' printf conversion specification
17
-on systems that do not allow bash to supply a replacement for getenv(3).
18
-
19
-Patch (apply with `patch -p0'):
20
-
21
---- a/variables.h
22
-+++ b/variables.h
23
-@@ -313,6 +313,7 @@ extern void set_func_auto_export __P((co
24
- 
25
- extern void sort_variables __P((SHELL_VAR **));
26
- 
27
-+extern int chkexport __P((char *));
28
- extern void maybe_make_export_env __P((void));
29
- extern void update_export_env_inplace __P((char *, int, char *));
30
- extern void put_command_name_into_env __P((char *));
31
---- a/variables.c
32
-+++ b/variables.c
33
-@@ -3653,6 +3653,22 @@ n_shell_variables ()
34
-   return n;
35
- }
36
- 
37
-+int
38
-+chkexport (name)
39
-+     char *name;
40
-+{
41
-+  SHELL_VAR *v;
42
-+
43
-+  v = find_variable (name);
44
-+  if (exported_p (v))
45
-+    {
46
-+      array_needs_making = 1;
47
-+      maybe_make_export_env ();
48
-+      return 1;
49
-+    }
50
-+  return 0;
51
-+}
52
-+
53
- void
54
- maybe_make_export_env ()
55
- {
56
-@@ -4214,7 +4230,7 @@ static struct name_and_function special_
57
-   { "TEXTDOMAIN", sv_locale },
58
-   { "TEXTDOMAINDIR", sv_locale },
59
- 
60
--#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
61
-+#if defined (HAVE_TZSET)
62
-   { "TZ", sv_tz },
63
- #endif
64
- 
65
-@@ -4558,12 +4574,13 @@ sv_histtimefmt (name)
66
- }
67
- #endif /* HISTORY */
68
- 
69
--#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
70
-+#if defined (HAVE_TZSET)
71
- void
72
- sv_tz (name)
73
-      char *name;
74
- {
75
--  tzset ();
76
-+  if (chkexport (name))
77
-+    tzset ();
78
- }
79
- #endif
80
- 
81
---- a/parse.y
82
-+++ b/parse.y
83
-@@ -5135,6 +5135,9 @@ decode_prompt_string (string)
84
- 	    case 'A':
85
- 	      /* Make the current time/date into a string. */
86
- 	      (void) time (&the_time);
87
-+#if defined (HAVE_TZSET)
88
-+	      sv_tz ("TZ");		/* XXX -- just make sure */
89
-+#endif
90
- 	      tm = localtime (&the_time);
91
- 
92
- 	      if (c == 'd')
93
---- a/builtins/printf.def
94
-+++ b/builtins/printf.def
95
-@@ -465,6 +465,9 @@ printf_builtin (list)
96
- 		  secs = shell_start_time;	/* roughly $SECONDS */
97
- 		else
98
- 		  secs = arg;
99
-+#if defined (HAVE_TZSET)
100
-+		sv_tz ("TZ");		/* XXX -- just make sure */
101
-+#endif
102
- 		tm = localtime (&secs);
103
- 		n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
104
- 		free (timefmt);
105
---- a/patchlevel.h
106
-+++ b/patchlevel.h
107
-@@ -25,6 +25,6 @@
108
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
109
-    looks for to find the patch level (for the sccs version string). */
110
- 
111
--#define PATCHLEVEL 4
112
-+#define PATCHLEVEL 5
113
- 
114
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 37
utils/bash/patches/106-upstream-bash42-006.patch 查看文件

@@ -1,37 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-006
6
-
7
-Bug-Reported-by:	Allan McRae <allan@archlinux.org>
8
-Bug-Reference-ID:	<4D6D0D0B.50908@archlinux.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00001.html
10
-
11
-Bug-Description:
12
-
13
-A problem with bash42-005 caused it to dump core if TZ was unset.
14
-
15
-Patch (apply with `patch -p0'):
16
-
17
---- a/variables.c
18
-+++ b/variables.c
19
-@@ -3660,7 +3660,7 @@ chkexport (name)
20
-   SHELL_VAR *v;
21
- 
22
-   v = find_variable (name);
23
--  if (exported_p (v))
24
-+  if (v && exported_p (v))
25
-     {
26
-       array_needs_making = 1;
27
-       maybe_make_export_env ();
28
---- a/patchlevel.h
29
-+++ b/patchlevel.h
30
-@@ -25,6 +25,6 @@
31
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
32
-    looks for to find the patch level (for the sccs version string). */
33
- 
34
--#define PATCHLEVEL 5
35
-+#define PATCHLEVEL 6
36
- 
37
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 39
utils/bash/patches/107-upstream-bash42-007.patch 查看文件

@@ -1,39 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-007
6
-
7
-Bug-Reported-by:	Matthias Klose <doko@debian.org>
8
-Bug-Reference-ID:	<4D6FD2AC.1010500@debian.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00015.html
10
-
11
-Bug-Description:
12
-
13
-When used in contexts where word splitting and quote removal were not
14
-performed, such as case statement word expansion, empty strings
15
-(either literal or resulting from quoted variables that were unset or
16
-null) were not expanded correctly, resulting in failure.
17
-
18
-Patch (apply with `patch -p0'):
19
-
20
---- a/subst.c
21
-+++ b/subst.c
22
-@@ -4609,6 +4609,7 @@ expand_word_unsplit (word, quoted)
23
-   if (ifs_firstc == 0)
24
- #endif
25
-     word->flags |= W_NOSPLIT;
26
-+  word->flags |= W_NOSPLIT2;
27
-   result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
28
-   expand_no_split_dollar_star = 0;
29
- 
30
---- a/patchlevel.h
31
-+++ b/patchlevel.h
32
-@@ -25,6 +25,6 @@
33
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
34
-    looks for to find the patch level (for the sccs version string). */
35
- 
36
--#define PATCHLEVEL 6
37
-+#define PATCHLEVEL 7
38
- 
39
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 65
utils/bash/patches/108-upstream-bash42-008.patch 查看文件

@@ -1,65 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-008
6
-
7
-Bug-Reported-by:	Doug McMahon <mc2man@optonline.net>
8
-Bug-Reference-ID:	<1299441211.2535.11.camel@doug-XPS-M1330>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00050.html
10
-
11
-Bug-Description:
12
-
13
-Bash-4.2 does not attempt to save the shell history on receipt of a
14
-terminating signal that is handled synchronously.  Unfortunately, the
15
-`close' button on most X11 terminal emulators sends SIGHUP, which
16
-kills the shell.
17
-
18
-This is a very small patch to save the history in the case that an
19
-interactive shell receives a SIGHUP or SIGTERM while in readline and
20
-reading a command.
21
-
22
-The next version of bash will do this differently.
23
-
24
-Patch (apply with `patch -p0'):
25
-
26
---- a/sig.c
27
-+++ b/sig.c
28
-@@ -46,6 +46,7 @@
29
- 
30
- #if defined (READLINE)
31
- #  include "bashline.h"
32
-+#  include <readline/readline.h>
33
- #endif
34
- 
35
- #if defined (HISTORY)
36
-@@ -62,6 +63,7 @@ extern int parse_and_execute_level, shel
37
- #if defined (HISTORY)
38
- extern int history_lines_this_session;
39
- #endif
40
-+extern int no_line_editing;
41
- 
42
- extern void initialize_siglist ();
43
- 
44
-@@ -505,7 +507,10 @@ termsig_sighandler (sig)
45
-     {
46
- #if defined (HISTORY)
47
-       /* XXX - will inhibit history file being written */
48
--      history_lines_this_session = 0;
49
-+#  if defined (READLINE)
50
-+      if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
51
-+#  endif
52
-+        history_lines_this_session = 0;
53
- #endif
54
-       terminate_immediately = 0;
55
-       termsig_handler (sig);
56
---- a/patchlevel.h
57
-+++ b/patchlevel.h
58
-@@ -25,6 +25,6 @@
59
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
60
-    looks for to find the patch level (for the sccs version string). */
61
- 
62
--#define PATCHLEVEL 7
63
-+#define PATCHLEVEL 8
64
- 
65
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 65
utils/bash/patches/109-upstream-bash42-009.patch 查看文件

@@ -1,65 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-009
6
-
7
-Bug-Reported-by:	<piuma@piumalab.org>
8
-Bug-Reference-ID:	<4DAAC0DB.7060606@piumalab.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00075.html
10
-
11
-Bug-Description:
12
-
13
-Under certain circumstances, running `fc -l' two times in succession with a
14
-relative history offset at the end of the history will result in an incorrect
15
-calculation of the last history entry and a seg fault.
16
-
17
-Patch (apply with `patch -p0'):
18
-
19
---- a/builtins/fc.def
20
-+++ b/builtins/fc.def
21
-@@ -304,7 +304,7 @@ fc_builtin (list)
22
-   last_hist = i - rh - hist_last_line_added;
23
- 
24
-   /* XXX */
25
--  if (saved_command_line_count > 0 && i == last_hist && hlist[last_hist] == 0)
26
-+  if (i == last_hist && hlist[last_hist] == 0)
27
-     while (last_hist >= 0 && hlist[last_hist] == 0)
28
-       last_hist--;
29
-   if (last_hist < 0)
30
-@@ -475,7 +475,7 @@ fc_gethnum (command, hlist)
31
-      HIST_ENTRY **hlist;
32
- {
33
-   int sign, n, clen, rh;
34
--  register int i, j;
35
-+  register int i, j, last_hist;
36
-   register char *s;
37
- 
38
-   sign = 1;
39
-@@ -495,7 +495,15 @@ fc_gethnum (command, hlist)
40
-      has been enabled (interactive or not) should use it in the last_hist
41
-      calculation as if it were on. */
42
-   rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
43
--  i -= rh + hist_last_line_added;
44
-+  last_hist = i - rh - hist_last_line_added;
45
-+
46
-+  if (i == last_hist && hlist[last_hist] == 0)
47
-+    while (last_hist >= 0 && hlist[last_hist] == 0)
48
-+      last_hist--;
49
-+  if (last_hist < 0)
50
-+    return (-1);
51
-+
52
-+  i = last_hist;
53
- 
54
-   /* No specification defaults to most recent command. */
55
-   if (command == NULL)
56
---- a/patchlevel.h
57
-+++ b/patchlevel.h
58
-@@ -25,6 +25,6 @@
59
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
60
-    looks for to find the patch level (for the sccs version string). */
61
- 
62
--#define PATCHLEVEL 8
63
-+#define PATCHLEVEL 9
64
- 
65
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 56
utils/bash/patches/110-upstream-bash42-010.patch 查看文件

@@ -1,56 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-010
6
-
7
-Bug-Reported-by:	Mike Frysinger <vapier@gentoo.org>
8
-Bug-Reference-ID:	<201104122356.20160.vapier@gentoo.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00058.html
10
-
11
-Bug-Description:
12
-
13
-Bash did not correctly print/reproduce here documents attached to commands
14
-inside compound commands such as arithmetic for loops and user-specified
15
-subshells.  This affected the execution of such commands inside a shell
16
-function when the function definition is saved and later restored using
17
-`.' or `eval'.
18
-
19
-Patch (apply with `patch -p0'):
20
-
21
---- a/print_cmd.c
22
-+++ b/print_cmd.c
23
-@@ -315,6 +315,7 @@ make_command_string_internal (command)
24
- 	  cprintf ("( ");
25
- 	  skip_this_indent++;
26
- 	  make_command_string_internal (command->value.Subshell->command);
27
-+	  PRINT_DEFERRED_HEREDOCS ("");
28
- 	  cprintf (" )");
29
- 	  break;
30
- 
31
-@@ -592,6 +593,7 @@ print_arith_for_command (arith_for_comma
32
-   newline ("do\n");
33
-   indentation += indentation_amount;
34
-   make_command_string_internal (arith_for_command->action);
35
-+  PRINT_DEFERRED_HEREDOCS ("");
36
-   semicolon ();
37
-   indentation -= indentation_amount;
38
-   newline ("done");
39
-@@ -653,6 +655,7 @@ print_group_command (group_command)
40
-     }
41
- 
42
-   make_command_string_internal (group_command->command);
43
-+  PRINT_DEFERRED_HEREDOCS ("");
44
- 
45
-   if (inside_function_def)
46
-     {
47
---- a/patchlevel.h
48
-+++ b/patchlevel.h
49
-@@ -25,6 +25,6 @@
50
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
51
-    looks for to find the patch level (for the sccs version string). */
52
- 
53
--#define PATCHLEVEL 9
54
-+#define PATCHLEVEL 10
55
- 
56
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 41
utils/bash/patches/111-upstream-bash42-011.patch 查看文件

@@ -1,41 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-011
6
-
7
-Bug-Reported-by:	"David Parks" <davidparks21@yahoo.com>
8
-Bug-Reference-ID:	<014101cc82c6$46ac1540$d4043fc0$@com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00031.html
10
-
11
-Bug-Description:
12
-
13
-Overwriting a value in an associative array causes the memory allocated to
14
-store the key on the second and subsequent assignments to leak.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/assoc.c
19
-+++ b/assoc.c
20
-@@ -77,6 +77,11 @@ assoc_insert (hash, key, value)
21
-   b = hash_search (key, hash, HASH_CREATE);
22
-   if (b == 0)
23
-     return -1;
24
-+  /* If we are overwriting an existing element's value, we're not going to
25
-+     use the key.  Nothing in the array assignment code path frees the key
26
-+     string, so we can free it here to avoid a memory leak. */
27
-+  if (b->key != key)
28
-+    free (key);
29
-   FREE (b->data);
30
-   b->data = value ? savestring (value) : (char *)0;
31
-   return (0);
32
---- a/patchlevel.h
33
-+++ b/patchlevel.h
34
-@@ -25,6 +25,6 @@
35
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
36
-    looks for to find the patch level (for the sccs version string). */
37
- 
38
--#define PATCHLEVEL 10
39
-+#define PATCHLEVEL 11
40
- 
41
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 145
utils/bash/patches/112-upstream-bash42-012.patch 查看文件

@@ -1,145 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-012
6
-
7
-Bug-Reported-by:	Rui Santos <rsantos@grupopie.com>
8
-Bug-Reference-ID:	<4E04C6D0.2020507@grupopie.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00079.html
10
-
11
-Bug-Description:
12
-
13
-When calling the parser to recursively parse a command substitution within
14
-an arithmetic expansion, the shell overwrote the saved shell input line and
15
-associated state, resulting in a garbled command.
16
-
17
-Patch (apply with `patch -p0'):
18
-
19
---- a/parse.y
20
-+++ b/parse.y
21
-@@ -3842,6 +3842,7 @@ xparse_dolparen (base, string, indp, fla
22
-      int flags;
23
- {
24
-   sh_parser_state_t ps;
25
-+  sh_input_line_state_t ls;
26
-   int orig_ind, nc, sflags;
27
-   char *ret, *s, *ep, *ostring;
28
- 
29
-@@ -3849,10 +3850,12 @@ xparse_dolparen (base, string, indp, fla
30
-   orig_ind = *indp;
31
-   ostring = string;
32
- 
33
-+/*itrace("xparse_dolparen: size = %d shell_input_line = `%s'", shell_input_line_size, shell_input_line);*/
34
-   sflags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE;
35
-   if (flags & SX_NOLONGJMP)
36
-     sflags |= SEVAL_NOLONGJMP;
37
-   save_parser_state (&ps);
38
-+  save_input_line_state (&ls);
39
- 
40
-   /*(*/
41
-   parser_state |= PST_CMDSUBST|PST_EOFTOKEN;	/* allow instant ')' */ /*(*/
42
-@@ -3861,6 +3864,8 @@ xparse_dolparen (base, string, indp, fla
43
- 
44
-   restore_parser_state (&ps);
45
-   reset_parser ();
46
-+  /* reset_parser clears shell_input_line and associated variables */
47
-+  restore_input_line_state (&ls);
48
-   if (interactive)
49
-     token_to_read = 0;
50
- 
51
-@@ -5908,6 +5913,12 @@ save_parser_state (ps)
52
-   ps->expand_aliases = expand_aliases;
53
-   ps->echo_input_at_read = echo_input_at_read;
54
- 
55
-+  ps->token = token;
56
-+  ps->token_buffer_size = token_buffer_size;
57
-+  /* Force reallocation on next call to read_token_word */
58
-+  token = 0;
59
-+  token_buffer_size = 0;
60
-+
61
-   return (ps);
62
- }
63
- 
64
-@@ -5949,6 +5960,42 @@ restore_parser_state (ps)
65
- 
66
-   expand_aliases = ps->expand_aliases;
67
-   echo_input_at_read = ps->echo_input_at_read;
68
-+
69
-+  FREE (token);
70
-+  token = ps->token;
71
-+  token_buffer_size = ps->token_buffer_size;
72
-+}
73
-+
74
-+sh_input_line_state_t *
75
-+save_input_line_state (ls)
76
-+     sh_input_line_state_t *ls;
77
-+{
78
-+  if (ls == 0)
79
-+    ls = (sh_input_line_state_t *)xmalloc (sizeof (sh_input_line_state_t));
80
-+  if (ls == 0)
81
-+    return ((sh_input_line_state_t *)NULL);
82
-+
83
-+  ls->input_line = shell_input_line;
84
-+  ls->input_line_size = shell_input_line_size;
85
-+  ls->input_line_len = shell_input_line_len;
86
-+  ls->input_line_index = shell_input_line_index;
87
-+
88
-+  /* force reallocation */
89
-+  shell_input_line = 0;
90
-+  shell_input_line_size = shell_input_line_len = shell_input_line_index = 0;
91
-+}
92
-+
93
-+void
94
-+restore_input_line_state (ls)
95
-+     sh_input_line_state_t *ls;
96
-+{
97
-+  FREE (shell_input_line);
98
-+  shell_input_line = ls->input_line;
99
-+  shell_input_line_size = ls->input_line_size;
100
-+  shell_input_line_len = ls->input_line_len;
101
-+  shell_input_line_index = ls->input_line_index;
102
-+
103
-+  set_line_mbstate ();
104
- }
105
- 
106
- /************************************************
107
---- a/shell.h
108
-+++ b/shell.h
109
-@@ -136,6 +136,9 @@ typedef struct _sh_parser_state_t {
110
-   int parser_state;
111
-   int *token_state;
112
- 
113
-+  char *token;
114
-+  int token_buffer_size;
115
-+
116
-   /* input line state -- line number saved elsewhere */
117
-   int input_line_terminator;
118
-   int eof_encountered;
119
-@@ -166,6 +169,16 @@ typedef struct _sh_parser_state_t {
120
-   
121
- } sh_parser_state_t;
122
- 
123
-+typedef struct _sh_input_line_state_t {
124
-+  char *input_line;
125
-+  int input_line_index;
126
-+  int input_line_size;
127
-+  int input_line_len;
128
-+} sh_input_line_state_t;
129
-+
130
- /* Let's try declaring these here. */
131
- extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
132
- extern void restore_parser_state __P((sh_parser_state_t *));
133
-+
134
-+extern sh_input_line_state_t *save_input_line_state __P((sh_input_line_state_t *));
135
-+extern void restore_input_line_state __P((sh_input_line_state_t *));
136
---- a/patchlevel.h
137
-+++ b/patchlevel.h
138
-@@ -25,6 +25,6 @@
139
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
140
-    looks for to find the patch level (for the sccs version string). */
141
- 
142
--#define PATCHLEVEL 11
143
-+#define PATCHLEVEL 12
144
- 
145
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 43
utils/bash/patches/113-upstream-bash42-013.patch 查看文件

@@ -1,43 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-013
6
-
7
-Bug-Reported-by:	Marten Wikstrom <marten.wikstrom@keystream.se>
8
-Bug-Reference-ID:	<BANLkTikKECAh94ZEX68iQvxYuPeEM_xoSQ@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00049.html
10
-
11
-Bug-Description:
12
-
13
-An off-by-one error caused the shell to skip over CTLNUL characters,
14
-which are used internally to mark quoted null strings.  The effect
15
-was to have stray 0x7f characters left after expanding words like
16
-""""""""aa.
17
-
18
-Patch (apply with `patch -p0'):
19
-
20
---- a/subst.c
21
-+++ b/subst.c
22
-@@ -3706,7 +3706,10 @@ remove_quoted_nulls (string)
23
- 	    break;
24
- 	}
25
-       else if (string[i] == CTLNUL)
26
--	i++;
27
-+	{
28
-+	  i++;
29
-+	  continue;
30
-+	}
31
- 
32
-       prev_i = i;
33
-       ADVANCE_CHAR (string, slen, i);
34
---- a/patchlevel.h
35
-+++ b/patchlevel.h
36
-@@ -25,6 +25,6 @@
37
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
38
-    looks for to find the patch level (for the sccs version string). */
39
- 
40
--#define PATCHLEVEL 12
41
-+#define PATCHLEVEL 13
42
- 
43
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 38
utils/bash/patches/114-upstream-bash42-014.patch 查看文件

@@ -1,38 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-014
6
-
7
-Bug-Reported-by:	Shawn Bohrer <sbohrer@rgmadvisors.com>
8
-Bug-Reference-ID:	<20110504152320.6E8F28130527@dev1.rgmadvisors.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00018.html
10
-
11
-Bug-Description:
12
-
13
-The regular expression matching operator did not correctly match
14
-expressions with an embedded ^A.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/pathexp.c
19
-+++ b/pathexp.c
20
-@@ -196,7 +196,7 @@ quote_string_for_globbing (pathname, qfl
21
- 	{
22
- 	  if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
23
- 	    continue;
24
--	  if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
25
-+	  if (pathname[i+1] != CTLESC && (qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
26
- 	    continue;
27
- 	  temp[j++] = '\\';
28
- 	  i++;
29
---- a/patchlevel.h
30
-+++ b/patchlevel.h
31
-@@ -25,6 +25,6 @@
32
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
33
-    looks for to find the patch level (for the sccs version string). */
34
- 
35
--#define PATCHLEVEL 13
36
-+#define PATCHLEVEL 14
37
- 
38
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 71
utils/bash/patches/115-upstream-bash42-015.patch 查看文件

@@ -1,71 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-015
6
-
7
-Bug-Reported-by:	<dnade.ext@orange-ftgroup.com>
8
-Bug-Reference-ID:	<728_1312188080_4E3666B0_728_118711_1_3B5D3E0F95CC5C478D6500CDCE8B691F7AAAA4AA3D@PUEXCB2B.nanterre.francetelecom.fr>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00000.html
10
-
11
-Bug-Description:
12
-
13
-When in a context where arithmetic evaluation is not taking place, the
14
-evaluator should not check for division by 0.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/expr.c
19
-+++ b/expr.c
20
-@@ -476,19 +476,23 @@ expassign ()
21
- 
22
-       if (special)
23
- 	{
24
-+	  if ((op == DIV || op == MOD) && value == 0)
25
-+	    {
26
-+	      if (noeval == 0)
27
-+		evalerror (_("division by 0"));
28
-+	      else
29
-+	        value = 1;
30
-+	    }
31
-+
32
- 	  switch (op)
33
- 	    {
34
- 	    case MUL:
35
- 	      lvalue *= value;
36
- 	      break;
37
- 	    case DIV:
38
--	      if (value == 0)
39
--		evalerror (_("division by 0"));
40
- 	      lvalue /= value;
41
- 	      break;
42
- 	    case MOD:
43
--	      if (value == 0)
44
--		evalerror (_("division by 0"));
45
- 	      lvalue %= value;
46
- 	      break;
47
- 	    case PLUS:
48
-@@ -804,7 +808,12 @@ exp2 ()
49
-       val2 = exppower ();
50
- 
51
-       if (((op == DIV) || (op == MOD)) && (val2 == 0))
52
--	evalerror (_("division by 0"));
53
-+	{
54
-+	  if (noeval == 0)
55
-+	    evalerror (_("division by 0"));
56
-+	  else
57
-+	    val2 = 1;
58
-+	}
59
- 
60
-       if (op == MUL)
61
- 	val1 *= val2;
62
---- a/patchlevel.h
63
-+++ b/patchlevel.h
64
-@@ -25,6 +25,6 @@
65
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
66
-    looks for to find the patch level (for the sccs version string). */
67
- 
68
--#define PATCHLEVEL 14
69
-+#define PATCHLEVEL 15
70
- 
71
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 37
utils/bash/patches/116-upstream-bash42-016.patch 查看文件

@@ -1,37 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-016
6
-
7
-Bug-Reported-by:	Martin von Gagern <Martin.vGagern@gmx.net>
8
-Bug-Reference-ID:	<4E43AD9E.8060501@gmx.net>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00141.html
10
-
11
-Bug-Description:
12
-
13
-Bash should not check for mail while executing the `eval' builtin.
14
-
15
-Patch (apply with `patch -p0'):
16
-
17
---- a/parse.y
18
-+++ b/parse.y
19
-@@ -2499,7 +2499,7 @@ yylex ()
20
- 	 We do this only if it is time to do so. Notice that only here
21
- 	 is the mail alarm reset; nothing takes place in check_mail ()
22
- 	 except the checking of mail.  Please don't change this. */
23
--      if (prompt_is_ps1 && time_to_check_mail ())
24
-+      if (prompt_is_ps1 && parse_and_execute_level == 0 && time_to_check_mail ())
25
- 	{
26
- 	  check_mail ();
27
- 	  reset_mail_timer ();
28
---- a/patchlevel.h
29
-+++ b/patchlevel.h
30
-@@ -25,6 +25,6 @@
31
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
32
-    looks for to find the patch level (for the sccs version string). */
33
- 
34
--#define PATCHLEVEL 15
35
-+#define PATCHLEVEL 16
36
- 
37
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 42
utils/bash/patches/117-upstream-bash42-017.patch 查看文件

@@ -1,42 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-017
6
-
7
-Bug-Reported-by:	Curtis Doty <Curtis@GreenKey.net>
8
-Bug-Reference-ID:	<20110621035324.A4F70849F59@mx1.iParadigms.net>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00053.html
10
-
11
-Bug-Description:
12
-
13
-Using `read -a foo' where foo was an already-declared associative array
14
-caused the shell to die with a segmentation fault.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/builtins/read.def
19
-+++ b/builtins/read.def
20
-@@ -642,6 +642,12 @@ assign_vars:
21
- 	  xfree (input_string);
22
- 	  return EXECUTION_FAILURE;	/* readonly or noassign */
23
- 	}
24
-+      if (assoc_p (var))
25
-+	{
26
-+          builtin_error (_("%s: cannot convert associative to indexed array"), arrayname);
27
-+	  xfree (input_string);
28
-+	  return EXECUTION_FAILURE;	/* existing associative array */
29
-+	}
30
-       array_flush (array_cell (var));
31
- 
32
-       alist = list_string (input_string, ifs_chars, 0);
33
---- a/patchlevel.h
34
-+++ b/patchlevel.h
35
-@@ -25,6 +25,6 @@
36
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
37
-    looks for to find the patch level (for the sccs version string). */
38
- 
39
--#define PATCHLEVEL 16
40
-+#define PATCHLEVEL 17
41
- 
42
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 57
utils/bash/patches/118-upstream-bash42-018.patch 查看文件

@@ -1,57 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-018
6
-
7
-Bug-Reported-by:	Thomas Cort <tcort@minix3.org>
8
-Bug-Reference-ID:	<BANLkTik-ebGGw3k_1YtB=RyfV1bsqdxC_g@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
10
-
11
-Bug-Description:
12
-
13
-Bash fails to compile unless JOB_CONTROL is defined.
14
-
15
-Patch (apply with `patch -p0'):
16
-
17
---- a/execute_cmd.c
18
-+++ b/execute_cmd.c
19
-@@ -2196,6 +2196,7 @@ execute_pipeline (command, asynchronous,
20
-   if (ignore_return && cmd)
21
-     cmd->flags |= CMD_IGNORE_RETURN;
22
- 
23
-+#if defined (JOB_CONTROL)
24
-   lastpipe_flag = 0;
25
-   begin_unwind_frame ("lastpipe-exec");
26
-   lstdin = -1;
27
-@@ -2219,15 +2220,19 @@ execute_pipeline (command, asynchronous,
28
- 	  lastpipe_jid = stop_pipeline (0, (COMMAND *)NULL);	/* XXX */
29
- 	  add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
30
- 	}
31
--      cmd->flags |= CMD_LASTPIPE;
32
-+      if (cmd)
33
-+	cmd->flags |= CMD_LASTPIPE;
34
-     }	  
35
-   if (prev >= 0)
36
-     add_unwind_protect (close, prev);
37
-+#endif
38
- 
39
-   exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
40
- 
41
-+#if defined (JOB_CONTROL)
42
-   if (lstdin > 0)
43
-     restore_stdin (lstdin);
44
-+#endif
45
- 
46
-   if (prev >= 0)
47
-     close (prev);
48
---- a/patchlevel.h
49
-+++ b/patchlevel.h
50
-@@ -25,6 +25,6 @@
51
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
52
-    looks for to find the patch level (for the sccs version string). */
53
- 
54
--#define PATCHLEVEL 17
55
-+#define PATCHLEVEL 18
56
- 
57
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 42
utils/bash/patches/119-upstream-bash42-019.patch 查看文件

@@ -1,42 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-019
6
-
7
-Bug-Reported-by:	Diego Augusto Molina <diegoaugustomolina@gmail.com>
8
-Bug-Reference-ID:	<CAGOxLdHcSQu3ck9Qy3pRjj_NBU5tAPSAvNm-95-nLQ9Szwb6aA@mail.gmail.com>
9
-Bug-Reference-URL:	lists.gnu.org/archive/html/bug-bash/2011-09/msg00047.html
10
-
11
-Bug-Description:
12
-
13
-Using `declare' with attributes and an invalid array variable name or
14
-assignment reference resulted in a segmentation fault instead of a
15
-declaration error.
16
-
17
-Patch (apply with `patch -p0'):
18
-
19
---- a/builtins/declare.def
20
-+++ b/builtins/declare.def
21
-@@ -513,6 +513,11 @@ declare_internal (list, local_var)
22
- 	      *subscript_start = '[';	/* ] */
23
- 	      var = assign_array_element (name, value, 0);	/* XXX - not aflags */
24
- 	      *subscript_start = '\0';
25
-+	      if (var == 0)	/* some kind of assignment error */
26
-+		{
27
-+		  assign_error++;
28
-+		  NEXT_VARIABLE ();
29
-+		}
30
- 	    }
31
- 	  else if (simple_array_assign)
32
- 	    {
33
---- a/patchlevel.h
34
-+++ b/patchlevel.h
35
-@@ -25,6 +25,6 @@
36
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
37
-    looks for to find the patch level (for the sccs version string). */
38
- 
39
--#define PATCHLEVEL 18
40
-+#define PATCHLEVEL 19
41
- 
42
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 47
utils/bash/patches/120-upstream-bash42-020.patch 查看文件

@@ -1,47 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-020
6
-
7
-Bug-Reported-by:	Vincent Sheffer <vince.sheffer@apisphere.com>
8
-Bug-Reference-ID:	<F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com>
9
-Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html
10
-
11
-Bug-Description:
12
-
13
-The shared object helper script needs to be updated for Mac OS X 10.7
14
-(Lion, darwin11).
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/support/shobj-conf
19
-+++ b/support/shobj-conf
20
-@@ -157,7 +157,7 @@ freebsd[4-9]*|freebsdelf*|dragonfly*)
21
- 	;;
22
- 
23
- # Darwin/MacOS X
24
--darwin[89]*|darwin10*)
25
-+darwin[89]*|darwin1[012]*)
26
- 	SHOBJ_STATUS=supported
27
- 	SHLIB_STATUS=supported
28
- 	
29
-@@ -186,7 +186,7 @@ darwin*|macosx*)
30
- 	SHLIB_LIBSUFF='dylib'
31
- 
32
- 	case "${host_os}" in
33
--	darwin[789]*|darwin10*)	SHOBJ_LDFLAGS=''
34
-+	darwin[789]*|darwin1[012]*)	SHOBJ_LDFLAGS=''
35
- 			SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
36
- 			;;
37
- 	*)		SHOBJ_LDFLAGS='-dynamic'
38
---- a/patchlevel.h
39
-+++ b/patchlevel.h
40
-@@ -25,6 +25,6 @@
41
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
42
-    looks for to find the patch level (for the sccs version string). */
43
- 
44
--#define PATCHLEVEL 19
45
-+#define PATCHLEVEL 20
46
- 
47
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 48
utils/bash/patches/121-upstream-bash42-021.patch 查看文件

@@ -1,48 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-021
6
-
7
-Bug-Reported-by:	Dan Douglas <ormaaj@gmail.com>
8
-Bug-Reference-ID:	<4585554.nZWb4q7YoZ@smorgbox>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-12/msg00084.html
10
-
11
-Bug-Description:
12
-
13
-Using `read -N' to assign values to an array can result in NUL values being
14
-assigned to some array elements.  These values cause seg faults when referenced
15
-later.
16
-
17
-Patch (apply with `patch -p0'):
18
-
19
---- a/builtins/read.def
20
-+++ b/builtins/read.def
21
-@@ -737,7 +737,7 @@ assign_vars:
22
- 	      xfree (t1);
23
- 	    }
24
- 	  else
25
--	    var = bind_read_variable (varname, t);
26
-+	    var = bind_read_variable (varname, t ? t : "");
27
- 	}
28
-       else
29
- 	{
30
-@@ -798,7 +798,7 @@ assign_vars:
31
-       xfree (t);
32
-     }
33
-   else
34
--    var = bind_read_variable (list->word->word, input_string);
35
-+    var = bind_read_variable (list->word->word, input_string ? input_string : "");
36
- 
37
-   if (var)
38
-     {
39
---- a/patchlevel.h
40
-+++ b/patchlevel.h
41
-@@ -25,6 +25,6 @@
42
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
43
-    looks for to find the patch level (for the sccs version string). */
44
- 
45
--#define PATCHLEVEL 20
46
-+#define PATCHLEVEL 21
47
- 
48
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 46
utils/bash/patches/122-upstream-bash42-022.patch 查看文件

@@ -1,46 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-022
6
-
7
-Bug-Reported-by:	Gregory Margo <gmargo@pacbell.net>
8
-Bug-Reference-ID:	<20110727174529.GA3333@pacbell.net>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00102.html
10
-
11
-Bug-Description:
12
-
13
-The return value from lseek is `off_t'.  This can cause corrupted return
14
-values when the file offset is greater than 2**31 - 1.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/lib/sh/zread.c
19
-+++ b/lib/sh/zread.c
20
-@@ -160,14 +160,13 @@ void
21
- zsyncfd (fd)
22
-      int fd;
23
- {
24
--  off_t off;
25
--  int r;
26
-+  off_t off, r;
27
- 
28
-   off = lused - lind;
29
-   r = 0;
30
-   if (off > 0)
31
-     r = lseek (fd, -off, SEEK_CUR);
32
- 
33
--  if (r >= 0)
34
-+  if (r != -1)
35
-     lused = lind = 0;
36
- }
37
---- a/patchlevel.h
38
-+++ b/patchlevel.h
39
-@@ -25,6 +25,6 @@
40
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
41
-    looks for to find the patch level (for the sccs version string). */
42
- 
43
--#define PATCHLEVEL 21
44
-+#define PATCHLEVEL 22
45
- 
46
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 53
utils/bash/patches/123-upstream-bash42-023.patch 查看文件

@@ -1,53 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-023
6
-
7
-Bug-Reported-by:	Ewan Mellor <Ewan.Mellor@eu.citrix.com>
8
-Bug-Reference-ID:	<6005BE083BF501439A84DC3523BAC82DC4B964FD12@LONPMAILBOX01.citrite.net>
9
-Bug-Reference-URL:	
10
-
11
-Bug-Description:
12
-
13
-Under some circumstances, an exit trap triggered by a bad substitution
14
-error when errexit is enabled will cause the shell to exit with an
15
-incorrect exit status (0).
16
-
17
-Patch (apply with `patch -p0'):
18
-
19
---- a/subst.c
20
-+++ b/subst.c
21
-@@ -7274,6 +7274,7 @@ parameter_brace_expand (string, indexp, 
22
-     default:
23
-     case '\0':
24
-     bad_substitution:
25
-+      last_command_exit_value = EXECUTION_FAILURE;
26
-       report_error (_("%s: bad substitution"), string ? string : "??");
27
-       FREE (value);
28
-       FREE (temp);
29
---- a/error.c
30
-+++ b/error.c
31
-@@ -200,7 +200,11 @@ report_error (format, va_alist)
32
- 
33
-   va_end (args);
34
-   if (exit_immediately_on_error)
35
--    exit_shell (1);
36
-+    {
37
-+      if (last_command_exit_value == 0)
38
-+	last_command_exit_value = 1;
39
-+      exit_shell (last_command_exit_value);
40
-+    }
41
- }
42
- 
43
- void
44
---- a/patchlevel.h
45
-+++ b/patchlevel.h
46
-@@ -25,6 +25,6 @@
47
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
48
-    looks for to find the patch level (for the sccs version string). */
49
- 
50
--#define PATCHLEVEL 22
51
-+#define PATCHLEVEL 23
52
- 
53
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 40
utils/bash/patches/124-upstream-bash42-024.patch 查看文件

@@ -1,40 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-024
6
-
7
-Bug-Reported-by:	Jim Avera <james_avera@yahoo.com>
8
-Bug-Reference-ID:	<4F29E07A.80405@yahoo.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2012-02/msg00001.html
10
-
11
-Bug-Description:
12
-
13
-When `printf -v' is used to set an array element, the format string contains
14
-`%b', and the corresponding argument is the empty string, the buffer used
15
-to store the value to be assigned can be NULL, which results in NUL being
16
-assigned to the array element.  This causes a seg fault when it's used later.
17
-
18
-Patch (apply with `patch -p0'):
19
-
20
---- a/builtins/printf.def
21
-+++ b/builtins/printf.def
22
-@@ -255,6 +255,8 @@ printf_builtin (list)
23
- #endif
24
- 	    {
25
- 	      vflag = 1;
26
-+	      if (vbsize == 0)
27
-+		vbuf = xmalloc (vbsize = 16);
28
- 	      vblen = 0;
29
- 	      if (vbuf)
30
- 		vbuf[0] = 0;
31
---- a/patchlevel.h
32
-+++ b/patchlevel.h
33
-@@ -25,6 +25,6 @@
34
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
35
-    looks for to find the patch level (for the sccs version string). */
36
- 
37
--#define PATCHLEVEL 23
38
-+#define PATCHLEVEL 24
39
- 
40
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 111
utils/bash/patches/125-upstream-bash42-025.patch 查看文件

@@ -1,111 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-025
6
-
7
-Bug-Reported-by:	Bill Gradwohl <bill@ycc.com>
8
-Bug-Reference-ID:	<CAFyvKis-UfuOWr5THBRKh=vYHDoKEEgdW8hN1RviTuYQ00Lu5A@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/help-bash/2012-03/msg00078.html
10
-
11
-Bug-Description:
12
-
13
-When used in a shell function, `declare -g -a array=(compound assignment)'
14
-creates a local variable instead of a global one.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/command.h
19
-+++ b/command.h
20
-@@ -97,6 +97,7 @@ enum command_type { cm_for, cm_case, cm_
21
- #define W_HASCTLESC	0x200000	/* word contains literal CTLESC characters */
22
- #define W_ASSIGNASSOC	0x400000	/* word looks like associative array assignment */
23
- #define W_ARRAYIND	0x800000	/* word is an array index being expanded */
24
-+#define W_ASSNGLOBAL	0x1000000	/* word is a global assignment to declare (declare/typeset -g) */
25
- 
26
- /* Possible values for subshell_environment */
27
- #define SUBSHELL_ASYNC	0x01	/* subshell caused by `command &' */
28
---- a/execute_cmd.c
29
-+++ b/execute_cmd.c
30
-@@ -3584,13 +3584,13 @@ fix_assignment_words (words)
31
- {
32
-   WORD_LIST *w;
33
-   struct builtin *b;
34
--  int assoc;
35
-+  int assoc, global;
36
- 
37
-   if (words == 0)
38
-     return;
39
- 
40
-   b = 0;
41
--  assoc = 0;
42
-+  assoc = global = 0;
43
- 
44
-   for (w = words; w; w = w->next)
45
-     if (w->word->flags & W_ASSIGNMENT)
46
-@@ -3607,12 +3607,17 @@ fix_assignment_words (words)
47
- #if defined (ARRAY_VARS)
48
- 	if (assoc)
49
- 	  w->word->flags |= W_ASSIGNASSOC;
50
-+	if (global)
51
-+	  w->word->flags |= W_ASSNGLOBAL;
52
- #endif
53
-       }
54
- #if defined (ARRAY_VARS)
55
-     /* Note that we saw an associative array option to a builtin that takes
56
-        assignment statements.  This is a bit of a kludge. */
57
--    else if (w->word->word[0] == '-' && strchr (w->word->word, 'A'))
58
-+    else if (w->word->word[0] == '-' && (strchr (w->word->word+1, 'A') || strchr (w->word->word+1, 'g')))
59
-+#else
60
-+    else if (w->word->word[0] == '-' && strchr (w->word->word+1, 'g'))
61
-+#endif
62
-       {
63
- 	if (b == 0)
64
- 	  {
65
-@@ -3622,10 +3627,11 @@ fix_assignment_words (words)
66
- 	    else if (b && (b->flags & ASSIGNMENT_BUILTIN))
67
- 	      words->word->flags |= W_ASSNBLTIN;
68
- 	  }
69
--	if (words->word->flags & W_ASSNBLTIN)
70
-+	if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'A'))
71
- 	  assoc = 1;
72
-+	if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'g'))
73
-+	  global = 1;
74
-       }
75
--#endif
76
- }
77
- 
78
- /* Return 1 if the file found by searching $PATH for PATHNAME, defaulting
79
---- a/subst.c
80
-+++ b/subst.c
81
-@@ -366,6 +366,11 @@ dump_word_flags (flags)
82
-       f &= ~W_ASSNBLTIN;
83
-       fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : "");
84
-     }
85
-+  if (f & W_ASSNGLOBAL)
86
-+    {
87
-+      f &= ~W_ASSNGLOBAL;
88
-+      fprintf (stderr, "W_ASSNGLOBAL%s", f ? "|" : "");
89
-+    }
90
-   if (f & W_COMPASSIGN)
91
-     {
92
-       f &= ~W_COMPASSIGN;
93
-@@ -2803,7 +2808,7 @@ do_assignment_internal (word, expand)
94
-     }
95
-   else if (assign_list)
96
-     {
97
--      if (word->flags & W_ASSIGNARG)
98
-+      if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0)
99
- 	aflags |= ASS_MKLOCAL;
100
-       if (word->flags & W_ASSIGNASSOC)
101
- 	aflags |= ASS_MKASSOC;
102
---- a/patchlevel.h
103
-+++ b/patchlevel.h
104
-@@ -25,6 +25,6 @@
105
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
106
-    looks for to find the patch level (for the sccs version string). */
107
- 
108
--#define PATCHLEVEL 24
109
-+#define PATCHLEVEL 25
110
- 
111
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 48
utils/bash/patches/126-upstream-bash42-026.patch 查看文件

@@ -1,48 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-026
6
-
7
-Bug-Reported-by:	Greg Wooledge <wooledg@eeg.ccf.org>
8
-Bug-Reference-ID:	<20120425180443.GO22241@eeg.ccf.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00172.html
10
-
11
-Bug-Description:
12
-
13
-The `lastpipe' option does not behave correctly on machines where the
14
-open file limit is less than 256.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/execute_cmd.c
19
-+++ b/execute_cmd.c
20
-@@ -2209,7 +2209,7 @@ execute_pipeline (command, asynchronous,
21
- #endif
22
-                asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
23
-     {
24
--      lstdin = move_to_high_fd (0, 0, 255);
25
-+      lstdin = move_to_high_fd (0, 1, -1);
26
-       if (lstdin > 0)
27
- 	{
28
- 	  do_piping (prev, pipe_out);
29
-@@ -2255,7 +2255,9 @@ execute_pipeline (command, asynchronous,
30
-       unfreeze_jobs_list ();
31
-     }
32
- 
33
-+#if defined (JOB_CONTROL)
34
-   discard_unwind_frame ("lastpipe-exec");
35
-+#endif
36
- 
37
-   return (exec_result);
38
- }
39
---- a/patchlevel.h
40
-+++ b/patchlevel.h
41
-@@ -25,6 +25,6 @@
42
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
43
-    looks for to find the patch level (for the sccs version string). */
44
- 
45
--#define PATCHLEVEL 25
46
-+#define PATCHLEVEL 26
47
- 
48
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 38
utils/bash/patches/127-upstream-bash42-027.patch 查看文件

@@ -1,38 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-027
6
-
7
-Bug-Reported-by:	Mike Frysinger <vapier@gentoo.org>
8
-Bug-Reference-ID:	<201204211243.30163.vapier@gentoo.org>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00134.html
10
-
11
-Bug-Description:
12
-
13
-When the `extglob' shell option is enabled, pattern substitution does not
14
-work correctly in the presence of multibyte characters.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/subst.c
19
-+++ b/subst.c
20
-@@ -4166,7 +4166,7 @@ match_wpattern (wstring, indices, wstrle
21
-   simple = (wpat[0] != L'\\' && wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'[');
22
- #if defined (EXTENDED_GLOB)
23
-   if (extended_glob)
24
--    simple |= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
25
-+    simple &= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
26
- #endif
27
- 
28
-   /* If the pattern doesn't match anywhere in the string, go ahead and
29
---- a/patchlevel.h
30
-+++ b/patchlevel.h
31
-@@ -25,6 +25,6 @@
32
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
33
-    looks for to find the patch level (for the sccs version string). */
34
- 
35
--#define PATCHLEVEL 26
36
-+#define PATCHLEVEL 27
37
- 
38
- #endif /* _PATCHLEVEL_H_ */

+ 0
- 46
utils/bash/patches/128-upstream-bash42-028.patch 查看文件

@@ -1,46 +0,0 @@
1
-			     BASH PATCH REPORT
2
-			     =================
3
-
4
-Bash-Release:	4.2
5
-Patch-ID:	bash42-028
6
-
7
-Bug-Reported-by:	Mark Edgar <medgar123@gmail.com>
8
-Bug-Reference-ID:	<CABHMh_3d+ZgO_zaEtYXPwK4P7tC0ghZ4g=Ue_TRpsEMf5YDsqw@mail.gmail.com>
9
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00109.html
10
-
11
-Bug-Description:
12
-
13
-When using a word expansion for which the right hand side is evaluated,
14
-certain expansions of quoted null strings include spurious ^? characters.
15
-
16
-Patch (apply with `patch -p0'):
17
-
18
---- a/subst.c
19
-+++ b/subst.c
20
-@@ -5809,6 +5809,16 @@ parameter_brace_expand_rhs (name, value,
21
- 	 is the only expansion that creates more than one word. */
22
-       if (qdollaratp && ((hasdol && quoted) || l->next))
23
- 	*qdollaratp = 1;
24
-+      /* If we have a quoted null result (QUOTED_NULL(temp)) and the word is
25
-+	 a quoted null (l->next == 0 && QUOTED_NULL(l->word->word)), the
26
-+	 flags indicate it (l->word->flags & W_HASQUOTEDNULL), and the
27
-+	 expansion is quoted (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
28
-+	 (which is more paranoia than anything else), we need to return the
29
-+	 quoted null string and set the flags to indicate it. */
30
-+      if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL(temp) && QUOTED_NULL(l->word->word) && (l->word->flags & W_HASQUOTEDNULL))
31
-+	{
32
-+	  w->flags |= W_HASQUOTEDNULL;
33
-+	}
34
-       dispose_words (l);
35
-     }
36
-   else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && hasdol)
37
---- a/patchlevel.h
38
-+++ b/patchlevel.h
39
-@@ -25,6 +25,6 @@
40
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
41
-    looks for to find the patch level (for the sccs version string). */
42
- 
43
--#define PATCHLEVEL 27
44
-+#define PATCHLEVEL 28
45
- 
46
- #endif /* _PATCHLEVEL_H_ */