Skip to Content.
Sympa Menu

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

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 (b0257b910e63489d28bb3037924546cece8b8f33)
  • Date: Wed, 22 Jul 2009 11:40:21 -0500

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

shell-term-fm/bash/DETAILS | 2
shell-term-fm/bash/HISTORY | 5 +
shell-term-fm/bash/PRE_BUILD | 7 +
shell-term-fm/bash/patches/bash40-018 | 78 +++++++++++++++++++++
shell-term-fm/bash/patches/bash40-019 | 125
++++++++++++++++++++++++++++++++++
shell-term-fm/bash/patches/bash40-020 | 83 ++++++++++++++++++++++
shell-term-fm/bash/patches/bash40-021 | 48 +++++++++++++
shell-term-fm/bash/patches/bash40-022 | 48 +++++++++++++
shell-term-fm/bash/patches/bash40-023 | 62 ++++++++++++++++
shell-term-fm/bash/patches/bash40-024 | 112 ++++++++++++++++++++++++++++++
10 files changed, 569 insertions(+), 1 deletion(-)

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

bash: Added upstream patches 017-024. Been running them for
a while with no issues. PATCHLEVEL++

diff --git a/shell-term-fm/bash/DETAILS b/shell-term-fm/bash/DETAILS
index a33f0c6..e6a3807 100755
--- a/shell-term-fm/bash/DETAILS
+++ b/shell-term-fm/bash/DETAILS
@@ -14,7 +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=2
+ PATCHLEVEL=3
ENTERED=20010922
LICENSE[0]=GPL2
KEYWORDS="console"
diff --git a/shell-term-fm/bash/HISTORY b/shell-term-fm/bash/HISTORY
index c808fec..194776f 100644
--- a/shell-term-fm/bash/HISTORY
+++ b/shell-term-fm/bash/HISTORY
@@ -1,3 +1,8 @@
+2009-07-22 George Sherwood <gsherwood AT sourcemage.org>
+ * DETAILS: PATCHLEVEL++
+ * PRE_BUILD: Added upstream patches
+ * patchs/bash40-018 to 024: Added upstream patches
+
2009-04-09 George Sherwood <gsherwood AT sourcemage.org>
* DETAILS: PATCHLEVEL++
* PRE_BUILD: Added upstream patches
diff --git a/shell-term-fm/bash/PRE_BUILD b/shell-term-fm/bash/PRE_BUILD
index d987a6a..222eb0e 100755
--- a/shell-term-fm/bash/PRE_BUILD
+++ b/shell-term-fm/bash/PRE_BUILD
@@ -19,6 +19,13 @@ patch -p0 < $SPELL_DIRECTORY/patches/bash40-014 &&
patch -p0 < $SPELL_DIRECTORY/patches/bash40-015 &&
patch -p0 < $SPELL_DIRECTORY/patches/bash40-016 &&
patch -p0 < $SPELL_DIRECTORY/patches/bash40-017 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-018 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-019 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-020 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-021 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-022 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-023 &&
+patch -p0 < $SPELL_DIRECTORY/patches/bash40-024 &&

if [[ "$BASH_NI_LOGIN" == y ]]; then
message "${MESSAGE_COLOR}Defining
NON_INTERACTIVE_LOGIN_SHELLS.$DEFAULT_COLOR" &&
diff --git a/shell-term-fm/bash/patches/bash40-018
b/shell-term-fm/bash/patches/bash40-018
new file mode 100644
index 0000000..35f33e5
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-018
@@ -0,0 +1,78 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-018
+
+Bug-Reported-by: Dan Price <dp AT eng.sun.com>
+Bug-Reference-ID: <20090324171502.GA20582 AT eng.sun.com>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00184.html
+
+Bug-Description:
+
+A missing include file results in an empty function definition and a no-op
+when checking whether or not the window size has changed.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/sh/winsize.c 2008-08-12 13:53:51.000000000
-0400
+--- lib/sh/winsize.c 2009-04-06 10:44:20.000000000 -0400
+***************
+*** 31,44 ****
+ #include <sys/ioctl.h>
+
+! #if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
+! /* For struct winsize on SCO */
+! /* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */
+! # if defined (HAVE_SYS_PTEM_H) && defined (TIOCGWINSZ) && defined
(SIGWINCH)
+! # if defined (HAVE_SYS_STREAM_H)
+! # include <sys/stream.h>
+! # endif
+ # include <sys/ptem.h>
+! # endif /* HAVE_SYS_PTEM_H && TIOCGWINSZ && SIGWINCH */
+! #endif /* !STRUCT_WINSIZE_IN_SYS_IOCTL */
+
+ #include <stdio.h>
+--- 31,57 ----
+ #include <sys/ioctl.h>
+
+! /* Try to find the definitions of `struct winsize' and TIOGCWINSZ */
+!
+! #if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
+! # include <sys/ioctl.h>
+! #endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
+!
+! #if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined
(STRUCT_WINSIZE_IN_SYS_IOCTL)
+! # include <termios.h>
+! #endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
+!
+! /* Not in either of the standard places, look around. */
+! #if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined
(STRUCT_WINSIZE_IN_SYS_IOCTL)
+! # if defined (HAVE_SYS_STREAM_H)
+! # include <sys/stream.h>
+! # endif /* HAVE_SYS_STREAM_H */
+! # if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */
+ # include <sys/ptem.h>
+! # define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */
+! # endif /* HAVE_SYS_PTEM_H */
+! # if defined (HAVE_SYS_PTE_H) /* ??? */
+! # include <sys/pte.h>
+! # endif /* HAVE_SYS_PTE_H */
+! #endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
+
+ #include <stdio.h>
+*** ../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 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/bash40-019
b/shell-term-fm/bash/patches/bash40-019
new file mode 100644
index 0000000..30efd68
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-019
@@ -0,0 +1,125 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-019
+
+Bug-Reported-by: Oleksiy Melnyk <lex AT upc.ua>
+Bug-Reference-ID: <20090224142233.D2FEFC004 AT floyd.upc.ua>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00200.html
+
+Bug-Description:
+
+Using an external command as part of the DEBUG trap when job control is
+enabled causes pipelines to misbehave. The problem has to do with process
+groups assigned to the pipeline and terminal.
+
+Patch:
+
+*** ../bash-4.0-patched/jobs.c 2009-01-29 17:09:49.000000000 -0500
+--- jobs.c 2009-04-17 21:08:20.000000000 -0400
+***************
+*** 443,447 ****
+ the_pipeline = saved_pipeline;
+ already_making_children = saved_already_making_children;
+! if (discard)
+ discard_pipeline (old_pipeline);
+ }
+--- 443,447 ----
+ the_pipeline = saved_pipeline;
+ already_making_children = saved_already_making_children;
+! if (discard && old_pipeline)
+ discard_pipeline (old_pipeline);
+ }
+***************
+*** 4203,4205 ****
+--- 4204,4225 ----
+ }
+
++ void
++ save_pgrp_pipe (p, clear)
++ int *p;
++ int clear;
++ {
++ p[0] = pgrp_pipe[0];
++ p[1] = pgrp_pipe[1];
++ if (clear)
++ pgrp_pipe[0] = pgrp_pipe[1] = -1;
++ }
++
++ void
++ restore_pgrp_pipe (p)
++ int *p;
++ {
++ pgrp_pipe[0] = p[0];
++ pgrp_pipe[1] = p[1];
++ }
++
+ #endif /* PGRP_PIPE */
+*** ../bash-4.0-patched/jobs.h 2009-01-04 14:32:29.000000000 -0500
+--- jobs.h 2009-04-17 15:07:51.000000000 -0400
+***************
+*** 236,239 ****
+--- 236,241 ----
+
+ extern void close_pgrp_pipe __P((void));
++ extern void save_pgrp_pipe __P((int *, int));
++ extern void restore_pgrp_pipe __P((int *));
+
+ #if defined (JOB_CONTROL)
+*** ../bash-4.0-patched/trap.c 2009-01-16 17:07:53.000000000 -0500
+--- trap.c 2009-04-17 22:22:36.000000000 -0400
+***************
+*** 799,802 ****
+--- 799,804 ----
+ {
+ int trap_exit_value;
++ pid_t save_pgrp;
++ int save_pipe[2];
+
+ /* XXX - question: should the DEBUG trap inherit the RETURN trap? */
+***************
+*** 804,808 ****
+--- 806,832 ----
+ if ((sigmodes[DEBUG_TRAP] & SIG_TRAPPED) && ((sigmodes[DEBUG_TRAP] &
SIG_IGNORED) == 0) && ((sigmodes[DEBUG_TRAP] & SIG_INPROGRESS) == 0))
+ {
++ #if defined (JOB_CONTROL)
++ save_pgrp = pipeline_pgrp;
++ pipeline_pgrp = 0;
++ save_pipeline (1);
++ # if defined (PGRP_PIPE)
++ save_pgrp_pipe (save_pipe, 1);
++ # endif
++ stop_making_children ();
++ #endif
++
+ trap_exit_value = _run_trap_internal (DEBUG_TRAP, "debug trap");
++
++ #if defined (JOB_CONTROL)
++ pipeline_pgrp = save_pgrp;
++ restore_pipeline (1);
++ # if defined (PGRP_PIPE)
++ close_pgrp_pipe ();
++ restore_pgrp_pipe (save_pipe);
++ # endif
++ if (pipeline_pgrp > 0)
++ give_terminal_to (pipeline_pgrp, 1);
++ notify_and_cleanup ();
++ #endif
+
+ #if defined (DEBUGGER)
+*** ../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 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/bash40-020
b/shell-term-fm/bash/patches/bash40-020
new file mode 100644
index 0000000..885f15e
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-020
@@ -0,0 +1,83 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-020
+
+Bug-Reported-by: Nicolai Lissner <nlissne AT linux01.org>
+Bug-Reference-ID: <20090412020510.GA29658@lilith>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00104.html
+
+Bug-Description:
+
+If a SIGWINCH arrives while bash is performing redisplay, multi-line prompts
+are displayed incorrectly due to the display code being called recursively.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/readline/readline.h 2009-01-04
14:32:33.000000000 -0500
+--- lib/readline/readline.h 2009-04-13 08:47:00.000000000 -0400
+***************
+*** 815,820 ****
+ #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key
command */
+ #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at
least once */
+
+! #define RL_STATE_DONE 0x800000 /* done; accepted
line */
+
+ #define RL_SETSTATE(x) (rl_readline_state |= (x))
+--- 815,821 ----
+ #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key
command */
+ #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at
least once */
++ #define RL_STATE_REDISPLAYING 0x800000 /* updating terminal
display */
+
+! #define RL_STATE_DONE 0x1000000 /* done; accepted
line */
+
+ #define RL_SETSTATE(x) (rl_readline_state |= (x))
+*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000
-0500
+--- lib/readline/display.c 2009-04-13 08:29:54.000000000 -0400
+***************
+*** 513,516 ****
+--- 513,517 ----
+ data structures. */
+ _rl_block_sigint ();
++ RL_SETSTATE (RL_STATE_REDISPLAYING);
+
+ if (!rl_display_prompt)
+***************
+*** 1237,1240 ****
+--- 1238,1242 ----
+ }
+
++ RL_UNSETSTATE (RL_STATE_REDISPLAYING);
+ _rl_release_sigint ();
+ }
+*** ../bash-4.0-patched/lib/readline/terminal.c 2009-01-04
14:32:34.000000000 -0500
+--- lib/readline/terminal.c 2009-04-13 08:43:00.000000000 -0400
+***************
+*** 356,360 ****
+ if (CUSTOM_REDISPLAY_FUNC ())
+ rl_forced_update_display ();
+! else
+ _rl_redisplay_after_sigwinch ();
+ }
+--- 356,360 ----
+ if (CUSTOM_REDISPLAY_FUNC ())
+ rl_forced_update_display ();
+! else if (RL_ISSTATE(RL_STATE_REDISPLAYING) == 0)
+ _rl_redisplay_after_sigwinch ();
+ }
+*** ../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 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/bash40-021
b/shell-term-fm/bash/patches/bash40-021
new file mode 100644
index 0000000..cf6ee1f
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-021
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-021
+
+Bug-Reported-by: Matt Zyzik <matt.zyzik AT nyu.edu>
+Bug-Reference-ID: <20090319015542.696F62B8E8 AT ice.filescope.com>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00149.html
+
+Bug-Description:
+
+When not in a locale supporting multibyte characters, readline will
occasionally
+not erase characters between the cursor position and the end of the line
+when killing text backwards.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000
-0500
+--- lib/readline/display.c 2009-04-14 14:00:18.000000000 -0400
+***************
+*** 1775,1779 ****
+ adjust col_lendiff based on the difference between _rl_last_c_pos
+ and _rl_screenwidth */
+! if (col_lendiff && (_rl_last_c_pos < _rl_screenwidth))
+ #endif
+ {
+--- 1775,1779 ----
+ adjust col_lendiff based on the difference between _rl_last_c_pos
+ and _rl_screenwidth */
+! if (col_lendiff && ((MB_CUR_MAX == 1 || rl_byte_oriented) ||
(_rl_last_c_pos < _rl_screenwidth)))
+ #endif
+ {
+*** ../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 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/bash40-022
b/shell-term-fm/bash/patches/bash40-022
new file mode 100644
index 0000000..5b68538
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-022
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-022
+
+Bug-Reported-by: Bernd Eggink <monoped AT sudrala.de>
+Bug-Reference-ID: <49E65407.5010206 AT sudrala.de>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00118.html
+
+Bug-Description:
+
+When parsing case statements in command substitutions, the shell did not
+note that a newline is a shell metacharacter and can legally be followed
+by a reserved word (e.g., `esac').
+
+Patch:
+
+*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400
+--- parse.y 2009-04-15 22:27:56.000000000 -0400
+***************
+*** 3355,3359 ****
+
+ /* Meta-characters that can introduce a reserved word. Not perfect
yet. */
+! if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) &&
(tflags & LEX_INCOMMENT) == 0 && shellmeta(ch))
+ {
+ /* Add this character. */
+--- 3375,3379 ----
+
+ /* Meta-characters that can introduce a reserved word. Not perfect
yet. */
+! if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) &&
(tflags & LEX_INCOMMENT) == 0 && (shellmeta(ch) || ch == '\n'))
+ {
+ /* Add this character. */
+*** ../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 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/bash40-023
b/shell-term-fm/bash/patches/bash40-023
new file mode 100644
index 0000000..d2376c7
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-023
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-023
+
+Bug-Reported-by: Andreas Schwab <schwab AT linux-m68k.org>
+Bug-Reference-ID: <m21vrhhx08.fsf AT igel.home>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00160.html
+
+Bug-Description:
+
+If the prompt length exactly matches the screen width, and the prompt ends
+with invisible characters, readline positions the cursor incorrectly.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000
-0500
+--- lib/readline/display.c 2009-04-25 21:42:18.000000000 -0400
+***************
+*** 1895,1898 ****
+--- 1897,1904 ----
+ woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
+ cpos = _rl_last_c_pos;
++
++ if (cpos == 0 && cpos == new)
++ return;
++
+ #if defined (HANDLE_MULTIBYTE)
+ /* If we have multibyte characters, NEW is indexed by the buffer point in
+***************
+*** 1908,1914 ****
+ desired display position. */
+ if ((new > prompt_last_invisible) || /* XXX - don't use
woff here */
+! (prompt_physical_chars > _rl_screenwidth &&
+ _rl_last_v_pos == prompt_last_screen_line &&
+! wrap_offset >= woff &&
+ new >
(prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))
+ /* XXX last comparison might need to be >= */
+--- 1914,1920 ----
+ desired display position. */
+ if ((new > prompt_last_invisible) || /* XXX - don't use
woff here */
+! (prompt_physical_chars >= _rl_screenwidth &&
+ _rl_last_v_pos == prompt_last_screen_line &&
+! wrap_offset >= woff && dpos >= woff &&
+ new >
(prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))
+ /* XXX last comparison might need to be >= */
+*** ../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 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/bash40-024
b/shell-term-fm/bash/patches/bash40-024
new file mode 100644
index 0000000..ac2058a
--- /dev/null
+++ b/shell-term-fm/bash/patches/bash40-024
@@ -0,0 +1,112 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-024
+
+Bug-Reported-by: Matt Zyzik <matt.zyzik AT nyu.edu>
+Bug-Reference-ID: <20090405205428.4FDEA1C7175 AT ice.filescope.com>
+Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00021.html
+
+Bug-Description:
+
+When using the ** globbing operator, bash will incorrectly add an extra
+directory name when the preceding directory name ends with `*' or an empty
+string when there is no preceding directory name.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/glob/glob.c 2009-01-04 14:32:30.000000000
-0500
+--- lib/glob/glob.c 2009-04-28 10:22:29.000000000 -0400
+***************
+*** 357,361 ****
+ if (ep)
+ *ep = 0;
+! if (r)
+ free (r);
+ return (struct globval *)0;
+--- 357,361 ----
+ if (ep)
+ *ep = 0;
+! if (r && r != &glob_error_return)
+ free (r);
+ return (struct globval *)0;
+***************
+*** 666,671 ****
+ }
+
+! /* compat: if GX_ALLDIRS, add the passed directory also */
+! if (add_current)
+ {
+ sdlen = strlen (dir);
+--- 666,672 ----
+ }
+
+! /* compat: if GX_ALLDIRS, add the passed directory also, but don't add an
+! empty directory name. */
+! if (add_current && (flags & GX_NULLDIR) == 0)
+ {
+ sdlen = strlen (dir);
+***************
+*** 679,686 ****
+ nextlink->next = lastlink;
+ lastlink = nextlink;
+! if (flags & GX_NULLDIR)
+! nextname[0] = '\0';
+! else
+! bcopy (dir, nextname, sdlen + 1);
+ ++count;
+ }
+--- 680,684 ----
+ nextlink->next = lastlink;
+ lastlink = nextlink;
+! bcopy (dir, nextname, sdlen + 1);
+ ++count;
+ }
+***************
+*** 943,947 ****
+ register unsigned int l;
+
+! array = glob_dir_to_array (directories[i], temp_results, flags);
+ l = 0;
+ while (array[l] != NULL)
+--- 941,950 ----
+ register unsigned int l;
+
+! /* If we're expanding **, we don't need to glue the directory
+! name to the results; we've already done it in glob_vector */
+! if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1]
== '*' && filename[2] == '\0')
+! array = temp_results;
+! else
+! array = glob_dir_to_array (directories[i], temp_results,
flags);
+ l = 0;
+ while (array[l] != NULL)
+***************
+*** 960,964 ****
+
+ /* Note that the elements of ARRAY are not freed. */
+! free ((char *) array);
+ }
+ }
+--- 963,968 ----
+
+ /* Note that the elements of ARRAY are not freed. */
+! if (array != temp_results)
+! free ((char *) array);
+ }
+ }
+*** ../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 23
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */



  • [SM-Commit] GIT changes to master grimoire by George Sherwood (b0257b910e63489d28bb3037924546cece8b8f33), George Sherwood, 07/22/2009

Archive powered by MHonArc 2.6.24.

Top of Page