*** empty log message ***
[gnulib.git] / m4 / strftime.m4
index e2074ab..5275694 100644 (file)
@@ -1,14 +1,25 @@
-#serial 6
+#serial 9
 
 dnl This macro is intended to be used solely in this file.
 dnl These are the prerequisite macros for GNU's strftime.c replacement.
 
 dnl This macro is intended to be used solely in this file.
 dnl These are the prerequisite macros for GNU's strftime.c replacement.
-dnl FIXME: the list is far from complete
 AC_DEFUN(_jm_STRFTIME_PREREQS,
 [
  dnl strftime.c uses localtime_r if it exists.  Check for it.
  AC_CHECK_FUNCS(localtime_r)
 AC_DEFUN(_jm_STRFTIME_PREREQS,
 [
  dnl strftime.c uses localtime_r if it exists.  Check for it.
  AC_CHECK_FUNCS(localtime_r)
- dnl FIXME: add tests for everything in strftime.c: e.g., HAVE_BCOPY,
- dnl HAVE_TZNAME, HAVE_TZSET, HAVE_TM_ZONE, etc.
+
+ AC_CHECK_HEADERS(limits.h)
+ AC_CHECK_FUNCS(bcopy tzset mempcpy memcpy memset)
+
+ # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
+ AC_STRUCT_TIMEZONE
+
+ AC_CHECK_FUNCS(mblen mbrlen)
+
+ AC_CHECK_MEMBER(struct tm.tm_gmtoff,
+                 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
+                            [Define if struct tm has the tm_gmtoff member.])],
+                 ,
+                 [#include <time.h>])
 ])
 
 dnl Determine if the strftime function has all the features of the GNU one.
 ])
 
 dnl Determine if the strftime function has all the features of the GNU one.
@@ -25,8 +36,7 @@ AC_DEFUN(jm_FUNC_GNU_STRFTIME,
  AC_CHECK_HEADERS(sys/time.h)
  AC_CACHE_CHECK([for working GNU strftime], jm_cv_func_working_gnu_strftime,
   [AC_TRY_RUN(
  AC_CHECK_HEADERS(sys/time.h)
  AC_CACHE_CHECK([for working GNU strftime], jm_cv_func_working_gnu_strftime,
   [AC_TRY_RUN(
-changequote(<<, >>)dnl
-<< /* Ulrich Drepper provided parts of the test program.  */
+[ /* Ulrich Drepper provided parts of the test program.  */
 #if STDC_HEADERS
 # include <stdlib.h>
 #endif
 #if STDC_HEADERS
 # include <stdlib.h>
 #endif
@@ -104,7 +114,6 @@ main ()
   CMP ("%^c", "FRI JAN  9 13:06:07 1970");
   CMP ("%d", "09");
   CMP ("%e", " 9");            /* POSIX.2 */
   CMP ("%^c", "FRI JAN  9 13:06:07 1970");
   CMP ("%d", "09");
   CMP ("%e", " 9");            /* POSIX.2 */
-  CMP ("%f", "5");             /* POSIX.2 */
   CMP ("%g", "70");            /* GNU */
   CMP ("%h", "Jan");           /* POSIX.2 */
   CMP ("%^h", "JAN");
   CMP ("%g", "70");            /* GNU */
   CMP ("%h", "Jan");           /* POSIX.2 */
   CMP ("%^h", "JAN");
@@ -124,15 +133,14 @@ main ()
   CMP ("%z", "+0000");         /* GNU */
 
   exit (n_fail ? 1 : 0);
   CMP ("%z", "+0000");         /* GNU */
 
   exit (n_fail ? 1 : 0);
-}
-             >>,
-changequote([, ])dnl
+}],
             jm_cv_func_working_gnu_strftime=yes,
              jm_cv_func_working_gnu_strftime=no,
             dnl When crosscompiling, assume strftime is missing or broken.
             jm_cv_func_working_gnu_strftime=no)
   ])
   if test $jm_cv_func_working_gnu_strftime = no; then
             jm_cv_func_working_gnu_strftime=yes,
              jm_cv_func_working_gnu_strftime=no,
             dnl When crosscompiling, assume strftime is missing or broken.
             jm_cv_func_working_gnu_strftime=no)
   ])
   if test $jm_cv_func_working_gnu_strftime = no; then
+    AC_SUBST(LIBOBJS)
     LIBOBJS="$LIBOBJS strftime.$ac_objext"
     AC_DEFINE_UNQUOTED(strftime, gnu_strftime,
       [Define to gnu_strftime if the replacement function should be used.])
     LIBOBJS="$LIBOBJS strftime.$ac_objext"
     AC_DEFINE_UNQUOTED(strftime, gnu_strftime,
       [Define to gnu_strftime if the replacement function should be used.])