GNU bug report logs -
#9794
24.0.90; `format-time-string' no good for %Z
Previous Next
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: 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.