GNU bug report logs - #9794
24.0.90; `format-time-string' no good for %Z

Previous Next

Packages: w32, emacs;

Reported by: "Drew Adams" <drew.adams <at> oracle.com>

Date: Wed, 19 Oct 2011 06:46:02 UTC

Severity: wishlist

Merged with 641

Found in versions 22.2, 23.0.60, 24.0.90

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #37 received at 9794 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jason Rumney <jasonr <at> gnu.org>, Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 9794 <at> debbugs.gnu.org, drew.adams <at> oracle.com
Subject: Re: bug#9794: 24.0.90; `format-time-string' no good for %Z
Date: Wed, 19 Oct 2011 18:08:59 +0200
> From: Jason Rumney <jasonr <at> gnu.org>
> Cc: Drew Adams <drew.adams <at> oracle.com>,  9794 <at> debbugs.gnu.org
> Date: Wed, 19 Oct 2011 21:20:06 +0800
> 
> One proposal in that thread was to introduce a new format specifier to
> print the long names (on non-Windows platforms it could output the
> commonly used "Continent/City" format). Another proposal was that %EZ
> could be used, which is especially fitting, for the Windows timezone
> names, which are apparently locale sensitive (which was one of the
> reported problems that led to them being removed in the first place).

I used the %EZ format proposed by Andreas Schwab, and came up with
the Windows-specific patch below.

Paul, would such a change be acceptable by gnulib?

=== modified file 'ChangeLog'
--- ChangeLog	2011-10-18 18:12:53 +0000
+++ ChangeLog	2011-10-19 16:02:14 +0000
@@ -1,3 +1,8 @@
+2011-10-19  Eli Zaretskii  <eliz <at> gnu.org>
+
+	* lib/strftime.c (strftime_case_) [_WIN32 || __WIN32__]: Provide
+	non-empty time-zone string only for the %EZ format specifier.
+
 2011-10-18  Jan Djärv  <jan.h.d <at> swipnet.se>
 
 	* configure.in (GLIB_REQUIRED, GTK_REQUIRED): Set to 2.10 (Bug#9786).

=== modified file 'lib/strftime.c'
--- lib/strftime.c	2011-03-31 04:24:03 +0000
+++ lib/strftime.c	2011-10-19 15:48:42 +0000
@@ -1302,6 +1302,12 @@ strftime_case_ (bool upcase, STREAM_OR_C
             }
 
 #if HAVE_TZNAME
+#if (defined _WIN32 || defined __WIN32__)
+	  /* Microsoft runtime produces time-zone names that are not
+	     RFC822 compliant, and are also localized.  So we only
+	     produce them for %EZ.  */
+	  if (modifier == L_('E'))
+#endif
           /* The tzset() call might have changed the value.  */
           if (!(zone && *zone) && tp->tm_isdst >= 0)
             zone = tzname[tp->tm_isdst != 0];

=== modified file 'nt/ChangeLog'
--- nt/ChangeLog	2011-09-04 21:52:59 +0000
+++ nt/ChangeLog	2011-10-19 16:02:25 +0000
@@ -1,3 +1,7 @@
+2011-10-19  Eli Zaretskii  <eliz <at> gnu.org>
+
+	* config.nt (HAVE_TZNAME, HAVE_DECL_TZNAME): Define.
+
 2011-09-04  Paul Eggert  <eggert <at> cs.ucla.edu>
 
 	* config.nt (HAVE_SNPRINTF): New macro.

=== modified file 'nt/config.nt'
--- nt/config.nt	2011-09-26 03:20:03 +0000
+++ nt/config.nt	2011-10-19 15:57:12 +0000
@@ -187,7 +187,14 @@ along with GNU Emacs.  If not, see <http
 
 #undef TM_IN_SYS_TIME
 #undef HAVE_TM_ZONE
-#undef HAVE_TZNAME
+
+/* Define to 1 if you don't have `tm_zone' but do have the external array
+   `tzname'. */
+#define HAVE_TZNAME 1
+
+/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
+   */
+#define HAVE_DECL_TZNAME 1
 
 #undef const
 






This bug report was last modified 13 years and 271 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.