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