X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fprintf.m4;h=32325bf060a8352dd502a8398b8fee717d4f7e81;hb=060ad6de5ed9d89902ebe99c2c39c982dcedc5b9;hp=ecfd02db8dfe400149aabc3bc81ac999390a97e8;hpb=d76083d95f43129312ebf8f67189efb8419c84a8;p=gnulib.git diff --git a/m4/printf.m4 b/m4/printf.m4 index ecfd02db8..32325bf06 100644 --- a/m4/printf.m4 +++ b/m4/printf.m4 @@ -1,4 +1,4 @@ -# printf.m4 serial 9 +# printf.m4 serial 10 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, @@ -81,6 +81,49 @@ changequote([,])dnl ]) ]) +dnl Test whether the *printf family of functions supports 'long double' +dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001) +dnl Result is gl_cv_func_printf_long_double. + +AC_DEFUN([gl_PRINTF_LONG_DOUBLE], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether printf supports 'long double' arguments], + [gl_cv_func_printf_long_double], + [ + AC_TRY_RUN([ +#include +#include +static char buf[100]; +int main () +{ + buf[0] = '\0'; + if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0 + || strcmp (buf, "1.750000 33") != 0) + return 1; + buf[0] = '\0'; + if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0 + || strcmp (buf, "1.750000e+00 33") != 0) + return 1; + buf[0] = '\0'; + if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0 + || strcmp (buf, "1.75 33") != 0) + return 1; + return 0; +}], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no], + [ +changequote(,)dnl + case "$host_os" in + beos*) gl_cv_func_printf_long_double="guessing no";; + mingw* | pw*) gl_cv_func_printf_long_double="guessing no";; + *) gl_cv_func_printf_long_double="guessing yes";; + esac +changequote([,])dnl + ]) + ]) +]) + dnl Test whether the *printf family of functions supports the 'a' and 'A' dnl conversion specifier for hexadecimal output of floating-point numbers. dnl (ISO C99, POSIX:2001) @@ -662,52 +705,54 @@ changequote([,])dnl dnl The results of these tests on various platforms are: dnl dnl 1 = gl_PRINTF_SIZES_C99 -dnl 2 = gl_PRINTF_DIRECTIVE_A -dnl 3 = gl_PRINTF_DIRECTIVE_F -dnl 4 = gl_PRINTF_DIRECTIVE_N -dnl 5 = gl_PRINTF_POSITIONS -dnl 6 = gl_PRINTF_FLAG_GROUPING -dnl 7 = gl_PRINTF_FLAG_ZERO -dnl 8 = gl_SNPRINTF_PRESENCE -dnl 9 = gl_SNPRINTF_TRUNCATION_C99 -dnl 10 = gl_SNPRINTF_RETVAL_C99 -dnl 11 = gl_SNPRINTF_DIRECTIVE_N -dnl 12 = gl_VSNPRINTF_ZEROSIZE_C99 +dnl 2 = gl_PRINTF_LONG_DOUBLE +dnl 3 = gl_PRINTF_DIRECTIVE_A +dnl 4 = gl_PRINTF_DIRECTIVE_F +dnl 5 = gl_PRINTF_DIRECTIVE_N +dnl 6 = gl_PRINTF_POSITIONS +dnl 7 = gl_PRINTF_FLAG_GROUPING +dnl 8 = gl_PRINTF_FLAG_ZERO +dnl 9 = gl_SNPRINTF_PRESENCE +dnl 10 = gl_SNPRINTF_TRUNCATION_C99 +dnl 11 = gl_SNPRINTF_RETVAL_C99 +dnl 12 = gl_SNPRINTF_DIRECTIVE_N +dnl 13 = gl_VSNPRINTF_ZEROSIZE_C99 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 '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 whether printf supports the grouping flag... -dnl 7 = checking whether printf supports the zero flag correctly... -dnl 8 = checking for snprintf... -dnl 9 = checking whether snprintf truncates the result as in C99... -dnl 10 = checking whether snprintf returns a byte count as in C99... -dnl 11 = checking whether snprintf fully supports the 'n' directive... -dnl 12 = checking whether vsnprintf respects a zero size as in C99... +dnl 2 = checking whether printf supports 'long double' arguments... +dnl 3 = checking whether printf supports the 'a' and 'A' directives... +dnl 4 = checking whether printf supports the 'F' directive... +dnl 5 = checking whether printf supports the 'n' directive... +dnl 6 = checking whether printf supports POSIX/XSI format strings with positions... +dnl 7 = checking whether printf supports the grouping flag... +dnl 8 = checking whether printf supports the zero flag correctly... +dnl 9 = checking for snprintf... +dnl 10 = checking whether snprintf truncates the result as in C99... +dnl 11 = checking whether snprintf returns a byte count as in C99... +dnl 12 = checking whether snprintf fully supports the 'n' directive... +dnl 13 = checking whether vsnprintf respects a zero size as in C99... dnl dnl . = yes, # = no. dnl -dnl 1 2 3 4 5 6 7 8 9 10 11 12 -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 (= Cygwin 1.5.24) . # # . . . ? . . . . . -dnl Cygwin 2006 (= Cygwin 1.5.19) # # # . . # ? . . . . . -dnl Solaris 10 . # . . . . # . . . . . -dnl Solaris 2.6 ... 9 # # # . . . # . . . . . -dnl Solaris 2.5.1 # # # . . . # # # # # # -dnl AIX 5.2 . # . . . . # . . . . . -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 10 11 12 13 +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 (= Cygwin 1.5.24) . ? # # . . . # . . . . . +dnl Cygwin 2006 (= Cygwin 1.5.19) # ? # # . . # # . . . . . +dnl Solaris 10 . . # . . . . # . . . . . +dnl Solaris 2.6 ... 9 # . # # . . . # . . . . . +dnl Solaris 2.5.1 # . # # . . . # # # # # # +dnl AIX 5.2 . . # . . . . # . . . . . +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 # # # # . # # # . # # # .