coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] printf: add %#s alias to %b


From: enh
Subject: Re: [PATCH] printf: add %#s alias to %b
Date: Tue, 5 Sep 2023 16:35:25 -0700

On Tue, Sep 5, 2023 at 4:31 PM Rob Landley <rob@landley.net> wrote:
>
> On 9/5/23 15:44, Chet Ramey wrote:
> > On 9/5/23 4:32 PM, Dragan Simic wrote:
> >> On 2023-09-05 22:25, Chet Ramey wrote:
> >>> On 9/5/23 3:58 PM, enh wrote:
> >>>> On Fri, Sep 1, 2023 at 6:59 AM Chet Ramey <chet.ramey@case.edu> wrote:
> >>>
> >>>>> I think you'll find that, regardless of its origins, there are more
> >>>>> scripts
> >>>>> using the %b specifier than you think.
> >>>>
> >>>> i'd personally never heard of printf(1) %b before this thread, but
> >>>> debian code search agrees with you:
> >>>
> >>> It's a POSIX invention dating from at least 1991 (P1003.2-D11).
> >>>
> >>> The POSIX guidance to use it as a portable way to replace SysV echo has
> >>> dated from the same time. It's a pretty big lift to suddenly invalidate
> >>> all that prior art. ("POSIX giveth, and POSIX taketh away.").
> >>
> >> Are there any official explanations why is the invalidation actually
> >> happening now?
> >
> > https://lists.gnu.org/archive/html/bug-bash/2023-08/msg00112.html
> >
> > C23 is going to use %b to print binary literals.
>
> Upper case %B was taken?

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2612.pdf
"""
Ideally, the same would be done for an uppercase #B specifier for
binary numbers. However, §7.31.13 only reserves
lowercase letters for future library use; thus, an implementation
could have been using uppercase B for their own
extension already right now.

It is therefore proposed to suggest that an uppercase B format
specifier can either be used for printing binary
numbers, where the prefix in the alternate form becomes 0B, or it can
be handled in an implementation-defined
manner. That way, any existing implementation already using it would
not need to be changed. As a consequence,
portable code could not rely on #B printing a 0B prefix, but that
seems to be tolerable.
"""

> Rob
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]