Has bash ever had a change before that would break valid scripts? Could the printf format change be settable by a variable or by an option like the -e/-E in echo?
Is it necessary for bash printf to match C printf? I suppose that it is already decided. Could the bash printf implementation warn if the new %b is passed something that doesn't look like a numeric string? Does shellcheck track variables well enough to warn if the new %b is passed something that doesn't look like a numeric string? Regards, William ________________________________ From: [email protected] <[email protected]> on behalf of Chet Ramey <[email protected]> Sent: Tuesday, September 5, 2023 4:44 PM To: Dragan Simic <[email protected]> Cc: [email protected] <[email protected]>; enh <[email protected]>; Eric Blake <[email protected]>; Rob Landley <[email protected]>; [email protected] <[email protected]>; [email protected] <[email protected]> Subject: Re: [PATCH] printf: add %#s alias to %b 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 <[email protected]> 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. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/
