Implement the %F directive if the system doesn't implement it correctly.
[gnulib.git] / m4 / sprintf-posix.m4
1 # sprintf-posix.m4 serial 3
2 dnl Copyright (C) 2007 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 AC_DEFUN([gl_FUNC_SPRINTF_POSIX],
8 [
9   AC_REQUIRE([gl_EOVERFLOW])
10   AC_REQUIRE([gl_PRINTF_SIZES_C99])
11   AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
12   AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
13   AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
14   AC_REQUIRE([gl_PRINTF_POSITIONS])
15   gl_cv_func_sprintf_posix=no
16   case "$gl_cv_func_printf_sizes_c99" in
17     *yes)
18       case "$gl_cv_func_printf_directive_a" in
19         *yes)
20           case "$gl_cv_func_printf_directive_f" in
21             *yes)
22               case "$gl_cv_func_printf_directive_n" in
23                 *yes)
24                   case "$gl_cv_func_printf_positions" in
25                     *yes)
26                       # sprintf exists and is already POSIX compliant.
27                       gl_cv_func_sprintf_posix=yes
28                       ;;
29                   esac
30                   ;;
31               esac
32               ;;
33           esac
34           ;;
35       esac
36       ;;
37   esac
38   if test $gl_cv_func_sprintf_posix = no; then
39     gl_PREREQ_VASNPRINTF_DIRECTIVE_A
40     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
41     gl_REPLACE_VASNPRINTF
42     gl_REPLACE_SPRINTF
43   fi
44 ])
45
46 AC_DEFUN([gl_REPLACE_SPRINTF],
47 [
48   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
49   AC_LIBOBJ([sprintf])
50   REPLACE_SPRINTF=1
51   gl_PREREQ_SPRINTF
52 ])
53
54 AC_DEFUN([gl_PREREQ_SPRINTF], [:])