+2017-05-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ tzset: update doc for TZ problems on MS-Windows
+ * doc/posix-functions/ctime.texi, doc/posix-functions/daylight.texi:
+ * doc/posix-functions/localtime.texi, doc/posix-functions/mktime.texi:
+ * doc/posix-functions/strftime.texi, doc/posix-functions/timezone.texi:
+ * doc/posix-functions/tzname.texi, doc/posix-functions/tzset.texi:
+ * doc/posix-functions/wcsftime.texi:
+ Mention some issues with TZ under MS-Windows.
+
2017-05-01 Bruno Haible <bruno@clisp.org>
copy-file: Fix build error on mingw.
call @code{ctime} at roughly the same time, you might end up with the
wrong date in one of the threads, or some undefined string. There is
a re-entrant interface @code{ctime_r}.
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
A more flexible function is @code{strftime}. However, note that it is
@item
The address of this variable is not a compile-time constant on some platforms:
Cygwin, mingw.
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
+
+A more portable way of getting the UTC offset is to use
+@code{strftime} with the @code{%z} format. @xref{strftime}.
On some platforms, this function returns nonsense values for
unsupported arguments (like @math{2^56}), rather than failing:
FreeBSD 10.
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
The Windows C runtime library (which is used by MinGW) does not
support the %e specifier (and possibly the other more recent SUS
specifiers too, i.e., %C, %D, %h, %n, %r, %R, %t, and %T).
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
Extension: Gnulib offers a module @samp{strftime} that provides an
@item
The address of this variable is not a compile-time constant on some platforms:
mingw.
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
+
+A more portable way of getting the UTC offset is to use
+@code{strftime} with the @code{%z} format. @xref{strftime}.
@item
The address of this variable is not a compile-time constant on some platforms:
Cygwin, mingw.
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones supported by GNU or specified by POSIX. @xref{tzset}.
@end itemize
+
+A more portable way of getting the time zone abbreviation is to use
+@code{strftime} with the @code{%Z} format. @xref{strftime}.
Portability problems not fixed by Gnulib:
@itemize
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of
+POSIX-specified values for the @env{TZ} environment variable,
+consisting of a time zone abbreviation containing exactly three ASCII
+letters with no daylight saving time or angle brackets, and with no
+support for @code{tz} database settings like
+@code{TZ='America/New_York'}. Even this subset does not work on
+applications built via the Universal Windows Platform, as it does not
+make environment variables like @env{TZ} available to applications.
@end itemize
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+Native Windows platforms (mingw, MSVC) support only a subset of time
+zones specified by POSIX. @xref{tzset}.
@end itemize