From c7b432873e9a3e61737f71ecf7d63923db2cee32 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 6 Jun 2024 18:29:51 +0200 Subject: [PATCH] nstrftime: Support time zone names on MSVC. * lib/nstrftime.c: Use HAVE_TZNAME_ARRAY instead of HAVE_TZNAME. (tzname): Remove declaration. * modules/nstrftime (Depends-on): Add tzname. * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't require AC_STRUCT_TIMEZONE. --- ChangeLog | 9 +++++++++ lib/nstrftime.c | 10 +++------- m4/nstrftime.m4 | 7 ++----- modules/nstrftime | 1 + 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index c315f4d08c..9fafd39f69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2024-06-06 Bruno Haible + + nstrftime: Support time zone names on MSVC. + * lib/nstrftime.c: Use HAVE_TZNAME_ARRAY instead of HAVE_TZNAME. + (tzname): Remove declaration. + * modules/nstrftime (Depends-on): Add tzname. + * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't require + AC_STRUCT_TIMEZONE. + 2024-06-06 Bruno Haible parse-datetime: Support time zone names on MSVC. diff --git a/lib/nstrftime.c b/lib/nstrftime.c index bb0ac99cb2..f3c537aa44 100644 --- a/lib/nstrftime.c +++ b/lib/nstrftime.c @@ -19,7 +19,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 @@ -35,10 +35,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 @@ -483,7 +479,7 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) # define aam_len STRLEN (a_altmonth) # define ap_len STRLEN (ampm) #endif -#if HAVE_TZNAME +#if HAVE_TZNAME_ARRAY char **tzname_vec = tzname; #endif const char *zone; @@ -504,7 +500,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/nstrftime.m4 b/m4/nstrftime.m4 index 04c0b63fbd..f9367bccf7 100644 --- a/m4/nstrftime.m4 +++ b/m4/nstrftime.m4 @@ -1,6 +1,6 @@ -# serial 37 +# serial 37.1 -# Copyright (C) 1996-1997, 1999-2007, 2009-2023 Free Software Foundation, Inc. +# Copyright (C) 1996-1997, 1999-2007, 2009-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12,9 +12,6 @@ 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]) AC_DEFINE([my_strftime], [nstrftime], diff --git a/modules/nstrftime b/modules/nstrftime index 35945575b8..a8f74d12cf 100644 --- a/modules/nstrftime +++ b/modules/nstrftime @@ -18,6 +18,7 @@ libc-config stdbool stdckdint time_rz +tzname configure.ac: gl_FUNC_GNU_STRFTIME -- 2.39.5