summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Franzmann2014-09-24 19:33:45 +0200
committerVlad Glagolev2015-01-30 10:26:05 +0300
commita9e56f27a2aea1f759d91cdeb35d8384017a7068 (patch)
tree0de261c32f34f65f7b64470fe4bdefe588e1153e
parentc43e08ef72711ae8470520782438e018fd006ba2 (diff)
shell-term-fm/bash: version 4.3 patchlevel 25
(cherry picked from commit fc999e5e88455dfdc844706804db20354b22df23)
-rwxr-xr-xshell-term-fm/bash/DETAILS6
-rw-r--r--shell-term-fm/bash/HISTORY6
-rwxr-xr-xshell-term-fm/bash/PRE_BUILD2
-rw-r--r--shell-term-fm/bash/patches/bash42-00178
-rw-r--r--shell-term-fm/bash/patches/bash42-00260
-rw-r--r--shell-term-fm/bash/patches/bash42-003318
-rw-r--r--shell-term-fm/bash/patches/bash42-00453
-rw-r--r--shell-term-fm/bash/patches/bash42-005131
-rw-r--r--shell-term-fm/bash/patches/bash42-00646
-rw-r--r--shell-term-fm/bash/patches/bash42-00746
-rw-r--r--shell-term-fm/bash/patches/bash42-00874
-rw-r--r--shell-term-fm/bash/patches/bash42-00982
-rw-r--r--shell-term-fm/bash/patches/bash42-01061
-rw-r--r--shell-term-fm/bash/patches/bash42-01146
-rw-r--r--shell-term-fm/bash/patches/bash42-012151
-rw-r--r--shell-term-fm/bash/patches/bash42-01352
-rw-r--r--shell-term-fm/bash/patches/bash42-01447
-rw-r--r--shell-term-fm/bash/patches/bash42-01581
-rw-r--r--shell-term-fm/bash/patches/bash42-01646
-rw-r--r--shell-term-fm/bash/patches/bash42-01747
-rw-r--r--shell-term-fm/bash/patches/bash42-01874
-rw-r--r--shell-term-fm/bash/patches/bash42-01947
-rw-r--r--shell-term-fm/bash/patches/bash42-02060
-rw-r--r--shell-term-fm/bash/patches/bash42-02161
-rw-r--r--shell-term-fm/bash/patches/bash42-02261
-rw-r--r--shell-term-fm/bash/patches/bash42-02362
-rw-r--r--shell-term-fm/bash/patches/bash42-02445
-rw-r--r--shell-term-fm/bash/patches/bash42-025143
-rw-r--r--shell-term-fm/bash/patches/bash42-02658
-rw-r--r--shell-term-fm/bash/patches/bash42-02747
-rw-r--r--shell-term-fm/bash/patches/bash42-02852
-rw-r--r--shell-term-fm/bash/patches/bash42-029524
-rw-r--r--shell-term-fm/bash/patches/bash42-030178
-rw-r--r--shell-term-fm/bash/patches/bash42-03180
-rw-r--r--shell-term-fm/bash/patches/bash42-03275
-rw-r--r--shell-term-fm/bash/patches/bash42-03357
-rw-r--r--shell-term-fm/bash/patches/bash42-03446
-rw-r--r--shell-term-fm/bash/patches/bash42-03566
-rw-r--r--shell-term-fm/bash/patches/bash42-03692
-rw-r--r--shell-term-fm/bash/patches/bash42-037112
-rw-r--r--shell-term-fm/bash/patches/bash42-03847
-rw-r--r--shell-term-fm/bash/patches/bash42-03958
-rw-r--r--shell-term-fm/bash/patches/bash42-04056
-rw-r--r--shell-term-fm/bash/patches/bash42-04147
-rw-r--r--shell-term-fm/bash/patches/bash42-04257
-rw-r--r--shell-term-fm/bash/patches/bash42-04365
-rw-r--r--shell-term-fm/bash/patches/bash42-04470
-rw-r--r--shell-term-fm/bash/patches/bash42-04553
-rw-r--r--shell-term-fm/bash/patches/bash43-00158
-rw-r--r--shell-term-fm/bash/patches/bash43-00262
-rw-r--r--shell-term-fm/bash/patches/bash43-00348
-rw-r--r--shell-term-fm/bash/patches/bash43-00447
-rw-r--r--shell-term-fm/bash/patches/bash43-00563
-rw-r--r--shell-term-fm/bash/patches/bash43-00648
-rw-r--r--shell-term-fm/bash/patches/bash43-00750
-rw-r--r--shell-term-fm/bash/patches/bash43-008188
-rw-r--r--shell-term-fm/bash/patches/bash43-00964
-rw-r--r--shell-term-fm/bash/patches/bash43-010157
-rw-r--r--shell-term-fm/bash/patches/bash43-01149
-rw-r--r--shell-term-fm/bash/patches/bash43-01243
-rw-r--r--shell-term-fm/bash/patches/bash43-01366
-rw-r--r--shell-term-fm/bash/patches/bash43-014102
-rw-r--r--shell-term-fm/bash/patches/bash43-01558
-rw-r--r--shell-term-fm/bash/patches/bash43-016132
-rw-r--r--shell-term-fm/bash/patches/bash43-01751
-rw-r--r--shell-term-fm/bash/patches/bash43-01844
-rw-r--r--shell-term-fm/bash/patches/bash43-01984
-rw-r--r--shell-term-fm/bash/patches/bash43-020110
-rw-r--r--shell-term-fm/bash/patches/bash43-02152
-rw-r--r--shell-term-fm/bash/patches/bash43-02256
-rw-r--r--shell-term-fm/bash/patches/bash43-023104
-rw-r--r--shell-term-fm/bash/patches/bash43-02454
-rw-r--r--shell-term-fm/bash/patches/bash43-025123
73 files changed, 1923 insertions, 3816 deletions
diff --git a/shell-term-fm/bash/DETAILS b/shell-term-fm/bash/DETAILS
index 0f74ff885e..f21474eaa8 100755
--- a/shell-term-fm/bash/DETAILS
+++ b/shell-term-fm/bash/DETAILS
@@ -1,7 +1,7 @@
SPELL=bash
- VERSION=4.2
- SECURITY_PATCH=2
- BASH_PATCHLEVEL=045
+ VERSION=4.3
+ SECURITY_PATCH=3
+ BASH_PATCHLEVEL=025
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.sig
SOURCE3=$SPELL-doc-3.2.tar.gz
diff --git a/shell-term-fm/bash/HISTORY b/shell-term-fm/bash/HISTORY
index 3d2a17de3a..c1b3acb9c1 100644
--- a/shell-term-fm/bash/HISTORY
+++ b/shell-term-fm/bash/HISTORY
@@ -1,3 +1,9 @@
+2014-09-24 Florian Franzmann <siflfran@hawo.stw.uni-erlangen.de>
+ * DETAILS, PRE_BUILD: version 4.3 patchlevel 25
+ * patches/bash-42-*: removed
+ * patches/bash-43-{001..025}: add patches for patchlevel 25
+ * DETAILS: SECURITY_PATCH++, this fixes CVE-2014-6271
+
2013-05-11 Florian Franzmann <siflfran@hawo.stw.uni-erlangen.de>
* DETAILS: SECURITY_PATCH++, introduce variable BASH_PATCHLEVEL
* PRE_BUILD: use variable BASH_PATCHLEVEL to determine which
diff --git a/shell-term-fm/bash/PRE_BUILD b/shell-term-fm/bash/PRE_BUILD
index 1e09873ef2..d3aa1ef942 100755
--- a/shell-term-fm/bash/PRE_BUILD
+++ b/shell-term-fm/bash/PRE_BUILD
@@ -4,7 +4,7 @@ unpack_file 3 &&
for i in $(seq -w 1 $BASH_PATCHLEVEL); do
message "${MESSAGE_COLOR}applying patch bash42-$i ...${DEFAULT_COLOR}" &&
- patch -p0 < $SPELL_DIRECTORY/patches/bash42-$i
+ patch -p0 < $SPELL_DIRECTORY/patches/bash43-$i
done &&
if [[ "$BASH_NI_LOGIN" == y ]]; then
diff --git a/shell-term-fm/bash/patches/bash42-001 b/shell-term-fm/bash/patches/bash42-001
deleted file mode 100644
index 547aaa06f3..0000000000
--- a/shell-term-fm/bash/patches/bash42-001
+++ /dev/null
@@ -1,78 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-001
-
-Bug-Reported-by: Juergen Daubert <jue@jue.li>
-Bug-Reference-ID: <20110214175132.GA19813@jue.netz>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00125.html
-
-Bug-Description:
-
-When running in Posix mode, bash does not correctly expand the right-hand
-side of a double-quoted word expansion containing single quotes.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
---- subst.c 2011-02-19 00:00:00.000000000 -0500
-***************
-*** 1380,1387 ****
-
- /* The handling of dolbrace_state needs to agree with the code in parse.y:
-! parse_matched_pair() */
-! dolbrace_state = 0;
-! if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
-! dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
-
- i = *sindex;
---- 1380,1389 ----
-
- /* The handling of dolbrace_state needs to agree with the code in parse.y:
-! parse_matched_pair(). The different initial value is to handle the
-! case where this function is called to parse the word in
-! ${param op word} (SX_WORD). */
-! dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
-! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
-! dolbrace_state = DOLBRACE_QUOTE;
-
- i = *sindex;
-***************
-*** 7177,7181 ****
- /* Extract the contents of the ${ ... } expansion
- according to the Posix.2 rules. */
-! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
- if (string[sindex] == RBRACE)
- sindex++;
---- 7181,7185 ----
- /* Extract the contents of the ${ ... } expansion
- according to the Posix.2 rules. */
-! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
- if (string[sindex] == RBRACE)
- sindex++;
-*** ../bash-4.2-patched/subst.h 2010-12-02 20:21:29.000000000 -0500
---- subst.h 2011-02-16 21:12:09.000000000 -0500
-***************
-*** 57,60 ****
---- 57,61 ----
- #define SX_ARITHSUB 0x0080 /* extracting $(( ... )) (currently unused) */
- #define SX_POSIXEXP 0x0100 /* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
-+ #define SX_WORD 0x0200 /* extracting word in ${param op word} */
-
- /* Remove backslashes which are quoting backquotes from STRING. Modifies
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 0
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 1
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-002 b/shell-term-fm/bash/patches/bash42-002
deleted file mode 100644
index 077c7e0f85..0000000000
--- a/shell-term-fm/bash/patches/bash42-002
+++ /dev/null
@@ -1,60 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-002
-
-Bug-Reported-by: Clark J. Wang <dearvoid@gmail.com>
-Bug-Reference-ID: <AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
-
-Bug-Description:
-
-The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
-entire line.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/readline/vi_mode.c 2010-11-20 19:51:39.000000000 -0500
---- lib/readline/vi_mode.c 2011-02-17 20:24:25.000000000 -0500
-***************
-*** 1115,1119 ****
- _rl_vi_last_motion = c;
- RL_UNSETSTATE (RL_STATE_VIMOTION);
-! return (0);
- }
- #if defined (READLINE_CALLBACKS)
---- 1115,1119 ----
- _rl_vi_last_motion = c;
- RL_UNSETSTATE (RL_STATE_VIMOTION);
-! return (vidomove_dispatch (m));
- }
- #if defined (READLINE_CALLBACKS)
-*** ../bash-4.2-patched/lib/readline/callback.c 2010-06-06 12:18:58.000000000 -0400
---- lib/readline/callback.c 2011-02-17 20:43:28.000000000 -0500
-***************
-*** 149,152 ****
---- 149,155 ----
- /* Should handle everything, including cleanup, numeric arguments,
- and turning off RL_STATE_VIMOTION */
-+ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
-+ _rl_internal_char_cleanup ();
-+
- return;
- }
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 1
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 2
-
- #endif /* _PATCHLEVEL_H_ */
-
diff --git a/shell-term-fm/bash/patches/bash42-003 b/shell-term-fm/bash/patches/bash42-003
deleted file mode 100644
index c488e96b2d..0000000000
--- a/shell-term-fm/bash/patches/bash42-003
+++ /dev/null
@@ -1,318 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-003
-
-Bug-Reported-by: Clark J. Wang <dearvoid@gmail.com>
-Bug-Reference-ID: <AANLkTikZ_rVV-frR8Fh0PzhXnMKnm5XsUR-F3qtPPs5G@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00136.html
-
-Bug-Description:
-
-When using the pattern replacement and pattern removal word expansions, bash
-miscalculates the possible match length in the presence of an unescaped left
-bracket without a closing right bracket, resulting in a failure to match
-the pattern.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/glob/gmisc.c 2011-02-05 16:11:17.000000000 -0500
---- lib/glob/gmisc.c 2011-02-18 23:53:42.000000000 -0500
-***************
-*** 78,83 ****
- size_t wmax;
- {
-! wchar_t wc, *wbrack;
-! int matlen, t, in_cclass, in_collsym, in_equiv;
-
- if (*wpat == 0)
---- 78,83 ----
- size_t wmax;
- {
-! wchar_t wc;
-! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
-
- if (*wpat == 0)
-***************
-*** 119,123 ****
- case L'[':
- /* scan for ending `]', skipping over embedded [:...:] */
-! wbrack = wpat;
- wc = *wpat++;
- do
---- 119,123 ----
- case L'[':
- /* scan for ending `]', skipping over embedded [:...:] */
-! bracklen = 1;
- wc = *wpat++;
- do
-***************
-*** 125,140 ****
- if (wc == 0)
- {
-! matlen += wpat - wbrack - 1; /* incremented below */
-! break;
- }
- else if (wc == L'\\')
- {
-! wc = *wpat++;
-! if (*wpat == 0)
-! break;
- }
- else if (wc == L'[' && *wpat == L':') /* character class */
- {
- wpat++;
- in_cclass = 1;
- }
---- 125,148 ----
- if (wc == 0)
- {
-! wpat--; /* back up to NUL */
-! matlen += bracklen;
-! goto bad_bracket;
- }
- else if (wc == L'\\')
- {
-! /* *wpat == backslash-escaped character */
-! bracklen++;
-! /* If the backslash or backslash-escape ends the string,
-! bail. The ++wpat skips over the backslash escape */
-! if (*wpat == 0 || *++wpat == 0)
-! {
-! matlen += bracklen;
-! goto bad_bracket;
-! }
- }
- else if (wc == L'[' && *wpat == L':') /* character class */
- {
- wpat++;
-+ bracklen++;
- in_cclass = 1;
- }
-***************
-*** 142,145 ****
---- 150,154 ----
- {
- wpat++;
-+ bracklen++;
- in_cclass = 0;
- }
-***************
-*** 147,152 ****
- {
- wpat++;
- if (*wpat == L']') /* right bracket can appear as collating symbol */
-! wpat++;
- in_collsym = 1;
- }
---- 156,165 ----
- {
- wpat++;
-+ bracklen++;
- if (*wpat == L']') /* right bracket can appear as collating symbol */
-! {
-! wpat++;
-! bracklen++;
-! }
- in_collsym = 1;
- }
-***************
-*** 154,157 ****
---- 167,171 ----
- {
- wpat++;
-+ bracklen++;
- in_collsym = 0;
- }
-***************
-*** 159,164 ****
- {
- wpat++;
- if (*wpat == L']') /* right bracket can appear as equivalence class */
-! wpat++;
- in_equiv = 1;
- }
---- 173,182 ----
- {
- wpat++;
-+ bracklen++;
- if (*wpat == L']') /* right bracket can appear as equivalence class */
-! {
-! wpat++;
-! bracklen++;
-! }
- in_equiv = 1;
- }
-***************
-*** 166,174 ****
---- 184,196 ----
- {
- wpat++;
-+ bracklen++;
- in_equiv = 0;
- }
-+ else
-+ bracklen++;
- }
- while ((wc = *wpat++) != L']');
- matlen++; /* bracket expression can only match one char */
-+ bad_bracket:
- break;
- }
-***************
-*** 214,219 ****
- size_t max;
- {
-! char c, *brack;
-! int matlen, t, in_cclass, in_collsym, in_equiv;
-
- if (*pat == 0)
---- 236,241 ----
- size_t max;
- {
-! char c;
-! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
-
- if (*pat == 0)
-***************
-*** 255,259 ****
- case '[':
- /* scan for ending `]', skipping over embedded [:...:] */
-! brack = pat;
- c = *pat++;
- do
---- 277,281 ----
- case '[':
- /* scan for ending `]', skipping over embedded [:...:] */
-! bracklen = 1;
- c = *pat++;
- do
-***************
-*** 261,276 ****
- if (c == 0)
- {
-! matlen += pat - brack - 1; /* incremented below */
-! break;
- }
- else if (c == '\\')
- {
-! c = *pat++;
-! if (*pat == 0)
-! break;
- }
- else if (c == '[' && *pat == ':') /* character class */
- {
- pat++;
- in_cclass = 1;
- }
---- 283,306 ----
- if (c == 0)
- {
-! pat--; /* back up to NUL */
-! matlen += bracklen;
-! goto bad_bracket;
- }
- else if (c == '\\')
- {
-! /* *pat == backslash-escaped character */
-! bracklen++;
-! /* If the backslash or backslash-escape ends the string,
-! bail. The ++pat skips over the backslash escape */
-! if (*pat == 0 || *++pat == 0)
-! {
-! matlen += bracklen;
-! goto bad_bracket;
-! }
- }
- else if (c == '[' && *pat == ':') /* character class */
- {
- pat++;
-+ bracklen++;
- in_cclass = 1;
- }
-***************
-*** 278,281 ****
---- 308,312 ----
- {
- pat++;
-+ bracklen++;
- in_cclass = 0;
- }
-***************
-*** 283,288 ****
- {
- pat++;
- if (*pat == ']') /* right bracket can appear as collating symbol */
-! pat++;
- in_collsym = 1;
- }
---- 314,323 ----
- {
- pat++;
-+ bracklen++;
- if (*pat == ']') /* right bracket can appear as collating symbol */
-! {
-! pat++;
-! bracklen++;
-! }
- in_collsym = 1;
- }
-***************
-*** 290,293 ****
---- 325,329 ----
- {
- pat++;
-+ bracklen++;
- in_collsym = 0;
- }
-***************
-*** 295,300 ****
- {
- pat++;
- if (*pat == ']') /* right bracket can appear as equivalence class */
-! pat++;
- in_equiv = 1;
- }
---- 331,340 ----
- {
- pat++;
-+ bracklen++;
- if (*pat == ']') /* right bracket can appear as equivalence class */
-! {
-! pat++;
-! bracklen++;
-! }
- in_equiv = 1;
- }
-***************
-*** 302,310 ****
---- 342,354 ----
- {
- pat++;
-+ bracklen++;
- in_equiv = 0;
- }
-+ else
-+ bracklen++;
- }
- while ((c = *pat++) != ']');
- matlen++; /* bracket expression can only match one char */
-+ bad_bracket:
- break;
- }
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 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_ */
diff --git a/shell-term-fm/bash/patches/bash42-004 b/shell-term-fm/bash/patches/bash42-004
deleted file mode 100644
index fe29f82c7d..0000000000
--- a/shell-term-fm/bash/patches/bash42-004
+++ /dev/null
@@ -1,53 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-004
-
-Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
-Bug-Reference-ID: <201102182106.17834.vapier@gentoo.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
-
-Bug-Description:
-
-When used in contexts where word splitting and quote removal were not
-performed, such as pattern removal or pattern substitution, empty strings
-(either literal or resulting from quoted variables that were unset or
-null) were not matched correctly, resulting in failure.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
---- subst.c 2011-02-18 22:30:13.000000000 -0500
-***************
-*** 3373,3379 ****
- if (string == 0 || *string == '\0')
- return (WORD_LIST *)NULL;
-
-! td.flags = 0;
- td.word = string;
- tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
- return (tresult);
---- 3373,3379 ----
- if (string == 0 || *string == '\0')
- return (WORD_LIST *)NULL;
-
-! td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */
- td.word = string;
- tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
- return (tresult);
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 3
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 4
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-005 b/shell-term-fm/bash/patches/bash42-005
deleted file mode 100644
index 3ca9fc1da6..0000000000
--- a/shell-term-fm/bash/patches/bash42-005
+++ /dev/null
@@ -1,131 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-005
-
-Bug-Reported-by: Dennis Williamson <dennistwilliamson@gmail.com>
-Bug-Reference-ID: <AANLkTikDbEV5rnbPc0zOfmZfBcg0xGetzLLzK+KjRiNa@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
-
-Bug-Description:
-
-Systems that use tzset() to set the local timezone require the TZ variable
-to be in the environment. Bash must make sure the environment has been
-modified with any updated value for TZ before calling tzset(). This
-affects prompt string expansions and the `%T' printf conversion specification
-on systems that do not allow bash to supply a replacement for getenv(3).
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/variables.h 2010-12-02 20:22:01.000000000 -0500
---- variables.h 2011-02-19 19:57:12.000000000 -0500
-***************
-*** 314,317 ****
---- 314,318 ----
- extern void sort_variables __P((SHELL_VAR **));
-
-+ extern int chkexport __P((char *));
- extern void maybe_make_export_env __P((void));
- extern void update_export_env_inplace __P((char *, int, char *));
-*** ../bash-4.2-patched/variables.c 2011-01-24 20:07:48.000000000 -0500
---- variables.c 2011-02-19 20:04:50.000000000 -0500
-***************
-*** 3654,3657 ****
---- 3654,3673 ----
- }
-
-+ int
-+ chkexport (name)
-+ char *name;
-+ {
-+ SHELL_VAR *v;
-+
-+ v = find_variable (name);
-+ if (exported_p (v))
-+ {
-+ array_needs_making = 1;
-+ maybe_make_export_env ();
-+ return 1;
-+ }
-+ return 0;
-+ }
-+
- void
- maybe_make_export_env ()
-***************
-*** 4215,4219 ****
- { "TEXTDOMAINDIR", sv_locale },
-
-! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
- { "TZ", sv_tz },
- #endif
---- 4231,4235 ----
- { "TEXTDOMAINDIR", sv_locale },
-
-! #if defined (HAVE_TZSET)
- { "TZ", sv_tz },
- #endif
-***************
-*** 4559,4568 ****
- #endif /* HISTORY */
-
-! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
- void
- sv_tz (name)
- char *name;
- {
-! tzset ();
- }
- #endif
---- 4575,4585 ----
- #endif /* HISTORY */
-
-! #if defined (HAVE_TZSET)
- void
- sv_tz (name)
- char *name;
- {
-! if (chkexport (name))
-! tzset ();
- }
- #endif
-*** ../bash-4.2-patched/parse.y 2011-01-02 15:48:11.000000000 -0500
---- parse.y 2011-02-19 20:05:00.000000000 -0500
-***************
-*** 5136,5139 ****
---- 5136,5142 ----
- /* Make the current time/date into a string. */
- (void) time (&the_time);
-+ #if defined (HAVE_TZSET)
-+ sv_tz ("TZ"); /* XXX -- just make sure */
-+ #endif
- tm = localtime (&the_time);
-
-*** ../bash-4.2-patched/builtins/printf.def 2010-11-23 10:02:55.000000000 -0500
---- builtins/printf.def 2011-02-19 20:05:04.000000000 -0500
-***************
-*** 466,469 ****
---- 466,472 ----
- else
- secs = arg;
-+ #if defined (HAVE_TZSET)
-+ sv_tz ("TZ"); /* XXX -- just make sure */
-+ #endif
- tm = localtime (&secs);
- n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 4
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 5
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-006 b/shell-term-fm/bash/patches/bash42-006
deleted file mode 100644
index be6e49c729..0000000000
--- a/shell-term-fm/bash/patches/bash42-006
+++ /dev/null
@@ -1,46 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-006
-
-Bug-Reported-by: Allan McRae <allan@archlinux.org>
-Bug-Reference-ID: <4D6D0D0B.50908@archlinux.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00001.html
-
-Bug-Description:
-
-A problem with bash42-005 caused it to dump core if TZ was unset.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/variables.c 2011-02-25 12:07:41.000000000 -0500
---- variables.c 2011-03-01 10:13:04.000000000 -0500
-***************
-*** 3661,3665 ****
-
- v = find_variable (name);
-! if (exported_p (v))
- {
- array_needs_making = 1;
---- 3661,3665 ----
-
- v = find_variable (name);
-! if (v && exported_p (v))
- {
- array_needs_making = 1;
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 5
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 6
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-007 b/shell-term-fm/bash/patches/bash42-007
deleted file mode 100644
index d16156e277..0000000000
--- a/shell-term-fm/bash/patches/bash42-007
+++ /dev/null
@@ -1,46 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-007
-
-Bug-Reported-by: Matthias Klose <doko@debian.org>
-Bug-Reference-ID: <4D6FD2AC.1010500@debian.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00015.html
-
-Bug-Description:
-
-When used in contexts where word splitting and quote removal were not
-performed, such as case statement word expansion, empty strings
-(either literal or resulting from quoted variables that were unset or
-null) were not expanded correctly, resulting in failure.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2011-02-25 12:03:58.000000000 -0500
---- subst.c 2011-03-03 14:08:23.000000000 -0500
-***************
-*** 4609,4614 ****
---- 4611,4617 ----
- if (ifs_firstc == 0)
- #endif
- word->flags |= W_NOSPLIT;
-+ word->flags |= W_NOSPLIT2;
- result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
- expand_no_split_dollar_star = 0;
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 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_ */
diff --git a/shell-term-fm/bash/patches/bash42-008 b/shell-term-fm/bash/patches/bash42-008
deleted file mode 100644
index 631abbdf7d..0000000000
--- a/shell-term-fm/bash/patches/bash42-008
+++ /dev/null
@@ -1,74 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-008
-
-Bug-Reported-by: Doug McMahon <mc2man@optonline.net>
-Bug-Reference-ID: <1299441211.2535.11.camel@doug-XPS-M1330>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00050.html
-
-Bug-Description:
-
-Bash-4.2 does not attempt to save the shell history on receipt of a
-terminating signal that is handled synchronously. Unfortunately, the
-`close' button on most X11 terminal emulators sends SIGHUP, which
-kills the shell.
-
-This is a very small patch to save the history in the case that an
-interactive shell receives a SIGHUP or SIGTERM while in readline and
-reading a command.
-
-The next version of bash will do this differently.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/sig.c Tue Nov 23 08:21:22 2010
---- sig.c Tue Mar 8 21:28:32 2011
-***************
-*** 47,50 ****
---- 47,51 ----
- #if defined (READLINE)
- # include "bashline.h"
-+ # include <readline/readline.h>
- #endif
-
-***************
-*** 63,66 ****
---- 64,68 ----
- extern int history_lines_this_session;
- #endif
-+ extern int no_line_editing;
-
- extern void initialize_siglist ();
-***************
-*** 506,510 ****
- #if defined (HISTORY)
- /* XXX - will inhibit history file being written */
-! history_lines_this_session = 0;
- #endif
- terminate_immediately = 0;
---- 508,515 ----
- #if defined (HISTORY)
- /* XXX - will inhibit history file being written */
-! # if defined (READLINE)
-! if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
-! # endif
-! history_lines_this_session = 0;
- #endif
- terminate_immediately = 0;
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 7
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 8
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-009 b/shell-term-fm/bash/patches/bash42-009
deleted file mode 100644
index 83a7e2c748..0000000000
--- a/shell-term-fm/bash/patches/bash42-009
+++ /dev/null
@@ -1,82 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-009
-
-Bug-Reported-by: <piuma@piumalab.org>
-Bug-Reference-ID: <4DAAC0DB.7060606@piumalab.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00075.html
-
-Bug-Description:
-
-Under certain circumstances, running `fc -l' two times in succession with a
-relative history offset at the end of the history will result in an incorrect
-calculation of the last history entry and a seg fault.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/fc.def 2010-05-30 18:25:38.000000000 -0400
---- builtins/fc.def 2011-04-19 15:46:17.000000000 -0400
-***************
-*** 305,309 ****
-
- /* XXX */
-! if (saved_command_line_count > 0 && i == last_hist && hlist[last_hist] == 0)
- while (last_hist >= 0 && hlist[last_hist] == 0)
- last_hist--;
---- 305,309 ----
-
- /* XXX */
-! if (i == last_hist && hlist[last_hist] == 0)
- while (last_hist >= 0 && hlist[last_hist] == 0)
- last_hist--;
-***************
-*** 476,480 ****
- {
- int sign, n, clen, rh;
-! register int i, j;
- register char *s;
-
---- 476,480 ----
- {
- int sign, n, clen, rh;
-! register int i, j, last_hist;
- register char *s;
-
-***************
-*** 496,500 ****
- calculation as if it were on. */
- rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
-! i -= rh + hist_last_line_added;
-
- /* No specification defaults to most recent command. */
---- 496,508 ----
- calculation as if it were on. */
- rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
-! last_hist = i - rh - hist_last_line_added;
-!
-! if (i == last_hist && hlist[last_hist] == 0)
-! while (last_hist >= 0 && hlist[last_hist] == 0)
-! last_hist--;
-! if (last_hist < 0)
-! return (-1);
-!
-! i = last_hist;
-
- /* No specification defaults to most recent command. */
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 8
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 9
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-010 b/shell-term-fm/bash/patches/bash42-010
deleted file mode 100644
index e408abd61b..0000000000
--- a/shell-term-fm/bash/patches/bash42-010
+++ /dev/null
@@ -1,61 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-010
-
-Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
-Bug-Reference-ID: <201104122356.20160.vapier@gentoo.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00058.html
-
-Bug-Description:
-
-Bash did not correctly print/reproduce here documents attached to commands
-inside compound commands such as arithmetic for loops and user-specified
-subshells. This affected the execution of such commands inside a shell
-function when the function definition is saved and later restored using
-`.' or `eval'.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/print_cmd.c 2010-05-30 18:34:08.000000000 -0400
---- print_cmd.c 2011-04-14 10:43:18.000000000 -0400
-***************
-*** 316,319 ****
---- 317,321 ----
- skip_this_indent++;
- make_command_string_internal (command->value.Subshell->command);
-+ PRINT_DEFERRED_HEREDOCS ("");
- cprintf (" )");
- break;
-***************
-*** 593,596 ****
---- 606,610 ----
- indentation += indentation_amount;
- make_command_string_internal (arith_for_command->action);
-+ PRINT_DEFERRED_HEREDOCS ("");
- semicolon ();
- indentation -= indentation_amount;
-***************
-*** 654,657 ****
---- 668,672 ----
-
- make_command_string_internal (group_command->command);
-+ PRINT_DEFERRED_HEREDOCS ("");
-
- if (inside_function_def)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 9
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 10
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-011 b/shell-term-fm/bash/patches/bash42-011
deleted file mode 100644
index 26fdf65f69..0000000000
--- a/shell-term-fm/bash/patches/bash42-011
+++ /dev/null
@@ -1,46 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-011
-
-Bug-Reported-by: "David Parks" <davidparks21@yahoo.com>
-Bug-Reference-ID: <014101cc82c6$46ac1540$d4043fc0$@com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00031.html
-
-Bug-Description:
-
-Overwriting a value in an associative array causes the memory allocated to
-store the key on the second and subsequent assignments to leak.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/assoc.c 2009-08-05 20:19:40.000000000 -0400
---- assoc.c 2011-10-04 20:23:07.000000000 -0400
-***************
-*** 78,81 ****
---- 78,86 ----
- if (b == 0)
- return -1;
-+ /* If we are overwriting an existing element's value, we're not going to
-+ use the key. Nothing in the array assignment code path frees the key
-+ string, so we can free it here to avoid a memory leak. */
-+ if (b->key != key)
-+ free (key);
- FREE (b->data);
- b->data = value ? savestring (value) : (char *)0;
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 10
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 11
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-012 b/shell-term-fm/bash/patches/bash42-012
deleted file mode 100644
index 70f0a56b60..0000000000
--- a/shell-term-fm/bash/patches/bash42-012
+++ /dev/null
@@ -1,151 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-012
-
-Bug-Reported-by: Rui Santos <rsantos@grupopie.com>
-Bug-Reference-ID: <4E04C6D0.2020507@grupopie.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00079.html
-
-Bug-Description:
-
-When calling the parser to recursively parse a command substitution within
-an arithmetic expansion, the shell overwrote the saved shell input line and
-associated state, resulting in a garbled command.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/parse.y 2011-02-26 19:19:05.000000000 -0500
---- parse.y 2011-06-24 20:08:22.000000000 -0400
-***************
-*** 3843,3846 ****
---- 3849,3853 ----
- {
- sh_parser_state_t ps;
-+ sh_input_line_state_t ls;
- int orig_ind, nc, sflags;
- char *ret, *s, *ep, *ostring;
-***************
-*** 3850,3857 ****
---- 3857,3866 ----
- ostring = string;
-
-+ /*itrace("xparse_dolparen: size = %d shell_input_line = `%s'", shell_input_line_size, shell_input_line);*/
- sflags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE;
- if (flags & SX_NOLONGJMP)
- sflags |= SEVAL_NOLONGJMP;
- save_parser_state (&ps);
-+ save_input_line_state (&ls);
-
- /*(*/
-***************
-*** 3862,3865 ****
---- 3871,3876 ----
- restore_parser_state (&ps);
- reset_parser ();
-+ /* reset_parser clears shell_input_line and associated variables */
-+ restore_input_line_state (&ls);
- if (interactive)
- token_to_read = 0;
-***************
-*** 5909,5912 ****
---- 5920,5929 ----
- ps->echo_input_at_read = echo_input_at_read;
-
-+ ps->token = token;
-+ ps->token_buffer_size = token_buffer_size;
-+ /* Force reallocation on next call to read_token_word */
-+ token = 0;
-+ token_buffer_size = 0;
-+
- return (ps);
- }
-***************
-*** 5950,5953 ****
---- 5967,6006 ----
- expand_aliases = ps->expand_aliases;
- echo_input_at_read = ps->echo_input_at_read;
-+
-+ FREE (token);
-+ token = ps->token;
-+ token_buffer_size = ps->token_buffer_size;
-+ }
-+
-+ sh_input_line_state_t *
-+ save_input_line_state (ls)
-+ sh_input_line_state_t *ls;
-+ {
-+ if (ls == 0)
-+ ls = (sh_input_line_state_t *)xmalloc (sizeof (sh_input_line_state_t));
-+ if (ls == 0)
-+ return ((sh_input_line_state_t *)NULL);
-+
-+ ls->input_line = shell_input_line;
-+ ls->input_line_size = shell_input_line_size;
-+ ls->input_line_len = shell_input_line_len;
-+ ls->input_line_index = shell_input_line_index;
-+
-+ /* force reallocation */
-+ shell_input_line = 0;
-+ shell_input_line_size = shell_input_line_len = shell_input_line_index = 0;
-+ }
-+
-+ void
-+ restore_input_line_state (ls)
-+ sh_input_line_state_t *ls;
-+ {
-+ FREE (shell_input_line);
-+ shell_input_line = ls->input_line;
-+ shell_input_line_size = ls->input_line_size;
-+ shell_input_line_len = ls->input_line_len;
-+ shell_input_line_index = ls->input_line_index;
-+
-+ set_line_mbstate ();
- }
-
-*** ../bash-4.2-patched/shell.h 2011-01-06 22:16:55.000000000 -0500
---- shell.h 2011-06-24 19:12:25.000000000 -0400
-***************
-*** 137,140 ****
---- 139,145 ----
- int *token_state;
-
-+ char *token;
-+ int token_buffer_size;
-+
- /* input line state -- line number saved elsewhere */
- int input_line_terminator;
-***************
-*** 167,171 ****
---- 172,186 ----
- } sh_parser_state_t;
-
-+ typedef struct _sh_input_line_state_t {
-+ char *input_line;
-+ int input_line_index;
-+ int input_line_size;
-+ int input_line_len;
-+ } sh_input_line_state_t;
-+
- /* Let's try declaring these here. */
- extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
- extern void restore_parser_state __P((sh_parser_state_t *));
-+
-+ extern sh_input_line_state_t *save_input_line_state __P((sh_input_line_state_t *));
-+ extern void restore_input_line_state __P((sh_input_line_state_t *));
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 11
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 12
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-013 b/shell-term-fm/bash/patches/bash42-013
deleted file mode 100644
index 5bb186b3a8..0000000000
--- a/shell-term-fm/bash/patches/bash42-013
+++ /dev/null
@@ -1,52 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-013
-
-Bug-Reported-by: Marten Wikstrom <marten.wikstrom@keystream.se>
-Bug-Reference-ID: <BANLkTikKECAh94ZEX68iQvxYuPeEM_xoSQ@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00049.html
-
-Bug-Description:
-
-An off-by-one error caused the shell to skip over CTLNUL characters,
-which are used internally to mark quoted null strings. The effect
-was to have stray 0x7f characters left after expanding words like
-""""""""aa.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2011-03-06 14:11:11.000000000 -0500
---- subst.c 2011-05-11 11:23:33.000000000 -0400
-***************
-*** 3707,3711 ****
- }
- else if (string[i] == CTLNUL)
-! i++;
-
- prev_i = i;
---- 3710,3717 ----
- }
- else if (string[i] == CTLNUL)
-! {
-! i++;
-! continue;
-! }
-
- prev_i = i;
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 12
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 13
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-014 b/shell-term-fm/bash/patches/bash42-014
deleted file mode 100644
index a43271c348..0000000000
--- a/shell-term-fm/bash/patches/bash42-014
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-014
-
-Bug-Reported-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
-Bug-Reference-ID: <20110504152320.6E8F28130527@dev1.rgmadvisors.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00018.html
-
-Bug-Description:
-
-The regular expression matching operator did not correctly match
-expressions with an embedded ^A.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/pathexp.c 2010-08-13 23:21:57.000000000 -0400
---- pathexp.c 2011-05-05 16:40:58.000000000 -0400
-***************
-*** 197,201 ****
- if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
- continue;
-! if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
- continue;
- temp[j++] = '\\';
---- 197,201 ----
- if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
- continue;
-! if (pathname[i+1] != CTLESC && (qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
- continue;
- temp[j++] = '\\';
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 13
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 14
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-015 b/shell-term-fm/bash/patches/bash42-015
deleted file mode 100644
index 8655873855..0000000000
--- a/shell-term-fm/bash/patches/bash42-015
+++ /dev/null
@@ -1,81 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-015
-
-Bug-Reported-by: <dnade.ext@orange-ftgroup.com>
-Bug-Reference-ID: <728_1312188080_4E3666B0_728_118711_1_3B5D3E0F95CC5C478D6500CDCE8B691F7AAAA4AA3D@PUEXCB2B.nanterre.francetelecom.fr>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00000.html
-
-Bug-Description:
-
-When in a context where arithmetic evaluation is not taking place, the
-evaluator should not check for division by 0.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/expr.c 2010-12-21 11:12:13.000000000 -0500
---- expr.c 2011-08-02 20:58:28.000000000 -0400
-***************
-*** 477,480 ****
---- 481,492 ----
- if (special)
- {
-+ if ((op == DIV || op == MOD) && value == 0)
-+ {
-+ if (noeval == 0)
-+ evalerror (_("division by 0"));
-+ else
-+ value = 1;
-+ }
-+
- switch (op)
- {
-***************
-*** 483,493 ****
- break;
- case DIV:
-- if (value == 0)
-- evalerror (_("division by 0"));
- lvalue /= value;
- break;
- case MOD:
-- if (value == 0)
-- evalerror (_("division by 0"));
- lvalue %= value;
- break;
---- 495,501 ----
-***************
-*** 805,809 ****
-
- if (((op == DIV) || (op == MOD)) && (val2 == 0))
-! evalerror (_("division by 0"));
-
- if (op == MUL)
---- 813,822 ----
-
- if (((op == DIV) || (op == MOD)) && (val2 == 0))
-! {
-! if (noeval == 0)
-! evalerror (_("division by 0"));
-! else
-! val2 = 1;
-! }
-
- if (op == MUL)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 14
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 15
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-016 b/shell-term-fm/bash/patches/bash42-016
deleted file mode 100644
index 46025888be..0000000000
--- a/shell-term-fm/bash/patches/bash42-016
+++ /dev/null
@@ -1,46 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-016
-
-Bug-Reported-by: Martin von Gagern <Martin.vGagern@gmx.net>
-Bug-Reference-ID: <4E43AD9E.8060501@gmx.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00141.html
-
-Bug-Description:
-
-Bash should not check for mail while executing the `eval' builtin.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/parse.y Fri Feb 25 12:07:41 2011
---- parse.y Thu Aug 11 19:02:26 2011
-***************
-*** 2500,2504 ****
- is the mail alarm reset; nothing takes place in check_mail ()
- except the checking of mail. Please don't change this. */
-! if (prompt_is_ps1 && time_to_check_mail ())
- {
- check_mail ();
---- 2498,2502 ----
- is the mail alarm reset; nothing takes place in check_mail ()
- except the checking of mail. Please don't change this. */
-! if (prompt_is_ps1 && parse_and_execute_level == 0 && time_to_check_mail ())
- {
- check_mail ();
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 15
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 16
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-017 b/shell-term-fm/bash/patches/bash42-017
deleted file mode 100644
index 010ed1e502..0000000000
--- a/shell-term-fm/bash/patches/bash42-017
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-017
-
-Bug-Reported-by: Curtis Doty <Curtis@GreenKey.net>
-Bug-Reference-ID: <20110621035324.A4F70849F59@mx1.iParadigms.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00053.html
-
-Bug-Description:
-
-Using `read -a foo' where foo was an already-declared associative array
-caused the shell to die with a segmentation fault.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/read.def 2011-01-04 11:43:36.000000000 -0500
---- builtins/read.def 2011-06-21 10:31:02.000000000 -0400
-***************
-*** 643,646 ****
---- 642,651 ----
- return EXECUTION_FAILURE; /* readonly or noassign */
- }
-+ if (assoc_p (var))
-+ {
-+ builtin_error (_("%s: cannot convert associative to indexed array"), arrayname);
-+ xfree (input_string);
-+ return EXECUTION_FAILURE; /* existing associative array */
-+ }
- array_flush (array_cell (var));
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 16
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 17
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-018 b/shell-term-fm/bash/patches/bash42-018
deleted file mode 100644
index 5d11dce164..0000000000
--- a/shell-term-fm/bash/patches/bash42-018
+++ /dev/null
@@ -1,74 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-018
-
-Bug-Reported-by: Thomas Cort <tcort@minix3.org>
-Bug-Reference-ID: <BANLkTik-ebGGw3k_1YtB=RyfV1bsqdxC_g@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
-
-Bug-Description:
-
-Bash fails to compile unless JOB_CONTROL is defined.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/execute_cmd.c 2011-02-09 17:32:25.000000000 -0500
---- execute_cmd.c 2011-11-06 15:12:48.000000000 -0500
-***************
-*** 2197,2200 ****
---- 2315,2319 ----
- cmd->flags |= CMD_IGNORE_RETURN;
-
-+ #if defined (JOB_CONTROL)
- lastpipe_flag = 0;
- begin_unwind_frame ("lastpipe-exec");
-***************
-*** 2216,2228 ****
- add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
- }
-! cmd->flags |= CMD_LASTPIPE;
- }
- if (prev >= 0)
- add_unwind_protect (close, prev);
-
- exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
-
- if (lstdin > 0)
- restore_stdin (lstdin);
-
- if (prev >= 0)
---- 2335,2351 ----
- add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
- }
-! if (cmd)
-! cmd->flags |= CMD_LASTPIPE;
- }
- if (prev >= 0)
- add_unwind_protect (close, prev);
-+ #endif
-
- exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
-
-+ #if defined (JOB_CONTROL)
- if (lstdin > 0)
- restore_stdin (lstdin);
-+ #endif
-
- if (prev >= 0)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 17
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 18
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-019 b/shell-term-fm/bash/patches/bash42-019
deleted file mode 100644
index 5fce40ae59..0000000000
--- a/shell-term-fm/bash/patches/bash42-019
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-019
-
-Bug-Reported-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
-Bug-Reference-ID: <CAGOxLdHcSQu3ck9Qy3pRjj_NBU5tAPSAvNm-95-nLQ9Szwb6aA@mail.gmail.com>
-Bug-Reference-URL: lists.gnu.org/archive/html/bug-bash/2011-09/msg00047.html
-
-Bug-Description:
-
-Using `declare' with attributes and an invalid array variable name or
-assignment reference resulted in a segmentation fault instead of a
-declaration error.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/declare.def 2010-05-30 18:25:21.000000000 -0400
---- builtins/declare.def 2011-09-15 15:20:20.000000000 -0400
-***************
-*** 514,517 ****
---- 514,522 ----
- var = assign_array_element (name, value, 0); /* XXX - not aflags */
- *subscript_start = '\0';
-+ if (var == 0) /* some kind of assignment error */
-+ {
-+ assign_error++;
-+ NEXT_VARIABLE ();
-+ }
- }
- else if (simple_array_assign)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 18
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 19
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-020 b/shell-term-fm/bash/patches/bash42-020
deleted file mode 100644
index a1dd0443e8..0000000000
--- a/shell-term-fm/bash/patches/bash42-020
+++ /dev/null
@@ -1,60 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-020
-
-Bug-Reported-by: Vincent Sheffer <vince.sheffer@apisphere.com>
-Bug-Reference-ID: <F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com>
-Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html
-
-Bug-Description:
-
-The shared object helper script needs to be updated for Mac OS X 10.7
-(Lion, darwin11).
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400
---- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400
-***************
-*** 158,162 ****
-
- # Darwin/MacOS X
-! darwin[89]*|darwin10*)
- SHOBJ_STATUS=supported
- SHLIB_STATUS=supported
---- 172,176 ----
-
- # Darwin/MacOS X
-! darwin[89]*|darwin1[012]*)
- SHOBJ_STATUS=supported
- SHLIB_STATUS=supported
-***************
-*** 187,191 ****
-
- case "${host_os}" in
-! darwin[789]*|darwin10*) SHOBJ_LDFLAGS=''
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
- ;;
---- 201,205 ----
-
- case "${host_os}" in
-! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS=''
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
- ;;
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 19
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 20
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-021 b/shell-term-fm/bash/patches/bash42-021
deleted file mode 100644
index b6153c7847..0000000000
--- a/shell-term-fm/bash/patches/bash42-021
+++ /dev/null
@@ -1,61 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-021
-
-Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
-Bug-Reference-ID: <4585554.nZWb4q7YoZ@smorgbox>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-12/msg00084.html
-
-Bug-Description:
-
-Using `read -N' to assign values to an array can result in NUL values being
-assigned to some array elements. These values cause seg faults when referenced
-later.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/read.def 2011-11-21 18:03:38.000000000 -0500
---- builtins/read.def 2011-12-19 19:52:12.000000000 -0500
-***************
-*** 738,742 ****
- }
- else
-! var = bind_read_variable (varname, t);
- }
- else
---- 775,779 ----
- }
- else
-! var = bind_read_variable (varname, t ? t : "");
- }
- else
-***************
-*** 799,803 ****
- }
- else
-! var = bind_read_variable (list->word->word, input_string);
-
- if (var)
---- 836,840 ----
- }
- else
-! var = bind_read_variable (list->word->word, input_string ? input_string : "");
-
- if (var)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 20
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 21
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-022 b/shell-term-fm/bash/patches/bash42-022
deleted file mode 100644
index 0067b1335d..0000000000
--- a/shell-term-fm/bash/patches/bash42-022
+++ /dev/null
@@ -1,61 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-022
-
-Bug-Reported-by: Gregory Margo <gmargo@pacbell.net>
-Bug-Reference-ID: <20110727174529.GA3333@pacbell.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00102.html
-
-Bug-Description:
-
-The return value from lseek is `off_t'. This can cause corrupted return
-values when the file offset is greater than 2**31 - 1.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/sh/zread.c Mon Mar 2 08:54:45 2009
---- lib/sh/zread.c Thu Jul 28 18:16:53 2011
-***************
-*** 161,166 ****
- int fd;
- {
-! off_t off;
-! int r;
-
- off = lused - lind;
---- 161,165 ----
- int fd;
- {
-! off_t off, r;
-
- off = lused - lind;
-***************
-*** 169,173 ****
- r = lseek (fd, -off, SEEK_CUR);
-
-! if (r >= 0)
- lused = lind = 0;
- }
---- 168,172 ----
- r = lseek (fd, -off, SEEK_CUR);
-
-! if (r != -1)
- lused = lind = 0;
- }
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 21
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 22
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-023 b/shell-term-fm/bash/patches/bash42-023
deleted file mode 100644
index 4f204efb07..0000000000
--- a/shell-term-fm/bash/patches/bash42-023
+++ /dev/null
@@ -1,62 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-023
-
-Bug-Reported-by: Ewan Mellor <Ewan.Mellor@eu.citrix.com>
-Bug-Reference-ID: <6005BE083BF501439A84DC3523BAC82DC4B964FD12@LONPMAILBOX01.citrite.net>
-Bug-Reference-URL:
-
-Bug-Description:
-
-Under some circumstances, an exit trap triggered by a bad substitution
-error when errexit is enabled will cause the shell to exit with an
-incorrect exit status (0).
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2011-11-21 12:04:38.000000000 -0500
---- subst.c 2012-02-08 13:36:28.000000000 -0500
-***************
-*** 7275,7278 ****
---- 7281,7285 ----
- case '\0':
- bad_substitution:
-+ last_command_exit_value = EXECUTION_FAILURE;
- report_error (_("%s: bad substitution"), string ? string : "??");
- FREE (value);
-*** ../bash-4.2-patched/error.c 2009-08-21 22:31:31.000000000 -0400
---- error.c 2012-02-25 15:54:40.000000000 -0500
-***************
-*** 201,205 ****
- va_end (args);
- if (exit_immediately_on_error)
-! exit_shell (1);
- }
-
---- 201,209 ----
- va_end (args);
- if (exit_immediately_on_error)
-! {
-! if (last_command_exit_value == 0)
-! last_command_exit_value = 1;
-! exit_shell (last_command_exit_value);
-! }
- }
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 22
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 23
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-024 b/shell-term-fm/bash/patches/bash42-024
deleted file mode 100644
index b7b1158b89..0000000000
--- a/shell-term-fm/bash/patches/bash42-024
+++ /dev/null
@@ -1,45 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-024
-
-Bug-Reported-by: Jim Avera <james_avera@yahoo.com>
-Bug-Reference-ID: <4F29E07A.80405@yahoo.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-02/msg00001.html
-
-Bug-Description:
-
-When `printf -v' is used to set an array element, the format string contains
-`%b', and the corresponding argument is the empty string, the buffer used
-to store the value to be assigned can be NULL, which results in NUL being
-assigned to the array element. This causes a seg fault when it's used later.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/printf.def 2011-02-25 12:07:41.000000000 -0500
---- builtins/printf.def 2012-02-02 08:37:12.000000000 -0500
-***************
-*** 256,259 ****
---- 257,262 ----
- {
- vflag = 1;
-+ if (vbsize == 0)
-+ vbuf = xmalloc (vbsize = 16);
- vblen = 0;
- if (vbuf)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 23
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 24
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-025 b/shell-term-fm/bash/patches/bash42-025
deleted file mode 100644
index 34ac34300e..0000000000
--- a/shell-term-fm/bash/patches/bash42-025
+++ /dev/null
@@ -1,143 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-025
-
-Bug-Reported-by: Bill Gradwohl <bill@ycc.com>
-Bug-Reference-ID: <CAFyvKis-UfuOWr5THBRKh=vYHDoKEEgdW8hN1RviTuYQ00Lu5A@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2012-03/msg00078.html
-
-Bug-Description:
-
-When used in a shell function, `declare -g -a array=(compound assignment)'
-creates a local variable instead of a global one.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/command.h 2010-08-02 19:36:51.000000000 -0400
---- command.h 2012-04-01 12:38:35.000000000 -0400
-***************
-*** 98,101 ****
---- 98,102 ----
- #define W_ASSIGNASSOC 0x400000 /* word looks like associative array assignment */
- #define W_ARRAYIND 0x800000 /* word is an array index being expanded */
-+ #define W_ASSNGLOBAL 0x1000000 /* word is a global assignment to declare (declare/typeset -g) */
-
- /* Possible values for subshell_environment */
-*** ../bash-4.2-patched/execute_cmd.c 2011-11-21 18:03:41.000000000 -0500
---- execute_cmd.c 2012-04-01 12:42:03.000000000 -0400
-***************
-*** 3581,3585 ****
- WORD_LIST *w;
- struct builtin *b;
-! int assoc;
-
- if (words == 0)
---- 3581,3585 ----
- WORD_LIST *w;
- struct builtin *b;
-! int assoc, global;
-
- if (words == 0)
-***************
-*** 3587,3591 ****
-
- b = 0;
-! assoc = 0;
-
- for (w = words; w; w = w->next)
---- 3587,3591 ----
-
- b = 0;
-! assoc = global = 0;
-
- for (w = words; w; w = w->next)
-***************
-*** 3604,3607 ****
---- 3604,3609 ----
- if (assoc)
- w->word->flags |= W_ASSIGNASSOC;
-+ if (global)
-+ w->word->flags |= W_ASSNGLOBAL;
- #endif
- }
-***************
-*** 3609,3613 ****
- /* Note that we saw an associative array option to a builtin that takes
- assignment statements. This is a bit of a kludge. */
-! else if (w->word->word[0] == '-' && strchr (w->word->word, 'A'))
- {
- if (b == 0)
---- 3611,3618 ----
- /* Note that we saw an associative array option to a builtin that takes
- assignment statements. This is a bit of a kludge. */
-! else if (w->word->word[0] == '-' && (strchr (w->word->word+1, 'A') || strchr (w->word->word+1, 'g')))
-! #else
-! else if (w->word->word[0] == '-' && strchr (w->word->word+1, 'g'))
-! #endif
- {
- if (b == 0)
-***************
-*** 3619,3626 ****
- words->word->flags |= W_ASSNBLTIN;
- }
-! if (words->word->flags & W_ASSNBLTIN)
- assoc = 1;
- }
-- #endif
- }
-
---- 3624,3632 ----
- words->word->flags |= W_ASSNBLTIN;
- }
-! if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'A'))
- assoc = 1;
-+ if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'g'))
-+ global = 1;
- }
- }
-
-*** ../bash-4.2-patched/subst.c 2012-03-11 17:35:13.000000000 -0400
---- subst.c 2012-04-01 12:38:35.000000000 -0400
-***************
-*** 367,370 ****
---- 367,375 ----
- fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : "");
- }
-+ if (f & W_ASSNGLOBAL)
-+ {
-+ f &= ~W_ASSNGLOBAL;
-+ fprintf (stderr, "W_ASSNGLOBAL%s", f ? "|" : "");
-+ }
- if (f & W_COMPASSIGN)
- {
-***************
-*** 2804,2808 ****
- else if (assign_list)
- {
-! if (word->flags & W_ASSIGNARG)
- aflags |= ASS_MKLOCAL;
- if (word->flags & W_ASSIGNASSOC)
---- 2809,2813 ----
- else if (assign_list)
- {
-! if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0)
- aflags |= ASS_MKLOCAL;
- if (word->flags & W_ASSIGNASSOC)
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 24
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 25
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-026 b/shell-term-fm/bash/patches/bash42-026
deleted file mode 100644
index e15d748070..0000000000
--- a/shell-term-fm/bash/patches/bash42-026
+++ /dev/null
@@ -1,58 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-026
-
-Bug-Reported-by: Greg Wooledge <wooledg@eeg.ccf.org>
-Bug-Reference-ID: <20120425180443.GO22241@eeg.ccf.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00172.html
-
-Bug-Description:
-
-The `lastpipe' option does not behave correctly on machines where the
-open file limit is less than 256.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/execute_cmd.c 2011-11-21 12:04:47.000000000 -0500
---- execute_cmd.c 2012-04-26 11:09:30.000000000 -0400
-***************
-*** 2206,2210 ****
- if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
- {
-! lstdin = move_to_high_fd (0, 0, 255);
- if (lstdin > 0)
- {
---- 2325,2329 ----
- if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
- {
-! lstdin = move_to_high_fd (0, 1, -1);
- if (lstdin > 0)
- {
-***************
-*** 2252,2256 ****
---- 2371,2377 ----
- }
-
-+ #if defined (JOB_CONTROL)
- discard_unwind_frame ("lastpipe-exec");
-+ #endif
-
- return (exec_result);
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 25
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 26
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-027 b/shell-term-fm/bash/patches/bash42-027
deleted file mode 100644
index c0c5d3f804..0000000000
--- a/shell-term-fm/bash/patches/bash42-027
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-027
-
-Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
-Bug-Reference-ID: <201204211243.30163.vapier@gentoo.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00134.html
-
-Bug-Description:
-
-When the `extglob' shell option is enabled, pattern substitution does not
-work correctly in the presence of multibyte characters.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2012-03-11 17:52:57.000000000 -0400
---- subst.c 2012-04-22 16:19:10.000000000 -0400
-***************
-*** 4167,4171 ****
- #if defined (EXTENDED_GLOB)
- if (extended_glob)
-! simple |= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
- #endif
-
---- 4167,4171 ----
- #if defined (EXTENDED_GLOB)
- if (extended_glob)
-! simple &= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
- #endif
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 26
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 27
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-028 b/shell-term-fm/bash/patches/bash42-028
deleted file mode 100644
index fa3be3b48f..0000000000
--- a/shell-term-fm/bash/patches/bash42-028
+++ /dev/null
@@ -1,52 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-028
-
-Bug-Reported-by: Mark Edgar <medgar123@gmail.com>
-Bug-Reference-ID: <CABHMh_3d+ZgO_zaEtYXPwK4P7tC0ghZ4g=Ue_TRpsEMf5YDsqw@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00109.html
-
-Bug-Description:
-
-When using a word expansion for which the right hand side is evaluated,
-certain expansions of quoted null strings include spurious ^? characters.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2012-03-11 17:35:13.000000000 -0400
---- subst.c 2012-03-20 19:30:13.000000000 -0400
-***************
-*** 5810,5813 ****
---- 5810,5823 ----
- if (qdollaratp && ((hasdol && quoted) || l->next))
- *qdollaratp = 1;
-+ /* If we have a quoted null result (QUOTED_NULL(temp)) and the word is
-+ a quoted null (l->next == 0 && QUOTED_NULL(l->word->word)), the
-+ flags indicate it (l->word->flags & W_HASQUOTEDNULL), and the
-+ expansion is quoted (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
-+ (which is more paranoia than anything else), we need to return the
-+ quoted null string and set the flags to indicate it. */
-+ if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL(temp) && QUOTED_NULL(l->word->word) && (l->word->flags & W_HASQUOTEDNULL))
-+ {
-+ w->flags |= W_HASQUOTEDNULL;
-+ }
- dispose_words (l);
- }
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 27
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 28
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-029 b/shell-term-fm/bash/patches/bash42-029
deleted file mode 100644
index c51704ca7e..0000000000
--- a/shell-term-fm/bash/patches/bash42-029
+++ /dev/null
@@ -1,524 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-029
-
-Bug-Reported-by: "Michael Kalisz" <michael@kalisz.homelinux.net>
-Bug-Reference-ID: <50241.78.69.11.112.1298585641.squirrel@kalisz.homelinux.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html
-
-Bug-Description:
-
-Bash-4.2 tries to leave completed directory names as the user typed them,
-without expanding them to a full pathname. One effect of this is that
-shell variables used in pathnames being completed (e.g., $HOME) are left
-unchanged, but the `$' is quoted by readline because it is a special
-character to the shell.
-
-This patch introduces two things:
-
-1. A new shell option, `direxpand', which, if set, attempts to emulate the
- bash-4.1 behavior of expanding words to full pathnames during
- completion;
-2. A set of heuristics that reduce the number of times special characters
- such as `$' are quoted when the directory name is not expanded.
-
-Patch (apply with `patch -p0'):
-
-diff -NrC 2 ../bash-4.2-patched/bashline.c ./bashline.c
-*** ../bash-4.2-patched/bashline.c 2011-01-16 15:32:47.000000000 -0500
---- ./bashline.c 2012-05-07 16:27:18.000000000 -0400
-***************
-*** 122,125 ****
---- 122,128 ----
- static int bash_push_line __P((void));
-
-+ static rl_icppfunc_t *save_directory_hook __P((void));
-+ static void reset_directory_hook __P((rl_icppfunc_t *));
-+
- static void cleanup_expansion_error __P((void));
- static void maybe_make_readline_line __P((char *));
-***************
-*** 244,251 ****
---- 247,261 ----
- int dircomplete_spelling = 0;
-
-+ /* Expand directory names during word/filename completion. */
-+ int dircomplete_expand = 0;
-+ int dircomplete_expand_relpath = 0;
-+
- static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
- static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
- /* )) */
-
-+ static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
-+ static char *custom_filename_quote_characters = 0;
-+
- static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL;
-
-***************
-*** 502,506 ****
- /* Tell the completer that we might want to follow symbolic links or
- do other expansion on directory names. */
-! rl_directory_rewrite_hook = bash_directory_completion_hook;
-
- rl_filename_rewrite_hook = bash_filename_rewrite_hook;
---- 512,516 ----
- /* Tell the completer that we might want to follow symbolic links or
- do other expansion on directory names. */
-! set_directory_hook ();
-
- rl_filename_rewrite_hook = bash_filename_rewrite_hook;
-***************
-*** 530,534 ****
-
- /* characters that need to be quoted when appearing in filenames. */
-! rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
-
- rl_filename_quoting_function = bash_quote_filename;
---- 540,544 ----
-
- /* characters that need to be quoted when appearing in filenames. */
-! rl_filename_quote_characters = default_filename_quote_characters;
-
- rl_filename_quoting_function = bash_quote_filename;
-***************
-*** 565,570 ****
- rl_attempted_completion_function = attempt_shell_completion;
- rl_completion_entry_function = NULL;
-- rl_directory_rewrite_hook = bash_directory_completion_hook;
- rl_ignore_some_completions_function = filename_completion_ignore;
- }
-
---- 575,582 ----
- rl_attempted_completion_function = attempt_shell_completion;
- rl_completion_entry_function = NULL;
- rl_ignore_some_completions_function = filename_completion_ignore;
-+ rl_filename_quote_characters = default_filename_quote_characters;
-+
-+ set_directory_hook ();
- }
-
-***************
-*** 1280,1283 ****
---- 1292,1298 ----
- rl_ignore_some_completions_function = filename_completion_ignore;
-
-+ rl_filename_quote_characters = default_filename_quote_characters;
-+ set_directory_hook ();
-+
- /* Determine if this could be a command word. It is if it appears at
- the start of the line (ignoring preceding whitespace), or if it
-***************
-*** 1592,1595 ****
---- 1607,1616 ----
- else
- {
-+ if (dircomplete_expand && dot_or_dotdot (filename_hint))
-+ {
-+ dircomplete_expand = 0;
-+ set_directory_hook ();
-+ dircomplete_expand = 1;
-+ }
- mapping_over = 4;
- goto inner;
-***************
-*** 1792,1795 ****
---- 1813,1819 ----
- inner:
- val = rl_filename_completion_function (filename_hint, istate);
-+ if (mapping_over == 4 && dircomplete_expand)
-+ set_directory_hook ();
-+
- istate = 1;
-
-***************
-*** 2694,2697 ****
---- 2718,2767 ----
- }
-
-+ /* Functions to save and restore the appropriate directory hook */
-+ /* This is not static so the shopt code can call it */
-+ void
-+ set_directory_hook ()
-+ {
-+ if (dircomplete_expand)
-+ {
-+ rl_directory_completion_hook = bash_directory_completion_hook;
-+ rl_directory_rewrite_hook = (rl_icppfunc_t *)0;
-+ }
-+ else
-+ {
-+ rl_directory_rewrite_hook = bash_directory_completion_hook;
-+ rl_directory_completion_hook = (rl_icppfunc_t *)0;
-+ }
-+ }
-+
-+ static rl_icppfunc_t *
-+ save_directory_hook ()
-+ {
-+ rl_icppfunc_t *ret;
-+
-+ if (dircomplete_expand)
-+ {
-+ ret = rl_directory_completion_hook;
-+ rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
-+ }
-+ else
-+ {
-+ ret = rl_directory_rewrite_hook;
-+ rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
-+ }
-+
-+ return ret;
-+ }
-+
-+ static void
-+ restore_directory_hook (hookf)
-+ rl_icppfunc_t *hookf;
-+ {
-+ if (dircomplete_expand)
-+ rl_directory_completion_hook = hookf;
-+ else
-+ rl_directory_rewrite_hook = hookf;
-+ }
-+
- /* Handle symbolic link references and other directory name
- expansions while hacking completion. This should return 1 if it modifies
-***************
-*** 2703,2720 ****
- {
- char *local_dirname, *new_dirname, *t;
-! int return_value, should_expand_dirname;
- WORD_LIST *wl;
- struct stat sb;
-
-! return_value = should_expand_dirname = 0;
- local_dirname = *dirname;
-
-! if (mbschr (local_dirname, '$'))
-! should_expand_dirname = 1;
- else
- {
- t = mbschr (local_dirname, '`');
- if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
-! should_expand_dirname = 1;
- }
-
---- 2773,2801 ----
- {
- char *local_dirname, *new_dirname, *t;
-! int return_value, should_expand_dirname, nextch, closer;
- WORD_LIST *wl;
- struct stat sb;
-
-! return_value = should_expand_dirname = nextch = closer = 0;
- local_dirname = *dirname;
-
-! if (t = mbschr (local_dirname, '$'))
-! {
-! should_expand_dirname = '$';
-! nextch = t[1];
-! /* Deliberately does not handle the deprecated $[...] arithmetic
-! expansion syntax */
-! if (nextch == '(')
-! closer = ')';
-! else if (nextch == '{')
-! closer = '}';
-! else
-! nextch = 0;
-! }
- else
- {
- t = mbschr (local_dirname, '`');
- if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
-! should_expand_dirname = '`';
- }
-
-***************
-*** 2740,2743 ****
---- 2821,2841 ----
- dispose_words (wl);
- local_dirname = *dirname;
-+ /* XXX - change rl_filename_quote_characters here based on
-+ should_expand_dirname/nextch/closer. This is the only place
-+ custom_filename_quote_characters is modified. */
-+ if (rl_filename_quote_characters && *rl_filename_quote_characters)
-+ {
-+ int i, j, c;
-+ i = strlen (default_filename_quote_characters);
-+ custom_filename_quote_characters = xrealloc (custom_filename_quote_characters, i+1);
-+ for (i = j = 0; c = default_filename_quote_characters[i]; i++)
-+ {
-+ if (c == should_expand_dirname || c == nextch || c == closer)
-+ continue;
-+ custom_filename_quote_characters[j++] = c;
-+ }
-+ custom_filename_quote_characters[j] = '\0';
-+ rl_filename_quote_characters = custom_filename_quote_characters;
-+ }
- }
- else
-***************
-*** 2759,2762 ****
---- 2857,2871 ----
- }
-
-+ /* no_symbolic_links == 0 -> use (default) logical view of the file system.
-+ local_dirname[0] == '.' && local_dirname[1] == '/' means files in the
-+ current directory (./).
-+ local_dirname[0] == '.' && local_dirname[1] == 0 means relative pathnames
-+ in the current directory (e.g., lib/sh).
-+ XXX - should we do spelling correction on these? */
-+
-+ /* This is test as it was in bash-4.2: skip relative pathnames in current
-+ directory. Change test to
-+ (local_dirname[0] != '.' || (local_dirname[1] && local_dirname[1] != '/'))
-+ if we want to skip paths beginning with ./ also. */
- if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1]))
- {
-***************
-*** 2764,2767 ****
---- 2873,2885 ----
- int len1, len2;
-
-+ /* If we have a relative path
-+ (local_dirname[0] != '/' && local_dirname[0] != '.')
-+ that is canonical after appending it to the current directory, then
-+ temp1 = temp2+'/'
-+ That is,
-+ strcmp (temp1, temp2) == 0
-+ after adding a slash to temp2 below. It should be safe to not
-+ change those.
-+ */
- t = get_working_directory ("symlink-hook");
- temp1 = make_absolute (local_dirname, t);
-***************
-*** 2798,2802 ****
- }
- }
-! return_value |= STREQ (local_dirname, temp2) == 0;
- free (local_dirname);
- *dirname = temp2;
---- 2916,2928 ----
- }
- }
-!
-! /* dircomplete_expand_relpath == 0 means we want to leave relative
-! pathnames that are unchanged by canonicalization alone.
-! *local_dirname != '/' && *local_dirname != '.' == relative pathname
-! (consistent with general.c:absolute_pathname())
-! temp1 == temp2 (after appending a slash to temp2) means the pathname
-! is not changed by canonicalization as described above. */
-! if (dircomplete_expand_relpath || ((local_dirname[0] != '/' && local_dirname[0] != '.') && STREQ (temp1, temp2) == 0))
-! return_value |= STREQ (local_dirname, temp2) == 0;
- free (local_dirname);
- *dirname = temp2;
-***************
-*** 3003,3012 ****
- orig_func = rl_completion_entry_function;
- orig_attempt_func = rl_attempted_completion_function;
-- orig_dir_func = rl_directory_rewrite_hook;
- orig_ignore_func = rl_ignore_some_completions_function;
- orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
- rl_completion_entry_function = rl_filename_completion_function;
- rl_attempted_completion_function = (rl_completion_func_t *)NULL;
-- rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
- rl_ignore_some_completions_function = filename_completion_ignore;
- rl_completer_word_break_characters = " \t\n\"\'";
---- 3129,3139 ----
- orig_func = rl_completion_entry_function;
- orig_attempt_func = rl_attempted_completion_function;
- orig_ignore_func = rl_ignore_some_completions_function;
- orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
-+
-+ orig_dir_func = save_directory_hook ();
-+
- rl_completion_entry_function = rl_filename_completion_function;
- rl_attempted_completion_function = (rl_completion_func_t *)NULL;
- rl_ignore_some_completions_function = filename_completion_ignore;
- rl_completer_word_break_characters = " \t\n\"\'";
-***************
-*** 3016,3023 ****
- rl_completion_entry_function = orig_func;
- rl_attempted_completion_function = orig_attempt_func;
-- rl_directory_rewrite_hook = orig_dir_func;
- rl_ignore_some_completions_function = orig_ignore_func;
- rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
-
- return r;
- }
---- 3143,3151 ----
- rl_completion_entry_function = orig_func;
- rl_attempted_completion_function = orig_attempt_func;
- rl_ignore_some_completions_function = orig_ignore_func;
- rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
-
-+ restore_directory_hook (orig_dir_func);
-+
- return r;
- }
-diff -NrC 2 ../bash-4.2-patched/bashline.h ./bashline.h
-*** ../bash-4.2-patched/bashline.h 2009-01-04 14:32:22.000000000 -0500
---- ./bashline.h 2012-05-07 16:27:18.000000000 -0400
-***************
-*** 34,41 ****
---- 34,46 ----
- extern int bash_re_edit __P((char *));
-
-+ extern void bashline_set_event_hook __P((void));
-+ extern void bashline_reset_event_hook __P((void));
-+
- extern int bind_keyseq_to_unix_command __P((char *));
-
- extern char **bash_default_completion __P((const char *, int, int, int, int));
-
-+ void set_directory_hook __P((void));
-+
- /* Used by programmable completion code. */
- extern char *command_word_completion_function __P((const char *, int));
-diff -NrC 2 ../bash-4.2-patched/builtins/shopt.def ./builtins/shopt.def
-*** ../bash-4.2-patched/builtins/shopt.def 2010-07-02 22:42:44.000000000 -0400
---- ./builtins/shopt.def 2012-05-07 16:27:18.000000000 -0400
-***************
-*** 62,65 ****
---- 62,69 ----
- #include "bashgetopt.h"
-
-+ #if defined (READLINE)
-+ # include "../bashline.h"
-+ #endif
-+
- #if defined (HISTORY)
- # include "../bashhist.h"
-***************
-*** 95,99 ****
- extern int no_empty_command_completion;
- extern int force_fignore;
-! extern int dircomplete_spelling;
-
- extern int enable_hostname_completion __P((int));
---- 99,103 ----
- extern int no_empty_command_completion;
- extern int force_fignore;
-! extern int dircomplete_spelling, dircomplete_expand;
-
- extern int enable_hostname_completion __P((int));
-***************
-*** 122,125 ****
---- 126,133 ----
- #endif
-
-+ #if defined (READLINE)
-+ static int shopt_set_complete_direxpand __P((char *, int));
-+ #endif
-+
- static int shopt_login_shell;
- static int shopt_compat31;
-***************
-*** 151,154 ****
---- 159,163 ----
- { "compat41", &shopt_compat41, set_compatibility_level },
- #if defined (READLINE)
-+ { "direxpand", &dircomplete_expand, shopt_set_complete_direxpand },
- { "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL },
- #endif
-***************
-*** 536,539 ****
---- 545,559 ----
- }
-
-+ #if defined (READLINE)
-+ static int
-+ shopt_set_complete_direxpand (option_name, mode)
-+ char *option_name;
-+ int mode;
-+ {
-+ set_directory_hook ();
-+ return 0;
-+ }
-+ #endif
-+
- #if defined (RESTRICTED_SHELL)
- /* Don't allow the value of restricted_shell to be modified. */
-Binary files ../bash-4.2-patched/doc/._bashref.pdf and ./doc/._bashref.pdf differ
-diff -NrC 2 ../bash-4.2-patched/doc/bash.1 ./doc/bash.1
-*** ../bash-4.2-patched/doc/bash.1 2011-01-16 15:31:39.000000000 -0500
---- ./doc/bash.1 2012-05-07 16:27:18.000000000 -0400
-***************
-*** 8949,8952 ****
---- 8949,8962 ----
- The default bash behavior remains as in previous versions.
- .TP 8
-+ .B direxpand
-+ If set,
-+ .B bash
-+ replaces directory names with the results of word expansion when performing
-+ filename completion. This changes the contents of the readline editing
-+ buffer.
-+ If not set,
-+ .B bash
-+ attempts to preserve what the user typed.
-+ .TP 8
- .B dirspell
- If set,
-diff -NrC 2 ../bash-4.2-patched/doc/bashref.texi ./doc/bashref.texi
-*** ../bash-4.2-patched/doc/bashref.texi 2011-01-16 15:31:57.000000000 -0500
---- ./doc/bashref.texi 2012-05-07 16:27:18.000000000 -0400
-***************
-*** 4536,4539 ****
---- 4536,4546 ----
- The default Bash behavior remains as in previous versions.
-
-+ @item direxpand
-+ If set, Bash
-+ replaces directory names with the results of word expansion when performing
-+ filename completion. This changes the contents of the readline editing
-+ buffer.
-+ If not set, Bash attempts to preserve what the user typed.
-+
- @item dirspell
- If set, Bash
-diff -NrC 2 ../bash-4.2-patched/tests/shopt.right ./tests/shopt.right
-*** ../bash-4.2-patched/tests/shopt.right 2010-07-02 23:36:30.000000000 -0400
---- ./tests/shopt.right 2012-05-07 16:27:18.000000000 -0400
-***************
-*** 13,16 ****
---- 13,17 ----
- shopt -u compat40
- shopt -u compat41
-+ shopt -u direxpand
- shopt -u dirspell
- shopt -u dotglob
-***************
-*** 69,72 ****
---- 70,74 ----
- shopt -u compat40
- shopt -u compat41
-+ shopt -u direxpand
- shopt -u dirspell
- shopt -u dotglob
-***************
-*** 102,105 ****
---- 104,108 ----
- compat40 off
- compat41 off
-+ direxpand off
- dirspell off
- dotglob off
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 28
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 29
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-030 b/shell-term-fm/bash/patches/bash42-030
deleted file mode 100644
index 261a619bb5..0000000000
--- a/shell-term-fm/bash/patches/bash42-030
+++ /dev/null
@@ -1,178 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-030
-
-Bug-Reported-by: Roman Rakus <rrakus@redhat.com>
-Bug-Reference-ID: <4D7DD91E.7040808@redhat.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00126.html
-
-Bug-Description:
-
-When attempting to glob strings in a multibyte locale, and those strings
-contain invalid multibyte characters that cause mbsnrtowcs to return 0,
-the globbing code loops infinitely.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c 2010-05-30 18:36:27.000000000 -0400
---- lib/glob/xmbsrtowcs.c 2011-03-22 16:06:47.000000000 -0400
-***************
-*** 36,39 ****
---- 36,41 ----
- #if HANDLE_MULTIBYTE
-
-+ #define WSBUF_INC 32
-+
- #ifndef FREE
- # define FREE(x) do { if (x) free (x); } while (0)
-***************
-*** 149,153 ****
- size_t wcnum; /* Number of wide characters in WSBUF */
- mbstate_t state; /* Conversion State */
-! size_t wcslength; /* Number of wide characters produced by the conversion. */
- const char *end_or_backslash;
- size_t nms; /* Number of multibyte characters to convert at one time. */
---- 151,155 ----
- size_t wcnum; /* Number of wide characters in WSBUF */
- mbstate_t state; /* Conversion State */
-! size_t n, wcslength; /* Number of wide characters produced by the conversion. */
- const char *end_or_backslash;
- size_t nms; /* Number of multibyte characters to convert at one time. */
-***************
-*** 172,176 ****
- tmp_p = p;
- tmp_state = state;
-! wcslength = mbsnrtowcs(NULL, &tmp_p, nms, 0, &tmp_state);
-
- /* Conversion failed. */
---- 174,189 ----
- tmp_p = p;
- tmp_state = state;
-!
-! if (nms == 0 && *p == '\\') /* special initial case */
-! nms = wcslength = 1;
-! else
-! wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
-!
-! if (wcslength == 0)
-! {
-! tmp_p = p; /* will need below */
-! tmp_state = state;
-! wcslength = 1; /* take a single byte */
-! }
-
- /* Conversion failed. */
-***************
-*** 187,191 ****
- wchar_t *wstmp;
-
-! wsbuf_size = wcnum+wcslength+1; /* 1 for the L'\0' or the potential L'\\' */
-
- wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
---- 200,205 ----
- wchar_t *wstmp;
-
-! while (wsbuf_size < wcnum+wcslength+1) /* 1 for the L'\0' or the potential L'\\' */
-! wsbuf_size += WSBUF_INC;
-
- wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
-***************
-*** 200,207 ****
-
- /* Perform the conversion. This is assumed to return 'wcslength'.
-! * It may set 'p' to NULL. */
-! mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
-
-! wcnum += wcslength;
-
- if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
---- 214,229 ----
-
- /* Perform the conversion. This is assumed to return 'wcslength'.
-! It may set 'p' to NULL. */
-! n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
-
-! /* Compensate for taking single byte on wcs conversion failure above. */
-! if (wcslength == 1 && (n == 0 || n == (size_t)-1))
-! {
-! state = tmp_state;
-! p = tmp_p;
-! wsbuf[wcnum++] = *p++;
-! }
-! else
-! wcnum += wcslength;
-
- if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
-***************
-*** 231,236 ****
- of DESTP and INDICESP are NULL. */
-
-- #define WSBUF_INC 32
--
- size_t
- xdupmbstowcs (destp, indicesp, src)
---- 253,256 ----
-*** ../bash-4.2-patched/lib/glob/glob.c 2009-11-14 18:39:30.000000000 -0500
---- lib/glob/glob.c 2012-07-07 12:09:56.000000000 -0400
-***************
-*** 201,206 ****
- size_t pat_n, dn_n;
-
- pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
-! dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
-
- ret = 0;
---- 201,209 ----
- size_t pat_n, dn_n;
-
-+ pat_wc = dn_wc = (wchar_t *)NULL;
-+
- pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
-! if (pat_n != (size_t)-1)
-! dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
-
- ret = 0;
-***************
-*** 222,225 ****
---- 225,230 ----
- ret = 1;
- }
-+ else
-+ ret = skipname (pat, dname, flags);
-
- FREE (pat_wc);
-***************
-*** 267,272 ****
- n = xdupmbstowcs (&wpathname, NULL, pathname);
- if (n == (size_t) -1)
-! /* Something wrong. */
-! return;
- orig_wpathname = wpathname;
-
---- 272,280 ----
- n = xdupmbstowcs (&wpathname, NULL, pathname);
- if (n == (size_t) -1)
-! {
-! /* Something wrong. Fall back to single-byte */
-! udequote_pathname (pathname);
-! return;
-! }
- orig_wpathname = wpathname;
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 29
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 30
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-031 b/shell-term-fm/bash/patches/bash42-031
deleted file mode 100644
index 419d4478ed..0000000000
--- a/shell-term-fm/bash/patches/bash42-031
+++ /dev/null
@@ -1,80 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-031
-
-Bug-Reported-by: Max Horn <max@quendi.de>
-Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html
-
-Bug-Description:
-
-A change between bash-4.1 and bash-4.2 to prevent the readline input hook
-from being called too frequently had the side effect of causing delays
-when reading pasted input on systems such as Mac OS X. This patch fixes
-those delays while retaining the bash-4.2 behavior.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/readline/input.c 2010-05-30 18:33:01.000000000 -0400
---- lib/readline/input.c 2012-06-25 21:08:42.000000000 -0400
-***************
-*** 410,414 ****
- rl_read_key ()
- {
-! int c;
-
- rl_key_sequence_length++;
---- 412,416 ----
- rl_read_key ()
- {
-! int c, r;
-
- rl_key_sequence_length++;
-***************
-*** 430,441 ****
- while (rl_event_hook)
- {
-! if (rl_gather_tyi () < 0) /* XXX - EIO */
- {
- rl_done = 1;
- return ('\n');
- }
- RL_CHECK_SIGNALS ();
-- if (rl_get_char (&c) != 0)
-- break;
- if (rl_done) /* XXX - experimental */
- return ('\n');
---- 432,447 ----
- while (rl_event_hook)
- {
-! if (rl_get_char (&c) != 0)
-! break;
-!
-! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */
- {
- rl_done = 1;
- return ('\n');
- }
-+ else if (r == 1) /* read something */
-+ continue;
-+
- RL_CHECK_SIGNALS ();
- if (rl_done) /* XXX - experimental */
- return ('\n');
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 30
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 31
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-032 b/shell-term-fm/bash/patches/bash42-032
deleted file mode 100644
index d4f25ca031..0000000000
--- a/shell-term-fm/bash/patches/bash42-032
+++ /dev/null
@@ -1,75 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-032
-
-Bug-Reported-by: Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
-Bug-Reference-ID: <OFDE975207.0C3622E5-ONC12579F3.00361A06-C12579F3.00365E39@orga-systems.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-05/msg00010.html
-
-Bug-Description:
-
-Bash-4.2 has problems with DEL characters in the expanded value of variables
-used in the same quoted string as variables that expand to nothing.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-20120427/subst.c 2012-04-22 16:19:10.000000000 -0400
---- subst.c 2012-05-07 16:06:35.000000000 -0400
-***************
-*** 8152,8155 ****
---- 8152,8163 ----
- dispose_word_desc (tword);
-
-+ /* Kill quoted nulls; we will add them back at the end of
-+ expand_word_internal if nothing else in the string */
-+ if (had_quoted_null && temp && QUOTED_NULL (temp))
-+ {
-+ FREE (temp);
-+ temp = (char *)NULL;
-+ }
-+
- goto add_string;
- break;
-***************
-*** 8556,8560 ****
- if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
- tword->flags |= W_QUOTED;
-! if (had_quoted_null)
- tword->flags |= W_HASQUOTEDNULL;
- list = make_word_list (tword, (WORD_LIST *)NULL);
---- 8564,8568 ----
- if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
- tword->flags |= W_QUOTED;
-! if (had_quoted_null && QUOTED_NULL (istring))
- tword->flags |= W_HASQUOTEDNULL;
- list = make_word_list (tword, (WORD_LIST *)NULL);
-***************
-*** 8587,8591 ****
- if (word->flags & W_NOEXPAND)
- tword->flags |= W_NOEXPAND;
-! if (had_quoted_null)
- tword->flags |= W_HASQUOTEDNULL; /* XXX */
- list = make_word_list (tword, (WORD_LIST *)NULL);
---- 8595,8599 ----
- if (word->flags & W_NOEXPAND)
- tword->flags |= W_NOEXPAND;
-! if (had_quoted_null && QUOTED_NULL (istring))
- tword->flags |= W_HASQUOTEDNULL; /* XXX */
- list = make_word_list (tword, (WORD_LIST *)NULL);
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 31
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 32
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-033 b/shell-term-fm/bash/patches/bash42-033
deleted file mode 100644
index e58d7286e2..0000000000
--- a/shell-term-fm/bash/patches/bash42-033
+++ /dev/null
@@ -1,57 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-033
-
-Bug-Reported-by: David Leverton <levertond@googlemail.com>
-Bug-Reference-ID: <4FCCE737.1060603@googlemail.com>
-Bug-Reference-URL:
-
-Bug-Description:
-
-Bash uses a static buffer when expanding the /dev/fd prefix for the test
-and conditional commands, among other uses, when it should use a dynamic
-buffer to avoid buffer overflow.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/sh/eaccess.c 2011-01-08 20:50:10.000000000 -0500
---- lib/sh/eaccess.c 2012-06-04 21:06:43.000000000 -0400
-***************
-*** 83,86 ****
---- 83,88 ----
- struct stat *finfo;
- {
-+ static char *pbuf = 0;
-+
- if (*path == '\0')
- {
-***************
-*** 107,111 ****
- On most systems, with the notable exception of linux, this is
- effectively a no-op. */
-! char pbuf[32];
- strcpy (pbuf, DEV_FD_PREFIX);
- strcat (pbuf, path + 8);
---- 109,113 ----
- On most systems, with the notable exception of linux, this is
- effectively a no-op. */
-! pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
- strcpy (pbuf, DEV_FD_PREFIX);
- strcat (pbuf, path + 8);
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 32
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 33
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-034 b/shell-term-fm/bash/patches/bash42-034
deleted file mode 100644
index e4f05e1036..0000000000
--- a/shell-term-fm/bash/patches/bash42-034
+++ /dev/null
@@ -1,46 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-034
-
-Bug-Reported-by: "Davide Brini" <dave_br@gmx.com>
-Bug-Reference-ID: <20120604164154.69781EC04B@imaps.oficinas.atrapalo.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-06/msg00030.html
-
-Bug-Description:
-
-In bash-4.2, the history code would inappropriately add a semicolon to
-multi-line compound array assignments when adding them to the history.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/parse.y 2011-11-21 18:03:36.000000000 -0500
---- parse.y 2012-06-07 12:48:47.000000000 -0400
-***************
-*** 4900,4905 ****
---- 4916,4924 ----
- return (current_command_line_count == 2 ? "\n" : "");
- }
-
-+ if (parser_state & PST_COMPASSIGN)
-+ return (" ");
-+
- /* First, handle some special cases. */
- /*(*/
- /* If we just read `()', assume it's a function definition, and don't
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 33
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 34
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-035 b/shell-term-fm/bash/patches/bash42-035
deleted file mode 100644
index 6f0be6f908..0000000000
--- a/shell-term-fm/bash/patches/bash42-035
+++ /dev/null
@@ -1,66 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-035
-
-Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
-Bug-Reference-ID: <2766482.Ksm3GrSoYi@smorgbox>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-06/msg00071.html
-
-Bug-Description:
-
-When given a number of lines to read, `mapfile -n lines' reads one too many.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/mapfile.def 2010-05-29 22:09:47.000000000 -0400
---- builtins/mapfile.def 2012-06-20 09:48:33.000000000 -0400
-***************
-*** 196,206 ****
- interrupt_immediately++;
- for (array_index = origin, line_count = 1;
-! zgetline (fd, &line, &line_length, unbuffered_read) != -1;
-! array_index++, line_count++)
- {
-- /* Have we exceeded # of lines to store? */
-- if (line_count_goal != 0 && line_count > line_count_goal)
-- break;
--
- /* Remove trailing newlines? */
- if (flags & MAPF_CHOP)
---- 196,202 ----
- interrupt_immediately++;
- for (array_index = origin, line_count = 1;
-! zgetline (fd, &line, &line_length, unbuffered_read) != -1;
-! array_index++)
- {
- /* Remove trailing newlines? */
- if (flags & MAPF_CHOP)
-***************
-*** 218,221 ****
---- 214,222 ----
-
- bind_array_element (entry, array_index, line, 0);
-+
-+ /* Have we exceeded # of lines to store? */
-+ line_count++;
-+ if (line_count_goal != 0 && line_count > line_count_goal)
-+ break;
- }
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 34
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 35
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-036 b/shell-term-fm/bash/patches/bash42-036
deleted file mode 100644
index 73fac408aa..0000000000
--- a/shell-term-fm/bash/patches/bash42-036
+++ /dev/null
@@ -1,92 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-036
-
-Bug-Reported-by: gregrwm <backuppc-users@whitleymott.net>
-Bug-Reference-ID: <CAD+dB9B4JG+qUwZBQUwiQmVt0j6NDn=DDTxr9R+nkA8DL4KLJA@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-05/msg00108.html
-
-Bug-Description:
-
-Bash-4.2 produces incorrect word splitting results when expanding
-double-quoted $@ in the same string as and adjacent to other variable
-expansions. The $@ should be split, the other expansions should not.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2012-05-02 12:02:33.000000000 -0400
---- subst.c 2012-07-08 21:19:32.000000000 -0400
-***************
-*** 7923,7927 ****
- /* State flags */
- int had_quoted_null;
-! int has_dollar_at;
- int tflag;
- int pflags; /* flags passed to param_expand */
---- 7923,7927 ----
- /* State flags */
- int had_quoted_null;
-! int has_dollar_at, temp_has_dollar_at;
- int tflag;
- int pflags; /* flags passed to param_expand */
-***************
-*** 8128,8138 ****
- *expanded_something = 1;
-
-! has_dollar_at = 0;
- pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
- if (word->flags & W_NOSPLIT2)
- pflags |= PF_NOSPLIT2;
- tword = param_expand (string, &sindex, quoted, expanded_something,
-! &has_dollar_at, &quoted_dollar_at,
- &had_quoted_null, pflags);
-
- if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
---- 8128,8139 ----
- *expanded_something = 1;
-
-! temp_has_dollar_at = 0;
- pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
- if (word->flags & W_NOSPLIT2)
- pflags |= PF_NOSPLIT2;
- tword = param_expand (string, &sindex, quoted, expanded_something,
-! &temp_has_dollar_at, &quoted_dollar_at,
- &had_quoted_null, pflags);
-+ has_dollar_at += temp_has_dollar_at;
-
- if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
-***************
-*** 8275,8281 ****
- temp = (char *)NULL;
-
-! has_dollar_at = 0;
- /* Need to get W_HASQUOTEDNULL flag through this function. */
-! list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &has_dollar_at, (int *)NULL);
-
- if (list == &expand_word_error || list == &expand_word_fatal)
---- 8276,8283 ----
- temp = (char *)NULL;
-
-! temp_has_dollar_at = 0; /* XXX */
- /* Need to get W_HASQUOTEDNULL flag through this function. */
-! list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &temp_has_dollar_at, (int *)NULL);
-! has_dollar_at += temp_has_dollar_at;
-
- if (list == &expand_word_error || list == &expand_word_fatal)
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 35
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 36
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-037 b/shell-term-fm/bash/patches/bash42-037
deleted file mode 100644
index a12b8a7eeb..0000000000
--- a/shell-term-fm/bash/patches/bash42-037
+++ /dev/null
@@ -1,112 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-037
-
-Bug-Reported-by: Jakub Filak
-Bug-Reference-ID:
-Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289
-
-Bug-Description:
-
-Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy'
-commands leads to an infinite loop.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/readline/vi_mode.c 2011-02-25 11:17:02.000000000 -0500
---- lib/readline/vi_mode.c 2012-06-02 12:24:47.000000000 -0400
-***************
-*** 1235,1243 ****
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-! else if (vi_redoing)
- {
- _rl_vimvcxt->motion = _rl_vi_last_motion;
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
- #if defined (READLINE_CALLBACKS)
- else if (RL_ISSTATE (RL_STATE_CALLBACK))
---- 1297,1313 ----
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
- {
- _rl_vimvcxt->motion = _rl_vi_last_motion;
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-+ else if (vi_redoing) /* handle redoing `dd' here */
-+ {
-+ _rl_vimvcxt->motion = _rl_vi_last_motion;
-+ rl_mark = rl_end;
-+ rl_beg_of_line (1, key);
-+ RL_UNSETSTATE (RL_STATE_VIMOTION);
-+ r = vidomove_dispatch (_rl_vimvcxt);
-+ }
- #if defined (READLINE_CALLBACKS)
- else if (RL_ISSTATE (RL_STATE_CALLBACK))
-***************
-*** 1317,1325 ****
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-! else if (vi_redoing)
- {
- _rl_vimvcxt->motion = _rl_vi_last_motion;
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
- #if defined (READLINE_CALLBACKS)
- else if (RL_ISSTATE (RL_STATE_CALLBACK))
---- 1387,1403 ----
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
- {
- _rl_vimvcxt->motion = _rl_vi_last_motion;
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-+ else if (vi_redoing) /* handle redoing `cc' here */
-+ {
-+ _rl_vimvcxt->motion = _rl_vi_last_motion;
-+ rl_mark = rl_end;
-+ rl_beg_of_line (1, key);
-+ RL_UNSETSTATE (RL_STATE_VIMOTION);
-+ r = vidomove_dispatch (_rl_vimvcxt);
-+ }
- #if defined (READLINE_CALLBACKS)
- else if (RL_ISSTATE (RL_STATE_CALLBACK))
-***************
-*** 1378,1381 ****
---- 1456,1472 ----
- r = rl_domove_motion_callback (_rl_vimvcxt);
- }
-+ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
-+ {
-+ _rl_vimvcxt->motion = _rl_vi_last_motion;
-+ r = rl_domove_motion_callback (_rl_vimvcxt);
-+ }
-+ else if (vi_redoing) /* handle redoing `yy' here */
-+ {
-+ _rl_vimvcxt->motion = _rl_vi_last_motion;
-+ rl_mark = rl_end;
-+ rl_beg_of_line (1, key);
-+ RL_UNSETSTATE (RL_STATE_VIMOTION);
-+ r = vidomove_dispatch (_rl_vimvcxt);
-+ }
- #if defined (READLINE_CALLBACKS)
- else if (RL_ISSTATE (RL_STATE_CALLBACK))
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 36
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 37
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-038 b/shell-term-fm/bash/patches/bash42-038
deleted file mode 100644
index 411e4dd543..0000000000
--- a/shell-term-fm/bash/patches/bash42-038
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-038
-
-Bug-Reported-by: armandsl@gmail.com
-Bug-Reference-ID: <20120822112810.8D14920040@windmill.latviatours.lv>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-08/msg00049.html
-
-Bug-Description:
-
-If a backslash-newline (which is removed) with no other input is given as
-input to `read', the shell tries to dereference a null pointer and seg faults.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/read.def 2012-03-11 17:52:44.000000000 -0400
---- builtins/read.def 2012-08-22 11:53:09.000000000 -0400
-***************
-*** 792,796 ****
- #endif
-
-! if (saw_escape)
- {
- t = dequote_string (input_string);
---- 847,851 ----
- #endif
-
-! if (saw_escape && input_string && *input_string)
- {
- t = dequote_string (input_string);
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 37
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 38
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-039 b/shell-term-fm/bash/patches/bash42-039
deleted file mode 100644
index 21457af12b..0000000000
--- a/shell-term-fm/bash/patches/bash42-039
+++ /dev/null
@@ -1,58 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-039
-
-Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
-Bug-Reference-ID: <1498458.MpVlmOXDB7@smorgbox>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-09/msg00008.html
-
-Bug-Description:
-
-Under certain circumstances, bash attempts to expand variables in arithmetic
-expressions even when evaluation is being suppressed.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/expr.c 2011-11-21 18:03:35.000000000 -0500
---- expr.c 2012-09-09 16:31:18.000000000 -0400
-***************
-*** 1010,1013 ****
---- 1073,1082 ----
- #endif
-
-+ /*itrace("expr_streval: %s: noeval = %d", tok, noeval);*/
-+ /* If we are suppressing evaluation, just short-circuit here instead of
-+ going through the rest of the evaluator. */
-+ if (noeval)
-+ return (0);
-+
- /* [[[[[ */
- #if defined (ARRAY_VARS)
-***************
-*** 1183,1186 ****
---- 1256,1263 ----
-
- *cp = '\0';
-+ /* XXX - watch out for pointer aliasing issues here */
-+ if (curlval.tokstr && curlval.tokstr == tokstr)
-+ init_lvalue (&curlval);
-+
- FREE (tokstr);
- tokstr = savestring (tp);
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 38
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 39
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-040 b/shell-term-fm/bash/patches/bash42-040
deleted file mode 100644
index 1de0fe370b..0000000000
--- a/shell-term-fm/bash/patches/bash42-040
+++ /dev/null
@@ -1,56 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-040
-
-Bug-Reported-by: Andrey Zaitsev <jstcdr@gmail.com>
-Bug-Reference-ID: <CAEZVQT5PJ1Mb_Zh8LT5qz8sv+-9Q6hGfQ5DU9ZxdJ+gV7xBUaQ@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00144.html
-
-Bug-Description:
-
-Output redirection applied to builtin commands missed I/O errors if
-they happened when the file descriptor was closed, rather than on write
-(e.g., like with an out-of-space error on a remote NFS file system).
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/redir.c 2011-01-02 16:00:31.000000000 -0500
---- redir.c 2012-04-24 20:42:12.000000000 -0400
-***************
-*** 1092,1099 ****
- #if defined (BUFFERED_INPUT)
- check_bash_input (redirector);
-! close_buffered_fd (redirector);
- #else /* !BUFFERED_INPUT */
-! close (redirector);
- #endif /* !BUFFERED_INPUT */
- }
- break;
---- 1092,1101 ----
- #if defined (BUFFERED_INPUT)
- check_bash_input (redirector);
-! r = close_buffered_fd (redirector);
- #else /* !BUFFERED_INPUT */
-! r = close (redirector);
- #endif /* !BUFFERED_INPUT */
-+ if (r < 0 && (flags & RX_INTERNAL) && (errno == EIO || errno == ENOSPC))
-+ REDIRECTION_ERROR (r, errno, -1);
- }
- break;
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 39
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 40
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-041 b/shell-term-fm/bash/patches/bash42-041
deleted file mode 100644
index 37d4ac7043..0000000000
--- a/shell-term-fm/bash/patches/bash42-041
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-041
-
-Bug-Reported-by: Andrey Borzenkov <arvidjaar@gmail.com>
-Bug-Reference-ID: <20121202205200.2134478e@opensuse.site>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-12/msg00008.html
-
-Bug-Description:
-
-Process substitution incorrectly inherited a flag that inhibited using the
-(local) temporary environment for variable lookups if it was providing
-the filename to a redirection. The intent the flag is to enforce the
-Posix command expansion ordering rules.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/subst.c 2012-07-14 15:53:20.000000000 -0400
---- subst.c 2012-12-02 22:26:54.000000000 -0500
-***************
-*** 5125,5128 ****
---- 5129,5136 ----
- #endif /* HAVE_DEV_FD */
-
-+ /* subshells shouldn't have this flag, which controls using the temporary
-+ environment for variable lookups. */
-+ expanding_redir = 0;
-+
- result = parse_and_execute (string, "process substitution", (SEVAL_NONINT|SEVAL_NOHIST));
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 40
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 41
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-042 b/shell-term-fm/bash/patches/bash42-042
deleted file mode 100644
index 1ce0cae30d..0000000000
--- a/shell-term-fm/bash/patches/bash42-042
+++ /dev/null
@@ -1,57 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-042
-
-Bug-Reported-by: Adam Pippin <adam@gp-inc.ca>
-Bug-Reference-ID: <CAPYbNHr6ucZFOoWsRdUJj6KP3Ju0j1bkESa_cmb7iU+kZwdVpg@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-11/msg00087.html
-
-Bug-Description:
-
-Compilation failed after specifying the `--enable-minimal-config' option to
-configure (more specifically, specifying `--disable-alias').
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/parse.y 2012-07-08 21:53:33.000000000 -0400
---- parse.y 2012-10-14 20:20:34.000000000 -0400
-***************
-*** 2394,2397 ****
---- 2392,2396 ----
- to consume the quoted newline and move to the next character in
- the expansion. */
-+ #if defined (ALIAS)
- if (expanding_alias () && shell_input_line[shell_input_line_index+1] == '\0')
- {
-***************
-*** 2404,2408 ****
- goto next_alias_char; /* and get next character */
- }
-! else
- goto restart_read;
- }
---- 2403,2408 ----
- goto next_alias_char; /* and get next character */
- }
-! else
-! #endif
- goto restart_read;
- }
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 41
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 42
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-043 b/shell-term-fm/bash/patches/bash42-043
deleted file mode 100644
index b25a5ee38f..0000000000
--- a/shell-term-fm/bash/patches/bash42-043
+++ /dev/null
@@ -1,65 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-043
-
-Bug-Reported-by: konsolebox <konsolebox@gmail.com>
-Bug-Reference-ID: <CAJnmqwZuGKLgMsMwxRK4LL+2NN+HgvmKzrnode99QBGrcgX1Lw@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2013-01/msg00138.html
-
-Bug-Description:
-
-When SIGCHLD is trapped, and a SIGCHLD trap handler runs when a pending
-`read -t' invocation times out and generates SIGALRM, bash can crash with
-a segmentation fault.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/builtins/read.def 2012-10-31 21:22:51.000517000 -0400
---- builtins/read.def 2013-01-25 10:28:16.000038000 -0500
-***************
-*** 386,393 ****
- /* Tricky. The top of the unwind-protect stack is the free of
- input_string. We want to run all the rest and use input_string,
-! so we have to remove it from the stack. */
-! remove_unwind_protect ();
-! run_unwind_frame ("read_builtin");
- input_string[i] = '\0'; /* make sure it's terminated */
- retval = 128+SIGALRM;
- goto assign_vars;
---- 386,403 ----
- /* Tricky. The top of the unwind-protect stack is the free of
- input_string. We want to run all the rest and use input_string,
-! so we have to save input_string temporarily, run the unwind-
-! protects, then restore input_string so we can use it later. */
-!
- input_string[i] = '\0'; /* make sure it's terminated */
-+ if (i == 0)
-+ {
-+ t = (char *)xmalloc (1);
-+ t[0] = 0;
-+ }
-+ else
-+ t = savestring (input_string);
-+
-+ run_unwind_frame ("read_builtin");
-+ input_string = t;
- retval = 128+SIGALRM;
- goto assign_vars;
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 42
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 43
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-044 b/shell-term-fm/bash/patches/bash42-044
deleted file mode 100644
index e5bf28323c..0000000000
--- a/shell-term-fm/bash/patches/bash42-044
+++ /dev/null
@@ -1,70 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-044
-
-Bug-Reported-by: "Dashing" <dashing@hushmail.com>
-Bug-Reference-ID: <20130211175049.D90786F446@smtp.hushmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2013-02/msg00030.html
-
-Bug-Description:
-
-When converting a multibyte string to a wide character string as part of
-pattern matching, bash does not handle the end of the string correctly,
-causing the search for the NUL to go beyond the end of the string and
-reference random memory. Depending on the contents of that memory, bash
-can produce errors or crash.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c 2012-07-08 21:53:19.000000000 -0400
---- lib/glob/xmbsrtowcs.c 2013-02-12 12:00:39.000000000 -0500
-***************
-*** 217,220 ****
---- 217,226 ----
- n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
-
-+ if (n == 0 && p == 0)
-+ {
-+ wsbuf[wcnum] = L'\0';
-+ break;
-+ }
-+
- /* Compensate for taking single byte on wcs conversion failure above. */
- if (wcslength == 1 && (n == 0 || n == (size_t)-1))
-***************
-*** 222,226 ****
- state = tmp_state;
- p = tmp_p;
-! wsbuf[wcnum++] = *p++;
- }
- else
---- 228,238 ----
- state = tmp_state;
- p = tmp_p;
-! wsbuf[wcnum] = *p;
-! if (*p == 0)
-! break;
-! else
-! {
-! wcnum++; p++;
-! }
- }
- else
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 43
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 44
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash42-045 b/shell-term-fm/bash/patches/bash42-045
deleted file mode 100644
index e0f8559ece..0000000000
--- a/shell-term-fm/bash/patches/bash42-045
+++ /dev/null
@@ -1,53 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-045
-
-Bug-Reported-by: Stephane Chazelas <stephane.chazelas@gmail.com>
-Bug-Reference-ID: <20130218195539.GA9620@chaz.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2013-02/msg00080.html
-
-Bug-Description:
-
-The <&n- and >&n- redirections, which move one file descriptor to another,
-leave the file descriptor closed when applied to builtins or compound
-commands.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2-patched/redir.c 2013-01-30 11:56:09.000000000 -0500
---- redir.c 2013-02-19 09:38:36.000000000 -0500
-***************
-*** 1008,1011 ****
---- 1008,1021 ----
- REDIRECTION_ERROR (r, errno, -1);
- }
-+ if ((flags & RX_UNDOABLE) && (ri == r_move_input || ri == r_move_output))
-+ {
-+ /* r_move_input and r_move_output add an additional close()
-+ that needs to be undone */
-+ if (fcntl (redirector, F_GETFD, 0) != -1)
-+ {
-+ r = add_undo_redirect (redir_fd, r_close_this, -1);
-+ REDIRECTION_ERROR (r, errno, -1);
-+ }
-+ }
- #if defined (BUFFERED_INPUT)
- check_bash_input (redirector);
-
-*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
---- patchlevel.h Thu Feb 24 21:41:34 2011
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 44
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 45
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-001 b/shell-term-fm/bash/patches/bash43-001
new file mode 100644
index 0000000000..ea1c6b2653
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-001
@@ -0,0 +1,58 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-001
+
+Bug-Reported-by: NBaH <nbah@sfr.fr>
+Bug-Reference-ID: <ler0b5$iu9$1@speranza.aioe.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html
+
+Bug-Description:
+
+A missing check for a valid option prevented `test -R' from working. There
+is another problem that causes bash to look up the wrong variable name when
+processing the argument to `test -R'.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500
+--- test.c 2014-02-28 21:22:44.000000000 -0500
+***************
+*** 647,652 ****
+
+ case 'R':
+! v = find_variable (arg);
+! return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE);
+ }
+
+--- 647,652 ----
+
+ case 'R':
+! v = find_variable_noref (arg);
+! return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE);
+ }
+
+***************
+*** 724,727 ****
+--- 724,728 ----
+ case 'u': case 'v': case 'w': case 'x': case 'z':
+ case 'G': case 'L': case 'O': case 'S': case 'N':
++ case 'R':
+ return (1);
+ }
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 0
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-002 b/shell-term-fm/bash/patches/bash43-002
new file mode 100644
index 0000000000..735b7b81a1
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-002
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-002
+
+Bug-Reported-by: Moe Tunes <moetunes42@gmail.com>
+Bug-Reference-ID: <53103F49.3070100@gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html
+
+Bug-Description:
+
+A change to save state while running the DEBUG trap caused pipelines to hang
+on systems which need process group synchronization while building pipelines.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500
+--- trap.c 2014-02-28 09:51:43.000000000 -0500
+***************
+*** 921,925 ****
+
+ #if defined (JOB_CONTROL)
+! save_pipeline (1); /* XXX only provides one save level */
+ #endif
+
+--- 921,926 ----
+
+ #if defined (JOB_CONTROL)
+! if (sig != DEBUG_TRAP) /* run_debug_trap does this */
+! save_pipeline (1); /* XXX only provides one save level */
+ #endif
+
+***************
+*** 941,945 ****
+
+ #if defined (JOB_CONTROL)
+! restore_pipeline (1);
+ #endif
+
+--- 942,947 ----
+
+ #if defined (JOB_CONTROL)
+! if (sig != DEBUG_TRAP) /* run_debug_trap does this */
+! restore_pipeline (1);
+ #endif
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-003 b/shell-term-fm/bash/patches/bash43-003
new file mode 100644
index 0000000000..0f32f410d3
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-003
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-003
+
+Bug-Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com>
+Bug-Reference-ID: <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
+
+Bug-Description:
+
+When in callback mode, some readline commands can cause readline to seg
+fault by passing invalid contexts to callback functions.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400
+***************
+*** 745,749 ****
+
+ RL_CHECK_SIGNALS ();
+! if (r == 0) /* success! */
+ {
+ _rl_keyseq_chain_dispose ();
+--- 745,750 ----
+
+ RL_CHECK_SIGNALS ();
+! /* We only treat values < 0 specially to simulate recursion. */
+! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
+ {
+ _rl_keyseq_chain_dispose ();
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 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_ */
diff --git a/shell-term-fm/bash/patches/bash43-004 b/shell-term-fm/bash/patches/bash43-004
new file mode 100644
index 0000000000..010f04a2a8
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-004
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-004
+
+Bug-Reported-by: Daan van Rossum <daan@flash.uchicago.edu>
+Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu>
+Bug-Reference-URL:
+
+Bug-Description:
+
+The `.' command in vi mode cannot undo multi-key commands beginning with
+`c', `d', and `y' (command plus motion specifier).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500
+***************
+*** 965,969 ****
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+! rl_key_sequence_length == 1 && /* XXX */
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+--- 965,969 ----
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+! _rl_dispatching_keymap == vi_movement_keymap &&
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-005 b/shell-term-fm/bash/patches/bash43-005
new file mode 100644
index 0000000000..bcd40697cb
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-005
@@ -0,0 +1,63 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-005
+
+Bug-Reported-by: David Sines <dave.gma@googlemail.com>
+Bug-Reference-ID: <CAO3BAa_CK_Rgkhdfzs+NJ4KFYdB9qW3pvXQK0xLCi6GMmDU8bw@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html
+
+Bug-Description:
+
+When in Posix mode, bash did not correctly interpret the ANSI-C-style
+$'...' quoting mechanism when performing pattern substitution word
+expansions within double quotes.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500
+--- parse.y 2014-03-07 20:57:15.000000000 -0500
+***************
+*** 3399,3403 ****
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+--- 3399,3403 ----
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+*** ../bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500
+--- y.tab.c 2014-03-28 10:41:15.000000000 -0400
+***************
+*** 5711,5715 ****
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+--- 5711,5715 ----
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-006 b/shell-term-fm/bash/patches/bash43-006
new file mode 100644
index 0000000000..24ff057a55
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-006
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-006
+
+Bug-Reported-by: Eduardo A . Bustamante Lopez <dualbus@gmail.com>
+Bug-Reference-ID: <20140228170013.GA16015@dualbus.me>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html
+
+Bug-Description:
+
+A shell that started with job control active but was not interactive left
+the terminal in the wrong process group when exiting, causing its parent
+shell to get a stop signal when it attempted to read from the terminal.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500
+--- jobs.c 2014-03-02 18:05:09.000000000 -0500
+***************
+*** 4375,4379 ****
+ end_job_control ()
+ {
+! if (interactive_shell) /* XXX - should it be interactive? */
+ {
+ terminate_stopped_jobs ();
+--- 4375,4379 ----
+ end_job_control ()
+ {
+! if (interactive_shell || job_control) /* XXX - should it be just job_control? */
+ {
+ terminate_stopped_jobs ();
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-007 b/shell-term-fm/bash/patches/bash43-007
new file mode 100644
index 0000000000..0d62c9ec6f
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-007
@@ -0,0 +1,50 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-007
+
+Bug-Reported-by: geir.hauge@gmail.com
+Bug-Reference-ID: <20140318093650.B181C1C5B0B@gina.itea.ntnu.no>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html
+
+Bug-Description:
+
+Using compound assignments for associative arrays like
+
+assoc=( [x]= [y]=bar )
+
+left the value corresponding to the key `x' NULL. This caused subsequent
+lookups to interpret it as unset.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400
+--- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400
+***************
+*** 598,601 ****
+--- 598,606 ----
+ {
+ val = expand_assignment_string_to_string (val, 0);
++ if (val == 0)
++ {
++ val = (char *)xmalloc (1);
++ val[0] = '\0'; /* like do_assignment_internal */
++ }
+ free_val = 1;
+ }
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 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_ */
diff --git a/shell-term-fm/bash/patches/bash43-008 b/shell-term-fm/bash/patches/bash43-008
new file mode 100644
index 0000000000..0ae7c9522e
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-008
@@ -0,0 +1,188 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-008
+
+Bug-Reported-by: Stephane Chazelas <stephane.chazelas@gmail.com>
+Bug-Reference-ID: <20140318135901.GB22158@chaz.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html
+
+Bug-Description:
+
+Some extended glob patterns incorrectly matched filenames with a leading
+dot, regardless of the setting of the `dotglob' option.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400
+--- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400
+***************
+*** 211,214 ****
+--- 211,215 ----
+ case '!':
+ case '@':
++ case '?':
+ return (pat[1] == LPAREN);
+ default:
+*** ../bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500
+--- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400
+***************
+*** 180,202 ****
+ int flags;
+ {
+! char *pp, *pe, *t;
+! int n, r;
+
+ pp = pat + 2;
+! pe = pp + strlen (pp) - 1; /*(*/
+! if (*pe != ')')
+! return 0;
+! if ((t = strchr (pp, '|')) == 0) /* easy case first */
+ {
+ *pe = '\0';
+ r = skipname (pp, dname, flags); /*(*/
+ *pe = ')';
+ return r;
+ }
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
+ r = skipname (pp, dname, flags);
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+--- 180,215 ----
+ int flags;
+ {
+! char *pp, *pe, *t, *se;
+! int n, r, negate;
+
++ negate = *pat == '!';
+ pp = pat + 2;
+! se = pp + strlen (pp) - 1; /* end of string */
+! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */
+! /* we should check for invalid extglob pattern here */
+! /* if pe != se we have more of the pattern at the end of the extglob
+! pattern. Check the easy case first ( */
+! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0)
+ {
+ *pe = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++ r = mbskipname (pp, dname, flags);
++ #else
+ r = skipname (pp, dname, flags); /*(*/
++ #endif
+ *pe = ')';
+ return r;
+ }
++
++ /* check every subpattern */
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++ r = mbskipname (pp, dname, flags);
++ #else
+ r = skipname (pp, dname, flags);
++ #endif
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+***************
+*** 205,219 ****
+ } /*(*/
+
+! if (pp == pe) /* glob_patscan might find end of pattern */
+ return r;
+
+! *pe = '\0';
+! # if defined (HANDLE_MULTIBYTE)
+! r = mbskipname (pp, dname, flags); /*(*/
+! # else
+! r = skipname (pp, dname, flags); /*(*/
+! # endif
+! *pe = ')';
+! return r;
+ }
+ #endif
+--- 218,227 ----
+ } /*(*/
+
+! /* glob_patscan might find end of pattern */
+! if (pp == se)
+ return r;
+
+! /* but if it doesn't then we didn't match a leading dot */
+! return 0;
+ }
+ #endif
+***************
+*** 278,289 ****
+ {
+ #if EXTENDED_GLOB
+! wchar_t *pp, *pe, *t, n;
+! int r;
+
+ pp = pat + 2;
+! pe = pp + wcslen (pp) - 1; /*(*/
+! if (*pe != L')')
+! return 0;
+! if ((t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+--- 286,298 ----
+ {
+ #if EXTENDED_GLOB
+! wchar_t *pp, *pe, *t, n, *se;
+! int r, negate;
+
++ negate = *pat == L'!';
+ pp = pat + 2;
+! se = pp + wcslen (pp) - 1; /*(*/
+! pe = glob_patscan_wc (pp, se, 0);
+!
+! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+***************
+*** 292,295 ****
+--- 301,306 ----
+ return r;
+ }
++
++ /* check every subpattern */
+ while (t = glob_patscan_wc (pp, pe, '|'))
+ {
+***************
+*** 306,313 ****
+ return r;
+
+! *pe = L'\0';
+! r = wchkname (pp, dname); /*(*/
+! *pe = L')';
+! return r;
+ #else
+ return (wchkname (pat, dname));
+--- 317,322 ----
+ return r;
+
+! /* but if it doesn't then we didn't match a leading dot */
+! return 0;
+ #else
+ return (wchkname (pat, dname));
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-009 b/shell-term-fm/bash/patches/bash43-009
new file mode 100644
index 0000000000..015835cde5
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-009
@@ -0,0 +1,64 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-009
+
+Bug-Reported-by: Matthias Klose <doko@debian.org>
+Bug-Reference-ID: <53346FC8.6090005@debian.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00171.html
+
+Bug-Description:
+
+There is a problem with unsigned sign extension when attempting to reallocate
+the input line when it is fewer than 3 characters long and there has been a
+history expansion. The sign extension causes the shell to not reallocate the
+line, which results in a segmentation fault when it writes past the end.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/parse.y 2014-02-11 09:42:10.000000000 -0500
+--- parse.y 2014-03-27 16:33:29.000000000 -0400
+***************
+*** 2425,2429 ****
+ if (shell_input_line_terminator != EOF)
+ {
+! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3)
+ shell_input_line = (char *)xrealloc (shell_input_line,
+ 1 + (shell_input_line_size += 2));
+--- 2425,2429 ----
+ if (shell_input_line_terminator != EOF)
+ {
+! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size))
+ shell_input_line = (char *)xrealloc (shell_input_line,
+ 1 + (shell_input_line_size += 2));
+*** ../bash-4.3-patched/y.tab.c 2014-03-28 11:17:06.000000000 -0400
+--- y.tab.c 2014-04-07 11:48:31.000000000 -0400
+***************
+*** 4737,4741 ****
+ if (shell_input_line_terminator != EOF)
+ {
+! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3)
+ shell_input_line = (char *)xrealloc (shell_input_line,
+ 1 + (shell_input_line_size += 2));
+--- 4737,4741 ----
+ if (shell_input_line_terminator != EOF)
+ {
+! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size))
+ shell_input_line = (char *)xrealloc (shell_input_line,
+ 1 + (shell_input_line_size += 2));
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-010 b/shell-term-fm/bash/patches/bash43-010
new file mode 100644
index 0000000000..835a96ead3
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-010
@@ -0,0 +1,157 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-010
+
+Bug-Reported-by: Albert Shih <Albert.Shih@obspm.fr>
+Bug-Reference-ID: Wed, 5 Mar 2014 23:01:40 +0100
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00028.html
+
+Bug-Description:
+
+Patch (apply with `patch -p0'):
+
+This patch changes the behavior of programmable completion to compensate
+for two assumptions made by the bash-completion package. Bash-4.3 changed
+to dequote the argument to programmable completion only under certain
+circumstances, to make the behavior of compgen more consistent when run
+from the command line -- closer to the behavior when run by a shell function
+run as part of programmable completion. Bash-completion can pass quoted
+arguments to compgen when the original word to be completed was not quoted,
+expecting programmable completion to dequote the word before attempting
+completion.
+
+This patch fixes two cases:
+
+1. An empty string that bash-completion passes to compgen as a quoted null
+ string ('').
+
+2. An unquoted word that bash-completion quotes using single quotes or
+ backslashes before passing it to compgen.
+
+In these cases, since readline did not detect a quote character in the original
+word to be completed, bash-4.3
+
+*** ../bash-4.3/externs.h 2014-01-02 14:58:20.000000000 -0500
+--- externs.h 2014-03-13 14:42:57.000000000 -0400
+***************
+*** 325,328 ****
+--- 325,329 ----
+ extern char *sh_backslash_quote_for_double_quotes __P((char *));
+ extern int sh_contains_shell_metas __P((char *));
++ extern int sh_contains_quotes __P((char *));
+
+ /* declarations for functions defined in lib/sh/spell.c */
+*** ../bash-4.3/lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400
+--- lib/sh/shquote.c 2014-03-13 14:42:57.000000000 -0400
+***************
+*** 312,313 ****
+--- 312,327 ----
+ return (0);
+ }
++
++ int
++ sh_contains_quotes (string)
++ char *string;
++ {
++ char *s;
++
++ for (s = string; s && *s; s++)
++ {
++ if (*s == '\'' || *s == '"' || *s == '\\')
++ return 1;
++ }
++ return 0;
++ }
+*** ../bash-4.3/pcomplete.c 2013-08-26 15:23:45.000000000 -0400
+--- pcomplete.c 2014-03-25 17:23:23.000000000 -0400
+***************
+*** 184,187 ****
+--- 184,188 ----
+ COMPSPEC *pcomp_curcs;
+ const char *pcomp_curcmd;
++ const char *pcomp_curtxt;
+
+ #ifdef DEBUG
+***************
+*** 754,757 ****
+--- 755,784 ----
+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+ }
++ /* Intended to solve a mismatched assumption by bash-completion. If
++ the text to be completed is empty, but bash-completion turns it into
++ a quoted string ('') assuming that this code will dequote it before
++ calling readline, do the dequoting. */
++ else if (iscompgen && iscompleting &&
++ pcomp_curtxt && *pcomp_curtxt == 0 &&
++ text && (*text == '\'' || *text == '"') && text[1] == text[0] && text[2] == 0 &&
++ rl_filename_dequoting_function)
++ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
++ /* Another mismatched assumption by bash-completion. If compgen is being
++ run as part of bash-completion, and the argument to compgen is not
++ the same as the word originally passed to the programmable completion
++ code, dequote the argument if it has quote characters. It's an
++ attempt to detect when bash-completion is quoting its filename
++ argument before calling compgen. */
++ /* We could check whether gen_shell_function_matches is in the call
++ stack by checking whether the gen-shell-function-matches tag is in
++ the unwind-protect stack, but there's no function to do that yet.
++ We could simply check whether we're executing in a function by
++ checking variable_context, and may end up doing that. */
++ else if (iscompgen && iscompleting && rl_filename_dequoting_function &&
++ pcomp_curtxt && text &&
++ STREQ (pcomp_curtxt, text) == 0 &&
++ variable_context &&
++ sh_contains_quotes (text)) /* guess */
++ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+ else
+ dfn = savestring (text);
+***************
+*** 1523,1527 ****
+ {
+ COMPSPEC *cs, *oldcs;
+! const char *oldcmd;
+ STRINGLIST *ret;
+
+--- 1550,1554 ----
+ {
+ COMPSPEC *cs, *oldcs;
+! const char *oldcmd, *oldtxt;
+ STRINGLIST *ret;
+
+***************
+*** 1546,1552 ****
+--- 1573,1581 ----
+ oldcs = pcomp_curcs;
+ oldcmd = pcomp_curcmd;
++ oldtxt = pcomp_curtxt;
+
+ pcomp_curcs = cs;
+ pcomp_curcmd = cmd;
++ pcomp_curtxt = word;
+
+ ret = gen_compspec_completions (cs, cmd, word, start, end, foundp);
+***************
+*** 1554,1557 ****
+--- 1583,1587 ----
+ pcomp_curcs = oldcs;
+ pcomp_curcmd = oldcmd;
++ pcomp_curtxt = oldtxt;
+
+ /* We need to conditionally handle setting *retryp here */
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 10
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-011 b/shell-term-fm/bash/patches/bash43-011
new file mode 100644
index 0000000000..cdc1572eec
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-011
@@ -0,0 +1,49 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-011
+
+Bug-Reported-by: Egmont Koblinger <egmont@gmail.com>
+Bug-Reference-ID: <CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
+
+Bug-Description:
+
+The signal handling changes to bash and readline (to avoid running any code
+in a signal handler context) cause the cursor to be placed on the wrong
+line of a multi-line command after a ^C interrupts editing.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/lib/readline/display.c 2013-12-27 13:10:56.000000000 -0500
+--- lib/readline/display.c 2014-03-27 11:52:45.000000000 -0400
+***************
+*** 2678,2682 ****
+ if (_rl_echoing_p)
+ {
+! _rl_move_vert (_rl_vis_botlin);
+ _rl_vis_botlin = 0;
+ fflush (rl_outstream);
+--- 2678,2683 ----
+ if (_rl_echoing_p)
+ {
+! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */
+! _rl_move_vert (_rl_vis_botlin);
+ _rl_vis_botlin = 0;
+ fflush (rl_outstream);
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 10
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-012 b/shell-term-fm/bash/patches/bash43-012
new file mode 100644
index 0000000000..176fa15bdb
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-012
@@ -0,0 +1,43 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-012
+
+Bug-Reported-by: Eduardo A. Bustamante López<dualbus@gmail.com>
+Bug-Reference-ID: <5346B54C.4070205@case.edu>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html
+
+Bug-Description:
+
+When a SIGCHLD trap runs a command containing a shell builtin while
+a script is running `wait' to wait for all running children to complete,
+the SIGCHLD trap will not be run once for each child that terminates.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/jobs.c 2014-03-28 10:54:19.000000000 -0400
+--- jobs.c 2014-04-15 08:47:03.000000000 -0400
+***************
+*** 3598,3601 ****
+--- 3598,3602 ----
+ unwind_protect_pointer (the_pipeline);
+ unwind_protect_pointer (subst_assign_varlist);
++ unwind_protect_pointer (this_shell_builtin);
+
+ /* We have to add the commands this way because they will be run
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-013 b/shell-term-fm/bash/patches/bash43-013
new file mode 100644
index 0000000000..8f4006b489
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-013
@@ -0,0 +1,66 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-013
+
+Bug-Reported-by: <Trond.Endrestol@ximalas.info>
+Bug-Reference-ID: <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
+
+Bug-Description:
+
+Using reverse-i-search when horizontal scrolling is enabled does not redisplay
+the entire line containing the successful search results.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400
+--- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400
+***************
+*** 1638,1642 ****
+ the spot of first difference is before the end of the invisible chars,
+ lendiff needs to be adjusted. */
+! if (current_line == 0 && !_rl_horizontal_scroll_mode &&
+ current_invis_chars != visible_wrap_offset)
+ {
+--- 1638,1642 ----
+ the spot of first difference is before the end of the invisible chars,
+ lendiff needs to be adjusted. */
+! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
+ current_invis_chars != visible_wrap_offset)
+ {
+***************
+*** 1826,1831 ****
+ _rl_last_c_pos += bytes_to_insert;
+
+ if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+! goto clear_rest_of_line;
+ }
+ }
+--- 1826,1836 ----
+ _rl_last_c_pos += bytes_to_insert;
+
++ /* XXX - we only want to do this if we are at the end of the line
++ so we move there with _rl_move_cursor_relative */
+ if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+! {
+! _rl_move_cursor_relative (ne-new, new);
+! goto clear_rest_of_line;
+! }
+ }
+ }
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-014 b/shell-term-fm/bash/patches/bash43-014
new file mode 100644
index 0000000000..f8371967f4
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-014
@@ -0,0 +1,102 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-014
+
+Bug-Reported-by: Greg Wooledge <wooledg@eeg.ccf.org>
+Bug-Reference-ID: <20140418202123.GB7660@eeg.ccf.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html
+
+Bug-Description:
+
+Under certain circumstances, $@ is expanded incorrectly in contexts where
+word splitting is not performed.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/subst.c 2014-01-23 16:26:37.000000000 -0500
+--- subst.c 2014-04-19 15:41:26.000000000 -0400
+***************
+*** 3249,3254 ****
+--- 3249,3256 ----
+ return ((char *)NULL);
+
++ expand_no_split_dollar_star = 1;
+ w->flags |= W_NOSPLIT2;
+ l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
++ expand_no_split_dollar_star = 0;
+ if (l)
+ {
+***************
+*** 7848,7851 ****
+--- 7850,7857 ----
+ according to POSIX.2, this expands to a list of the positional
+ parameters no matter what IFS is set to. */
++ /* XXX - what to do when in a context where word splitting is not
++ performed? Even when IFS is not the default, posix seems to imply
++ that we behave like unquoted $* ? Maybe we should use PF_NOSPLIT2
++ here. */
+ temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted);
+
+***************
+*** 8817,8820 ****
+--- 8823,8827 ----
+ {
+ char *ifs_chars;
++ char *tstring;
+
+ ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL;
+***************
+*** 8831,8834 ****
+--- 8838,8865 ----
+ if (split_on_spaces)
+ list = list_string (istring, " ", 1); /* XXX quoted == 1? */
++ /* If we have $@ (has_dollar_at != 0) and we are in a context where we
++ don't want to split the result (W_NOSPLIT2), and we are not quoted,
++ we have already separated the arguments with the first character of
++ $IFS. In this case, we want to return a list with a single word
++ with the separator possibly replaced with a space (it's what other
++ shells seem to do).
++ quoted_dollar_at is internal to this function and is set if we are
++ passed an argument that is unquoted (quoted == 0) but we encounter a
++ double-quoted $@ while expanding it. */
++ else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2))
++ {
++ /* Only split and rejoin if we have to */
++ if (*ifs_chars && *ifs_chars != ' ')
++ {
++ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
++ tstring = string_list (list);
++ }
++ else
++ tstring = istring;
++ tword = make_bare_word (tstring);
++ if (tstring != istring)
++ free (tstring);
++ goto set_word_flags;
++ }
+ else if (has_dollar_at && ifs_chars)
+ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
+***************
+*** 8836,8839 ****
+--- 8867,8871 ----
+ {
+ tword = make_bare_word (istring);
++ set_word_flags:
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED))
+ tword->flags |= W_QUOTED;
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-015 b/shell-term-fm/bash/patches/bash43-015
new file mode 100644
index 0000000000..9c4e5ea48f
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-015
@@ -0,0 +1,58 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-015
+
+Bug-Reported-by: Clark Wang <dearvoid@gmail.com>
+Bug-Reference-ID: <CADv8-og2TOSoabXeNVXVGaXN3tEMHnYVq1rwOLe5meaRPSGRig@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html
+
+Bug-Description:
+
+When completing directory names, the directory name is dequoted twice.
+This causes problems for directories with single and double quotes in
+their names.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/bashline.c 2014-02-09 19:56:58.000000000 -0500
+--- bashline.c 2014-04-25 14:57:52.000000000 -0400
+***************
+*** 4168,4174 ****
+
+ qc = rl_dispatching ? rl_completion_quote_character : 0;
+! dfn = bash_dequote_filename ((char *)text, qc);
+ m1 = rl_completion_matches (dfn, rl_filename_completion_function);
+! free (dfn);
+
+ if (m1 == 0 || m1[0] == 0)
+--- 4209,4222 ----
+
+ qc = rl_dispatching ? rl_completion_quote_character : 0;
+! /* If rl_completion_found_quote != 0, rl_completion_matches will call the
+! filename dequoting function, causing the directory name to be dequoted
+! twice. */
+! if (rl_dispatching && rl_completion_found_quote == 0)
+! dfn = bash_dequote_filename ((char *)text, qc);
+! else
+! dfn = (char *)text;
+ m1 = rl_completion_matches (dfn, rl_filename_completion_function);
+! if (dfn != text)
+! free (dfn);
+
+ if (m1 == 0 || m1[0] == 0)
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-016 b/shell-term-fm/bash/patches/bash43-016
new file mode 100644
index 0000000000..882d5939b0
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-016
@@ -0,0 +1,132 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-016
+
+Bug-Reported-by: Pierre Gaston <pierre.gaston@gmail.com>
+Bug-Reference-ID: <CAPSX3sTCD61k1VQLJ5r-LWzEt+e7Xc-fxXmwn2u8EA5gJJej8Q@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html
+
+Bug-Description:
+
+An extended glob pattern containing a slash (`/') causes the globbing code
+to misinterpret it as a directory separator.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/lib/glob/glob.c 2014-03-28 10:54:23.000000000 -0400
+--- lib/glob/glob.c 2014-05-02 10:24:28.000000000 -0400
+***************
+*** 124,127 ****
+--- 124,129 ----
+ extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int));
+
++ extern char *glob_dirscan __P((char *, int));
++
+ /* Compile `glob_loop.c' for single-byte characters. */
+ #define CHAR unsigned char
+***************
+*** 188,191 ****
+--- 190,196 ----
+ pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */
+ /* we should check for invalid extglob pattern here */
++ if (pe == 0)
++ return 0;
++
+ /* if pe != se we have more of the pattern at the end of the extglob
+ pattern. Check the easy case first ( */
+***************
+*** 1016,1020 ****
+ char **result;
+ unsigned int result_size;
+! char *directory_name, *filename, *dname;
+ unsigned int directory_len;
+ int free_dirname; /* flag */
+--- 1021,1025 ----
+ char **result;
+ unsigned int result_size;
+! char *directory_name, *filename, *dname, *fn;
+ unsigned int directory_len;
+ int free_dirname; /* flag */
+***************
+*** 1032,1035 ****
+--- 1037,1052 ----
+ /* Find the filename. */
+ filename = strrchr (pathname, '/');
++ #if defined (EXTENDED_GLOB)
++ if (filename && extended_glob)
++ {
++ fn = glob_dirscan (pathname, '/');
++ #if DEBUG_MATCHING
++ if (fn != filename)
++ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename);
++ #endif
++ filename = fn;
++ }
++ #endif
++
+ if (filename == NULL)
+ {
+*** ../bash-4.3-patched/lib/glob/gmisc.c 2014-03-28 10:54:23.000000000 -0400
+--- lib/glob/gmisc.c 2014-05-02 09:35:57.000000000 -0400
+***************
+*** 43,46 ****
+--- 43,48 ----
+ #define WRPAREN L')'
+
++ extern char *glob_patscan __P((char *, char *, int));
++
+ /* Return 1 of the first character of WSTRING could match the first
+ character of pattern WPAT. Wide character version. */
+***************
+*** 376,377 ****
+--- 378,410 ----
+ return matlen;
+ }
++
++ /* Skip characters in PAT and return the final occurrence of DIRSEP. This
++ is only called when extended_glob is set, so we have to skip over extglob
++ patterns x(...) */
++ char *
++ glob_dirscan (pat, dirsep)
++ char *pat;
++ int dirsep;
++ {
++ char *p, *d, *pe, *se;
++
++ d = pe = se = 0;
++ for (p = pat; p && *p; p++)
++ {
++ if (extglob_pattern_p (p))
++ {
++ if (se == 0)
++ se = p + strlen (p) - 1;
++ pe = glob_patscan (p + 2, se, 0);
++ if (pe == 0)
++ continue;
++ else if (*pe == 0)
++ break;
++ p = pe - 1; /* will do increment above */
++ continue;
++ }
++ if (*p == dirsep)
++ d = p;
++ }
++ return d;
++ }
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-017 b/shell-term-fm/bash/patches/bash43-017
new file mode 100644
index 0000000000..4016fb934e
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-017
@@ -0,0 +1,51 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-017
+
+Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
+Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html
+
+Bug-Description:
+
+The code that creates local variables should not clear the `invisible'
+attribute when returning an existing local variable. Let the code that
+actually assigns a value clear it.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/variables.c 2014-02-14 11:55:12.000000000 -0500
+--- variables.c 2014-05-07 10:53:57.000000000 -0400
+***************
+*** 2198,2205 ****
+ old_var = find_variable (name);
+ if (old_var && local_p (old_var) && old_var->context == variable_context)
+! {
+! VUNSETATTR (old_var, att_invisible); /* XXX */
+! return (old_var);
+! }
+
+ was_tmpvar = old_var && tempvar_p (old_var);
+--- 2260,2264 ----
+ old_var = find_variable (name);
+ if (old_var && local_p (old_var) && old_var->context == variable_context)
+! return (old_var);
+
+ was_tmpvar = old_var && tempvar_p (old_var);
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-018 b/shell-term-fm/bash/patches/bash43-018
new file mode 100644
index 0000000000..39499f6637
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-018
@@ -0,0 +1,44 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-018
+
+Bug-Reported-by: Geir Hauge <geir.hauge@gmail.com>
+Bug-Reference-ID: <CAO-BiTLOvfPXDypg61jcBausADrxUKJejakV2WTWP26cW0=rgA@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html
+
+Bug-Description:
+
+When assigning an array variable using the compound assignment syntax,
+but using `declare' with the rhs of the compound assignment quoted, the
+shell did not mark the variable as visible after successfully performing
+the assignment.
+
+Patch (apply with `patch -p0'):
+*** ../bash-4.3-patched/arrayfunc.c 2014-03-28 10:54:21.000000000 -0400
+--- arrayfunc.c 2014-05-12 11:19:00.000000000 -0400
+***************
+*** 180,183 ****
+--- 180,184 ----
+ FREE (newval);
+
++ VUNSETATTR (entry, att_invisible); /* no longer invisible */
+ return (entry);
+ }
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-019 b/shell-term-fm/bash/patches/bash43-019
new file mode 100644
index 0000000000..a93714bebc
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-019
@@ -0,0 +1,84 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-019
+
+Bug-Reported-by: John Lenton
+Bug-Reference-ID:
+Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
+
+Bug-Description:
+
+The -t timeout option to `read' does not work when the -e option is used.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/lib/readline/input.c 2014-01-10 15:07:08.000000000 -0500
+--- lib/readline/input.c 2014-05-22 18:40:59.000000000 -0400
+***************
+*** 535,540 ****
+--- 538,551 ----
+ else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
+ return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
++ /* keyboard-generated signals of interest */
+ else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT)
+ RL_CHECK_SIGNALS ();
++ /* non-keyboard-generated signals of interest */
++ else if (_rl_caught_signal == SIGALRM
++ #if defined (SIGVTALRM)
++ || _rl_caught_signal == SIGVTALRM
++ #endif
++ )
++ RL_CHECK_SIGNALS ();
+
+ if (rl_signal_event_hook)
+*** ../bash-4.3-patched/builtins/read.def 2013-09-02 11:54:00.000000000 -0400
+--- builtins/read.def 2014-05-08 11:43:35.000000000 -0400
+***************
+*** 443,447 ****
+ #if defined (READLINE)
+ if (edit)
+! add_unwind_protect (reset_attempted_completion_function, (char *)NULL);
+ #endif
+ falarm (tmsec, tmusec);
+--- 443,450 ----
+ #if defined (READLINE)
+ if (edit)
+! {
+! add_unwind_protect (reset_attempted_completion_function, (char *)NULL);
+! add_unwind_protect (bashline_reset_event_hook, (char *)NULL);
+! }
+ #endif
+ falarm (tmsec, tmusec);
+***************
+*** 1022,1025 ****
+--- 1025,1029 ----
+ old_attempted_completion_function = rl_attempted_completion_function;
+ rl_attempted_completion_function = (rl_completion_func_t *)NULL;
++ bashline_set_event_hook ();
+ if (itext)
+ {
+***************
+*** 1033,1036 ****
+--- 1037,1041 ----
+ rl_attempted_completion_function = old_attempted_completion_function;
+ old_attempted_completion_function = (rl_completion_func_t *)NULL;
++ bashline_reset_event_hook ();
+
+ if (ret == 0)
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-020 b/shell-term-fm/bash/patches/bash43-020
new file mode 100644
index 0000000000..5f533ef8d9
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-020
@@ -0,0 +1,110 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-020
+
+Bug-Reported-by: Jared Yanovich <slovichon@gmail.com>
+Bug-Reference-ID: <20140417073654.GB26875@nightderanger.psc.edu>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00065.html
+
+Bug-Description:
+
+When PS2 contains a command substitution, here-documents entered in an
+interactive shell can sometimes cause a segmentation fault.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/shell.h 2012-12-25 21:11:01.000000000 -0500
+--- shell.h 2014-06-03 09:24:28.000000000 -0400
+***************
+*** 169,173 ****
+ int expand_aliases;
+ int echo_input_at_read;
+!
+ } sh_parser_state_t;
+
+--- 169,174 ----
+ int expand_aliases;
+ int echo_input_at_read;
+! int need_here_doc;
+!
+ } sh_parser_state_t;
+
+*** ../bash-4.3-patched/parse.y 2014-05-14 09:16:40.000000000 -0400
+--- parse.y 2014-04-30 09:27:59.000000000 -0400
+***************
+*** 2643,2647 ****
+
+ r = 0;
+! while (need_here_doc)
+ {
+ parser_state |= PST_HEREDOC;
+--- 2643,2647 ----
+
+ r = 0;
+! while (need_here_doc > 0)
+ {
+ parser_state |= PST_HEREDOC;
+***************
+*** 6076,6079 ****
+--- 6076,6080 ----
+ ps->expand_aliases = expand_aliases;
+ ps->echo_input_at_read = echo_input_at_read;
++ ps->need_here_doc = need_here_doc;
+
+ ps->token = token;
+***************
+*** 6124,6127 ****
+--- 6125,6129 ----
+ expand_aliases = ps->expand_aliases;
+ echo_input_at_read = ps->echo_input_at_read;
++ need_here_doc = ps->need_here_doc;
+
+ FREE (token);
+*** ../bash-4.3-patched/y.tab.c 2014-04-07 11:56:12.000000000 -0400
+--- y.tab.c 2014-07-30 09:55:57.000000000 -0400
+***************
+*** 4955,4959 ****
+
+ r = 0;
+! while (need_here_doc)
+ {
+ parser_state |= PST_HEREDOC;
+--- 5151,5155 ----
+
+ r = 0;
+! while (need_here_doc > 0)
+ {
+ parser_state |= PST_HEREDOC;
+***************
+*** 8388,8391 ****
+--- 8584,8588 ----
+ ps->expand_aliases = expand_aliases;
+ ps->echo_input_at_read = echo_input_at_read;
++ ps->need_here_doc = need_here_doc;
+
+ ps->token = token;
+***************
+*** 8436,8439 ****
+--- 8633,8637 ----
+ expand_aliases = ps->expand_aliases;
+ echo_input_at_read = ps->echo_input_at_read;
++ need_here_doc = ps->need_here_doc;
+
+ FREE (token);
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-021 b/shell-term-fm/bash/patches/bash43-021
new file mode 100644
index 0000000000..fd1c945ec1
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-021
@@ -0,0 +1,52 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-021
+
+Bug-Reported-by: Jared Yanovich <slovichon@gmail.com>
+Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html
+
+Bug-Description:
+
+When the readline `revert-all-at-newline' option is set, pressing newline
+when the current line is one retrieved from history results in a double free
+and a segmentation fault.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/lib/readline/misc.c 2012-09-01 18:03:11.000000000 -0400
+--- lib/readline/misc.c 2014-06-30 13:41:19.000000000 -0400
+***************
+*** 462,465 ****
+--- 462,466 ----
+ /* Set up rl_line_buffer and other variables from history entry */
+ rl_replace_from_history (entry, 0); /* entry->line is now current */
++ entry->data = 0; /* entry->data is now current undo list */
+ /* Undo all changes to this history entry */
+ while (rl_undo_list)
+***************
+*** 469,473 ****
+ FREE (entry->line);
+ entry->line = savestring (rl_line_buffer);
+- entry->data = 0;
+ }
+ entry = previous_history ();
+--- 470,473 ----
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-022 b/shell-term-fm/bash/patches/bash43-022
new file mode 100644
index 0000000000..7ce39ec0a2
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-022
@@ -0,0 +1,56 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-022
+
+Bug-Reported-by: scorp.dev.null@gmail.com
+Bug-Reference-ID: <E1WxXw8-0007iE-Bi@pcm14>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00061.html
+
+Bug-Description:
+
+Using nested pipelines within loops with the `lastpipe' option set can result
+in a segmentation fault.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/execute_cmd.c 2014-01-31 10:54:52.000000000 -0500
+--- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400
+***************
+*** 2410,2414 ****
+ lstdin = wait_for (lastpid);
+ #if defined (JOB_CONTROL)
+! exec_result = job_exit_status (lastpipe_jid);
+ #endif
+ unfreeze_jobs_list ();
+--- 2425,2438 ----
+ lstdin = wait_for (lastpid);
+ #if defined (JOB_CONTROL)
+! /* If wait_for removes the job from the jobs table, use result of last
+! command as pipeline's exit status as usual. The jobs list can get
+! frozen and unfrozen at inconvenient times if there are multiple pipelines
+! running simultaneously. */
+! if (INVALID_JOB (lastpipe_jid) == 0)
+! exec_result = job_exit_status (lastpipe_jid);
+! else if (pipefail_opt)
+! exec_result = exec_result | lstdin; /* XXX */
+! /* otherwise we use exec_result */
+!
+ #endif
+ unfreeze_jobs_list ();
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-023 b/shell-term-fm/bash/patches/bash43-023
new file mode 100644
index 0000000000..d1e4e9d7c7
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-023
@@ -0,0 +1,104 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-023
+
+Bug-Reported-by: Tim Friske <me@timfriske.com>
+Bug-Reference-ID: <CAM1RzOcOR9zzC2i+aeES6LtbHNHoOV+0pZEYPrqxv_QAii-RXA@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00056.html
+
+Bug-Description:
+
+Bash does not correctly parse process substitution constructs that contain
+unbalanced parentheses as part of the contained command.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/subst.h 2014-01-11 21:02:27.000000000 -0500
+--- subst.h 2014-07-20 17:25:01.000000000 -0400
+***************
+*** 83,87 ****
+ Start extracting at (SINDEX) as if we had just seen "<(".
+ Make (SINDEX) get the position just after the matching ")". */
+! extern char *extract_process_subst __P((char *, char *, int *));
+ #endif /* PROCESS_SUBSTITUTION */
+
+--- 83,87 ----
+ Start extracting at (SINDEX) as if we had just seen "<(".
+ Make (SINDEX) get the position just after the matching ")". */
+! extern char *extract_process_subst __P((char *, char *, int *, int));
+ #endif /* PROCESS_SUBSTITUTION */
+
+*** ../bash-4.3-patched/subst.c 2014-05-15 08:26:45.000000000 -0400
+--- subst.c 2014-07-20 17:26:44.000000000 -0400
+***************
+*** 1193,1202 ****
+ Make (SINDEX) get the position of the matching ")". */ /*))*/
+ char *
+! extract_process_subst (string, starter, sindex)
+ char *string;
+ char *starter;
+ int *sindex;
+ {
+ return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND));
+ }
+ #endif /* PROCESS_SUBSTITUTION */
+--- 1193,1208 ----
+ Make (SINDEX) get the position of the matching ")". */ /*))*/
+ char *
+! extract_process_subst (string, starter, sindex, xflags)
+ char *string;
+ char *starter;
+ int *sindex;
++ int xflags;
+ {
++ #if 0
+ return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND));
++ #else
++ xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0);
++ return (xparse_dolparen (string, string+*sindex, sindex, xflags));
++ #endif
+ }
+ #endif /* PROCESS_SUBSTITUTION */
+***************
+*** 1786,1790 ****
+ if (string[si] == '\0')
+ CQ_RETURN(si);
+! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si);
+ free (temp); /* no SX_ALLOC here */
+ i = si;
+--- 1792,1796 ----
+ if (string[si] == '\0')
+ CQ_RETURN(si);
+! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si, 0);
+ free (temp); /* no SX_ALLOC here */
+ i = si;
+***************
+*** 8250,8254 ****
+ t_index = sindex + 1; /* skip past both '<' and LPAREN */
+
+! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/
+ sindex = t_index;
+
+--- 8256,8260 ----
+ t_index = sindex + 1; /* skip past both '<' and LPAREN */
+
+! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index, 0); /*))*/
+ sindex = t_index;
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-024 b/shell-term-fm/bash/patches/bash43-024
new file mode 100644
index 0000000000..a24b8fbbca
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-024
@@ -0,0 +1,54 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-024
+
+Bug-Reported-by: Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
+Bug-Reference-ID: <53CE9E5D.6050203@pom-monitoring.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html
+
+Bug-Description:
+
+Indirect variable references do not work correctly if the reference
+variable expands to an array reference using a subscript other than 0
+(e.g., foo='bar[1]' ; echo ${!foo}).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/subst.c 2014-06-03 09:32:44.000000000 -0400
+--- subst.c 2014-07-23 09:58:19.000000000 -0400
+***************
+*** 7375,7379 ****
+
+ if (want_indir)
+! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
+ else
+ tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind);
+--- 7445,7455 ----
+
+ if (want_indir)
+! {
+! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
+! /* Turn off the W_ARRAYIND flag because there is no way for this function
+! to return the index we're supposed to be using. */
+! if (tdesc && tdesc->flags)
+! tdesc->flags &= ~W_ARRAYIND;
+! }
+ else
+ tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind);
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/shell-term-fm/bash/patches/bash43-025 b/shell-term-fm/bash/patches/bash43-025
new file mode 100644
index 0000000000..721aca0307
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash43-025
@@ -0,0 +1,123 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-025
+
+Bug-Reported-by: Stephane Chazelas <stephane.chazelas@gmail.com>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under certain circumstances, bash will execute user code while processing the
+environment for exported function definitions.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3-patched/builtins/common.h 2013-07-08 16:54:47.000000000 -0400
+--- builtins/common.h 2014-09-12 14:25:47.000000000 -0400
+***************
+*** 34,37 ****
+--- 49,54 ----
+ #define SEVAL_PARSEONLY 0x020
+ #define SEVAL_NOLONGJMP 0x040
++ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */
++ #define SEVAL_ONECMD 0x100 /* only allow a single command */
+
+ /* Flags for describe_command, shared between type.def and command.def */
+*** ../bash-4.3-patched/builtins/evalstring.c 2014-02-11 09:42:10.000000000 -0500
+--- builtins/evalstring.c 2014-09-14 14:15:13.000000000 -0400
+***************
+*** 309,312 ****
+--- 313,324 ----
+ struct fd_bitmap *bitmap;
+
++ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
++ {
++ internal_warning ("%s: ignoring function definition attempt", from_file);
++ should_jump_to_top_level = 0;
++ last_result = last_command_exit_value = EX_BADUSAGE;
++ break;
++ }
++
+ bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
+ begin_unwind_frame ("pe_dispose");
+***************
+*** 369,372 ****
+--- 381,387 ----
+ dispose_fd_bitmap (bitmap);
+ discard_unwind_frame ("pe_dispose");
++
++ if (flags & SEVAL_ONECMD)
++ break;
+ }
+ }
+*** ../bash-4.3-patched/variables.c 2014-05-15 08:26:50.000000000 -0400
+--- variables.c 2014-09-14 14:23:35.000000000 -0400
+***************
+*** 359,369 ****
+ strcpy (temp_string + char_index + 1, string);
+
+! if (posixly_correct == 0 || legal_identifier (name))
+! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
+!
+! /* Ancient backwards compatibility. Old versions of bash exported
+! functions like name()=() {...} */
+! if (name[char_index - 1] == ')' && name[char_index - 2] == '(')
+! name[char_index - 2] = '\0';
+
+ if (temp_var = find_function (name))
+--- 364,372 ----
+ strcpy (temp_string + char_index + 1, string);
+
+! /* Don't import function names that are invalid identifiers from the
+! environment, though we still allow them to be defined as shell
+! variables. */
+! if (legal_identifier (name))
+! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
+
+ if (temp_var = find_function (name))
+***************
+*** 382,389 ****
+ report_error (_("error importing function definition for `%s'"), name);
+ }
+-
+- /* ( */
+- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0')
+- name[char_index - 2] = '('; /* ) */
+ }
+ #if defined (ARRAY_VARS)
+--- 385,388 ----
+*** ../bash-4.3-patched/subst.c 2014-08-11 11:16:35.000000000 -0400
+--- subst.c 2014-09-12 15:31:04.000000000 -0400
+***************
+*** 8048,8052 ****
+ goto return0;
+ }
+! else if (var = find_variable_last_nameref (temp1))
+ {
+ temp = nameref_cell (var);
+--- 8118,8124 ----
+ goto return0;
+ }
+! else if (var && (invisible_p (var) || var_isset (var) == 0))
+! temp = (char *)NULL;
+! else if ((var = find_variable_last_nameref (temp1)) && var_isset (var) && invisible_p (var) == 0)
+ {
+ temp = nameref_cell (var);
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 25
+
+ #endif /* _PATCHLEVEL_H_ */