Mercurial > gnulib
changeset 39983:db717b5315cf
docs: mention printf %m considerations
gcc -Wformat does NOT flag printf("%m") on a BSD system, even though
it prints only "m" instead of the desired GNU/Linux behavior of the
current errno value (you have to use -Wpedantic to flag it, but that's
a rather heavy hammer). Still, it's easy enough (even if verbose)
to write out strerror() usage directly, to the point that gnulib will
probably never provide a module to guarantee %m everywhere.
See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88270
* doc/glibc-functions/asprintf.texi (asprintf): Document that %m
is not portable, and is easy enough to work around.
* doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise.
* doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise.
* doc/glibc-functions/vasprintf.texi (vasprintf): Likewise.
* doc/posix-functions/dprintf.texi (dprintf): Likewise.
* doc/posix-functions/fprintf.texi (fprintf): Likewise.
* doc/posix-functions/fwprintf.texi (fwprintf): Likewise.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/snprintf.texi (snprintf): Likewise.
* doc/posix-functions/sprintf.texi (sprintf): Likewise.
* doc/posix-functions/swprintf.texi (swprintf): Likewise.
* doc/posix-functions/vdprintf.texi (vdprintf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
* doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
* doc/posix-functions/vsprintf.texi (vsprintf): Likewise.
* doc/posix-functions/vswprintf.texi (vswprintf): Likewise.
* doc/posix-functions/vwprintf.texi (vwprintf): Likewise.
* doc/posix-functions/wprintf.texi (wprintf): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Thu, 29 Nov 2018 13:33:28 -0600 |
parents | 4f5113a573fc |
children | 235f675aabb4 |
files | ChangeLog doc/glibc-functions/asprintf.texi doc/glibc-functions/obstack_printf.texi doc/glibc-functions/obstack_vprintf.texi doc/glibc-functions/vasprintf.texi doc/posix-functions/dprintf.texi doc/posix-functions/fprintf.texi doc/posix-functions/fwprintf.texi doc/posix-functions/printf.texi doc/posix-functions/snprintf.texi doc/posix-functions/sprintf.texi doc/posix-functions/swprintf.texi doc/posix-functions/vdprintf.texi doc/posix-functions/vfprintf.texi doc/posix-functions/vfwprintf.texi doc/posix-functions/vprintf.texi doc/posix-functions/vsnprintf.texi doc/posix-functions/vsprintf.texi doc/posix-functions/vswprintf.texi doc/posix-functions/vwprintf.texi doc/posix-functions/wprintf.texi |
diffstat | 21 files changed, 105 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Nov 29 08:26:00 2018 -0800 +++ b/ChangeLog Thu Nov 29 13:33:28 2018 -0600 @@ -1,3 +1,28 @@ +2018-11-29 Eric Blake <eblake@redhat.com> + + docs: mention printf %m considerations + * doc/glibc-functions/asprintf.texi (asprintf): Document that %m + is not portable, and is easy enough to work around. + * doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise. + * doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise. + * doc/glibc-functions/vasprintf.texi (vasprintf): Likewise. + * doc/posix-functions/dprintf.texi (dprintf): Likewise. + * doc/posix-functions/fprintf.texi (fprintf): Likewise. + * doc/posix-functions/fwprintf.texi (fwprintf): Likewise. + * doc/posix-functions/printf.texi (printf): Likewise. + * doc/posix-functions/snprintf.texi (snprintf): Likewise. + * doc/posix-functions/sprintf.texi (sprintf): Likewise. + * doc/posix-functions/swprintf.texi (swprintf): Likewise. + * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. + * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. + * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise. + * doc/posix-functions/vprintf.texi (vprintf): Likewise. + * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise. + * doc/posix-functions/vsprintf.texi (vsprintf): Likewise. + * doc/posix-functions/vswprintf.texi (vswprintf): Likewise. + * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. + * doc/posix-functions/wprintf.texi (wprintf): Likewise. + 2018-11-29 Akim Demaille <akim@lrde.epita.fr> bitset: rename ebitset/expandable.* as tbitset/table.*
--- a/doc/glibc-functions/asprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/glibc-functions/asprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -64,4 +64,8 @@ Portability problems not fixed by Gnulib: @itemize +@item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. @end itemize
--- a/doc/glibc-functions/obstack_printf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/glibc-functions/obstack_printf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -77,4 +77,8 @@ Portability problems not fixed by Gnulib: @itemize +@item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. @end itemize
--- a/doc/glibc-functions/obstack_vprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/glibc-functions/obstack_vprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -77,4 +77,8 @@ Portability problems not fixed by Gnulib: @itemize +@item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. @end itemize
--- a/doc/glibc-functions/vasprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/glibc-functions/vasprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -64,4 +64,8 @@ Portability problems not fixed by Gnulib: @itemize +@item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. @end itemize
--- a/doc/posix-functions/dprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/dprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -36,6 +36,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/fprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/fprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -91,6 +91,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/fwprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/fwprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -13,6 +13,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS. @item
--- a/doc/posix-functions/printf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/printf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -91,6 +91,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/snprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/snprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -99,6 +99,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/sprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/sprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -74,6 +74,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/swprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/swprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -13,6 +13,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS. @item
--- a/doc/posix-functions/vdprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vdprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -50,6 +50,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/vfprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vfprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -91,6 +91,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/vfwprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vfwprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -13,6 +13,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS. @item
--- a/doc/posix-functions/vprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -91,6 +91,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/vsnprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vsnprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -96,6 +96,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/vsprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vsprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -74,6 +74,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item Formatting noncanonical @samp{long double} numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86_64, IA-64 CPUs.
--- a/doc/posix-functions/vswprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vswprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -13,6 +13,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS. @item
--- a/doc/posix-functions/vwprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/vwprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -13,6 +13,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS, Cygwin 1.7.
--- a/doc/posix-functions/wprintf.texi Thu Nov 29 08:26:00 2018 -0800 +++ b/doc/posix-functions/wprintf.texi Thu Nov 29 13:33:28 2018 -0600 @@ -13,6 +13,10 @@ Portability problems not fixed by Gnulib: @itemize @item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@item This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Interix 3.5, BeOS.