[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: another platform *printf bug
From: |
Bruno Haible |
Subject: |
Re: another platform *printf bug |
Date: |
Thu, 12 Apr 2007 01:48:06 +0200 |
User-agent: |
KMail/1.5.4 |
Eric Blake wrote:
> Up till today, newlib has this bug:
>
> $ printf %.f 1234
> 1234
> $ printf %.F 1234
> 1F+03
>
> basically, it is treating %F like %e, with rather comical results. This bug
> bites cygwin 1.5.x (but not 1.7.0). And printf-posix and friends currently
> do
> not test for it.
Can you please test this patch? Already in CVS without testing; I rely on you.
Bruno
2007-04-11 Bruno Haible <address@hidden>
* 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.
*** lib/vasnprintf.c 6 Apr 2007 21:22:02 -0000 1.39
--- lib/vasnprintf.c 11 Apr 2007 23:34:20 -0000
***************
*** 1061,1067 ****
default:
break;
}
! *p = dp->conversion;
#if USE_SNPRINTF
p[1] = '%';
p[2] = 'n';
--- 1061,1072 ----
default:
break;
}
! #if NEED_PRINTF_DIRECTIVE_F
! if (dp->conversion == 'F')
! *p = 'f';
! else
! #endif
! *p = dp->conversion;
#if USE_SNPRINTF
p[1] = '%';
p[2] = 'n';
***************
*** 1348,1353 ****
--- 1353,1370 ----
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;
}
*** m4/fprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.2
--- m4/fprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # fprintf-posix.m4 serial 2
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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 16,27 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! # fprintf exists and is already POSIX compliant.
! gl_cv_func_fprintf_posix=yes
;;
esac
;;
--- 17,32 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
! *yes)
! # fprintf exists and is already POSIX compliant.
! gl_cv_func_fprintf_posix=yes
! ;;
! esac
;;
esac
;;
***************
*** 32,37 ****
--- 37,43 ----
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
*** m4/printf.m4 11 Apr 2007 23:32:56 -0000 1.16
--- m4/printf.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # printf.m4 serial 5
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,
--- 1,4 ----
! # 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,
***************
*** 162,167 ****
--- 162,205 ----
])
])
+ 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.
***************
*** 428,469 ****
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
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
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 # # . # . # # #
--- 466,509 ----
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_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 '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 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 # # # . # . # # #
*** m4/snprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.3
--- m4/snprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # snprintf-posix.m4 serial 2
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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 21,39 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! case "$gl_cv_func_snprintf_truncation_c99" in
*yes)
! case "$gl_cv_func_snprintf_retval_c99" in
*yes)
! case "$gl_cv_func_snprintf_directive_n" in
*yes)
! # snprintf exists and is already POSIX
! # compliant.
! gl_cv_func_snprintf_posix=yes
;;
esac
;;
--- 22,44 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! case "$gl_cv_func_snprintf_truncation_c99" in
*yes)
! case "$gl_cv_func_snprintf_retval_c99" in
*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
;;
***************
*** 51,56 ****
--- 56,62 ----
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
*** m4/sprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.3
--- m4/sprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # sprintf-posix.m4 serial 2
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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 16,27 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! # sprintf exists and is already POSIX compliant.
! gl_cv_func_sprintf_posix=yes
;;
esac
;;
--- 17,32 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
! *yes)
! # sprintf exists and is already POSIX compliant.
! gl_cv_func_sprintf_posix=yes
! ;;
! esac
;;
esac
;;
***************
*** 32,37 ****
--- 37,43 ----
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
*** m4/vasnprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.6
--- m4/vasnprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # vasnprintf-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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 17,30 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! 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
;;
--- 18,35 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! 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
;;
***************
*** 35,40 ****
--- 40,46 ----
esac
if test $gl_cv_func_vasnprintf_posix = no; then
gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
gl_REPLACE_VASNPRINTF
fi
])
*** m4/vasnprintf.m4 6 Apr 2007 14:36:56 -0000 1.19
--- m4/vasnprintf.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # vasnprintf.m4 serial 12
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,
--- 1,4 ----
! # 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,
***************
*** 75,80 ****
--- 75,95 ----
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],
[
*** m4/vasprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.4
--- m4/vasprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # vasprintf-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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 17,30 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! 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
;;
--- 18,35 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! 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
;;
***************
*** 35,40 ****
--- 40,46 ----
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
*** m4/vfprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.2
--- m4/vfprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # vfprintf-posix.m4 serial 2
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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 16,27 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! # vfprintf exists and is already POSIX compliant.
! gl_cv_func_vfprintf_posix=yes
;;
esac
;;
--- 17,32 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
! *yes)
! # vfprintf exists and is already POSIX compliant.
! gl_cv_func_vfprintf_posix=yes
! ;;
! esac
;;
esac
;;
***************
*** 32,37 ****
--- 37,43 ----
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
*** m4/vsnprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.3
--- m4/vsnprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # vsnprintf-posix.m4 serial 2
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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 22,40 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! case "$gl_cv_func_snprintf_truncation_c99" in
*yes)
! case "$gl_cv_func_snprintf_retval_c99" in
*yes)
! case "$gl_cv_func_snprintf_directive_n" in
*yes)
! # vsnprintf exists and is already POSIX
! # compliant.
! gl_cv_func_vsnprintf_posix=yes
;;
esac
;;
--- 23,45 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! case "$gl_cv_func_snprintf_truncation_c99" in
*yes)
! case "$gl_cv_func_snprintf_retval_c99" in
*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
;;
***************
*** 52,57 ****
--- 57,63 ----
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
*** m4/vsprintf-posix.m4 26 Mar 2007 02:15:46 -0000 1.3
--- m4/vsprintf-posix.m4 11 Apr 2007 23:34:20 -0000
***************
*** 1,4 ****
! # vsprintf-posix.m4 serial 2
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,
--- 1,4 ----
! # 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,
***************
*** 9,14 ****
--- 9,15 ----
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
***************
*** 16,27 ****
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
*yes)
! # vsprintf exists and is already POSIX compliant.
! gl_cv_func_vsprintf_posix=yes
;;
esac
;;
--- 17,32 ----
*yes)
case "$gl_cv_func_printf_directive_a" in
*yes)
! case "$gl_cv_func_printf_directive_f" in
*yes)
! case "$gl_cv_func_printf_directive_n" in
*yes)
! case "$gl_cv_func_printf_positions" in
! *yes)
! # vsprintf exists and is already POSIX compliant.
! gl_cv_func_vsprintf_posix=yes
! ;;
! esac
;;
esac
;;
***************
*** 32,37 ****
--- 37,43 ----
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