+++ /dev/null
- BASH PATCH REPORT
- =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-041
-
-Bug-Reported-by: Dan Jacobson <jidanni@jidanni.org>
-Bug-Reference-ID: <873arjs11h.fsf@jidanni.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-02/msg00049.html
-
-Bug-Description:
-
-Bash saved and restored the value of `set -o history' while sourcing files,
-preventing users from turning off history with `set +o history' in .bashrc.
-
-Patch:
-
-*** ../bash-3.2-patched/bashhist.c 2005-12-26 13:31:16.000000000 -0500
---- bashhist.c 2008-08-17 13:07:40.000000000 -0400
-***************
-*** 81,84 ****
---- 81,85 ----
- becomes zero when we read lines from a file, for example. */
- int remember_on_history = 1;
-+ int enable_history_list = 1; /* value for `set -o history' */
-
- /* The number of lines that Bash has added to this history session. The
-***************
-*** 235,239 ****
- history_expansion_inhibited = 1;
- #endif
-! remember_on_history = interact != 0;
- history_inhibit_expansion_function = bash_history_inhibit_expansion;
- }
---- 236,240 ----
- history_expansion_inhibited = 1;
- #endif
-! remember_on_history = enable_history_list = interact != 0;
- history_inhibit_expansion_function = bash_history_inhibit_expansion;
- }
-*** ../bash-3.2-patched/builtins/set.def 2006-07-27 09:41:43.000000000 -0400
---- builtins/set.def 2008-08-14 16:33:41.000000000 -0400
-***************
-*** 190,194 ****
- #endif /* BANG_HISTORY */
- #if defined (HISTORY)
-! { "history", '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL },
- #endif
- { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
---- 198,202 ----
- #endif /* BANG_HISTORY */
- #if defined (HISTORY)
-! { "history", '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL },
- #endif
- { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
-***************
-*** 382,385 ****
---- 390,394 ----
- if (on_or_off == FLAG_ON)
- {
-+ enable_history_list = 1;
- bash_history_enable ();
- if (history_lines_this_session == 0)
-***************
-*** 387,392 ****
- }
- else
-! bash_history_disable ();
-! return (1 - remember_on_history);
- }
- #endif
---- 396,404 ----
- }
- else
-! {
-! enable_history_list = 0;
-! bash_history_disable ();
-! }
-! return (1 - enable_history_list);
- }
- #endif
-***************
-*** 566,570 ****
- {
- #if defined (HISTORY)
-! remember_on_history = 1;
- #endif
- ignoreeof = 0;
---- 578,582 ----
- {
- #if defined (HISTORY)
-! remember_on_history = enable_history_list = 1;
- #endif
- ignoreeof = 0;
-*** ../bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400
---- builtins/evalstring.c 2008-11-10 21:17:16.000000000 -0500
-***************
-*** 68,71 ****
---- 68,79 ----
- static int cat_file __P((REDIRECT *));
-
-+ #if defined (HISTORY)
-+ static void
-+ set_history_remembering ()
-+ {
-+ remember_on_history = enable_history_list;
-+ }
-+ #endif
-+
- /* How to force parse_and_execute () to clean up after itself. */
- void
-***************
-*** 116,120 ****
-
- #if defined (HISTORY)
-! unwind_protect_int (remember_on_history); /* can be used in scripts */
- # if defined (BANG_HISTORY)
- if (interactive_shell)
---- 124,131 ----
-
- #if defined (HISTORY)
-! if (parse_and_execute_level == 0)
-! add_unwind_protect (set_history_remembering, (char *)NULL);
-! else
-! unwind_protect_int (remember_on_history); /* can be used in scripts */
- # if defined (BANG_HISTORY)
- if (interactive_shell)
-*** ../bash-3.2-patched/bashhist.h 2005-07-01 15:44:41.000000000 -0400
---- bashhist.h 2008-08-17 12:51:07.000000000 -0400
-***************
-*** 32,35 ****
---- 32,38 ----
-
- extern int remember_on_history;
-+ extern int enable_history_list; /* value for `set -o history' */
-+ extern int literal_history; /* controlled by `shopt lithist' */
-+ extern int force_append_history;
- extern int history_lines_this_session;
- extern int history_lines_in_file;
-*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
---- 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 40
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 41
-
- #endif /* _PATCHLEVEL_H_ */