Fix *printf behaviour in out-of-memory situations on MacOS X and *BSD.
[gnulib.git] / m4 / sprintf-posix.m4
index 6fc7523..8e6fcaa 100644 (file)
@@ -1,4 +1,4 @@
-# sprintf-posix.m4 serial 7
+# sprintf-posix.m4 serial 8
 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,
@@ -17,6 +17,7 @@ AC_DEFUN([gl_FUNC_SPRINTF_POSIX],
   AC_REQUIRE([gl_PRINTF_POSITIONS])
   AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
   AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
+  AC_REQUIRE([gl_PRINTF_ENOMEM])
   gl_cv_func_sprintf_posix=no
   case "$gl_cv_func_printf_sizes_c99" in
     *yes)
@@ -38,9 +39,13 @@ AC_DEFUN([gl_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
+                                          case "$gl_cv_func_printf_enomem" in
+                                            *yes)
+                                              # sprintf exists and is already
+                                              # POSIX compliant.
+                                              gl_cv_func_sprintf_posix=yes
+                                              ;;
+                                          esac
                                           ;;
                                       esac
                                       ;;
@@ -69,6 +74,7 @@ AC_DEFUN([gl_FUNC_SPRINTF_POSIX],
     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
     gl_PREREQ_VASNPRINTF_FLAG_GROUPING
     gl_PREREQ_VASNPRINTF_FLAG_ZERO
+    gl_PREREQ_VASNPRINTF_ENOMEM
     gl_REPLACE_VASNPRINTF
     gl_REPLACE_SPRINTF
   fi