bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bash-4.2 Official Patch 5


From: Chet Ramey
Subject: Bash-4.2 Official Patch 5
Date: Mon, 28 Feb 2011 20:58:00 -0500

                             BASH PATCH REPORT
                             =================

Bash-Release:   4.2
Patch-ID:       bash42-005

Bug-Reported-by:        Dennis Williamson <address@hidden>
Bug-Reference-ID:       <address@hidden>
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_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    address@hidden    http://cnswww.cns.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]