From 4a31d1988bbc34cd348009cf8761f306fbd14c63 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 6 Jun 2024 18:29:51 +0200 Subject: [PATCH] nstrftime, c-nstrftime: Support time zone names on MSVC. * lib/strftime.c: Use HAVE_TZNAME_ARRAY instead of HAVE_TZNAME. (tzname): Remove declaration. * modules/nstrftime (Depends-on): Add tzname. * modules/c-nstrftime (Depends-on): Likewise. * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't require AC_STRUCT_TIMEZONE. * m4/c-nstrftime.m4 (gl_C_GNU_STRFTIME): Likewise. --- ChangeLog | 11 +++++++++++ lib/strftime.c | 10 +++------- m4/c-nstrftime.m4 | 5 +---- m4/nstrftime.m4 | 5 +---- modules/c-nstrftime | 1 + modules/nstrftime | 1 + 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3e32b61642..b0fa4f8a4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2024-06-06 Bruno Haible + + nstrftime, c-nstrftime: Support time zone names on MSVC. + * lib/strftime.c: Use HAVE_TZNAME_ARRAY instead of HAVE_TZNAME. + (tzname): Remove declaration. + * modules/nstrftime (Depends-on): Add tzname. + * modules/c-nstrftime (Depends-on): Likewise. + * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't require + AC_STRUCT_TIMEZONE. + * m4/c-nstrftime.m4 (gl_C_GNU_STRFTIME): Likewise. + 2024-06-06 Bruno Haible parse-datetime: Support time zone names on MSVC. diff --git a/lib/strftime.c b/lib/strftime.c index 3a429ed4af..7d124e68f3 100644 --- a/lib/strftime.c +++ b/lib/strftime.c @@ -27,7 +27,7 @@ # define HAVE_STRUCT_ERA_ENTRY 1 # define HAVE_TM_GMTOFF 1 # define HAVE_STRUCT_TM_TM_ZONE 1 -# define HAVE_TZNAME 1 +# define HAVE_TZNAME_ARRAY 1 # include "../locale/localeinfo.h" #else # include @@ -60,10 +60,6 @@ #include #include -#if HAVE_TZNAME && !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - /* Do multibyte processing if multibyte encodings are supported, unless multibyte sequences are safe in formats. Multibyte sequences are safe if they cannot contain byte sequences that look like format @@ -930,7 +926,7 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) # define ampm (L_("AMPM") + 2 * (tp->tm_hour > 11)) # define ap_len 2 #endif -#if HAVE_TZNAME +#if HAVE_TZNAME_ARRAY char **tzname_vec = tzname; #endif const char *zone; @@ -951,7 +947,7 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) POSIX does not require it. Do the right thing instead. */ zone = (const char *) tp->tm_zone; #endif -#if HAVE_TZNAME +#if HAVE_TZNAME_ARRAY if (!tz) { if (! (zone && *zone)) diff --git a/m4/c-nstrftime.m4 b/m4/c-nstrftime.m4 index f5cafbbcca..fbc18ce8c7 100644 --- a/m4/c-nstrftime.m4 +++ b/m4/c-nstrftime.m4 @@ -1,5 +1,5 @@ # c-nstrftime.m4 -# serial 1 +# serial 2 dnl Copyright (C) 1996-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -9,9 +9,6 @@ AC_DEFUN([gl_C_GNU_STRFTIME], [ AC_REQUIRE([AC_C_RESTRICT]) - # This defines (or not) HAVE_TZNAME and HAVE_STRUCT_TM_TM_ZONE. - AC_REQUIRE([AC_STRUCT_TIMEZONE]) - AC_REQUIRE([gl_TM_GMTOFF]) dnl Test for strftime_l. It exists in diff --git a/m4/nstrftime.m4 b/m4/nstrftime.m4 index f73bca40ec..8c855c4163 100644 --- a/m4/nstrftime.m4 +++ b/m4/nstrftime.m4 @@ -1,5 +1,5 @@ # nstrftime.m4 -# serial 38 +# serial 39 dnl Copyright (C) 1996-1997, 1999-2007, 2009-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -11,8 +11,5 @@ AC_DEFUN([gl_FUNC_GNU_STRFTIME], [ AC_REQUIRE([AC_C_RESTRICT]) - # This defines (or not) HAVE_TZNAME and HAVE_STRUCT_TM_TM_ZONE. - AC_REQUIRE([AC_STRUCT_TIMEZONE]) - AC_REQUIRE([gl_TM_GMTOFF]) ]) diff --git a/modules/c-nstrftime b/modules/c-nstrftime index 8b2348c227..fdd054c10e 100644 --- a/modules/c-nstrftime +++ b/modules/c-nstrftime @@ -20,6 +20,7 @@ locale stdbool stdckdint time_rz +tzname configure.ac: gl_C_GNU_STRFTIME diff --git a/modules/nstrftime b/modules/nstrftime index 69b9d84605..35ed887a70 100644 --- a/modules/nstrftime +++ b/modules/nstrftime @@ -19,6 +19,7 @@ localename-unsafe-limited stdbool stdckdint time_rz +tzname configure.ac: gl_FUNC_GNU_STRFTIME -- 2.39.5