Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by George Sherwood (2911399ec6f535601fe8b28cee14f4b17a354c23)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: George Sherwood <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by George Sherwood (2911399ec6f535601fe8b28cee14f4b17a354c23)
  • Date: Tue, 10 Mar 2009 10:06:58 -0500

GIT changes to master grimoire by George Sherwood <gsherwood AT sourcemage.org>:

shell-term-fm/bash/DETAILS | 1
shell-term-fm/bash/HISTORY | 5
shell-term-fm/bash/PRE_BUILD | 12 +
shell-term-fm/bash/patches/bash40-001 | 162 ++++++++++++++++++++
shell-term-fm/bash/patches/bash40-002 | 43 +++++
shell-term-fm/bash/patches/bash40-003 | 70 +++++++++
shell-term-fm/bash/patches/bash40-004 | 47 ++++++
shell-term-fm/bash/patches/bash40-005 | 63 ++++++++
shell-term-fm/bash/patches/bash40-006 | 43 +++++
shell-term-fm/bash/patches/bash40-007 | 263
++++++++++++++++++++++++++++++++++
shell-term-fm/bash/patches/bash40-008 | 49 ++++++
shell-term-fm/bash/patches/bash40-009 | 61 +++++++
shell-term-fm/bash/patches/bash40-010 | 63 ++++++++
13 files changed, 882 insertions(+)

New commits:
commit 2911399ec6f535601fe8b28cee14f4b17a354c23
Author: George Sherwood <gsherwood AT sourcemage.org>
Commit: George Sherwood <gsherwood AT sourcemage.org>

bash: Added upstream patches bash40-001 to bash40-010. PATCHLEVEL++

diff --git a/shell-term-fm/bash/DETAILS b/shell-term-fm/bash/DETAILS
index e46b0d5..862ef6f 100755
--- a/shell-term-fm/bash/DETAILS
+++ b/shell-term-fm/bash/DETAILS
@@ -14,6 +14,7 @@ SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE2_IGNORE=signature
SOURCE4_IGNORE=signature
WEB_SITE=http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
+ PATCHLEVEL=1
ENTERED=20010922
LICENSE[0]=GPL2
KEYWORDS="console"
diff --git a/shell-term-fm/bash/HISTORY b/shell-term-fm/bash/HISTORY
index 362da22..eec7de6 100644
--- a/shell-term-fm/bash/HISTORY
+++ b/shell-term-fm/bash/HISTORY
@@ -1,3 +1,8 @@
+2009-03-10 George Sherwood <gsherwood AT sourcemage.org
+ * DETAILS: PATCHLEVEL++
+ * PRE_BUILD: Added upstream patches
+ * patches/bash40-001 to 010: Added upstream patches
+
2009-02-21 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 4.0; use doc from 3.2

diff --git a/shell-term-fm/bash/PRE_BUILD b/shell-term-fm/bash/PRE_BUILD
index c88be2a..89b6a59 100755
--- a/shell-term-fm/bash/PRE_BUILD
+++ b/shell-term-fm/bash/PRE_BUILD
@@ -2,6 +2,18 @@ default_pre_build &&
cd "$SOURCE_DIRECTORY" &&
unpack_file 3 &&

+patch -p0 < $SPELL_DIRECTORY/patches/bash40-001 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-002 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-003 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-004 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-005 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-006 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-007 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-008 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-009 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-010 &&
+
+
if [[ "$BASH_NI_LOGIN" == y ]]; then
message "${MESSAGE_COLOR}Defining
NON_INTERACTIVE_LOGIN_SHELLS.$DEFAULT_COLOR" &&
sed -i 's/\/\* \(#define NON_INTERACTIVE_LOGIN_SHELLS\) \*\//\1/'
config-top.h
diff --git a/shell-term-fm/bash/patches/bash40-001
b/shell-term-fm/bash/patches/bash40-001
new file mode 100644
index 0000000..5c6bb34
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-001
@@ -0,0 +1,162 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-001
+
+Bug-Reported-by: Mike Frysinger <vapier AT gentoo.org>
+Bug-Reference-ID: <200902211821.42188.vapier AT gentoo.org>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00147.html
+
+Bug-Description:
+
+Bash has problems parsing certain constructs inside Posix-style $(...)
+command substitutions, mostly with backslash-quoting and reserved word
+recognition. This is an issue because the contents are parsed at the
+time the word containing the command substitution is read.
+
+Patch:
+
+*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500
+--- parse.y 2009-03-06 20:32:35.000000000 -0500
+***************
+*** 2928,2931 ****
+--- 2932,2936 ----
+ #define LEX_HEREDELIM 0x100 /* reading here-doc delimiter
*/
+ #define LEX_STRIPDOC 0x200 /* <<- strip tabs from here doc delim
*/
++ #define LEX_INWORD 0x400
+
+ #define COMSUB_META(ch) ((ch) == ';' || (ch) == '&' || (ch)
== '|')
+***************
+*** 3180,3184 ****
+ int *lenp, flags;
+ {
+! int count, ch, peekc, tflags, lex_rwlen, lex_firstind;
+ int nestlen, ttranslen, start_lineno;
+ char *ret, *nestret, *ttrans, *heredelim;
+--- 3188,3192 ----
+ int *lenp, flags;
+ {
+! int count, ch, peekc, tflags, lex_rwlen, lex_wlen, lex_firstind;
+ int nestlen, ttranslen, start_lineno;
+ char *ret, *nestret, *ttrans, *heredelim;
+***************
+*** 3201,3205 ****
+
+ start_lineno = line_number;
+! lex_rwlen = 0;
+
+ heredelim = 0;
+--- 3209,3213 ----
+
+ start_lineno = line_number;
+! lex_rwlen = lex_wlen = 0;
+
+ heredelim = 0;
+***************
+*** 3268,3271 ****
+--- 3276,3319 ----
+ }
+
++ if (tflags & LEX_PASSNEXT) /* last char was backslash */
++ {
++ /*itrace("parse_comsub:%d: lex_passnext -> 0 ch = `%c' (%d)", line_number,
ch, __LINE__);*/
++ tflags &= ~LEX_PASSNEXT;
++ if (qc != '\'' && ch == '\n') /* double-quoted \<newline>
disappears. */
++ {
++ if (retind > 0)
++ retind--; /* swallow previously-added backslash */
++ continue;
++ }
++
++ RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
++ if MBTEST(ch == CTLESC || ch == CTLNUL)
++ ret[retind++] = CTLESC;
++ ret[retind++] = ch;
++ continue;
++ }
++
++ /* If this is a shell break character, we are not in a word. If not,
++ we either start or continue a word. */
++ if MBTEST(shellbreak (ch))
++ {
++ tflags &= ~LEX_INWORD;
++ /*itrace("parse_comsub:%d: lex_inword -> 0 ch = `%c' (%d)", line_number,
ch, __LINE__);*/
++ }
++ else
++ {
++ if (tflags & LEX_INWORD)
++ {
++ lex_wlen++;
++ /*itrace("parse_comsub:%d: lex_inword == 1 ch = `%c' lex_wlen = %d (%d)",
line_number, ch, lex_wlen, __LINE__);*/
++ }
++ else
++ {
++ /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number,
ch, __LINE__);*/
++ tflags |= LEX_INWORD;
++ lex_wlen = 0;
++ }
++ }
++
+ /* Skip whitespace */
+ if MBTEST(shellblank (ch) && lex_rwlen == 0)
+***************
+*** 3400,3428 ****
+ }
+ else
+! ch = peekc; /* fall through and continue XXX - this skips
comments if peekc == '#' */
+ }
+! /* Not exactly right yet, should handle shell metacharacters, too.
If
+! any changes are made to this test, make analogous changes to subst.c:
+! extract_delimited_string(). */
+! else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT)
== 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank
(ret[retind - 1])))
+ tflags |= LEX_INCOMMENT;
+
+! if (tflags & LEX_PASSNEXT) /* last char was backslash */
+! {
+! tflags &= ~LEX_PASSNEXT;
+! if (qc != '\'' && ch == '\n') /* double-quoted \<newline>
disappears. */
+! {
+! if (retind > 0)
+! retind--; /* swallow previously-added backslash */
+! continue;
+! }
+!
+! RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
+! if MBTEST(ch == CTLESC || ch == CTLNUL)
+! ret[retind++] = CTLESC;
+! ret[retind++] = ch;
+! continue;
+! }
+! else if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell
escapes */
+ {
+ RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
+--- 3442,3454 ----
+ }
+ else
+! ch = peekc; /* fall through and continue XXX */
+ }
+! else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT)
== 0 && ch == '#' && (((tflags & LEX_RESWDOK) && lex_rwlen == 0) || ((tflags
& LEX_INWORD) && lex_wlen == 0)))
+! {
+! /*itrace("parse_comsub:%d: lex_incomment -> 1 (%d)", line_number,
__LINE__);*/
+ tflags |= LEX_INCOMMENT;
++ }
+
+! if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell
escapes */
+ {
+ RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-002
b/shell-term-fm/bash/patches/bash40-002
new file mode 100644
index 0000000..18bd25e
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-002
@@ -0,0 +1,43 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-002
+
+Bug-Reported-by: phil AT Arcturus.universe
+Bug-Reference-ID: <20090221143709.13878.qmail AT Arcturus.universe>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00142.html
+
+Bug-Description:
+
+A line inadvertenly omitted from a submitted patch results in core dumps
+when attempting filename completion while using the bash-completion
+package.
+
+Patch:
+
+*** ../bash-4.0/pcomplete.c 2009-02-01 17:12:31.000000000 -0500
+--- pcomplete.c 2009-02-22 17:08:25.000000000 -0500
+***************
+*** 1033,1036 ****
+--- 1033,1037 ----
+
+ pps = &ps;
++ save_parser_state (pps);
+ begin_unwind_frame ("gen-shell-function-matches");
+ add_unwind_protect (restore_parser_state, (char *)pps);
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-003
b/shell-term-fm/bash/patches/bash40-003
new file mode 100644
index 0000000..cc941d5
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-003
@@ -0,0 +1,70 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-003
+
+Bug-Reported-by: Bernd Eggink <monoped AT sudrala.de>
+Bug-Reference-ID: <49A323F5.60503 AT sudrala.de>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00177.html
+
+Bug-Description:
+
+Under certain circumstances, constructs containing command substitutions
+prevent PS1 from being re-evaluated and updated before being displayed.
+
+Patch:
+
+*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500
+--- parse.y 2009-02-25 15:58:25.000000000 -0500
+***************
+*** 1616,1623 ****
+ int *ret;
+
+! ret = (int *)xmalloc (3 * sizeof (int));
+ ret[0] = last_read_token;
+ ret[1] = token_before_that;
+ ret[2] = two_tokens_ago;
+ return ret;
+ }
+--- 1616,1624 ----
+ int *ret;
+
+! ret = (int *)xmalloc (4 * sizeof (int));
+ ret[0] = last_read_token;
+ ret[1] = token_before_that;
+ ret[2] = two_tokens_ago;
++ ret[3] = current_token;
+ return ret;
+ }
+***************
+*** 1632,1635 ****
+--- 1633,1637 ----
+ token_before_that = ts[1];
+ two_tokens_ago = ts[2];
++ current_token = ts[3];
+ }
+
+***************
+*** 2669,2672 ****
+--- 2671,2675 ----
+ word_desc_to_read = (WORD_DESC *)NULL;
+
++ current_token = '\n'; /* XXX */
+ last_read_token = '\n';
+ token_to_read = '\n';
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-004
b/shell-term-fm/bash/patches/bash40-004
new file mode 100644
index 0000000..6ab6c4e
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-004
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-004
+
+Bug-Reported-by: Mike Frysinger <vapier AT gentoo.org>
+Bug-Reference-ID: <200902231720.30519.vapier AT gentoo.org>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00176.html
+
+Bug-Description:
+
+In some cases, enabling the `checkjobs' shell option will cause the shell
+to core dump when executing the `exit' builtin.
+
+Patch:
+
+*** ../bash-4.0/builtins/exit.def 2009-01-04 14:32:22.000000000 -0500
+--- builtins/exit.def 2009-02-23 22:56:58.000000000 -0500
+***************
+*** 114,118 ****
+ if (jobs[i] && STOPPED (i))
+ stopmsg = JSTOPPED;
+! else if (check_jobs_at_exit && stopmsg == 0 && RUNNING (i))
+ stopmsg = JRUNNING;
+
+--- 114,118 ----
+ if (jobs[i] && STOPPED (i))
+ stopmsg = JSTOPPED;
+! else if (check_jobs_at_exit && stopmsg == 0 && jobs[i] && RUNNING (i))
+ stopmsg = JRUNNING;
+
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-005
b/shell-term-fm/bash/patches/bash40-005
new file mode 100644
index 0000000..ccfde66
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-005
@@ -0,0 +1,63 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-005
+
+Bug-Reported-by: Pierre Gaston <pierre.gaston AT gmail.com>
+Bug-Reference-ID:
<c440c9800902242338n69f594a4nd66b8748def9cf18 AT mail.gmail.com>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00206.html
+
+Bug-Description:
+
+The `declare' builtin dumped core when attempting to assign associative
+array indices containing some special characters, even when they were
+quoted before being expanded.
+
+Patch:
+
+*** ../bash-4.0/builtins/declare.def 2009-01-04 14:32:22.000000000 -0500
+--- builtins/declare.def 2009-02-26 11:40:16.000000000 -0500
+***************
+*** 296,299 ****
+--- 296,306 ----
+ if (t = strchr (name, '[')) /* ] */
+ {
++ /* If offset != 0 we have already validated any array reference */
++ if (offset == 0 && valid_array_reference (name) == 0)
++ {
++ sh_invalidid (name);
++ assign_error++;
++ NEXT_VARIABLE ();
++ }
+ subscript_start = t;
+ *t = '\0';
+***************
+*** 485,489 ****
+ /* declare -a name[[n]] or declare name[n] makes name an indexed
+ array variable. */
+! else if ((making_array_special || (flags_on & att_array)) &&
array_p (var) == 0)
+ var = convert_var_to_array (var);
+ #endif /* ARRAY_VARS */
+--- 492,496 ----
+ /* declare -a name[[n]] or declare name[n] makes name an indexed
+ array variable. */
+! else if ((making_array_special || (flags_on & att_array)) &&
array_p (var) == 0 && assoc_p (var) == 0)
+ var = convert_var_to_array (var);
+ #endif /* ARRAY_VARS */
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-006
b/shell-term-fm/bash/patches/bash40-006
new file mode 100644
index 0000000..3d044c7
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-006
@@ -0,0 +1,43 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-006
+
+Bug-Reported-by: Evgeniy Zhemchugov <jini.zh AT gmail.com>
+Bug-Reference-ID:
<e7bc8dd30902241016m8bd543ej775717d007df975b AT mail.gmail.com>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00202.html
+
+Bug-Description:
+
+Bash did not parse pipelines using the |& construct correctly if the
+pipeline elements were not simple commands.
+
+Patch:
+
+*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500
+--- parse.y 2009-02-25 17:25:56.000000000 -0500
+***************
+*** 4478,4481 ****
+--- 4478,4482 ----
+ case AND_AND:
+ case BANG:
++ case BAR_AND:
+ case DO:
+ case DONE:
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-007
b/shell-term-fm/bash/patches/bash40-007
new file mode 100644
index 0000000..29071e1
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-007
@@ -0,0 +1,263 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-007
+
+Bug-Reported-by: AnMaster <anmaster AT tele2.se>
+Bug-Reference-ID: <49A41C18.80807 AT tele2.se>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00188.html
+
+Bug-Description:
+
+Bash had a number of problems parsing associative array subscripts containing
+special characters. The subscripts are supposed to be read as if they are
+enclosed between double quotes.
+
+Patch:
+
+*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500
+--- parse.y 2009-02-25 17:25:56.000000000 -0500
+***************
+*** 2919,2922 ****
+--- 2919,2923 ----
+ #define P_COMMAND 0x08 /* parsing a command, so look for comments */
+ #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution
*/
++ #define P_ARRAYSUB 0x20 /* parsing a [...] array subscript for
assignment */
+
+ /* Lexical state while parsing a grouping construct or $(...). */
+***************
+*** 3134,3137 ****
+--- 3134,3139 ----
+ FREE (nestret);
+ }
++ else if ((flags & P_ARRAYSUB) && (tflags & LEX_WASDOL) && (ch ==
'(' || ch == '{' || ch == '[')) /* ) } ] */
++ goto parse_dollar_word;
+ }
+ /* Parse an old-style command substitution within double quotes as a
+***************
+*** 3150,3153 ****
+--- 3150,3154 ----
+ /* check for $(), $[], or ${} inside quoted string. */
+ {
++ parse_dollar_word:
+ if (open == ch) /* undo previous increment */
+ count--;
+***************
+*** 4277,4281 ****
+ (token_index == 0 && (parser_state&PST_COMPASSIGN))))
+ {
+! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
+ if (ttok == &matched_pair_error)
+ return -1; /* Bail immediately. */
+--- 4277,4281 ----
+ (token_index == 0 && (parser_state&PST_COMPASSIGN))))
+ {
+! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAYSUB);
+ if (ttok == &matched_pair_error)
+ return -1; /* Bail immediately. */
+*** ../bash-4.0/arrayfunc.c 2009-01-04 14:32:21.000000000 -0500
+--- arrayfunc.c 2009-02-25 07:58:54.000000000 -0500
+***************
+*** 605,666 ****
+ }
+
+! /* This function assumes s[i] == '['; returns with s[ret] == ']' if
+! an array subscript is correctly parsed. */
+! int
+! skipsubscript (s, i)
+! const char *s;
+! int i;
+! {
+! int count, c;
+! #if defined (HANDLE_MULTIBYTE)
+! mbstate_t state, state_bak;
+! size_t slength, mblength;
+! #endif
+!
+! #if defined (HANDLE_MULTIBYTE)
+! memset (&state, '\0', sizeof (mbstate_t));
+! slength = strlen (s + i);
+! #endif
+!
+! count = 1;
+! while (count)
+! {
+! /* Advance one (possibly multibyte) character in S starting at I. */
+! #if defined (HANDLE_MULTIBYTE)
+! if (MB_CUR_MAX > 1)
+! {
+! state_bak = state;
+! mblength = mbrlen (s + i, slength, &state);
+!
+! if (MB_INVALIDCH (mblength))
+! {
+! state = state_bak;
+! i++;
+! slength--;
+! }
+! else if (MB_NULLWCH (mblength))
+! return i;
+! else
+! {
+! i += mblength;
+! slength -= mblength;
+! }
+! }
+! else
+! #endif
+! ++i;
+!
+! c = s[i];
+!
+! if (c == 0)
+! break;
+! else if (c == '[')
+! count++;
+! else if (c == ']')
+! count--;
+! }
+!
+! return i;
+! }
+
+ /* This function is called with SUB pointing to just after the beginning
+--- 605,609 ----
+ }
+
+! /* skipsubscript moved to subst.c to use private functions. 2009/02/24. */
+
+ /* This function is called with SUB pointing to just after the beginning
+*** ../bash-4.0/subst.c 2009-01-28 14:34:12.000000000 -0500
+--- subst.c 2009-02-25 09:18:33.000000000 -0500
+***************
+*** 223,226 ****
+--- 223,227 ----
+ static char *extract_delimited_string __P((char *, int *, char *, char *,
char *, int));
+ static char *extract_dollar_brace_string __P((char *, int *, int, int));
++ static int skip_matched_pair __P((const char *, int, int, int, int));
+
+ static char *pos_params __P((char *, int, int, int));
+***************
+*** 1375,1378 ****
+--- 1376,1480 ----
+ #define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); }
while (0)
+
++ /* This function assumes s[i] == open; returns with s[ret] == close; used
to
++ parse array subscripts. FLAGS currently unused. */
++ static int
++ skip_matched_pair (string, start, open, close, flags)
++ const char *string;
++ int start, open, close, flags;
++ {
++ int i, pass_next, backq, si, c, count;
++ size_t slen;
++ char *temp, *ss;
++ DECLARE_MBSTATE;
++
++ slen = strlen (string + start) + start;
++ no_longjmp_on_fatal_error = 1;
++
++ i = start + 1; /* skip over leading bracket */
++ count = 1;
++ pass_next = backq = 0;
++ ss = (char *)string;
++ while (c = string[i])
++ {
++ if (pass_next)
++ {
++ pass_next = 0;
++ if (c == 0)
++ CQ_RETURN(i);
++ ADVANCE_CHAR (string, slen, i);
++ continue;
++ }
++ else if (c == '\\')
++ {
++ pass_next = 1;
++ i++;
++ continue;
++ }
++ else if (backq)
++ {
++ if (c == '`')
++ backq = 0;
++ ADVANCE_CHAR (string, slen, i);
++ continue;
++ }
++ else if (c == '`')
++ {
++ backq = 1;
++ i++;
++ continue;
++ }
++ else if (c == open)
++ {
++ count++;
++ i++;
++ continue;
++ }
++ else if (c == close)
++ {
++ count--;
++ if (count == 0)
++ break;
++ i++;
++ continue;
++ }
++ else if (c == '\'' || c == '"')
++ {
++ i = (c == '\'') ? skip_single_quoted (ss, slen, ++i)
++ : skip_double_quoted (ss, slen, ++i);
++ /* no increment, the skip functions increment past the closing
quote. */
++ }
++ else if (c == '$' && (string[i+1] == LPAREN || string[i+1] ==
LBRACE))
++ {
++ si = i + 2;
++ if (string[si] == '\0')
++ CQ_RETURN(si);
++
++ if (string[i+1] == LPAREN)
++ temp = extract_delimited_string (ss, &si, "$(", "(", ")",
SX_NOALLOC|SX_COMMAND); /* ) */
++ else
++ temp = extract_dollar_brace_string (ss, &si, 0, SX_NOALLOC);
++ i = si;
++ if (string[i] == '\0') /* don't increment i past EOS in loop
*/
++ break;
++ i++;
++ continue;
++ }
++ else
++ ADVANCE_CHAR (string, slen, i);
++ }
++
++ CQ_RETURN(i);
++ }
++
++ #if defined (ARRAY_VARS)
++ int
++ skipsubscript (string, start)
++ const char *string;
++ int start;
++ {
++ return (skip_matched_pair (string, start, '[', ']', 0));
++ }
++ #endif
++
+ /* Skip characters in STRING until we find a character in DELIMS, and
return
+ the index of that character. START is the index into string at which we
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-008
b/shell-term-fm/bash/patches/bash40-008
new file mode 100644
index 0000000..7a2576a
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-008
@@ -0,0 +1,49 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-008
+
+Bug-Reported-by: Mike Frysinger <vapier AT gentoo.org>
+Bug-Reference-ID: <200902261030.54062.vapier AT gentoo.org>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00230.html
+
+Bug-Description:
+
+Patch:
+
+*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500
+--- parse.y 2009-02-26 17:22:15.000000000 -0500
+***************
+*** 3443,3448 ****
+ else
+ shell_ungetc (peekc);
+! tflags |= LEX_HEREDELIM;
+! lex_firstind = -1;
+ continue;
+ }
+--- 3443,3451 ----
+ else
+ shell_ungetc (peekc);
+! if (peekc != '<')
+! {
+! tflags |= LEX_HEREDELIM;
+! lex_firstind = -1;
+! }
+ continue;
+ }
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-009
b/shell-term-fm/bash/patches/bash40-009
new file mode 100644
index 0000000..f583919
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-009
@@ -0,0 +1,61 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-009
+
+Bug-Reported-by: "Chris F.A. Johnson" <cfajohnson AT gmail.com>
+Bug-Reference-ID: <4d6b7$49a88cec$cef88ba3$16813 AT TEKSAVVY.COM>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00255.html
+
+Bug-Description:
+
+When the read builtin returned due to a timeout supplied with the -t option,
+it did not restore any modified terminal attribtues.
+
+Patch:
+
+*** ../bash-4.0/builtins/read.def 2009-01-15 23:11:21.000000000 -0500
+--- builtins/read.def 2009-03-02 10:15:39.000000000 -0500
+***************
+*** 370,381 ****
+ if (code)
+ {
+! #if 0
+ run_unwind_frame ("read_builtin");
+- return (EXECUTION_FAILURE);
+- #else
+ input_string[i] = '\0'; /* make sure it's terminated */
+! retval = 128+SIGALRM;;
+ goto assign_vars;
+- #endif
+ }
+ old_alrm = set_signal_handler (SIGALRM, sigalrm);
+--- 370,381 ----
+ if (code)
+ {
+! /* 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;
+ }
+ old_alrm = set_signal_handler (SIGALRM, sigalrm);
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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/bash40-010
b/shell-term-fm/bash/patches/bash40-010
new file mode 100644
index 0000000..3229c57
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-010
@@ -0,0 +1,63 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-010
+
+Bug-Reported-by: Mike Frysinger <vapier AT gentoo.org>
+Bug-Reference-ID: <200903030122.56206.vapier AT gentoo.org>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00023.html
+
+Bug-Description:
+
+Bash has problems parsing comments in case statements when they appear in
+$(...) subshells.
+
+Patch:
+
+*** ../bash-4.0/parse.y 2009-03-07 15:18:35.000000000 -0500
+--- parse.y 2009-03-07 14:16:32.000000000 -0500
+***************
+*** 3413,3419 ****
+ tflags &= ~LEX_RESWDOK;
+ }
+! else if (shellbreak (ch) == 0)
+ {
+! tflags &= ~LEX_RESWDOK;
+ /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number,
ch);*/
+ }
+--- 3415,3433 ----
+ tflags &= ~LEX_RESWDOK;
+ }
+! else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen
== 0 || ((tflags & LEX_INWORD) && lex_wlen == 0)))
+! ; /* don't modify LEX_RESWDOK if we're starting a comment */
+! else if MBTEST((tflags & LEX_INCASE) && ch != '\n')
+! /* If we can read a reserved word and we're in case, we're at the
+! point where we can read a new pattern list or an esac. We
+! handle the esac case above. If we read a newline, we want to
+! leave LEX_RESWDOK alone. If we read anything else, we want to
+! turn off LEX_RESWDOK, since we're going to read a pattern
list. */
+ {
+! tflags &= ~LEX_RESWDOK;
+! /*itrace("parse_comsub:%d: lex_incase == 1 found `%c', lex_reswordok ->
0", line_number, ch);*/
+! }
+! else if MBTEST(shellbreak (ch) == 0)
+! {
+! tflags &= ~LEX_RESWDOK;
+ /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number,
ch);*/
+ }
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 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_ */



  • [SM-Commit] GIT changes to master grimoire by George Sherwood (2911399ec6f535601fe8b28cee14f4b17a354c23), George Sherwood, 03/10/2009

Archive powered by MHonArc 2.6.24.

Top of Page