mirror of
https://git.busybox.net/buildroot.git
synced 2024-11-25 22:43:29 +08:00
- bump to bash 3.2. Thanks to Alexander Rigbo
This commit is contained in:
parent
5a3fa49e81
commit
f9d7e9f0e7
@ -3,7 +3,7 @@
|
||||
# bash
|
||||
#
|
||||
#############################################################
|
||||
BASH_VER:=3.1
|
||||
BASH_VER:=3.2
|
||||
BASH_SOURCE:=bash-$(BASH_VER).tar.gz
|
||||
BASH_SITE:=http://ftp.gnu.org/pub/gnu/bash
|
||||
BASH_CAT:=$(ZCAT)
|
||||
@ -23,7 +23,8 @@ $(BASH_DIR)/.unpacked: $(DL_DIR)/$(BASH_SOURCE)
|
||||
# This is broken when -lintl is added to LIBS
|
||||
$(SED) 's,LIBS_FOR_BUILD =.*,LIBS_FOR_BUILD =,g' \
|
||||
$(BASH_DIR)/builtins/Makefile.in
|
||||
touch $(BASH_DIR)/.unpacked
|
||||
$(CONFIG_UPDATE) $(BASH_DIR)
|
||||
touch $@
|
||||
|
||||
$(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked
|
||||
# bash_cv_have_mbstate_t=yes
|
||||
@ -52,10 +53,10 @@ $(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked
|
||||
--enable-alias \
|
||||
--without-bash-malloc \
|
||||
);
|
||||
touch $(BASH_DIR)/.configured
|
||||
touch $@
|
||||
|
||||
$(BASH_DIR)/$(BASH_BINARY): $(BASH_DIR)/.configured
|
||||
$(MAKE1) CC=$(TARGET_CC) CC_FOR_BUILD="$(HOSTCC)" -C $(BASH_DIR)
|
||||
$(MAKE) CC=$(TARGET_CC) CC_FOR_BUILD="$(HOSTCC)" -C $(BASH_DIR)
|
||||
|
||||
$(TARGET_DIR)/$(BASH_TARGET_BINARY): $(BASH_DIR)/$(BASH_BINARY)
|
||||
$(MAKE1) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BASH_DIR) install
|
||||
|
@ -1,104 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-001
|
||||
|
||||
Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
|
||||
Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
There are parsing problems with compound assignments in several contexts,
|
||||
including as arguments to builtins like `local', `eval', and `let', and
|
||||
as multiple assignments in a single command.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/parse.y Fri Nov 11 23:14:18 2005
|
||||
--- bash-3.1/parse.y Fri Dec 16 20:43:07 2005
|
||||
***************
|
||||
*** 3696,3700 ****
|
||||
b = builtin_address_internal (token, 0);
|
||||
if (b && (b->flags & ASSIGNMENT_BUILTIN))
|
||||
! parser_state |= PST_ASSIGNOK;
|
||||
}
|
||||
|
||||
--- 3696,3702 ----
|
||||
b = builtin_address_internal (token, 0);
|
||||
if (b && (b->flags & ASSIGNMENT_BUILTIN))
|
||||
! parser_state |= PST_ASSIGNOK;
|
||||
! else if (STREQ (token, "eval") || STREQ (token, "let"))
|
||||
! parser_state |= PST_ASSIGNOK;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 4687,4691 ****
|
||||
{
|
||||
WORD_LIST *wl, *rl;
|
||||
! int tok, orig_line_number, orig_token_size;
|
||||
char *saved_token, *ret;
|
||||
|
||||
--- 4689,4693 ----
|
||||
{
|
||||
WORD_LIST *wl, *rl;
|
||||
! int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
|
||||
char *saved_token, *ret;
|
||||
|
||||
***************
|
||||
*** 4693,4696 ****
|
||||
--- 4695,4699 ----
|
||||
orig_token_size = token_buffer_size;
|
||||
orig_line_number = line_number;
|
||||
+ orig_last_token = last_read_token;
|
||||
|
||||
last_read_token = WORD; /* WORD to allow reserved words here */
|
||||
***************
|
||||
*** 4699,4702 ****
|
||||
--- 4702,4707 ----
|
||||
token_buffer_size = 0;
|
||||
|
||||
+ assignok = parser_state&PST_ASSIGNOK; /* XXX */
|
||||
+
|
||||
wl = (WORD_LIST *)NULL; /* ( */
|
||||
parser_state |= PST_COMPASSIGN;
|
||||
***************
|
||||
*** 4741,4745 ****
|
||||
}
|
||||
|
||||
! last_read_token = WORD;
|
||||
if (wl)
|
||||
{
|
||||
--- 4746,4750 ----
|
||||
}
|
||||
|
||||
! last_read_token = orig_last_token; /* XXX - was WORD? */
|
||||
if (wl)
|
||||
{
|
||||
***************
|
||||
*** 4753,4756 ****
|
||||
--- 4758,4765 ----
|
||||
if (retlenp)
|
||||
*retlenp = (ret && *ret) ? strlen (ret) : 0;
|
||||
+
|
||||
+ if (assignok)
|
||||
+ parser_state |= PST_ASSIGNOK;
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,239 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-002
|
||||
|
||||
Bug-Reported-by: vapier@gentoo.org
|
||||
Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org>
|
||||
Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
This corrects several omissions in the bash documentation: It adds the new
|
||||
options to `ulimit', the exact expansions for `case' patterns, clarification
|
||||
of the language concerning the return value of `[[', and updated version
|
||||
information.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/doc/bash.1 Wed Oct 12 11:40:52 2005
|
||||
--- bash-3.1/doc/bash.1 Wed Dec 28 19:58:54 2005
|
||||
***************
|
||||
*** 7,16 ****
|
||||
.\" chet@po.cwru.edu
|
||||
.\"
|
||||
! .\" Last Change: Sat Aug 27 13:28:44 EDT 2005
|
||||
.\"
|
||||
.\" bash_builtins, strip all but Built-Ins section
|
||||
.if \n(zZ=1 .ig zZ
|
||||
.if \n(zY=1 .ig zY
|
||||
! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1"
|
||||
.\"
|
||||
.\" There's some problem with having a `@'
|
||||
--- 7,16 ----
|
||||
.\" chet@po.cwru.edu
|
||||
.\"
|
||||
! .\" Last Change: Wed Dec 28 19:58:45 EST 2005
|
||||
.\"
|
||||
.\" bash_builtins, strip all but Built-Ins section
|
||||
.if \n(zZ=1 .ig zZ
|
||||
.if \n(zY=1 .ig zY
|
||||
! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1"
|
||||
.\"
|
||||
.\" There's some problem with having a `@'
|
||||
***************
|
||||
*** 678,683 ****
|
||||
is enabled, the match is performed without regard to the case
|
||||
of alphabetic characters.
|
||||
! The return value is 0 if the string matches or does not match
|
||||
! the pattern, respectively, and 1 otherwise.
|
||||
Any part of the pattern may be quoted to force it to be matched as a
|
||||
string.
|
||||
--- 678,683 ----
|
||||
is enabled, the match is performed without regard to the case
|
||||
of alphabetic characters.
|
||||
! The return value is 0 if the string matches (\fB==\fP) or does not match
|
||||
! (\fB!=\fP) the pattern, and 1 otherwise.
|
||||
Any part of the pattern may be quoted to force it to be matched as a
|
||||
string.
|
||||
***************
|
||||
*** 808,811 ****
|
||||
--- 808,817 ----
|
||||
.B Pathname Expansion
|
||||
below).
|
||||
+ The \fIword\fP is expanded using tilde
|
||||
+ expansion, parameter and variable expansion, arithmetic substituion,
|
||||
+ command substitution, process substitution and quote removal.
|
||||
+ Each \fIpattern\fP examined is expanded using tilde
|
||||
+ expansion, parameter and variable expansion, arithmetic substituion,
|
||||
+ command substitution, and process substitution.
|
||||
If the shell option
|
||||
.B nocasematch
|
||||
***************
|
||||
*** 8485,8489 ****
|
||||
none are found.
|
||||
.TP
|
||||
! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]]
|
||||
Provides control over the resources available to the shell and to
|
||||
processes started by it, on systems that allow such control.
|
||||
--- 8485,8489 ----
|
||||
none are found.
|
||||
.TP
|
||||
! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]]
|
||||
Provides control over the resources available to the shell and to
|
||||
processes started by it, on systems that allow such control.
|
||||
***************
|
||||
*** 8524,8527 ****
|
||||
--- 8524,8530 ----
|
||||
The maximum size of files created by the shell
|
||||
.TP
|
||||
+ .B \-i
|
||||
+ The maximum number of pending signals
|
||||
+ .TP
|
||||
.B \-l
|
||||
The maximum size that may be locked into memory
|
||||
***************
|
||||
*** 8537,8540 ****
|
||||
--- 8540,8546 ----
|
||||
The pipe size in 512-byte blocks (this may not be set)
|
||||
.TP
|
||||
+ .B \-q
|
||||
+ The maximum number of bytes in POSIX message queues
|
||||
+ .TP
|
||||
.B \-s
|
||||
The maximum stack size
|
||||
***************
|
||||
*** 8548,8551 ****
|
||||
--- 8554,8560 ----
|
||||
.B \-v
|
||||
The maximum amount of virtual memory available to the shell
|
||||
+ .TP
|
||||
+ .B \-x
|
||||
+ The maximum number of file locks
|
||||
.PD
|
||||
.PP
|
||||
*** bash-3.1/doc/bashref.texi Mon Oct 3 15:07:21 2005
|
||||
--- bash-3.1/doc/bashref.texi Fri Dec 30 10:50:39 2005
|
||||
***************
|
||||
*** 962,967 ****
|
||||
is enabled, the match is performed without regard to the case
|
||||
of alphabetic characters.
|
||||
! The return value is 0 if the string matches or does not match
|
||||
! the pattern, respectively, and 1 otherwise.
|
||||
Any part of the pattern may be quoted to force it to be matched as a
|
||||
string.
|
||||
--- 962,967 ----
|
||||
is enabled, the match is performed without regard to the case
|
||||
of alphabetic characters.
|
||||
! The return value is 0 if the string matches (@samp{==}) or does not
|
||||
! match (@samp{!=})the pattern, and 1 otherwise.
|
||||
Any part of the pattern may be quoted to force it to be matched as a
|
||||
string.
|
||||
***************
|
||||
*** 2599,2603 ****
|
||||
or inconvenient to obtain with separate utilities.
|
||||
|
||||
! This section briefly the builtins which Bash inherits from
|
||||
the Bourne Shell, as well as the builtin commands which are unique
|
||||
to or have been extended in Bash.
|
||||
--- 2597,2601 ----
|
||||
or inconvenient to obtain with separate utilities.
|
||||
|
||||
! This section briefly describes the builtins which Bash inherits from
|
||||
the Bourne Shell, as well as the builtin commands which are unique
|
||||
to or have been extended in Bash.
|
||||
***************
|
||||
*** 3834,3838 ****
|
||||
@btindex ulimit
|
||||
@example
|
||||
! ulimit [-acdflmnpstuvSH] [@var{limit}]
|
||||
@end example
|
||||
@code{ulimit} provides control over the resources available to processes
|
||||
--- 3834,3838 ----
|
||||
@btindex ulimit
|
||||
@example
|
||||
! ulimit [-acdfilmnpqstuvxSH] [@var{limit}]
|
||||
@end example
|
||||
@code{ulimit} provides control over the resources available to processes
|
||||
***************
|
||||
*** 3858,3861 ****
|
||||
--- 3858,3864 ----
|
||||
The maximum size of files created by the shell.
|
||||
|
||||
+ @item -i
|
||||
+ The maximum number of pending signals.
|
||||
+
|
||||
@item -l
|
||||
The maximum size that may be locked into memory.
|
||||
***************
|
||||
*** 3870,3873 ****
|
||||
--- 3873,3879 ----
|
||||
The pipe buffer size.
|
||||
|
||||
+ @item -q
|
||||
+ The maximum number of bytes in POSIX message queues.
|
||||
+
|
||||
@item -s
|
||||
The maximum stack size.
|
||||
***************
|
||||
*** 3882,3885 ****
|
||||
--- 3888,3894 ----
|
||||
The maximum amount of virtual memory available to the process.
|
||||
|
||||
+ @item -x
|
||||
+ The maximum number of file locks.
|
||||
+
|
||||
@end table
|
||||
|
||||
***************
|
||||
*** 4090,4095 ****
|
||||
|
||||
@item -x
|
||||
! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP
|
||||
! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands
|
||||
and their arguments or associated word lists after they are
|
||||
expanded and before they are executed. The value of the @env{PS4}
|
||||
--- 4103,4108 ----
|
||||
|
||||
@item -x
|
||||
! Print a trace of simple commands, @code{for} commands, @code{case}
|
||||
! commands, @code{select} commands, and arithmetic @code{for} commands
|
||||
and their arguments or associated word lists after they are
|
||||
expanded and before they are executed. The value of the @env{PS4}
|
||||
*** bash-3.1/doc/version.texi Tue Sep 20 14:52:56 2005
|
||||
--- bash-3.1/doc/version.texi Fri Dec 30 10:50:58 2005
|
||||
***************
|
||||
*** 3,10 ****
|
||||
@end ignore
|
||||
|
||||
! @set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005
|
||||
|
||||
! @set EDITION 3.1-beta1
|
||||
! @set VERSION 3.1-beta1
|
||||
! @set UPDATED 5 September 2005
|
||||
! @set UPDATED-MONTH September 2005
|
||||
--- 3,10 ----
|
||||
@end ignore
|
||||
|
||||
! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005
|
||||
|
||||
! @set EDITION 3.1
|
||||
! @set VERSION 3.1
|
||||
! @set UPDATED 30 December 2005
|
||||
! @set UPDATED-MONTH December 2005
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,47 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-003
|
||||
|
||||
Bug-Reported-by: Adam Buraczewski <adamb@nor.pl>
|
||||
Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A missing #define guard causes bash to not compile when readline is not
|
||||
configured in, either as the result of explicit disabling or when the
|
||||
`--enable-minimal-config' option is given to configure.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/variables.c Sat Nov 12 21:22:37 2005
|
||||
--- bash-3.1/variables.c Mon Dec 26 13:34:03 2005
|
||||
***************
|
||||
*** 861,867 ****
|
||||
--- 863,871 ----
|
||||
char val[INT_STRLEN_BOUND(int) + 1], *v;
|
||||
|
||||
+ #if defined (READLINE)
|
||||
/* If we are currently assigning to LINES or COLUMNS, don't do anything. */
|
||||
if (winsize_assignment)
|
||||
return;
|
||||
+ #endif
|
||||
|
||||
v = inttostr (lines, val, sizeof (val));
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,48 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-004
|
||||
|
||||
Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
|
||||
Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A local array variable declared at function scope that shadows a variable
|
||||
of the same name declared in a previous scope did not create a separate
|
||||
variable instance, but used the previous one.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/subst.c Mon Oct 24 09:51:13 2005
|
||||
--- bash-3.1/subst.c Fri Dec 30 12:11:53 2005
|
||||
***************
|
||||
*** 2188,2192 ****
|
||||
{
|
||||
v = find_variable (name);
|
||||
! if (v == 0 || array_p (v) == 0)
|
||||
v = make_local_array_variable (name);
|
||||
v = assign_array_var_from_string (v, value, flags);
|
||||
--- 2188,2192 ----
|
||||
{
|
||||
v = find_variable (name);
|
||||
! if (v == 0 || array_p (v) == 0 || v->context != variable_context)
|
||||
v = make_local_array_variable (name);
|
||||
v = assign_array_var_from_string (v, value, flags);
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,54 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-005
|
||||
|
||||
Bug-Reported-by:
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When tilde expansion fails, POSIX leaves it unspecified whether or not the
|
||||
word undergoes the additional word expansions. Bash-3.1 as distributed
|
||||
skipped the rest of the expansions; this patch restores the bash-3.0 behavior.
|
||||
|
||||
This means that something like
|
||||
USER=ratbert
|
||||
echo ~$USER
|
||||
|
||||
will echo `~ratbert' rather than `~$USER'.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/subst.c Mon Oct 24 09:51:13 2005
|
||||
--- bash-3.1/subst.c Fri Dec 30 12:11:53 2005
|
||||
***************
|
||||
*** 6796,6799 ****
|
||||
--- 6823,6832 ----
|
||||
{
|
||||
temp1 = bash_tilde_expand (temp, tflag);
|
||||
+ if (temp1 && *temp1 == '~' && STREQ (temp, temp1))
|
||||
+ {
|
||||
+ FREE (temp);
|
||||
+ FREE (temp1);
|
||||
+ goto add_character; /* tilde expansion failed */
|
||||
+ }
|
||||
free (temp);
|
||||
temp = temp1;
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,58 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-006
|
||||
|
||||
Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
|
||||
Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Under some circumstances, Bash can use an incorrect setting for the flag
|
||||
that indicates whether or not the terminal can auto-wrap, resulting in line-
|
||||
wrapping errors.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/lib/readline/terminal.c Sat Nov 12 20:46:54 2005
|
||||
--- bash-3.1/lib/readline/terminal.c Tue Jan 31 10:57:54 2006
|
||||
***************
|
||||
*** 123,127 ****
|
||||
|
||||
/* Non-zero means the terminal can auto-wrap lines. */
|
||||
! int _rl_term_autowrap;
|
||||
|
||||
/* Non-zero means that this terminal has a meta key. */
|
||||
--- 126,130 ----
|
||||
|
||||
/* Non-zero means the terminal can auto-wrap lines. */
|
||||
! int _rl_term_autowrap = -1;
|
||||
|
||||
/* Non-zero means that this terminal has a meta key. */
|
||||
***************
|
||||
*** 275,278 ****
|
||||
--- 278,284 ----
|
||||
int rows, cols;
|
||||
{
|
||||
+ if (_rl_term_autowrap == -1)
|
||||
+ _rl_init_terminal_io (rl_terminal_name);
|
||||
+
|
||||
if (rows > 0)
|
||||
_rl_screenheight = rows;
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,121 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-007
|
||||
|
||||
Bug-Reported-by: Tim Waugh <twaugh@redhat.com>, Laird Breyer <laird@lbreyer.com>
|
||||
Bug-Reference-ID: <20060105174434.GY16000@redhat.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When the number of saved jobs exceeds the initial size of the jobs array
|
||||
(4096 slots), the array must be compacted and reallocated. An error in
|
||||
the code to do that could cause a segmentation fault.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
|
||||
--- bash-3.1/jobs.c Wed Feb 1 13:55:38 2006
|
||||
***************
|
||||
*** 845,851 ****
|
||||
{
|
||||
sigset_t set, oset;
|
||||
! int nsize, i, j;
|
||||
JOB **nlist;
|
||||
|
||||
nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
|
||||
nsize *= JOB_SLOTS;
|
||||
--- 888,895 ----
|
||||
{
|
||||
sigset_t set, oset;
|
||||
! int nsize, i, j, ncur, nprev;
|
||||
JOB **nlist;
|
||||
|
||||
+ ncur = nprev = NO_JOB;
|
||||
nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
|
||||
nsize *= JOB_SLOTS;
|
||||
***************
|
||||
*** 855,869 ****
|
||||
|
||||
BLOCK_CHILD (set, oset);
|
||||
! nlist = (JOB **) xmalloc (nsize * sizeof (JOB *));
|
||||
for (i = j = 0; i < js.j_jobslots; i++)
|
||||
if (jobs[i])
|
||||
! nlist[j++] = jobs[i];
|
||||
|
||||
js.j_firstj = 0;
|
||||
! js.j_lastj = (j > 0) ? j - 1: 0;
|
||||
js.j_jobslots = nsize;
|
||||
|
||||
! free (jobs);
|
||||
! jobs = nlist;
|
||||
|
||||
UNBLOCK_CHILD (oset);
|
||||
--- 899,947 ----
|
||||
|
||||
BLOCK_CHILD (set, oset);
|
||||
! nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
|
||||
!
|
||||
for (i = j = 0; i < js.j_jobslots; i++)
|
||||
if (jobs[i])
|
||||
! {
|
||||
! if (i == js.j_current)
|
||||
! ncur = j;
|
||||
! if (i == js.j_previous)
|
||||
! nprev = j;
|
||||
! nlist[j++] = jobs[i];
|
||||
! }
|
||||
!
|
||||
! #if defined (DEBUG)
|
||||
! itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
|
||||
! itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
|
||||
! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
|
||||
! #endif
|
||||
|
||||
js.j_firstj = 0;
|
||||
! js.j_lastj = (j > 0) ? j - 1 : 0;
|
||||
! js.j_njobs = j;
|
||||
js.j_jobslots = nsize;
|
||||
|
||||
! /* Zero out remaining slots in new jobs list */
|
||||
! for ( ; j < nsize; j++)
|
||||
! nlist[j] = (JOB *)NULL;
|
||||
!
|
||||
! if (jobs != nlist)
|
||||
! {
|
||||
! free (jobs);
|
||||
! jobs = nlist;
|
||||
! }
|
||||
!
|
||||
! if (ncur != NO_JOB)
|
||||
! js.j_current = ncur;
|
||||
! if (nprev != NO_JOB)
|
||||
! js.j_previous = nprev;
|
||||
!
|
||||
! /* Need to reset these */
|
||||
! if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj)
|
||||
! reset_current ();
|
||||
!
|
||||
! #ifdef DEBUG
|
||||
! itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous);
|
||||
! #endif
|
||||
|
||||
UNBLOCK_CHILD (oset);
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,51 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-008
|
||||
|
||||
Bug-Reported-by: Ingemar Nilsson <init@kth.se>
|
||||
Bug-Reference-ID: <43C38D35.7020404@kth.se>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
In some cases, bash inappropriately allows SIGINT from the terminal to
|
||||
reach background processes.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
|
||||
--- bash-3.1/jobs.c Wed Feb 1 13:55:38 2006
|
||||
***************
|
||||
*** 2199,2203 ****
|
||||
wait_sigint_received = 0;
|
||||
if (job_control == 0)
|
||||
! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
|
||||
|
||||
termination_state = last_command_exit_value;
|
||||
--- 2298,2306 ----
|
||||
wait_sigint_received = 0;
|
||||
if (job_control == 0)
|
||||
! {
|
||||
! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
|
||||
! if (old_sigint_handler == SIG_IGN)
|
||||
! set_signal_handler (SIGINT, old_sigint_handler);
|
||||
! }
|
||||
|
||||
termination_state = last_command_exit_value;
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,66 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-009
|
||||
|
||||
Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com>
|
||||
Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Under some circumstances, background (asynchronous) jobs can set the terminal
|
||||
process group incorrectly. This can cause a foreground process (including
|
||||
the foreground shell) to get read errors and exit.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
|
||||
--- bash-3.1/jobs.c Wed Feb 1 13:55:38 2006
|
||||
***************
|
||||
*** 620,625 ****
|
||||
* the parent gives it away.
|
||||
*
|
||||
*/
|
||||
! if (job_control && newjob->pgrp)
|
||||
give_terminal_to (newjob->pgrp, 0);
|
||||
}
|
||||
--- 634,642 ----
|
||||
* the parent gives it away.
|
||||
*
|
||||
+ * Don't give the terminal away if this shell is an asynchronous
|
||||
+ * subshell.
|
||||
+ *
|
||||
*/
|
||||
! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
|
||||
give_terminal_to (newjob->pgrp, 0);
|
||||
}
|
||||
***************
|
||||
*** 1656,1660 ****
|
||||
shell's process group (we could be in the middle of a
|
||||
pipeline, for example). */
|
||||
! if (async_p == 0 && pipeline_pgrp != shell_pgrp)
|
||||
give_terminal_to (pipeline_pgrp, 0);
|
||||
|
||||
--- 1743,1747 ----
|
||||
shell's process group (we could be in the middle of a
|
||||
pipeline, for example). */
|
||||
! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
|
||||
give_terminal_to (pipeline_pgrp, 0);
|
||||
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,164 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-010
|
||||
|
||||
Bug-Reported-by: vw@vonwolff.de
|
||||
Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
There is a difference in behavior between bash-3.0 and bash-3.1 involving
|
||||
parsing of single- and double-quoted strings occurring in old-style
|
||||
command substitution. The difference has to do with how backslashes are
|
||||
processed. This patch restores a measure of backwards compatibility while
|
||||
the question of POSIX conformance and ultimately correct behavior is discussed.
|
||||
|
||||
THIS IS AN UPDATED PATCH. USE THIS COMMAND TO REVERSE THE EFFECTS OF
|
||||
THE ORIGINAL PATCH. THE CURRENT DIRECTORY MUST BE THE BASH-3.1 SOURCE
|
||||
DIRECTORY.
|
||||
|
||||
patch -p0 -R < bash31-010.orig
|
||||
|
||||
Then apply this patch as usual.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/parse.y Fri Nov 11 23:14:18 2005
|
||||
--- bash-3.1/parse.y Thu Feb 23 08:21:12 2006
|
||||
***************
|
||||
*** 2716,2721 ****
|
||||
--- 2723,2729 ----
|
||||
#define P_ALLOWESC 0x02
|
||||
#define P_DQUOTE 0x04
|
||||
#define P_COMMAND 0x08 /* parsing a command, so look for comments */
|
||||
+ #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */
|
||||
|
||||
static char matched_pair_error;
|
||||
static char *
|
||||
***************
|
||||
*** 2725,2736 ****
|
||||
int *lenp, flags;
|
||||
{
|
||||
int count, ch, was_dollar, in_comment, check_comment;
|
||||
! int pass_next_character, nestlen, ttranslen, start_lineno;
|
||||
char *ret, *nestret, *ttrans;
|
||||
int retind, retsize, rflags;
|
||||
|
||||
count = 1;
|
||||
! pass_next_character = was_dollar = in_comment = 0;
|
||||
check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
|
||||
|
||||
/* RFLAGS is the set of flags we want to pass to recursive calls. */
|
||||
--- 2733,2744 ----
|
||||
int *lenp, flags;
|
||||
{
|
||||
int count, ch, was_dollar, in_comment, check_comment;
|
||||
! int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno;
|
||||
char *ret, *nestret, *ttrans;
|
||||
int retind, retsize, rflags;
|
||||
|
||||
count = 1;
|
||||
! pass_next_character = backq_backslash = was_dollar = in_comment = 0;
|
||||
check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
|
||||
|
||||
/* RFLAGS is the set of flags we want to pass to recursive calls. */
|
||||
***************
|
||||
*** 2742,2752 ****
|
||||
start_lineno = line_number;
|
||||
while (count)
|
||||
{
|
||||
! #if 0
|
||||
! ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0);
|
||||
! #else
|
||||
! ch = shell_getc (qc != '\'' && pass_next_character == 0);
|
||||
! #endif
|
||||
if (ch == EOF)
|
||||
{
|
||||
free (ret);
|
||||
--- 2750,2757 ----
|
||||
start_lineno = line_number;
|
||||
while (count)
|
||||
{
|
||||
! ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0);
|
||||
!
|
||||
if (ch == EOF)
|
||||
{
|
||||
free (ret);
|
||||
***************
|
||||
*** 2771,2779 ****
|
||||
continue;
|
||||
}
|
||||
/* Not exactly right yet */
|
||||
! else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1])))
|
||||
in_comment = 1;
|
||||
|
||||
if (pass_next_character) /* last char was backslash */
|
||||
{
|
||||
pass_next_character = 0;
|
||||
--- 2776,2791 ----
|
||||
continue;
|
||||
}
|
||||
/* Not exactly right yet */
|
||||
! else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1])))
|
||||
in_comment = 1;
|
||||
|
||||
+ /* last char was backslash inside backquoted command substitution */
|
||||
+ if (backq_backslash)
|
||||
+ {
|
||||
+ backq_backslash = 0;
|
||||
+ /* Placeholder for adding special characters */
|
||||
+ }
|
||||
+
|
||||
if (pass_next_character) /* last char was backslash */
|
||||
{
|
||||
pass_next_character = 0;
|
||||
***************
|
||||
*** 2814,2819 ****
|
||||
--- 2824,2831 ----
|
||||
{
|
||||
if MBTEST((flags & P_ALLOWESC) && ch == '\\')
|
||||
pass_next_character++;
|
||||
+ else if MBTEST((flags & P_BACKQUOTE) && ch == '\\')
|
||||
+ backq_backslash++;
|
||||
continue;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 2898,2904 ****
|
||||
}
|
||||
else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
|
||||
{
|
||||
! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
|
||||
goto add_nestret;
|
||||
}
|
||||
else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
|
||||
--- 2910,2920 ----
|
||||
}
|
||||
else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
|
||||
{
|
||||
! /* Add P_BACKQUOTE so backslash quotes the next character and
|
||||
! shell_getc does the right thing with \<newline>. We do this for
|
||||
! a measure of backwards compatibility -- it's not strictly the
|
||||
! right POSIX thing. */
|
||||
! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE);
|
||||
goto add_nestret;
|
||||
}
|
||||
else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,47 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-011
|
||||
|
||||
Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com>
|
||||
Bug-Reference-ID: <E1EvwxP-0004LD-GC@localhost.localdomain>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A change in bash-3.1 caused the single quotes to be stripped from ANSI-C
|
||||
quoting inside double-quoted command substitutions.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/parse.y Fri Nov 11 23:14:18 2005
|
||||
--- bash-3.1/parse.y Wed Jan 25 14:55:18 2006
|
||||
***************
|
||||
*** 2908,2912 ****
|
||||
count--;
|
||||
if (ch == '(') /* ) */
|
||||
! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
|
||||
else if (ch == '{') /* } */
|
||||
nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
|
||||
--- 2914,2918 ----
|
||||
count--;
|
||||
if (ch == '(') /* ) */
|
||||
! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE);
|
||||
else if (ch == '{') /* } */
|
||||
nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,47 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-012
|
||||
|
||||
Bug-Reported-by: Alexander Kshevetskiy <alex@dgap.mipt.ru>
|
||||
Bug-Reference-ID: <308374997.20060124175849@dgap.mipt.ru>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00097.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
There is a parsing problem involving parentheses in assignment statements
|
||||
that causes words to be terminated prematurely.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/parse.y Fri Nov 11 23:14:18 2005
|
||||
--- bash-3.1/parse.y Wed Jan 25 14:55:18 2006
|
||||
***************
|
||||
*** 3579,3583 ****
|
||||
all_digit_token = 0;
|
||||
compound_assignment = 1;
|
||||
! #if 0
|
||||
goto next_character;
|
||||
#else
|
||||
--- 3584,3588 ----
|
||||
all_digit_token = 0;
|
||||
compound_assignment = 1;
|
||||
! #if 1
|
||||
goto next_character;
|
||||
#else
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,44 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-013
|
||||
|
||||
Bug-Reported-by: Bob Rossi <bob@brasko.net>
|
||||
Bug-Reference-ID: <43F60606.80708@case.edu>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
In some cases, readline will reference freed memory when attempting to
|
||||
display a portion of the prompt.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1-patched/lib/readline/readline.c Mon Jul 4 22:29:35 2005
|
||||
--- bash-3.1/lib/readline/readline.c Fri Feb 17 22:54:22 2006
|
||||
***************
|
||||
*** 282,287 ****
|
||||
--- 282,288 ----
|
||||
{
|
||||
FREE (rl_prompt);
|
||||
rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
|
||||
+ rl_display_prompt = rl_prompt ? rl_prompt : "";
|
||||
|
||||
rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
|
||||
return 0;
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,105 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-014
|
||||
|
||||
Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com>
|
||||
Bug-Reference-ID: <20060203191607.GC27614@localhost>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
The displayed search prompt is corrupted when using non-incremental
|
||||
searches in vi and emacs mode if the prompt contains non-printing
|
||||
characters or spans multiple lines. The prompt is expanded more than
|
||||
once; the second time without the escape sequences that protect non-
|
||||
printing characters from the length calculations.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005
|
||||
--- bash-3.1/lib/readline/display.c Sat Feb 18 12:14:58 2006
|
||||
***************
|
||||
*** 1983,1993 ****
|
||||
int pchar;
|
||||
{
|
||||
int len;
|
||||
! char *pmt;
|
||||
|
||||
rl_save_prompt ();
|
||||
|
||||
! if (saved_local_prompt == 0)
|
||||
{
|
||||
len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
|
||||
pmt = (char *)xmalloc (len + 2);
|
||||
--- 1998,2012 ----
|
||||
int pchar;
|
||||
{
|
||||
int len;
|
||||
! char *pmt, *p;
|
||||
|
||||
rl_save_prompt ();
|
||||
|
||||
! /* We've saved the prompt, and can do anything with the various prompt
|
||||
! strings we need before they're restored. We want the unexpanded
|
||||
! portion of the prompt string after any final newline. */
|
||||
! p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
|
||||
! if (p == 0)
|
||||
{
|
||||
len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
|
||||
pmt = (char *)xmalloc (len + 2);
|
||||
***************
|
||||
*** 1998,2016 ****
|
||||
}
|
||||
else
|
||||
{
|
||||
! len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
|
||||
pmt = (char *)xmalloc (len + 2);
|
||||
if (len)
|
||||
! strcpy (pmt, saved_local_prompt);
|
||||
pmt[len] = pchar;
|
||||
pmt[len+1] = '\0';
|
||||
! local_prompt = savestring (pmt);
|
||||
! prompt_last_invisible = saved_last_invisible;
|
||||
! prompt_visible_length = saved_visible_length + 1;
|
||||
! }
|
||||
|
||||
prompt_physical_chars = saved_physical_chars + 1;
|
||||
-
|
||||
return pmt;
|
||||
}
|
||||
|
||||
--- 2017,2033 ----
|
||||
}
|
||||
else
|
||||
{
|
||||
! p++;
|
||||
! len = strlen (p);
|
||||
pmt = (char *)xmalloc (len + 2);
|
||||
if (len)
|
||||
! strcpy (pmt, p);
|
||||
pmt[len] = pchar;
|
||||
pmt[len+1] = '\0';
|
||||
! }
|
||||
|
||||
+ /* will be overwritten by expand_prompt, called from rl_message */
|
||||
prompt_physical_chars = saved_physical_chars + 1;
|
||||
return pmt;
|
||||
}
|
||||
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,106 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-015
|
||||
|
||||
Bug-Reported-by: Benoit Vila
|
||||
Bug-Reference-ID: <43FCA614.1090108@free.fr>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A problem with the extended globbing code prevented dots from matching
|
||||
filenames when used in some extended matching patterns.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/lib/glob/sm_loop.c Sun Oct 16 21:21:04 2005
|
||||
--- bash-3.1/lib/glob/sm_loop.c Mon Feb 27 17:18:43 2006
|
||||
***************
|
||||
*** 639,643 ****
|
||||
CHAR *pnext; /* pointer to next sub-pattern */
|
||||
CHAR *srest; /* pointer to rest of string */
|
||||
! int m1, m2;
|
||||
|
||||
#if DEBUG_MATCHING
|
||||
--- 638,642 ----
|
||||
CHAR *pnext; /* pointer to next sub-pattern */
|
||||
CHAR *srest; /* pointer to rest of string */
|
||||
! int m1, m2, xflags; /* xflags = flags passed to recursive matches */
|
||||
|
||||
#if DEBUG_MATCHING
|
||||
***************
|
||||
*** 645,648 ****
|
||||
--- 644,648 ----
|
||||
fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se);
|
||||
fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe);
|
||||
+ fprintf(stderr, "extmatch: flags = %d\n", flags);
|
||||
#endif
|
||||
|
||||
***************
|
||||
*** 678,683 ****
|
||||
multiple matches of the pattern. */
|
||||
if (m1)
|
||||
! m2 = (GMATCH (srest, se, prest, pe, flags) == 0) ||
|
||||
! (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0);
|
||||
if (m1 && m2)
|
||||
return (0);
|
||||
--- 678,687 ----
|
||||
multiple matches of the pattern. */
|
||||
if (m1)
|
||||
! {
|
||||
! /* if srest > s, we are not at start of string */
|
||||
! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
|
||||
! m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) ||
|
||||
! (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0);
|
||||
! }
|
||||
if (m1 && m2)
|
||||
return (0);
|
||||
***************
|
||||
*** 705,710 ****
|
||||
for ( ; srest <= se; srest++)
|
||||
{
|
||||
if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
|
||||
! GMATCH (srest, se, prest, pe, flags) == 0)
|
||||
return (0);
|
||||
}
|
||||
--- 709,716 ----
|
||||
for ( ; srest <= se; srest++)
|
||||
{
|
||||
+ /* if srest > s, we are not at start of string */
|
||||
+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
|
||||
if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
|
||||
! GMATCH (srest, se, prest, pe, xflags) == 0)
|
||||
return (0);
|
||||
}
|
||||
***************
|
||||
*** 727,731 ****
|
||||
break;
|
||||
}
|
||||
! if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0)
|
||||
return (0);
|
||||
}
|
||||
--- 733,739 ----
|
||||
break;
|
||||
}
|
||||
! /* if srest > s, we are not at start of string */
|
||||
! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
|
||||
! if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0)
|
||||
return (0);
|
||||
}
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,51 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-016
|
||||
|
||||
Bug-Reported-by: Nikita Danilov <nikita@clusterfs.com>
|
||||
Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Bash will dump core when attempting to perform globbing in directories with
|
||||
very large numbers of files.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/lib/glob/glob.c Thu Mar 24 12:42:27 2005
|
||||
--- bash-3.1/lib/glob/glob.c Fri Mar 3 16:54:12 2006
|
||||
***************
|
||||
*** 361,364 ****
|
||||
--- 361,365 ----
|
||||
|
||||
firstmalloc = 0;
|
||||
+ nalloca = 0;
|
||||
|
||||
/* If PAT is empty, skip the loop, but return one (empty) filename. */
|
||||
***************
|
||||
*** 547,550 ****
|
||||
--- 551,556 ----
|
||||
tmplink = lastlink;
|
||||
}
|
||||
+ else
|
||||
+ tmplink = 0;
|
||||
free (lastlink->name);
|
||||
lastlink = lastlink->next;
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
@ -1,131 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.1
|
||||
Patch-ID: bash31-017
|
||||
|
||||
Bug-Reported-by: syphir@syphir.sytes.net
|
||||
Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net>
|
||||
Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Array expansion fails with an arithmetic syntax error when the subscript
|
||||
appears within double quotes. For example: ${a["4"]}.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.1/subst.c Wed Apr 12 08:47:08 2006
|
||||
--- bash-3.1/subst.c Wed Apr 12 08:49:02 2006
|
||||
***************
|
||||
*** 2576,2579 ****
|
||||
--- 2576,2586 ----
|
||||
}
|
||||
|
||||
+ char *
|
||||
+ expand_arith_string (string, quoted)
|
||||
+ char *string;
|
||||
+ {
|
||||
+ return (expand_string_if_necessary (string, quoted, expand_string));
|
||||
+ }
|
||||
+
|
||||
#if defined (COND_COMMAND)
|
||||
/* Just remove backslashes in STRING. Returns a new string. */
|
||||
***************
|
||||
*** 5249,5253 ****
|
||||
t = (char *)0;
|
||||
|
||||
! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string);
|
||||
*e1p = evalexp (temp1, &expok);
|
||||
free (temp1);
|
||||
--- 5256,5260 ----
|
||||
t = (char *)0;
|
||||
|
||||
! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
|
||||
*e1p = evalexp (temp1, &expok);
|
||||
free (temp1);
|
||||
***************
|
||||
*** 5294,5298 ****
|
||||
t++;
|
||||
temp2 = savestring (t);
|
||||
! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
|
||||
free (temp2);
|
||||
t[-1] = ':';
|
||||
--- 5301,5305 ----
|
||||
t++;
|
||||
temp2 = savestring (t);
|
||||
! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
|
||||
free (temp2);
|
||||
t[-1] = ':';
|
||||
***************
|
||||
*** 6436,6440 ****
|
||||
|
||||
/* Expand variables found inside the expression. */
|
||||
! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
|
||||
free (temp2);
|
||||
|
||||
--- 6443,6447 ----
|
||||
|
||||
/* Expand variables found inside the expression. */
|
||||
! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
|
||||
free (temp2);
|
||||
|
||||
***************
|
||||
*** 6478,6482 ****
|
||||
|
||||
/* Do initial variable expansion. */
|
||||
! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string);
|
||||
|
||||
goto arithsub;
|
||||
--- 6485,6489 ----
|
||||
|
||||
/* Do initial variable expansion. */
|
||||
! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
|
||||
|
||||
goto arithsub;
|
||||
*** bash-3.1/subst.h Sun Nov 7 15:12:28 2004
|
||||
--- bash-3.1/subst.h Mon Mar 27 09:10:38 2006
|
||||
***************
|
||||
*** 152,155 ****
|
||||
--- 152,158 ----
|
||||
extern char *expand_assignment_string_to_string __P((char *, int));
|
||||
|
||||
+ /* Expand an arithmetic expression string */
|
||||
+ extern char *expand_arith_string __P((char *, int));
|
||||
+
|
||||
/* De-quoted quoted characters in STRING. */
|
||||
extern char *dequote_string __P((char *));
|
||||
*** bash-3.1/arrayfunc.c Mon Jul 4 20:25:58 2005
|
||||
--- bash-3.1/arrayfunc.c Mon Mar 27 09:10:47 2006
|
||||
***************
|
||||
*** 593,601 ****
|
||||
strncpy (exp, s, len - 1);
|
||||
exp[len - 1] = '\0';
|
||||
! #if 0
|
||||
! t = expand_string_to_string (exp, 0);
|
||||
! #else
|
||||
! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES);
|
||||
! #endif
|
||||
this_command_name = (char *)NULL;
|
||||
val = evalexp (t, &expok);
|
||||
--- 591,595 ----
|
||||
strncpy (exp, s, len - 1);
|
||||
exp[len - 1] = '\0';
|
||||
! t = expand_arith_string (exp, 0);
|
||||
this_command_name = (char *)NULL;
|
||||
val = evalexp (t, &expok);
|
||||
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
||||
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
||||
***************
|
||||
*** 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_ */
|
47
package/bash/bash32-001
Normal file
47
package/bash/bash32-001
Normal file
@ -0,0 +1,47 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-001
|
||||
|
||||
Bug-Reported-by: Greg Schafer <gschafer@zip.com.au>
|
||||
Bug-Reference-ID: <20061012084940.GA15768@tigers.local>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using historical ``-style command substitution, bash incorrectly attempts
|
||||
to interpret shell comments while scanning for the closing backquote.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2/parse.y Tue Sep 19 16:37:21 2006
|
||||
--- bash-3.2/parse.y Thu Oct 12 10:30:57 2006
|
||||
***************
|
||||
*** 2736,2740 ****
|
||||
count = 1;
|
||||
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
|
||||
! check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
|
||||
|
||||
/* RFLAGS is the set of flags we want to pass to recursive calls. */
|
||||
--- 2736,2740 ----
|
||||
count = 1;
|
||||
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
|
||||
! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
|
||||
|
||||
/* RFLAGS is the set of flags we want to pass to recursive calls. */
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
48
package/bash/bash32-002
Normal file
48
package/bash/bash32-002
Normal file
@ -0,0 +1,48 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-002
|
||||
|
||||
Bug-Reported-by: Jim Gifford <jim@jg555.com>
|
||||
Bug-Reference-ID: <12j2pc3aq35mb04@corp.supernews.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
An incorrect encoding specification in the Content-Type header causes msgfmt
|
||||
to fail, which causes `make install' to fail.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006
|
||||
--- bash-3.2/po/ru.po Mon Oct 16 15:13:23 2006
|
||||
***************
|
||||
*** 13,17 ****
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
! "Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
--- 13,17 ----
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
! "Content-Type: text/plain; charset=KOI8-R\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
147
package/bash/bash32-003
Normal file
147
package/bash/bash32-003
Normal file
@ -0,0 +1,147 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-003
|
||||
|
||||
Bug-Reported-by: John Gatewood Ham <zappaman@buraphalinux.org>
|
||||
Bug-Reference-ID: <Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using the conditional command's `=~' operator to match regular
|
||||
expressions, the parser did not skip over shell metacharacters in the
|
||||
regular expression, leading to syntax errors.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006
|
||||
--- bash-3.2/parse.y Sat Oct 14 14:56:16 2006
|
||||
***************
|
||||
*** 1029,1034 ****
|
||||
--- 1029,1035 ----
|
||||
#define PST_CMDTOKEN 0x1000 /* command token OK - unused */
|
||||
#define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */
|
||||
#define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */
|
||||
+ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */
|
||||
|
||||
/* Initial size to allocate for tokens, and the
|
||||
amount to grow them by. */
|
||||
***************
|
||||
*** 2591,2596 ****
|
||||
--- 2592,2600 ----
|
||||
return (character);
|
||||
}
|
||||
|
||||
+ if (parser_state & PST_REGEXP)
|
||||
+ goto tokword;
|
||||
+
|
||||
/* Shell meta-characters. */
|
||||
if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
|
||||
{
|
||||
***************
|
||||
*** 2698,2703 ****
|
||||
--- 2702,2708 ----
|
||||
if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
|
||||
return (character);
|
||||
|
||||
+ tokword:
|
||||
/* Okay, if we got this far, we have to read a word. Read one,
|
||||
and then check it against the known ones. */
|
||||
result = read_token_word (character);
|
||||
***************
|
||||
*** 3202,3209 ****
|
||||
if (tok == WORD && test_binop (yylval.word->word))
|
||||
op = yylval.word;
|
||||
#if defined (COND_REGEXP)
|
||||
! else if (tok == WORD && STREQ (yylval.word->word,"=~"))
|
||||
! op = yylval.word;
|
||||
#endif
|
||||
else if (tok == '<' || tok == '>')
|
||||
op = make_word_from_token (tok); /* ( */
|
||||
--- 3207,3217 ----
|
||||
if (tok == WORD && test_binop (yylval.word->word))
|
||||
op = yylval.word;
|
||||
#if defined (COND_REGEXP)
|
||||
! else if (tok == WORD && STREQ (yylval.word->word, "=~"))
|
||||
! {
|
||||
! op = yylval.word;
|
||||
! parser_state |= PST_REGEXP;
|
||||
! }
|
||||
#endif
|
||||
else if (tok == '<' || tok == '>')
|
||||
op = make_word_from_token (tok); /* ( */
|
||||
***************
|
||||
*** 3234,3239 ****
|
||||
--- 3242,3248 ----
|
||||
|
||||
/* rhs */
|
||||
tok = read_token (READ);
|
||||
+ parser_state &= ~PST_REGEXP;
|
||||
if (tok == WORD)
|
||||
{
|
||||
tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
|
||||
***************
|
||||
*** 3419,3427 ****
|
||||
goto next_character;
|
||||
}
|
||||
|
||||
#ifdef EXTENDED_GLOB
|
||||
/* Parse a ksh-style extended pattern matching specification. */
|
||||
! if (extended_glob && PATTERN_CHAR (character))
|
||||
{
|
||||
peek_char = shell_getc (1);
|
||||
if MBTEST(peek_char == '(') /* ) */
|
||||
--- 3428,3461 ----
|
||||
goto next_character;
|
||||
}
|
||||
|
||||
+ #ifdef COND_REGEXP
|
||||
+ /* When parsing a regexp as a single word inside a conditional command,
|
||||
+ we need to special-case characters special to both the shell and
|
||||
+ regular expressions. Right now, that is only '(' and '|'. */ /*)*/
|
||||
+ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/
|
||||
+ {
|
||||
+ if (character == '|')
|
||||
+ goto got_character;
|
||||
+
|
||||
+ push_delimiter (dstack, character);
|
||||
+ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
|
||||
+ pop_delimiter (dstack);
|
||||
+ if (ttok == &matched_pair_error)
|
||||
+ return -1; /* Bail immediately. */
|
||||
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
|
||||
+ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
|
||||
+ token[token_index++] = character;
|
||||
+ strcpy (token + token_index, ttok);
|
||||
+ token_index += ttoklen;
|
||||
+ FREE (ttok);
|
||||
+ dollar_present = all_digit_token = 0;
|
||||
+ goto next_character;
|
||||
+ }
|
||||
+ #endif /* COND_REGEXP */
|
||||
+
|
||||
#ifdef EXTENDED_GLOB
|
||||
/* Parse a ksh-style extended pattern matching specification. */
|
||||
! if MBTEST(extended_glob && PATTERN_CHAR (character))
|
||||
{
|
||||
peek_char = shell_getc (1);
|
||||
if MBTEST(peek_char == '(') /* ) */
|
||||
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
||||
|
96
package/bash/bash32-004
Normal file
96
package/bash/bash32-004
Normal file
@ -0,0 +1,96 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-004
|
||||
|
||||
Bug-Reported-by: Stuart Shelton <srcshelton@gmail.com>
|
||||
Bug-Reference-ID: <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A bug in the parameter pattern substitution implementation treated a pattern
|
||||
whose first character was `/' (after expansion) as specifying global
|
||||
replacement.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2/subst.c Tue Sep 19 08:35:09 2006
|
||||
--- bash-3.2/subst.c Thu Oct 26 09:17:50 2006
|
||||
***************
|
||||
*** 5707,5712 ****
|
||||
--- 5707,5717 ----
|
||||
vtype &= ~VT_STARSUB;
|
||||
|
||||
mflags = 0;
|
||||
+ if (patsub && *patsub == '/')
|
||||
+ {
|
||||
+ mflags |= MATCH_GLOBREP;
|
||||
+ patsub++;
|
||||
+ }
|
||||
|
||||
/* Malloc this because expand_string_if_necessary or one of the expansion
|
||||
functions in its call chain may free it on a substitution error. */
|
||||
***************
|
||||
*** 5741,5753 ****
|
||||
}
|
||||
|
||||
/* ksh93 doesn't allow the match specifier to be a part of the expanded
|
||||
! pattern. This is an extension. */
|
||||
p = pat;
|
||||
! if (pat && pat[0] == '/')
|
||||
! {
|
||||
! mflags |= MATCH_GLOBREP|MATCH_ANY;
|
||||
! p++;
|
||||
! }
|
||||
else if (pat && pat[0] == '#')
|
||||
{
|
||||
mflags |= MATCH_BEG;
|
||||
--- 5746,5757 ----
|
||||
}
|
||||
|
||||
/* ksh93 doesn't allow the match specifier to be a part of the expanded
|
||||
! pattern. This is an extension. Make sure we don't anchor the pattern
|
||||
! at the beginning or end of the string if we're doing global replacement,
|
||||
! though. */
|
||||
p = pat;
|
||||
! if (mflags & MATCH_GLOBREP)
|
||||
! mflags |= MATCH_ANY;
|
||||
else if (pat && pat[0] == '#')
|
||||
{
|
||||
mflags |= MATCH_BEG;
|
||||
*** bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006
|
||||
--- bash-3.2/tests/new-exp.right Sun Oct 29 16:03:36 2006
|
||||
***************
|
||||
*** 430,436 ****
|
||||
Case06---1---A B C::---
|
||||
Case07---3---A:B:C---
|
||||
Case08---3---A:B:C---
|
||||
! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[3] = <c>
|
||||
--- 430,436 ----
|
||||
Case06---1---A B C::---
|
||||
Case07---3---A:B:C---
|
||||
Case08---3---A:B:C---
|
||||
! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[3] = <c>
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
223
package/bash/bash32-005
Normal file
223
package/bash/bash32-005
Normal file
@ -0,0 +1,223 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-005
|
||||
|
||||
Bug-Reported-by: Stuart Shelton <stuart@openobjects.com>
|
||||
Bug-Reference-ID: <453F7CC8.6030907@openobjects.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A missing extern declaration for `asprintf' caused `double' arguments to be
|
||||
passed as `0', leading to incorrect results. Additionally, a bug in the
|
||||
replacement asprintf/snprintf function caused an infinite loop when passed
|
||||
0 arguments to the floating point conversions under some circumstances.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006
|
||||
--- bash-3.2/builtins/printf.def Tue Oct 31 08:19:44 2006
|
||||
***************
|
||||
*** 49,54 ****
|
||||
--- 49,60 ----
|
||||
# define INT_MIN (-2147483647-1)
|
||||
#endif
|
||||
|
||||
+ #if defined (PREFER_STDARG)
|
||||
+ # include <stdarg.h>
|
||||
+ #else
|
||||
+ # include <varargs.h>
|
||||
+ #endif
|
||||
+
|
||||
#include <stdio.h>
|
||||
#include <chartypes.h>
|
||||
|
||||
***************
|
||||
*** 151,156 ****
|
||||
--- 157,166 ----
|
||||
#define SKIP1 "#'-+ 0"
|
||||
#define LENMODS "hjlLtz"
|
||||
|
||||
+ #ifndef HAVE_ASPRINTF
|
||||
+ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
|
||||
+ #endif
|
||||
+
|
||||
static void printf_erange __P((char *));
|
||||
static int printstr __P((char *, char *, int, int, int));
|
||||
static int tescape __P((char *, char *, int *));
|
||||
|
||||
|
||||
*** bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006
|
||||
--- bash-3.2/lib/sh/snprintf.c Sat Oct 28 00:00:13 2006
|
||||
***************
|
||||
*** 471,476 ****
|
||||
--- 476,483 ----
|
||||
10^x ~= r
|
||||
* log_10(200) = 2;
|
||||
* log_10(250) = 2;
|
||||
+ *
|
||||
+ * NOTE: do not call this with r == 0 -- an infinite loop results.
|
||||
*/
|
||||
static int
|
||||
log_10(r)
|
||||
***************
|
||||
*** 576,583 ****
|
||||
{
|
||||
integral_part[0] = '0';
|
||||
integral_part[1] = '\0';
|
||||
! fraction_part[0] = '0';
|
||||
! fraction_part[1] = '\0';
|
||||
if (fract)
|
||||
*fract = fraction_part;
|
||||
return integral_part;
|
||||
--- 583,593 ----
|
||||
{
|
||||
integral_part[0] = '0';
|
||||
integral_part[1] = '\0';
|
||||
! /* The fractional part has to take the precision into account */
|
||||
! for (ch = 0; ch < precision-1; ch++)
|
||||
! fraction_part[ch] = '0';
|
||||
! fraction_part[ch] = '0';
|
||||
! fraction_part[ch+1] = '\0';
|
||||
if (fract)
|
||||
*fract = fraction_part;
|
||||
return integral_part;
|
||||
***************
|
||||
*** 805,810 ****
|
||||
--- 815,821 ----
|
||||
PUT_CHAR(*tmp, p);
|
||||
tmp++;
|
||||
}
|
||||
+
|
||||
PAD_LEFT(p);
|
||||
}
|
||||
|
||||
***************
|
||||
*** 972,982 ****
|
||||
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
|
||||
tmp = t;
|
||||
|
||||
/* calculate the padding. 1 for the dot */
|
||||
p->width = p->width -
|
||||
((d > 0. && p->justify == RIGHT) ? 1:0) -
|
||||
((p->flags & PF_SPACE) ? 1:0) -
|
||||
! strlen(tmp) - p->precision - 1;
|
||||
PAD_RIGHT(p);
|
||||
PUT_PLUS(d, p, 0.);
|
||||
PUT_SPACE(d, p, 0.);
|
||||
--- 983,1003 ----
|
||||
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
|
||||
tmp = t;
|
||||
|
||||
+ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
|
||||
+ {
|
||||
+ /* smash the trailing zeros unless altform */
|
||||
+ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
|
||||
+ tmp2[i] = '\0';
|
||||
+ if (tmp2[0] == '\0')
|
||||
+ p->precision = 0;
|
||||
+ }
|
||||
+
|
||||
/* calculate the padding. 1 for the dot */
|
||||
p->width = p->width -
|
||||
((d > 0. && p->justify == RIGHT) ? 1:0) -
|
||||
((p->flags & PF_SPACE) ? 1:0) -
|
||||
! strlen(tmp) - p->precision -
|
||||
! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */
|
||||
PAD_RIGHT(p);
|
||||
PUT_PLUS(d, p, 0.);
|
||||
PUT_SPACE(d, p, 0.);
|
||||
***************
|
||||
*** 991,1001 ****
|
||||
if (p->precision != 0 || (p->flags & PF_ALTFORM))
|
||||
PUT_CHAR(decpoint, p); /* put the '.' */
|
||||
|
||||
- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
|
||||
- /* smash the trailing zeros unless altform */
|
||||
- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
|
||||
- tmp2[i] = '\0';
|
||||
-
|
||||
for (; *tmp2; tmp2++)
|
||||
PUT_CHAR(*tmp2, p); /* the fraction */
|
||||
|
||||
--- 1012,1017 ----
|
||||
***************
|
||||
*** 1011,1024 ****
|
||||
char *tmp, *tmp2;
|
||||
int j, i;
|
||||
|
||||
! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
|
||||
return; /* already printed nan or inf */
|
||||
|
||||
GETLOCALEDATA(decpoint, thoussep, grouping);
|
||||
DEF_PREC(p);
|
||||
! j = log_10(d);
|
||||
! d = d / pow_10(j); /* get the Mantissa */
|
||||
! d = ROUND(d, p);
|
||||
tmp = dtoa(d, p->precision, &tmp2);
|
||||
|
||||
/* 1 for unit, 1 for the '.', 1 for 'e|E',
|
||||
--- 1027,1045 ----
|
||||
char *tmp, *tmp2;
|
||||
int j, i;
|
||||
|
||||
! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
|
||||
return; /* already printed nan or inf */
|
||||
|
||||
GETLOCALEDATA(decpoint, thoussep, grouping);
|
||||
DEF_PREC(p);
|
||||
! if (d == 0.)
|
||||
! j = 0;
|
||||
! else
|
||||
! {
|
||||
! j = log_10(d);
|
||||
! d = d / pow_10(j); /* get the Mantissa */
|
||||
! d = ROUND(d, p);
|
||||
! }
|
||||
tmp = dtoa(d, p->precision, &tmp2);
|
||||
|
||||
/* 1 for unit, 1 for the '.', 1 for 'e|E',
|
||||
***************
|
||||
*** 1076,1081 ****
|
||||
--- 1097,1103 ----
|
||||
PUT_CHAR(*tmp, p);
|
||||
tmp++;
|
||||
}
|
||||
+
|
||||
PAD_LEFT(p);
|
||||
}
|
||||
#endif
|
||||
***************
|
||||
*** 1358,1364 ****
|
||||
STAR_ARGS(data);
|
||||
DEF_PREC(data);
|
||||
d = GETDOUBLE(data);
|
||||
! i = log_10(d);
|
||||
/*
|
||||
* for '%g|%G' ANSI: use f if exponent
|
||||
* is in the range or [-4,p] exclusively
|
||||
--- 1380,1386 ----
|
||||
STAR_ARGS(data);
|
||||
DEF_PREC(data);
|
||||
d = GETDOUBLE(data);
|
||||
! i = (d != 0.) ? log_10(d) : -1;
|
||||
/*
|
||||
* for '%g|%G' ANSI: use f if exponent
|
||||
* is in the range or [-4,p] exclusively
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
45
package/bash/bash32-006
Normal file
45
package/bash/bash32-006
Normal file
@ -0,0 +1,45 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-006
|
||||
|
||||
Bug-Reported-by: ebb9@byu.net
|
||||
Bug-Reference-ID: <45540862.9030900@byu.net>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
|
||||
http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
In some cases, code that is intended to be used in the presence of multibyte
|
||||
characters is called when no such characters are present, leading to incorrect
|
||||
display position calculations and incorrect redisplay.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
|
||||
--- bash-3.2/lib/readline/display.c Mon Nov 13 17:55:57 2006
|
||||
***************
|
||||
*** 2381,2384 ****
|
||||
--- 2409,2414 ----
|
||||
if (end <= start)
|
||||
return 0;
|
||||
+ if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
+ return (end - start);
|
||||
|
||||
memset (&ps, 0, sizeof (mbstate_t));
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
55
package/bash/bash32-007
Normal file
55
package/bash/bash32-007
Normal file
@ -0,0 +1,55 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-007
|
||||
|
||||
Bug-Reported-by: jidanni@jidanni.org
|
||||
Bug-Reference-ID: <E1Gkg12-00017D-Fm@jidanni.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When removing the current or previous job from the jobs list, bash incorrectly
|
||||
resets the current job under some circumstances.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006
|
||||
--- bash-3.2/jobs.c Fri Nov 24 14:50:01 2006
|
||||
***************
|
||||
*** 985,990 ****
|
||||
if (temp == 0)
|
||||
return;
|
||||
- if (job_index == js.j_current || job_index == js.j_previous)
|
||||
- reset_current ();
|
||||
|
||||
if ((dflags & DEL_NOBGPID) == 0)
|
||||
--- 985,988 ----
|
||||
***************
|
||||
*** 1029,1032 ****
|
||||
--- 1027,1033 ----
|
||||
else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
|
||||
reset_job_indices ();
|
||||
+
|
||||
+ if (job_index == js.j_current || job_index == js.j_previous)
|
||||
+ reset_current ();
|
||||
}
|
||||
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
||||
|
||||
|
48
package/bash/bash32-008
Normal file
48
package/bash/bash32-008
Normal file
@ -0,0 +1,48 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-008
|
||||
|
||||
Bug-Reported-by: Linda Walsh <bash@tlinx.org>
|
||||
Bug-Reference-ID: <456041FD.8000605@tlinx.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When checking pathnames from the command hash table (e.g., when the `checkhash'
|
||||
shell option is enabled), a bug causes bash to delete and re-lookup each
|
||||
command.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005
|
||||
--- bash-3.2/findcmd.c Fri Nov 24 10:48:37 2006
|
||||
***************
|
||||
*** 309,313 ****
|
||||
{
|
||||
st = file_status (hashed_file);
|
||||
! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
|
||||
{
|
||||
phash_remove (pathname);
|
||||
--- 309,313 ----
|
||||
{
|
||||
st = file_status (hashed_file);
|
||||
! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
|
||||
{
|
||||
phash_remove (pathname);
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
61
package/bash/bash32-009
Normal file
61
package/bash/bash32-009
Normal file
@ -0,0 +1,61 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-009
|
||||
|
||||
Bug-Reported-by: James.M.Botte@lowes.com
|
||||
Bug-Reference-ID: <BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853@msexchdb01.lowes.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using its built-in replacement for snprintf/asprintf, bash does not
|
||||
treat the %x, %X, and %o format specifiers as unsigned numbers.
|
||||
|
||||
Patch:
|
||||
|
||||
*** bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006
|
||||
--- bash-3.2/lib/sh/snprintf.c Wed Dec 6 11:15:04 2006
|
||||
***************
|
||||
*** 669,673 ****
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
--- 674,679 ----
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = 0;
|
||||
! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
***************
|
||||
*** 739,743 ****
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
--- 745,749 ----
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 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_ */
|
Loading…
Reference in New Issue
Block a user