To follow up, i am trying to reproduce specifically with some native C code on alpine but am unable to, I am going to switch gears and attempt to isolate when compiled with emscripten, and will log a bug on that end. On Tue, Dec 14, 2021 at 11:50 AM Rich Felker wrote: > On Tue, Dec 14, 2021 at 11:10:23AM -0500, Andrew Snyder wrote: > > Sorry accidentally sent before attaching this > > > > ~# docker run -it --rm alpine /bin/ash > > / # /lib/libc.musl-x86_64.so.1 > > musl libc (x86_64) > > Version 1.2.2 > > Dynamic Program Loader > > Usage: /lib/libc.musl-x86_64.so.1 [options] [--] pathname [args] > > / # printf %0*i 2 1 > > ash: %0*i: invalid format > > This is the busybox printf(1) command not the printf(3) C function. > > Rich > > > > On Tue, Dec 14, 2021 at 11:09 AM Andrew Snyder > wrote: > > > > > I get an error from printf i assume that underlying printf function is > > > returning error code. In my native implementation i get incorrect > results > > > and really depends on the parameters i didn't dig into too deep to see > what > > > the pattern was > > > > > > > > > On Tue, Dec 14, 2021 at 11:03 AM Szabolcs Nagy wrote: > > > > > >> * Andrew Snyder [2021-12-14 10:22:42 -0500]: > > >> > I would like to be cc'd on the replies > > >> > > > >> > Looks like a bug in the musl printf functionality > > >> > > > >> > When using variable width format string and specifying a padding > musl > > >> fails > > >> > to format properly. > > >> > > > >> > I am using musl indirectly through an emscripten compile of a native > > >> > library. > > >> > > > >> > Consider the following repro steps using alpine docker image. > Correct > > >> > results exist when using ubuntu image > > >> > > > >> > # Correct expected ' 1' > > >> > docker run -it --rm alpine printf %2i 1 > > >> > # Correct expected ' 1' > > >> > docker run -it --rm alpine printf %*i 2 1 > > >> > # Correct expected '01' > > >> > docker run -it --rm alpine printf %02i 1 > > >> > # errors, Expected '01' > > >> > docker run -it --rm alpine printf %0*i 2 1 > > >> > > >> i get the expected result on alpine > > >> > > >> $ printf %0*i 2 1 > > >> 01 > > >> > > >> what do you get? > > >> > > >> >