Official upstream patch level 16
This commit is contained in:
parent
b44dc2a3b9
commit
e732308985
17
bash.spec
17
bash.spec
@ -3,7 +3,7 @@
|
||||
Version: 4.0
|
||||
Name: bash
|
||||
Summary: The GNU Bourne Again shell
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Group: System Environment/Shells
|
||||
License: GPLv2+
|
||||
Url: http://www.gnu.org/software/bash
|
||||
@ -27,6 +27,12 @@ Patch007: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-007
|
||||
Patch008: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-008
|
||||
Patch009: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-009
|
||||
Patch010: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-010
|
||||
Patch011: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-011
|
||||
Patch012: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-012
|
||||
Patch013: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-013
|
||||
Patch014: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-014
|
||||
Patch015: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-015
|
||||
Patch016: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-016
|
||||
|
||||
# Other patches
|
||||
Patch101: bash-2.02-security.patch
|
||||
@ -90,6 +96,12 @@ This package contains documentation files for %{name}.
|
||||
%patch008 -p0 -b .008
|
||||
%patch009 -p0 -b .009
|
||||
%patch010 -p0 -b .010
|
||||
%patch011 -p0 -b .011
|
||||
%patch012 -p0 -b .012
|
||||
%patch013 -p0 -b .013
|
||||
%patch014 -p0 -b .014
|
||||
%patch015 -p0 -b .015
|
||||
%patch016 -p0 -b .016
|
||||
|
||||
# Other patches
|
||||
%patch101 -p1 -b .security
|
||||
@ -276,6 +288,9 @@ fi
|
||||
#%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
||||
|
||||
%changelog
|
||||
* Wed Apr 08 2009 Roman Rakus <rrakus@redhat.com> - 4.0-6
|
||||
- Official upstream patch level 16
|
||||
|
||||
* Mon Mar 30 2009 Roman Rakus <rrakus@redhat.com> - 4.0-5
|
||||
- Split documentation, use bash-doc package
|
||||
Resolves: #492447
|
||||
|
49
bash40-011
Normal file
49
bash40-011
Normal file
@ -0,0 +1,49 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 4.0
|
||||
Patch-ID: bash40-011
|
||||
|
||||
Bug-Reported-by: Matt Zyzik <Matt@ice.filescope.com>n
|
||||
Bug-Reference-ID: <20090312015018.C00741383ED@ice.filescope.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00092.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using the new |& operator following a simple command with a redirection,
|
||||
the redirection of stderr through the pipe was not performed under certain
|
||||
circumstances.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400
|
||||
--- parse.y 2009-03-12 21:36:23.000000000 -0400
|
||||
***************
|
||||
*** 1123,1127 ****
|
||||
REDIRECT *r;
|
||||
|
||||
! tc = $1;
|
||||
rd.dest = 1;
|
||||
r = make_redirection (2, r_duplicating_output, rd);
|
||||
--- 1123,1127 ----
|
||||
REDIRECT *r;
|
||||
|
||||
! tc = $1->type == cm_simple ? (COMMAND *)$1->value.Simple : $1;
|
||||
rd.dest = 1;
|
||||
r = make_redirection (2, r_duplicating_output, rd);
|
||||
*** ../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 10
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 11
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
|
47
bash40-012
Normal file
47
bash40-012
Normal file
@ -0,0 +1,47 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 4.0
|
||||
Patch-ID: bash40-012
|
||||
|
||||
Bug-Reported-by: "Clark J. Wang" <dearvoid@gmail.com>
|
||||
Bug-Reference-ID: <a96f63770903132300v7816dfb7hb7f48d46048bf3cb@mail.gmail.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00129.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A case statement using the ;& pattern terminator followed immediately by
|
||||
"esac" caused a core dump due to a null pointer dereference.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-4.0-patched/execute_cmd.c 2009-02-13 16:41:41.000000000 -0500
|
||||
--- execute_cmd.c 2009-03-14 13:23:00.000000000 -0400
|
||||
***************
|
||||
*** 2931,2935 ****
|
||||
}
|
||||
while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next));
|
||||
! if ((clauses->flags & CASEPAT_TESTNEXT) == 0)
|
||||
EXIT_CASE ();
|
||||
else
|
||||
--- 2931,2935 ----
|
||||
}
|
||||
while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next));
|
||||
! if (clauses == 0 || (clauses->flags & CASEPAT_TESTNEXT) == 0)
|
||||
EXIT_CASE ();
|
||||
else
|
||||
*** ../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 11
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 12
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
153
bash40-013
Normal file
153
bash40-013
Normal file
@ -0,0 +1,153 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 4.0
|
||||
Patch-ID: bash40-013
|
||||
|
||||
Bug-Reported-by: jidanni@jidanni.org
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519165
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Though references to $@ when there are no positional parameters will now
|
||||
cause the shell to exit if the `errexit' option has been enabled, constructs
|
||||
such as ${@:-foo} should not cause an exit.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-4.0-patched/subst.c 2009-03-08 21:24:39.000000000 -0400
|
||||
--- subst.c 2009-03-14 19:04:10.000000000 -0400
|
||||
***************
|
||||
*** 86,89 ****
|
||||
--- 86,90 ----
|
||||
/* Flags for the `pflags' argument to param_expand() */
|
||||
#define PF_NOCOMSUB 0x01 /* Do not perform command substitution */
|
||||
+ #define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */
|
||||
|
||||
/* These defs make it easier to use the editor. */
|
||||
***************
|
||||
*** 264,268 ****
|
||||
static int chk_arithsub __P((const char *, int));
|
||||
|
||||
! static WORD_DESC *parameter_brace_expand_word __P((char *, int, int));
|
||||
static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *));
|
||||
static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *));
|
||||
--- 265,269 ----
|
||||
static int chk_arithsub __P((const char *, int));
|
||||
|
||||
! static WORD_DESC *parameter_brace_expand_word __P((char *, int, int, int));
|
||||
static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *));
|
||||
static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *));
|
||||
***************
|
||||
*** 5196,5202 ****
|
||||
NAME was found inside of a double-quoted expression. */
|
||||
static WORD_DESC *
|
||||
! parameter_brace_expand_word (name, var_is_special, quoted)
|
||||
char *name;
|
||||
! int var_is_special, quoted;
|
||||
{
|
||||
WORD_DESC *ret;
|
||||
--- 5197,5203 ----
|
||||
NAME was found inside of a double-quoted expression. */
|
||||
static WORD_DESC *
|
||||
! parameter_brace_expand_word (name, var_is_special, quoted, pflags)
|
||||
char *name;
|
||||
! int var_is_special, quoted, pflags;
|
||||
{
|
||||
WORD_DESC *ret;
|
||||
***************
|
||||
*** 5230,5234 ****
|
||||
|
||||
ret = param_expand (tt, &sindex, quoted, (int *)NULL, (int *)NULL,
|
||||
! (int *)NULL, (int *)NULL, 0);
|
||||
free (tt);
|
||||
}
|
||||
--- 5231,5235 ----
|
||||
|
||||
ret = param_expand (tt, &sindex, quoted, (int *)NULL, (int *)NULL,
|
||||
! (int *)NULL, (int *)NULL, pflags);
|
||||
free (tt);
|
||||
}
|
||||
***************
|
||||
*** 5291,5295 ****
|
||||
WORD_DESC *w;
|
||||
|
||||
! w = parameter_brace_expand_word (name, var_is_special, quoted);
|
||||
t = w->word;
|
||||
/* Have to dequote here if necessary */
|
||||
--- 5292,5296 ----
|
||||
WORD_DESC *w;
|
||||
|
||||
! w = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND);
|
||||
t = w->word;
|
||||
/* Have to dequote here if necessary */
|
||||
***************
|
||||
*** 5308,5312 ****
|
||||
return (WORD_DESC *)NULL;
|
||||
|
||||
! w = parameter_brace_expand_word (t, SPECIAL_VAR(t, 0), quoted);
|
||||
free (t);
|
||||
|
||||
--- 5309,5313 ----
|
||||
return (WORD_DESC *)NULL;
|
||||
|
||||
! w = parameter_brace_expand_word (t, SPECIAL_VAR(t, 0), quoted, 0);
|
||||
free (t);
|
||||
|
||||
***************
|
||||
*** 6659,6663 ****
|
||||
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
|
||||
else
|
||||
! tdesc = parameter_brace_expand_word (name, var_is_special, quoted);
|
||||
|
||||
if (tdesc)
|
||||
--- 6660,6664 ----
|
||||
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
|
||||
else
|
||||
! tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND);
|
||||
|
||||
if (tdesc)
|
||||
***************
|
||||
*** 6990,6994 ****
|
||||
list = list_rest_of_args ();
|
||||
|
||||
! if (list == 0 && unbound_vars_is_error)
|
||||
{
|
||||
uerror[0] = '$';
|
||||
--- 6991,6995 ----
|
||||
list = list_rest_of_args ();
|
||||
|
||||
! if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0)
|
||||
{
|
||||
uerror[0] = '$';
|
||||
***************
|
||||
*** 7052,7056 ****
|
||||
list = list_rest_of_args ();
|
||||
|
||||
! if (list == 0 && unbound_vars_is_error)
|
||||
{
|
||||
uerror[0] = '$';
|
||||
--- 7053,7057 ----
|
||||
list = list_rest_of_args ();
|
||||
|
||||
! if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0)
|
||||
{
|
||||
uerror[0] = '$';
|
||||
|
||||
|
||||
*** ../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 12
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 13
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
113
bash40-014
Normal file
113
bash40-014
Normal file
@ -0,0 +1,113 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 4.0
|
||||
Patch-ID: bash40-014
|
||||
|
||||
Bug-Reported-by: smallnow@gmail.com
|
||||
Bug-Reference-ID: <49C460FE.40307@gmail.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00166.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When the fc builtin is run in a command substitution from a shell with history
|
||||
enabled, it does not correctly calculate the command on which to operate.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-4.0-patched/builtins/fc.def 2009-01-04 14:32:22.000000000 -0500
|
||||
--- builtins/fc.def 2009-03-21 14:03:43.000000000 -0400
|
||||
***************
|
||||
*** 89,92 ****
|
||||
--- 89,93 ----
|
||||
extern int literal_history;
|
||||
extern int posixly_correct;
|
||||
+ extern int subshell_environment, interactive_shell;
|
||||
|
||||
extern int unlink __P((const char *));
|
||||
***************
|
||||
*** 173,177 ****
|
||||
register char *sep;
|
||||
int numbering, reverse, listing, execute;
|
||||
! int histbeg, histend, last_hist, retval, opt;
|
||||
FILE *stream;
|
||||
REPL *rlist, *rl;
|
||||
--- 174,178 ----
|
||||
register char *sep;
|
||||
int numbering, reverse, listing, execute;
|
||||
! int histbeg, histend, last_hist, retval, opt, rh;
|
||||
FILE *stream;
|
||||
REPL *rlist, *rl;
|
||||
***************
|
||||
*** 276,279 ****
|
||||
--- 277,282 ----
|
||||
fprintf (stderr, "%s\n", command);
|
||||
fc_replhist (command); /* replace `fc -s' with command */
|
||||
+ /* Posix says that the re-executed commands should be entered into the
|
||||
+ history. */
|
||||
return (parse_and_execute (command, "fc", SEVAL_NOHIST));
|
||||
}
|
||||
***************
|
||||
*** 294,298 ****
|
||||
so we check hist_last_line_added. */
|
||||
|
||||
! last_hist = i - remember_on_history - hist_last_line_added;
|
||||
|
||||
if (list)
|
||||
--- 297,306 ----
|
||||
so we check hist_last_line_added. */
|
||||
|
||||
! /* Even though command substitution through parse_and_execute turns off
|
||||
! remember_on_history, command substitution in a shell when set -o history
|
||||
! has been enabled (interactive or not) should use it in the last_hist
|
||||
! calculation as if it were on. */
|
||||
! rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
! last_hist = i - rh - hist_last_line_added;
|
||||
|
||||
if (list)
|
||||
***************
|
||||
*** 457,461 ****
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
! int sign, n, clen;
|
||||
register int i, j;
|
||||
register char *s;
|
||||
--- 465,469 ----
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
! int sign, n, clen, rh;
|
||||
register int i, j;
|
||||
register char *s;
|
||||
***************
|
||||
*** 473,477 ****
|
||||
so we check hist_last_line_added. This needs to agree with the
|
||||
calculation of last_hist in fc_builtin above. */
|
||||
! i -= remember_on_history + hist_last_line_added;
|
||||
|
||||
/* No specification defaults to most recent command. */
|
||||
--- 481,490 ----
|
||||
so we check hist_last_line_added. This needs to agree with the
|
||||
calculation of last_hist in fc_builtin above. */
|
||||
! /* Even though command substitution through parse_and_execute turns off
|
||||
! remember_on_history, command substitution in a shell when set -o history
|
||||
! has been enabled (interactive or not) should use it in the last_hist
|
||||
! calculation as if it were on. */
|
||||
! rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
! i -= rh + hist_last_line_added;
|
||||
|
||||
/* No specification defaults to most recent command. */
|
||||
*** ../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 13
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 14
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
84
bash40-015
Normal file
84
bash40-015
Normal file
@ -0,0 +1,84 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 4.0
|
||||
Patch-ID: bash40-015
|
||||
|
||||
Bug-Reported-by: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Bug-Reference-ID: <1237654931.32737.13.camel@localhost.localdomain>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00174.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Deferring handling of signals which should cause the shell to terminate until
|
||||
it is "safe" to run the handler functions does not work for some terminating
|
||||
signals.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-4.0-patched/sig.c 2009-01-04 14:32:41.000000000 -0500
|
||||
--- sig.c 2009-03-22 14:47:56.000000000 -0400
|
||||
***************
|
||||
*** 449,452 ****
|
||||
--- 449,494 ----
|
||||
int sig;
|
||||
{
|
||||
+ /* If we get called twice with the same signal before handling it,
|
||||
+ terminate right away. */
|
||||
+ if (
|
||||
+ #ifdef SIGHUP
|
||||
+ sig != SIGHUP &&
|
||||
+ #endif
|
||||
+ #ifdef SIGINT
|
||||
+ sig != SIGINT &&
|
||||
+ #endif
|
||||
+ #ifdef SIGDANGER
|
||||
+ sig != SIGDANGER &&
|
||||
+ #endif
|
||||
+ #ifdef SIGPIPE
|
||||
+ sig != SIGPIPE &&
|
||||
+ #endif
|
||||
+ #ifdef SIGALRM
|
||||
+ sig != SIGALRM &&
|
||||
+ #endif
|
||||
+ #ifdef SIGTERM
|
||||
+ sig != SIGTERM &&
|
||||
+ #endif
|
||||
+ #ifdef SIGXCPU
|
||||
+ sig != SIGXCPU &&
|
||||
+ #endif
|
||||
+ #ifdef SIGXFSZ
|
||||
+ sig != SIGXFSZ &&
|
||||
+ #endif
|
||||
+ #ifdef SIGVTALRM
|
||||
+ sig != SIGVTALRM &&
|
||||
+ #endif
|
||||
+ #ifdef SIGLOST
|
||||
+ sig != SIGLOST &&
|
||||
+ #endif
|
||||
+ #ifdef SIGUSR1
|
||||
+ sig != SIGUSR1 &&
|
||||
+ #endif
|
||||
+ #ifdef SIGUSR2
|
||||
+ sig != SIGUSR2 &&
|
||||
+ #endif
|
||||
+ sig == terminating_signal)
|
||||
+ terminate_immediately = 1;
|
||||
+
|
||||
terminating_signal = sig;
|
||||
|
||||
*** ../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 14
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 15
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
104
bash40-016
Normal file
104
bash40-016
Normal file
@ -0,0 +1,104 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 4.0
|
||||
Patch-ID: bash40-016
|
||||
|
||||
Bug-Reported-by: Brian J. Murrell" <brian@interlinx.bc.ca>
|
||||
Bug-Reference-ID: <1237564627.7666.12.camel@pc.interlinx.bc.ca>
|
||||
Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00160.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
There are several problems with the handling of $LINENO in an ERR trap.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-4.0-patched/trap.c 2009-01-16 17:07:53.000000000 -0500
|
||||
--- trap.c 2009-03-20 21:37:00.000000000 -0400
|
||||
***************
|
||||
*** 756,760 ****
|
||||
|
||||
flags = SEVAL_NONINT|SEVAL_NOHIST;
|
||||
! if (sig != DEBUG_TRAP && sig != RETURN_TRAP)
|
||||
flags |= SEVAL_RESETLINE;
|
||||
if (function_code == 0)
|
||||
--- 756,760 ----
|
||||
|
||||
flags = SEVAL_NONINT|SEVAL_NOHIST;
|
||||
! if (sig != DEBUG_TRAP && sig != RETURN_TRAP && sig != ERROR_TRAP)
|
||||
flags |= SEVAL_RESETLINE;
|
||||
if (function_code == 0)
|
||||
*** ../bash-4.0-patched/execute_cmd.c 2009-02-13 16:41:41.000000000 -0500
|
||||
--- execute_cmd.c 2009-03-21 14:16:11.000000000 -0400
|
||||
***************
|
||||
*** 569,572 ****
|
||||
--- 569,573 ----
|
||||
/* Fork a subshell, turn off the subshell bit, turn off job
|
||||
control and call execute_command () on the command again. */
|
||||
+ line_number_for_err_trap = line_number;
|
||||
paren_pid = make_child (savestring (make_command_string (command)),
|
||||
asynchronous);
|
||||
***************
|
||||
*** 611,615 ****
|
||||
--- 612,619 ----
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
+ save_line_number = line_number;
|
||||
+ line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
+ line_number = save_line_number;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 767,771 ****
|
||||
--- 771,777 ----
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
+ line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
+ line_number = save_line_number;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 2106,2109 ****
|
||||
--- 2112,2116 ----
|
||||
COMMAND *tc, *second;
|
||||
int ignore_return, exec_result, was_error_trap, invert;
|
||||
+ volatile int save_line_number;
|
||||
|
||||
ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
|
||||
***************
|
||||
*** 2175,2178 ****
|
||||
--- 2182,2186 ----
|
||||
ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
|
||||
|
||||
+ line_number_for_err_trap = line_number;
|
||||
exec_result = execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close);
|
||||
|
||||
***************
|
||||
*** 2180,2184 ****
|
||||
--- 2188,2195 ----
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
+ save_line_number = line_number;
|
||||
+ line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
+ line_number = save_line_number;
|
||||
}
|
||||
|
||||
*** ../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 15
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 16
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
Loading…
Reference in New Issue
Block a user