On Mon, 7 Feb 2022 09:10:12 -0800
"Brian C. Lane" <b...@redhat.com> wrote:

> On Mon, Feb 07, 2022 at 08:52:33AM -0800, Brian C. Lane wrote:
> > On Sat, Feb 05, 2022 at 10:44:29AM +0000, Kerin Millar wrote:
> > > Hello,
> > > 
> > > The attached patch rectifies some test failures that were reported at 
> > > https://bugs.gentoo.org/774363. Whether it be a builtin of sh(1) or not, 
> > > POSIX does not require for the printf utility to support hexadecimal 
> > > notation.
> > > 
> > > -- 
> > > Kerin Millar
> > 
> > Thanks for the patch. I'll have to ponder this for a bit. So the issue
> > is showing up in Gentoo because it uses dash, right? The issue I have
> > with the change is that it then obscures what's being written. Everyone
> > knows what 0x55aa is :) I'd prefer a solution that continues to use hex
> > so that future users don't have to figure out what's going on.
> 
> Actually, on Fedora at least, printf comes from coreutils so the shell
> shouldn't matter at all. The tests are single quoted to prevent shell
> expansion, so maybe dash is using a builtin printf that's different?

$ bash -c 'type printf'
printf is a shell builtin

Yes, it's also a builtin in dash (it is rare these days for printf to ever be 
invoked in its capacity as a binary). As explained by my prior message, no 
implementation of the POSIX shell and utilities (XCU) is under any obligation 
to support GNU-specific features. Therein lies the rub. Octal sequences are 
guaranteed to work. The problem is a great many Linux developers only ever test 
things in bash, even where their shebangs purport to target sh.

-- 
Kerin Millar



Reply via email to