+2007-04-11 Bruno Haible <bruno@clisp.org>
+
+ * lib/vasnprintf.c (VASNPRINTF): Implement the %F directive using the
+ %f directive, if NEED_PRINTF_DIRECTIVE_F is defined.
+ * m4/printf.m4 (gl_PRINTF_DIRECTIVE_F): New macro.
+ * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_F): New macro.
+ * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Invoke
+ gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
+ Reported by Eric Blake.
+
2007-04-11 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Fix test. It always failed.
default:
break;
}
- *p = dp->conversion;
+#if NEED_PRINTF_DIRECTIVE_F
+ if (dp->conversion == 'F')
+ *p = 'f';
+ else
+#endif
+ *p = dp->conversion;
#if USE_SNPRINTF
p[1] = '%';
p[2] = 'n';
free (tmp);
#endif
+#if NEED_PRINTF_DIRECTIVE_F
+ if (dp->conversion == 'F')
+ {
+ /* Convert the %f result to upper case for %F. */
+ CHAR_T *rp = result + length;
+ size_t rc;
+ for (rc = count; rc > 0; rc--, rp++)
+ if (*rp >= 'a' && *rp <= 'z')
+ *rp = *rp - 'a' + 'A';
+ }
+#endif
+
length += count;
break;
}
-# fprintf-posix.m4 serial 2
+# fprintf-posix.m4 serial 3
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_fprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- # fprintf exists and is already POSIX compliant.
- gl_cv_func_fprintf_posix=yes
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ # fprintf exists and is already POSIX compliant.
+ gl_cv_func_fprintf_posix=yes
+ ;;
+ esac
;;
esac
;;
esac
if test $gl_cv_func_fprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_FPRINTF
fi
-# printf.m4 serial 5
+# printf.m4 serial 6
dnl Copyright (C) 2003, 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,
])
])
+dnl Test whether the *printf family of functions supports the %F format
+dnl directive. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_directive_f.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_F],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'F' directive],
+ [gl_cv_func_printf_directive_f],
+ [
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
+ || strcmp (buf, "1234567.000000 33") != 0)
+ return 1;
+ if (sprintf (buf, "%F", 1.0 / 0.0) < 0
+ || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
+ return 1;
+ /* This catches a Cygwin 2007 bug. */
+ if (sprintf (buf, "%.F", 1234.0) < 0
+ || strcmp (buf, "1234") != 0)
+ return 1;
+ return 0;
+}], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no],
+ [
+ case "$host_os" in
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_directive_f="guessing no";;
+ esac
+ ])
+ ])
+])
+
dnl Test whether the *printf family of functions supports the %n format
dnl directive. (ISO C99, POSIX:2001)
dnl Result is gl_cv_func_printf_directive_n.
dnl
dnl 1 = gl_PRINTF_SIZES_C99
dnl 2 = gl_PRINTF_DIRECTIVE_A
-dnl 3 = gl_PRINTF_DIRECTIVE_N
-dnl 4 = gl_PRINTF_POSITIONS
-dnl 5 = gl_SNPRINTF_PRESENCE
-dnl 6 = gl_SNPRINTF_TRUNCATION_C99
-dnl 7 = gl_SNPRINTF_RETVAL_C99
-dnl 8 = gl_SNPRINTF_DIRECTIVE_N
+dnl 3 = gl_PRINTF_DIRECTIVE_F
+dnl 4 = gl_PRINTF_DIRECTIVE_N
+dnl 5 = gl_PRINTF_POSITIONS
+dnl 6 = gl_SNPRINTF_PRESENCE
+dnl 7 = gl_SNPRINTF_TRUNCATION_C99
+dnl 8 = gl_SNPRINTF_RETVAL_C99
+dnl 9 = gl_SNPRINTF_DIRECTIVE_N
dnl
dnl 1 = checking whether printf supports size specifiers as in C99...
dnl 2 = checking whether printf supports the 'a' and 'A' directives...
-dnl 3 = checking whether printf supports the 'n' directive...
-dnl 4 = checking whether printf supports POSIX/XSI format strings with positions...
-dnl 5 = checking for snprintf...
-dnl 6 = checking whether snprintf truncates the result as in C99...
-dnl 7 = checking whether snprintf returns a byte count as in C99...
-dnl 8 = checking whether snprintf fully supports the 'n' directive...
+dnl 3 = checking whether printf supports the 'F' directive...
+dnl 4 = checking whether printf supports the 'n' directive...
+dnl 5 = checking whether printf supports POSIX/XSI format strings with positions...
+dnl 6 = checking for snprintf...
+dnl 7 = checking whether snprintf truncates the result as in C99...
+dnl 8 = checking whether snprintf returns a byte count as in C99...
+dnl 9 = checking whether snprintf fully supports the 'n' directive...
dnl
dnl . = yes, # = no.
dnl
-dnl 1 2 3 4 5 6 7 8
-dnl glibc 2.5 . . . . . . . .
-dnl glibc 2.3.6 . # . . . . . .
-dnl FreeBSD 5.4, 6.1 . ? . . . . . .
-dnl MacOS X 10.3.9 . # . . . . . .
-dnl OpenBSD 3.9, 4.0 . # . . . . . ?
-dnl Cygwin 2007 . # . . . . . ?
-dnl Cygwin 2006 # # . . . . . ?
-dnl Solaris 10 . # . . . . . .
-dnl Solaris 2.6 ... 9 # # . . . . . .
-dnl Solaris 2.5.1 # # . . # # # #
-dnl AIX 4.3.2, 5.1 # # . . . . . .
-dnl HP-UX 11.31 . # . . . . # #
-dnl HP-UX 10.20, 11.00, 11.11, 11.23 # # . . . . # #
-dnl IRIX 6.5 # # . . . . # .
-dnl OSF/1 5.1 # # . . . . # .
-dnl OSF/1 4.0d # # . . # # # #
-dnl NetBSD 4.0 . ? . . . . . ?
-dnl NetBSD 3.0 . # . # . . . .
-dnl BeOS # # . # . . . .
-dnl mingw # # . # . # # #
+dnl 1 2 3 4 5 6 7 8 9
+dnl glibc 2.5 . . . . . . . . .
+dnl glibc 2.3.6 . # . . . . . . .
+dnl FreeBSD 5.4, 6.1 . ? . . . . . . .
+dnl MacOS X 10.3.9 . # . . . . . . .
+dnl OpenBSD 3.9, 4.0 . # ? . . . . . ?
+dnl Cygwin 2007 . # # . . . . . ?
+dnl Cygwin 2006 # # # . . . . . ?
+dnl Solaris 10 . # . . . . . . .
+dnl Solaris 2.6 ... 9 # # # . . . . . .
+dnl Solaris 2.5.1 # # # . . # # # #
+dnl AIX 4.3.2, 5.1 # # # . . . . . .
+dnl HP-UX 11.31 . # . . . . . # #
+dnl HP-UX 10.20, 11.00, 11.11, 11.23 # # # . . . . # #
+dnl IRIX 6.5 # # # . . . . # .
+dnl OSF/1 5.1 # # # . . . . # .
+dnl OSF/1 4.0d # # # . . # # # #
+dnl NetBSD 4.0 . ? ? . . . . . ?
+dnl NetBSD 3.0 . # ? . # . . . .
+dnl BeOS # # ? . # . . . .
+dnl mingw # # # . # . # # #
-# snprintf-posix.m4 serial 2
+# snprintf-posix.m4 serial 3
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_snprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- case "$gl_cv_func_snprintf_truncation_c99" in
+ case "$gl_cv_func_printf_positions" in
*yes)
- case "$gl_cv_func_snprintf_retval_c99" in
+ case "$gl_cv_func_snprintf_truncation_c99" in
*yes)
- case "$gl_cv_func_snprintf_directive_n" in
+ case "$gl_cv_func_snprintf_retval_c99" in
*yes)
- # snprintf exists and is already POSIX
- # compliant.
- gl_cv_func_snprintf_posix=yes
+ case "$gl_cv_func_snprintf_directive_n" in
+ *yes)
+ # snprintf exists and is already POSIX
+ # compliant.
+ gl_cv_func_snprintf_posix=yes
+ ;;
+ esac
;;
esac
;;
fi
if test $gl_cv_func_snprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_SNPRINTF
fi
-# sprintf-posix.m4 serial 2
+# sprintf-posix.m4 serial 3
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_sprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- # sprintf exists and is already POSIX compliant.
- gl_cv_func_sprintf_posix=yes
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ # sprintf exists and is already POSIX compliant.
+ gl_cv_func_sprintf_posix=yes
+ ;;
+ esac
;;
esac
;;
esac
if test $gl_cv_func_sprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_SPRINTF
fi
-# vasnprintf-posix.m4 serial 3
+# vasnprintf-posix.m4 serial 4
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_vasnprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- if test $ac_cv_func_vasnprintf = yes; then
- # vasnprintf exists and is already POSIX compliant.
- gl_cv_func_vasnprintf_posix=yes
- fi
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ if test $ac_cv_func_vasnprintf = yes; then
+ # vasnprintf exists and is already POSIX compliant.
+ gl_cv_func_vasnprintf_posix=yes
+ fi
+ ;;
+ esac
;;
esac
;;
esac
if test $gl_cv_func_vasnprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
fi
])
-# vasnprintf.m4 serial 12
+# vasnprintf.m4 serial 13
dnl Copyright (C) 2002-2004, 2006-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,
esac
])
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F],
+[
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
+ case "$gl_cv_func_printf_directive_f" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], 1,
+ [Define if the vasnprintf implementation needs special code for
+ the 'F' directive.])
+ ;;
+ esac
+])
+
# Prerequisites of lib/asnprintf.c.
AC_DEFUN([gl_PREREQ_ASNPRINTF],
[
-# vasprintf-posix.m4 serial 3
+# vasprintf-posix.m4 serial 4
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_vasprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- if test $ac_cv_func_vasprintf = yes; then
- # vasprintf exists and is already POSIX compliant.
- gl_cv_func_vasprintf_posix=yes
- fi
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ if test $ac_cv_func_vasprintf = yes; then
+ # vasprintf exists and is already POSIX compliant.
+ gl_cv_func_vasprintf_posix=yes
+ fi
+ ;;
+ esac
;;
esac
;;
esac
if test $gl_cv_func_vasprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_VASPRINTF
fi
-# vfprintf-posix.m4 serial 2
+# vfprintf-posix.m4 serial 3
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_vfprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- # vfprintf exists and is already POSIX compliant.
- gl_cv_func_vfprintf_posix=yes
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ # vfprintf exists and is already POSIX compliant.
+ gl_cv_func_vfprintf_posix=yes
+ ;;
+ esac
;;
esac
;;
esac
if test $gl_cv_func_vfprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_VFPRINTF
fi
-# vsnprintf-posix.m4 serial 2
+# vsnprintf-posix.m4 serial 3
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_vsnprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- case "$gl_cv_func_snprintf_truncation_c99" in
+ case "$gl_cv_func_printf_positions" in
*yes)
- case "$gl_cv_func_snprintf_retval_c99" in
+ case "$gl_cv_func_snprintf_truncation_c99" in
*yes)
- case "$gl_cv_func_snprintf_directive_n" in
+ case "$gl_cv_func_snprintf_retval_c99" in
*yes)
- # vsnprintf exists and is already POSIX
- # compliant.
- gl_cv_func_vsnprintf_posix=yes
+ case "$gl_cv_func_snprintf_directive_n" in
+ *yes)
+ # vsnprintf exists and is already POSIX
+ # compliant.
+ gl_cv_func_vsnprintf_posix=yes
+ ;;
+ esac
;;
esac
;;
fi
if test $gl_cv_func_vsnprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_VSNPRINTF
fi
-# vsprintf-posix.m4 serial 2
+# vsprintf-posix.m4 serial 3
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,
AC_REQUIRE([gl_EOVERFLOW])
AC_REQUIRE([gl_PRINTF_SIZES_C99])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
AC_REQUIRE([gl_PRINTF_POSITIONS])
gl_cv_func_vsprintf_posix=no
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
- case "$gl_cv_func_printf_directive_n" in
+ case "$gl_cv_func_printf_directive_f" in
*yes)
- case "$gl_cv_func_printf_positions" in
+ case "$gl_cv_func_printf_directive_n" in
*yes)
- # vsprintf exists and is already POSIX compliant.
- gl_cv_func_vsprintf_posix=yes
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ # vsprintf exists and is already POSIX compliant.
+ gl_cv_func_vsprintf_posix=yes
+ ;;
+ esac
;;
esac
;;
esac
if test $gl_cv_func_vsprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
gl_REPLACE_VSPRINTF
fi