summaryrefslogtreecommitdiffstats
path: root/patches/source/bash/bash-4.2-patches/bash42-005
diff options
context:
space:
mode:
Diffstat (limited to 'patches/source/bash/bash-4.2-patches/bash42-005')
-rw-r--r--patches/source/bash/bash-4.2-patches/bash42-005131
1 files changed, 131 insertions, 0 deletions
diff --git a/patches/source/bash/bash-4.2-patches/bash42-005 b/patches/source/bash/bash-4.2-patches/bash42-005
new file mode 100644
index 000000000..3ca9fc1da
--- /dev/null
+++ b/patches/source/bash/bash-4.2-patches/bash42-005
@@ -0,0 +1,131 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-005
+
+Bug-Reported-by: Dennis Williamson <dennistwilliamson@gmail.com>
+Bug-Reference-ID: <AANLkTikDbEV5rnbPc0zOfmZfBcg0xGetzLLzK+KjRiNa@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
+
+Bug-Description:
+
+Systems that use tzset() to set the local timezone require the TZ variable
+to be in the environment. Bash must make sure the environment has been
+modified with any updated value for TZ before calling tzset(). This
+affects prompt string expansions and the `%T' printf conversion specification
+on systems that do not allow bash to supply a replacement for getenv(3).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/variables.h 2010-12-02 20:22:01.000000000 -0500
+--- variables.h 2011-02-19 19:57:12.000000000 -0500
+***************
+*** 314,317 ****
+--- 314,318 ----
+ extern void sort_variables __P((SHELL_VAR **));
+
++ extern int chkexport __P((char *));
+ extern void maybe_make_export_env __P((void));
+ extern void update_export_env_inplace __P((char *, int, char *));
+*** ../bash-4.2-patched/variables.c 2011-01-24 20:07:48.000000000 -0500
+--- variables.c 2011-02-19 20:04:50.000000000 -0500
+***************
+*** 3654,3657 ****
+--- 3654,3673 ----
+ }
+
++ int
++ chkexport (name)
++ char *name;
++ {
++ SHELL_VAR *v;
++
++ v = find_variable (name);
++ if (exported_p (v))
++ {
++ array_needs_making = 1;
++ maybe_make_export_env ();
++ return 1;
++ }
++ return 0;
++ }
++
+ void
+ maybe_make_export_env ()
+***************
+*** 4215,4219 ****
+ { "TEXTDOMAINDIR", sv_locale },
+
+! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+ { "TZ", sv_tz },
+ #endif
+--- 4231,4235 ----
+ { "TEXTDOMAINDIR", sv_locale },
+
+! #if defined (HAVE_TZSET)
+ { "TZ", sv_tz },
+ #endif
+***************
+*** 4559,4568 ****
+ #endif /* HISTORY */
+
+! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+ void
+ sv_tz (name)
+ char *name;
+ {
+! tzset ();
+ }
+ #endif
+--- 4575,4585 ----
+ #endif /* HISTORY */
+
+! #if defined (HAVE_TZSET)
+ void
+ sv_tz (name)
+ char *name;
+ {
+! if (chkexport (name))
+! tzset ();
+ }
+ #endif
+*** ../bash-4.2-patched/parse.y 2011-01-02 15:48:11.000000000 -0500
+--- parse.y 2011-02-19 20:05:00.000000000 -0500
+***************
+*** 5136,5139 ****
+--- 5136,5142 ----
+ /* Make the current time/date into a string. */
+ (void) time (&the_time);
++ #if defined (HAVE_TZSET)
++ sv_tz ("TZ"); /* XXX -- just make sure */
++ #endif
+ tm = localtime (&the_time);
+
+*** ../bash-4.2-patched/builtins/printf.def 2010-11-23 10:02:55.000000000 -0500
+--- builtins/printf.def 2011-02-19 20:05:04.000000000 -0500
+***************
+*** 466,469 ****
+--- 466,472 ----
+ else
+ secs = arg;
++ #if defined (HAVE_TZSET)
++ sv_tz ("TZ"); /* XXX -- just make sure */
++ #endif
+ tm = localtime (&secs);
+ n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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_ */