comparison doc/posix-functions/vprintf.texi @ 15591:2171e9d2231b

*printf: Add support for MSVC compiler. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): On MSVC, install a handler that handles the exception caused by the %n directive. When cross-compiling, guess no on native Windows. (gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): When snprintf is missing, emulate it through vsnprintf. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Update comment. * doc/posix-functions/dprintf.texi: Update documentation regarding MSVC 9. * doc/posix-functions/fprintf.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/vdprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/glibc-functions/asprintf.texi: Likewise. * doc/glibc-functions/obstack_printf.texi: Likewise. * doc/glibc-functions/obstack_vprintf.texi: Likewise. * doc/glibc-functions/vasprintf.texi: Likewise.
author Bruno Haible <bruno@clisp.org>
date Sat, 10 Sep 2011 21:18:08 +0200
parents fa0d7f167907
children ee328959515f
comparison
equal deleted inserted replaced
15590:6e6b07297b6d 15591:2171e9d2231b
9 Portability problems fixed by Gnulib module @code{vprintf-posix}: 9 Portability problems fixed by Gnulib module @code{vprintf-posix}:
10 @itemize 10 @itemize
11 @item 11 @item
12 This function does not support size specifiers as in C99 (@code{hh}, @code{ll}, 12 This function does not support size specifiers as in C99 (@code{hh}, @code{ll},
13 @code{j}, @code{t}, @code{z}) on some platforms: 13 @code{j}, @code{t}, @code{z}) on some platforms:
14 AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, BeOS. 14 AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
15 @item 15 @item
16 printf of @samp{long double} numbers is unsupported on some platforms: 16 printf of @samp{long double} numbers is unsupported on some platforms:
17 mingw, BeOS. 17 mingw, MSVC 9, BeOS.
18 @item 18 @item
19 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an 19 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
20 incorrect result on some platforms: 20 incorrect result on some platforms:
21 AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw. 21 AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw, MSVC 9.
22 @item 22 @item
23 This function does not support the @samp{a} and @samp{A} directives on some 23 This function does not support the @samp{a} and @samp{A} directives on some
24 platforms: 24 platforms:
25 glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, 25 glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
26 IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS. 26 IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
27 @item 27 @item
28 This function does not support the @samp{F} directive on some platforms: 28 This function does not support the @samp{F} directive on some platforms:
29 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, 29 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
30 Cygwin 1.5.x, mingw, BeOS. 30 Cygwin 1.5.x, mingw, MSVC 9, BeOS.
31 @item
32 This function does not support the @samp{n} directive on some platforms:
33 MSVC 9.
31 @item 34 @item
32 This function does not support the @samp{ls} directive on some platforms: 35 This function does not support the @samp{ls} directive on some platforms:
33 OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku. 36 OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
34 @item 37 @item
35 This function does not support precisions in the @samp{ls} directive correctly 38 This function does not support precisions in the @samp{ls} directive correctly
36 on some platforms: 39 on some platforms:
37 Solaris 11 2010-11. 40 Solaris 11 2010-11.
38 @item 41 @item
39 This function does not support format directives that access arguments in an 42 This function does not support format directives that access arguments in an
40 arbitrary order, such as @code{"%2$s"}, on some platforms: 43 arbitrary order, such as @code{"%2$s"}, on some platforms:
41 NetBSD 3.0, mingw, BeOS. 44 NetBSD 3.0, mingw, MSVC 9, BeOS.
42 @item 45 @item
43 This function doesn't support the @code{'} flag on some platforms: 46 This function doesn't support the @code{'} flag on some platforms:
44 NetBSD 3.0, Cygwin 1.5.24, mingw. 47 NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
45 @item 48 @item
46 This function behaves incorrectly when a @samp{-} flag and a negative width 49 This function behaves incorrectly when a @samp{-} flag and a negative width
47 are specified together, on some platforms: 50 are specified together, on some platforms:
48 HP-UX 10.20. 51 HP-UX 10.20.
49 @item 52 @item
50 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded 53 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
51 with zeroes) on some platforms: 54 with zeroes) on some platforms:
52 MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw. 55 MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, MSVC 9.
53 @item 56 @item
54 This function does not support precisions larger than 512 or 1024 in integer, 57 This function does not support precisions larger than 512 or 1024 in integer,
55 floating-point and pointer output on some platforms: 58 floating-point and pointer output on some platforms:
56 AIX 7.1, Solaris 10/x86, mingw, BeOS. 59 AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
57 @item 60 @item
58 This function mishandles large floating point precisions 61 This function mishandles large floating point precisions
59 (for example, formatting 1.0 with @samp{"%.511f"}) 62 (for example, formatting 1.0 with @samp{"%.511f"})
60 on some platforms: 63 on some platforms:
61 Solaris 10. 64 Solaris 10.
68 @itemize 71 @itemize
69 @item 72 @item
70 When writing to a non-blocking pipe whose buffer is full, this function fails 73 When writing to a non-blocking pipe whose buffer is full, this function fails
71 with @code{errno} being set to @code{ENOSPC} instead of @code{EAGAIN} on some 74 with @code{errno} being set to @code{ENOSPC} instead of @code{EAGAIN} on some
72 platforms: 75 platforms:
73 mingw. 76 mingw, MSVC 9.
74 @end itemize 77 @end itemize
75 78
76 Portability problems fixed by Gnulib module @code{stdio} or @code{vprintf-posix}, together with module @code{sigpipe}: 79 Portability problems fixed by Gnulib module @code{stdio} or @code{vprintf-posix}, together with module @code{sigpipe}:
77 @itemize 80 @itemize
78 @item 81 @item
79 When writing to a pipe with no readers, this function fails, instead of 82 When writing to a pipe with no readers, this function fails, instead of
80 obeying the current @code{SIGPIPE} handler, on some platforms: 83 obeying the current @code{SIGPIPE} handler, on some platforms:
81 mingw. 84 mingw, MSVC 9.
82 @end itemize 85 @end itemize
83 86
84 Portability problems not fixed by Gnulib: 87 Portability problems not fixed by Gnulib:
85 @itemize 88 @itemize
86 @item 89 @item