.
[gnulib.git] / m4 / strftime.m4
index 47cf56c..3f105e9 100644 (file)
@@ -1,13 +1,30 @@
-#serial 3
+#serial 5
 
-dnl From Jim Meyering.
+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)
+ dnl FIXME: add tests for everything in strftime.c: e.g., HAVE_BCOPY,
+ dnl HAVE_TZNAME, HAVE_TZSET, HAVE_TM_ZONE, etc.
+])
+
+dnl Determine if the strftime function has all the features of the GNU one.
+dnl
 dnl If you use this macro in a package, you should
 dnl add the following two lines to acconfig.h:
 dnl   /* Define to gnu_strftime if the replacement function should be used.  */
 dnl   #undef strftime
 dnl
+dnl From Jim Meyering.
+dnl
 AC_DEFUN(jm_FUNC_GNU_STRFTIME,
 [AC_REQUIRE([AC_HEADER_TIME])dnl
+
+ _jm_STRFTIME_PREREQS
+
  AC_REQUIRE([AC_C_CONST])dnl
  AC_REQUIRE([AC_HEADER_STDC])dnl
  AC_CHECK_HEADERS(sys/time.h)
@@ -68,6 +85,7 @@ main ()
   CMP ("%^B", "JANUARY");
   CMP ("%C", "19");            /* POSIX.2 */
   CMP ("%D", "01/09/70");      /* POSIX.2 */
+  CMP ("%F", "1970-01-09");
   CMP ("%G", "1970");          /* GNU */
   CMP ("%H", "13");
   CMP ("%I", "01");
@@ -91,6 +109,7 @@ main ()
   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");
@@ -123,3 +142,9 @@ changequote([, ])dnl
     AC_DEFINE_UNQUOTED(strftime, gnu_strftime)
   fi
 ])
+
+AC_DEFUN(jm_FUNC_STRFTIME,
+[
+  _jm_STRFTIME_PREREQS
+  AC_REPLACE_FUNCS(strftime)
+])