X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fstrftime.m4;h=3f105e986f41ee1fcee91da994de33f14d91f175;hb=7efc230716b545340f0fecf2a5cfebca956d9c76;hp=8b40a69b6239671f48d1a28c8ead68ed6fe97c43;hpb=409d8f2d902cc6e12e40b08200f5dac27d0e98cb;p=gnulib.git diff --git a/m4/strftime.m4 b/m4/strftime.m4 index 8b40a69b6..3f105e986 100644 --- a/m4/strftime.m4 +++ b/m4/strftime.m4 @@ -1,13 +1,30 @@ -#serial 2 +#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) @@ -56,7 +73,7 @@ main () /* This is necessary to make strftime give consistent zone strings and e.g., seconds since the epoch (%s). */ - putenv ("TZ=GMT"); + putenv ("TZ=GMT0"); #undef CMP #define CMP(Fmt, Expected) n_fail += compare ((Fmt), tm, (Expected)) @@ -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) +])