Work around an incorrect implementation of the 0 flag on most platforms.
[gnulib.git] / m4 / sprintf-posix.m4
index bb354d1..7aadf07 100644 (file)
@@ -1,4 +1,4 @@
-# sprintf-posix.m4 serial 4
+# sprintf-posix.m4 serial 5
 dnl Copyright (C) 2007 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -13,6 +13,7 @@ AC_DEFUN([gl_FUNC_SPRINTF_POSIX],
   AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
   AC_REQUIRE([gl_PRINTF_POSITIONS])
   AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
+  AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
   gl_cv_func_sprintf_posix=no
   case "$gl_cv_func_printf_sizes_c99" in
     *yes)
@@ -26,8 +27,12 @@ AC_DEFUN([gl_FUNC_SPRINTF_POSIX],
                     *yes)
                       case "$gl_cv_func_printf_flag_grouping" in
                         *yes)
-                          # sprintf exists and is already POSIX compliant.
-                          gl_cv_func_sprintf_posix=yes
+                          case "$gl_cv_func_printf_flag_zero" in
+                            *yes)
+                              # sprintf exists and is already POSIX compliant.
+                              gl_cv_func_sprintf_posix=yes
+                              ;;
+                          esac
                           ;;
                       esac
                       ;;
@@ -44,6 +49,7 @@ AC_DEFUN([gl_FUNC_SPRINTF_POSIX],
     gl_PREREQ_VASNPRINTF_DIRECTIVE_A
     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
     gl_PREREQ_VASNPRINTF_FLAG_GROUPING
+    gl_PREREQ_VASNPRINTF_FLAG_ZERO
     gl_REPLACE_VASNPRINTF
     gl_REPLACE_SPRINTF
   fi