printf.3: Document %#m as strerrorname_np(errno)

Message ID 20211222181539.3262-1-alx.manpages@gmail.com
State Not applicable
Headers
Series printf.3: Document %#m as strerrorname_np(errno) |

Checks

Context Check Description
dj/TryBot-apply_patch fail Patch failed to apply to master at the time it was sent
dj/TryBot-32bit fail Patch series failed to apply

Commit Message

Alejandro Colomar Dec. 22, 2021, 6:15 p.m. UTC
  Reported-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Cc: libc-alpha@sourceware.org
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
---

Hi Adhemerval and Michael,

First of all, happy new solar year! :)

I added documentation for "%#m".  Could you confirm I got the
glibc version correct, and also have a look at the changes?

Thanks for the report!

Cheers,
Alex

 man3/printf.3 | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
  

Comments

Adhemerval Zanella Netto Dec. 22, 2021, 6:58 p.m. UTC | #1
On 22/12/2021 15:15, Alejandro Colomar wrote:
> Reported-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> Cc: libc-alpha@sourceware.org
> Cc: Florian Weimer <fweimer@redhat.com>
> Cc: Michael Kerrisk <mtk.manpages@gmail.com>
> ---
> 
> Hi Adhemerval and Michael,
> 
> First of all, happy new solar year! :)
> 
> I added documentation for "%#m".  Could you confirm I got the
> glibc version correct, and also have a look at the changes?
> 
> Thanks for the report!
> 
> Cheers,
> Alex
> 
>  man3/printf.3 | 23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/man3/printf.3 b/man3/printf.3
> index 4fa1f11f3..1e2bac4df 100644
> --- a/man3/printf.3
> +++ b/man3/printf.3
> @@ -301,6 +301,17 @@ and
>  .B G
>  conversions, trailing zeros are not removed from the result as they would
>  otherwise be.
> +For
> +.BR m ,
> +if
> +.I errno
> +contains a valid error code,
> +the output of
> +.I strerrorname_np(errno)
> +is printed;
> +otherwise, the value stored in
> +.I errno
> +is printed as a decimal number.
>  For other conversions, the result is undefined.
>  .TP
>  .B \&0
> @@ -853,7 +864,10 @@ any flags, a field width, or a precision.
>  .B m
>  (Glibc extension; supported by uClibc and musl.)
>  Print output of
> -.IR strerror(errno) .
> +.I strerror(errno)
> +(or
> +.I strerrorname_np(errno)
> +in the alternate form).
>  No argument is required.
>  .TP
>  .B %

Maybe add that strerrorname_np is only support on glibc, since on the same
section it states that 'm' is a Glibc extension supported by uClibc and
musl.

The rest look ok, thanks.

> @@ -974,6 +988,13 @@ and conversion characters \fBa\fP and \fBA\fP.
>  .PP
>  glibc 2.2 adds the conversion character \fBF\fP with C99 semantics,
>  and the flag character \fBI\fP.
> +.PP
> +glibc 2.35 gives a meaning to the alternate form
> +.RB ( # )
> +of the
> +.B m
> +conversion specifier, that is
> +.IR %#m .
>  .SH NOTES
>  Some programs imprudently rely on code such as the following
>  .PP
  
Alejandro Colomar Dec. 22, 2021, 7:03 p.m. UTC | #2
On 12/22/21 19:58, Adhemerval Zanella wrote:
>> @@ -853,7 +864,10 @@ any flags, a field width, or a precision.
>>   .B m
>>   (Glibc extension; supported by uClibc and musl.)
>>   Print output of
>> -.IR strerror(errno) .
>> +.I strerror(errno)
>> +(or
>> +.I strerrorname_np(errno)
>> +in the alternate form).
>>   No argument is required.
>>   .TP
>>   .B %
> 
> Maybe add that strerrorname_np is only support on glibc, since on the same
> section it states that 'm' is a Glibc extension supported by uClibc and
> musl.

This is the main documentation for %m in the man pages, and it differs 
from the printf(3) CONFORMING TO (C89 and POSIX.1-2001).  However, 
there's only a mention to strerrorname_np(3), whose main (man-pages) 
documentation is in strerror(3), and there it's already noted that it's 
a glibc extension, so I think that's enough.

> 
> The rest look ok, thanks.

Thank you :)

Cheers,
Alex
  

Patch

diff --git a/man3/printf.3 b/man3/printf.3
index 4fa1f11f3..1e2bac4df 100644
--- a/man3/printf.3
+++ b/man3/printf.3
@@ -301,6 +301,17 @@  and
 .B G
 conversions, trailing zeros are not removed from the result as they would
 otherwise be.
+For
+.BR m ,
+if
+.I errno
+contains a valid error code,
+the output of
+.I strerrorname_np(errno)
+is printed;
+otherwise, the value stored in
+.I errno
+is printed as a decimal number.
 For other conversions, the result is undefined.
 .TP
 .B \&0
@@ -853,7 +864,10 @@  any flags, a field width, or a precision.
 .B m
 (Glibc extension; supported by uClibc and musl.)
 Print output of
-.IR strerror(errno) .
+.I strerror(errno)
+(or
+.I strerrorname_np(errno)
+in the alternate form).
 No argument is required.
 .TP
 .B %
@@ -974,6 +988,13 @@  and conversion characters \fBa\fP and \fBA\fP.
 .PP
 glibc 2.2 adds the conversion character \fBF\fP with C99 semantics,
 and the flag character \fBI\fP.
+.PP
+glibc 2.35 gives a meaning to the alternate form
+.RB ( # )
+of the
+.B m
+conversion specifier, that is
+.IR %#m .
 .SH NOTES
 Some programs imprudently rely on code such as the following
 .PP