From d96382a5e91187ccfed6468f8cd206b29de943de Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 4 Jul 2005 05:06:44 +0000 Subject: [PATCH] (my_strftime) [! defined _LIBC && ! HAVE_RUN_TZSET_TEST]: Copy the input structure, to work around some of the bug with Solaris 2.5.1 and Solaris 2.6. --- lib/strftime.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/strftime.c b/lib/strftime.c index 37c5123..fb7354e 100644 --- a/lib/strftime.c +++ b/lib/strftime.c @@ -373,13 +373,6 @@ static CHAR_T const month_name[][10] = # define ns 0 #endif -#if ! defined _LIBC && ! HAVE_RUN_TZSET_TEST -/* Solaris 2.5.x and 2.6 tzset sometimes modify the storage returned - by localtime. On such systems, we must use the tzset and localtime - wrappers to work around the bug. */ -"you must run the autoconf test for a working tzset function" -#endif - /* Write information from TP into S according to the format string FORMAT, writing no more that MAXSIZE characters @@ -439,6 +432,15 @@ my_strftime (CHAR_T *s, size_t maxsize, const CHAR_T *format, const char *format_end = NULL; #endif +#if ! defined _LIBC && ! HAVE_RUN_TZSET_TEST + /* Solaris 2.5.x and 2.6 tzset sometimes modify the storage returned + by localtime. On such systems, we must either use the tzset and + localtime wrappers to work around the bug (which sets + HAVE_RUN_TZSET_TEST) or make a copy of the structure. */ + struct tm copy = *tp; + tp = © +#endif + zone = NULL; #if HAVE_TM_ZONE /* The POSIX test suite assumes that setting -- 2.7.4