123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 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_ */
|