+
+#ifdef emacs
+# define my_strftime emacs_strftime
+ /* Emacs 20.2 uses `-Dstrftime=emacs_strftime' when compiling,
+ because that's how strftime used to be configured.
+ Undo this, since it gets in the way of accessing the underlying strftime,
+ which is needed for things like %Ec in Solaris.
+ The following two lines can be removed once Emacs stops compiling with
+ `-Dstrftime=emacs_strftime'. */
+# undef strftime
+size_t strftime __P ((char *, size_t, const char *, const struct tm *));
+#else
+# define my_strftime strftime
+#endif
+
+#if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET
+ /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime.
+ Work around this bug by copying *tp before it might be munged. */
+ size_t _strftime_copytm __P ((char *, size_t, const char *,
+ const struct tm *));
+ size_t
+ my_strftime (s, maxsize, format, tp)
+ char *s;
+ size_t maxsize;
+ const char *format;
+ const struct tm *tp;
+ {
+ struct tm tmcopy;
+ tmcopy = *tp;
+ return _strftime_copytm (s, maxsize, format, &tmcopy);
+ }
+# undef my_strftime
+# define my_strftime(S, Maxsize, Format, Tp) \
+ _strftime_copytm (S, Maxsize, Format, Tp)
+#endif
+
+