diff options
author | Chet Ramey <chet.ramey@case.edu> | 2011-11-22 20:00:19 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2011-11-22 20:00:19 -0500 |
commit | 2bbe80583bb601cdca730a4aafebb5622b6dddc1 (patch) | |
tree | 9c66fa5dbafa184fb1e7cecf5731e8145f52f861 | |
parent | aeb26a67db0df058436b835363fc433e258719f3 (diff) | |
download | bash-2bbe80583bb601cdca730a4aafebb5622b6dddc1.tar.gz |
Bash-4.2 patch 5
-rw-r--r-- | builtins/printf.def | 3 | ||||
-rw-r--r-- | parse.y | 3 | ||||
-rw-r--r-- | patchlevel.h | 2 | ||||
-rw-r--r-- | variables.c | 23 | ||||
-rw-r--r-- | variables.h | 1 |
5 files changed, 28 insertions, 4 deletions
diff --git a/builtins/printf.def b/builtins/printf.def index 7892cb5a..9eca2152 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -465,6 +465,9 @@ printf_builtin (list) secs = shell_start_time; /* roughly $SECONDS */ 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); free (timefmt); @@ -5135,6 +5135,9 @@ decode_prompt_string (string) case 'A': /* 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); if (c == 'd') diff --git a/patchlevel.h b/patchlevel.h index 2b93e977..5cca30b8 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 4 +#define PATCHLEVEL 5 #endif /* _PATCHLEVEL_H_ */ diff --git a/variables.c b/variables.c index 3c20c3c0..daacdbf0 100644 --- a/variables.c +++ b/variables.c @@ -3653,6 +3653,22 @@ n_shell_variables () return n; } +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 () { @@ -4214,7 +4230,7 @@ static struct name_and_function special_vars[] = { { "TEXTDOMAIN", sv_locale }, { "TEXTDOMAINDIR", sv_locale }, -#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE) +#if defined (HAVE_TZSET) { "TZ", sv_tz }, #endif @@ -4558,12 +4574,13 @@ sv_histtimefmt (name) } #endif /* HISTORY */ -#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE) +#if defined (HAVE_TZSET) void sv_tz (name) char *name; { - tzset (); + if (chkexport (name)) + tzset (); } #endif diff --git a/variables.h b/variables.h index 7041ca94..84e92bbf 100644 --- a/variables.h +++ b/variables.h @@ -313,6 +313,7 @@ extern void set_func_auto_export __P((const char *)); 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 *)); extern void put_command_name_into_env __P((char *)); |