bug#81442: Documentation Deficiency: printf man page lacks definition of format specifiers

Pádraig Brady <[email protected]> Wed, 22 Jul 2026 16:09:45 +0100
Newsgroups gmane.comp.gnu.core-utils.bugs
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------0GA8ToayCz9Lg0AxWdMEz5Re
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 22/07/2026 15:45, Dmitri Seletski wrote:
> Fantastic!
> Thanks!
> 
> On 22/07/2026 13:05, Pádraig Brady wrote:
>>> On 20/07/2026 17:10, Pádraig Brady wrote:
>>>> The "see also" has a reference to printf(3),
>>>> which you can drill down to directly depending on you man page viewer,
>>>> or view directly with `man 3 printf`.
>>>>
>>>> But I agree we should show that reference directly in the text.
>>>>
>>>> We need to be careful not to repeat too much info from the (large)
>>>> printf(3) page,
>>>> but I also agree that we could provide a little more info here.
>>>>
>>>> I'll look at:
>>>>
>>>> Using our recently improved man table formatting to present a
>>>> conversion summary.
>>>> Including at least mentioning that flags are supported.
>>>> Also an EXAMPLES section would be useful here I think to show
>>>> supported combinations.
>> I'll apply the attached later, which adds:
>>
>>    CONVERSION   Shell format example       Output
>>
>>    %s          '[%10s]' 'left pad'         [  left pad]
>>    %s          '[%-10s]' 'right pad'       [right pad ]
>>    %c %s       '%c %.3s' un unibyte        u uni
>>    %d %i       "%'d ;%i04i" 1234 '-1'      1,234 ;-001
>>    %o          '%#o' $((2#110100100))      0644
>>    %u          '%u' 0xFFFFFFFF             4294967295
>>    %x          '0x%08x' 11259375           0x00abcdef
>>    %a %f       '%1$a %1$f' 0.0009765625    0x8p-13 0.000977
>>    %e %f       '%1$e %1$f' 123.45678       1.234568e+02 123.456789
>>    %g          '%1$g %1$.2g' 1.2345678e3   1234.57 1.2e+03
>>    %b          '%b' 'food\bbar'            foobar
>>    %q          '%q ' 'a' ';b' $'c\n'       a ';b' 'c'$'\n'
I added blank lines to group the above into,
string, integer, float, and other groups.

I also pushed the attached to improve the
printf reference tables in the info docs.

cheers,
Padraig
--------------0GA8ToayCz9Lg0AxWdMEz5Re
Content-Type: text/x-patch; charset=UTF-8; name="info-printf-tables.patch"
Content-Disposition: attachment; filename="info-printf-tables.patch"
Content-Transfer-Encoding: base64

RnJvbSBkYzllZTUyNTM2YzBhZjQzNWMyN2MxOTNlNDI5ZDM4MGU1YzcwNDFmIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/
PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogV2VkLCAyMiBKdWwgMjAyNiAxNTo0OToxMSAr
MDEwMApTdWJqZWN0OiBbUEFUQ0hdIGRvYzogZWNobyxwcmludGY6IGRldGFpbCBleGFjdGx5
IHdoaWNoIGVzY2FwZXMgYXJlIHN1cHBvcnRlZAoKKiBkb2MvY29yZXV0aWxzLnRleGkgKGVj
aG8gaW52b2NhdGlvbik6IFBhcmFtZXRlcml6ZSB0aGUgZXNjYXBlIGxpc3QuCihwcmludGYg
aW52b2NhdGlvbik6IFJlbW92ZSB0aGUgQyBlc2NhcGUgcmVmZXJlbmNlIGFzIGl0IG1lbnRp
b25zClwnIHdoaWNoIHdlIGRvbid0IHN1cHBvcnQsIGFuZCBkb2Vzbid0IG1lbnRpb24gXGUg
d2hpY2ggd2UgZG8gc3VwcG9ydAooYW5kIEdDQyBhbHNvIGRvZXMpLiAgSW5zdGVhZCBkaXJl
Y3RseSBwcmVzZW50IHRoZSBlc2NhcGUgbGlzdAphcyBkb25lIGZvciB0aGUgZWNobyBjb21t
YW5kLCBhZGp1c3RlZCBhY2NvcmRpbmdseS4KLS0tCiBkb2MvY29yZXV0aWxzLnRleGkgfCA1
NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZp
bGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvZG9jL2NvcmV1dGlscy50ZXhpIGIvZG9jL2NvcmV1dGlscy50ZXhpCmluZGV4IGU5
MGZiM2UxNC4uMjc2OTBhYTkzIDEwMDY0NAotLS0gYS9kb2MvY29yZXV0aWxzLnRleGkKKysr
IGIvZG9jL2NvcmV1dGlscy50ZXhpCkBAIC0xMjg3MywzOSArMTI4NzMsNTQgQEAgRG8gbm90
IG91dHB1dCB0aGUgdHJhaWxpbmcgbmV3bGluZS4KIEVuYWJsZSBpbnRlcnByZXRhdGlvbiBv
ZiB0aGUgZm9sbG93aW5nIGJhY2tzbGFzaC1lc2NhcGVkIGNoYXJhY3RlcnMgaW4KIGVhY2gg
QHZhcntzdHJpbmd9OgogCitAbWFjcm8gZXNjYXBlU2VxdWVuY2VzCiBAdGFibGUgQHNhbXAK
LUBpdGVtIFxhCitAaXRlbSBcXFxcCitiYWNrc2xhc2gKK0BpZnNldCBQUklOVEZfQ09NTUFO
RAorQGl0ZW0gXFwiCitkb3VibGUgcXVvdGUKK0BlbmQgaWZzZXQKK0BpdGVtIFxcYQogYWxl
cnQgKGJlbGwpCi1AaXRlbSBcYgorQGl0ZW0gXFxiCiBiYWNrc3BhY2UKLUBpdGVtIFxjCitA
aXRlbSBcXGMKIHByb2R1Y2Ugbm8gZnVydGhlciBvdXRwdXQKLUBpdGVtIFxlCitAaXRlbSBc
XGUKIGVzY2FwZQotQGl0ZW0gXGYKK0BpdGVtIFxcZgogZm9ybSBmZWVkCi1AaXRlbSBcbgor
QGl0ZW0gXFxuCiBuZXdsaW5lCi1AaXRlbSBccgorQGl0ZW0gXFxyCiBjYXJyaWFnZSByZXR1
cm4KLUBpdGVtIFx0CitAaXRlbSBcXHQKIGhvcml6b250YWwgdGFiCi1AaXRlbSBcdgorQGl0
ZW0gXFx2CiB2ZXJ0aWNhbCB0YWIKLUBpdGVtIFxcCi1iYWNrc2xhc2gKLUBpdGVtIFwwQHZh
cntubm59CitAaWZjbGVhciBQUklOVEZfQ09NTUFORAorQGl0ZW0gXFwwQHZhcntubm59CiB0
aGUgZWlnaHQtYml0IHZhbHVlIHRoYXQgaXMgdGhlIG9jdGFsIG51bWJlciBAdmFye25ubn0K
ICh6ZXJvIHRvIHRocmVlIG9jdGFsIGRpZ2l0cyksIGlmIEB2YXJ7bm5ufSBpcwogYSBuaW5l
LWJpdCB2YWx1ZSwgdGhlIG5pbnRoIGJpdCBpcyBpZ25vcmVkCi1AaXRlbSBcQHZhcntubm59
CitAZW5kIGlmY2xlYXIKK0BpdGVtIFxcQHZhcntubm59CiB0aGUgZWlnaHQtYml0IHZhbHVl
IHRoYXQgaXMgdGhlIG9jdGFsIG51bWJlciBAdmFye25ubn0KIChvbmUgdG8gdGhyZWUgb2N0
YWwgZGlnaXRzKSwgaWYgQHZhcntubm59IGlzCiBhIG5pbmUtYml0IHZhbHVlLCB0aGUgbmlu
dGggYml0IGlzIGlnbm9yZWQKLUBpdGVtIFx4QHZhcntoaH0KK0BpdGVtIFxceEB2YXJ7aGh9
CiB0aGUgZWlnaHQtYml0IHZhbHVlIHRoYXQgaXMgdGhlIGhleGFkZWNpbWFsIG51bWJlciBA
dmFye2hofQogKG9uZSBvciB0d28gaGV4YWRlY2ltYWwgZGlnaXRzKQorQGlmc2V0IFBSSU5U
Rl9DT01NQU5ECitAaXRlbSBcXHVAdmFye2hoaGh9CitVbmljb2RlIChJU08vSUVDIDEwNjQ2
KSBjaGFyYWN0ZXIgd2l0aCBoZXggdmFsdWUgSEhISCAoNCBkaWdpdHMpCitAaXRlbSBcXFVA
dmFye2hoaGhoaGhofQorVW5pY29kZSBjaGFyYWN0ZXIgd2l0aCBoZXggdmFsdWUgSEhISEhI
SEggKDggZGlnaXRzKQorQGVuZCBpZnNldAogQGVuZCB0YWJsZQorQGVuZCBtYWNybworQGVz
Y2FwZVNlcXVlbmNlcwogCiBAb3B0SXRlbXtlY2hvLC1FLH0KIEBjaW5kZXggYmFja3NsYXNo
IGVzY2FwZXMKQEAgLTEyOTUwLDEwICsxMjk2NSwxNiBAQCBpbiBhIHdheSB0aGF0IGlzIG1v
c3RseSBzaW1pbGFyIHRvIHRoZSBDIEBzYW1we3ByaW50Zn0gZnVuY3Rpb24sCiBhbmQgQyBs
YW5ndWFnZSBlc2NhcGUgc2VxdWVuY2UgcHJvY2Vzc2luZy4KIEB4cmVme091dHB1dCBDb252
ZXJzaW9uIFN5bnRheCwsIEBjb21tYW5ke3ByaW50Zn0gZm9ybWF0IGRpcmVjdGl2ZXMsCiBs
aWJjLCBUaGUgR05VIEMgTGlicmFyeSBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGRldGFpbHMu
Ci1TZWUgYWxzbyBAdXJlZntodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jL2xhbmd1
YWdlL2VzY2FwZSwKLUM5OSBzdHJpbmcgZXNjYXBlczp9LgogCi1FeGFtcGxlcyBvZiBzdXBw
b3J0ZWQgY29udmVyc2lvbiBzcGVjaWZpZXJzIGFuZCBmbGFncyBhcmU6CitAbWF5Q29uZmxp
Y3RXaXRoU2hlbGxCdWlsdElue3ByaW50Zn0KKworU3VwcG9ydGVkIGVzY2FwZSBzZXF1ZW5j
ZXMgYXJlOgorCitAc2V0IFBSSU5URl9DT01NQU5ECitAZXNjYXBlU2VxdWVuY2VzCitAY2xl
YXIgUFJJTlRGX0NPTU1BTkQKKworU3VwcG9ydGVkIGNvbnZlcnNpb24gc3BlY2lmaWVycyB3
aXRoIGV4YW1wbGVzIGFyZToKIAogQGV4YW1wbGUKIENPTlZFUlNJT04gIFNoZWxsIGZvcm1h
dCBleGFtcGxlICAgICAgICBPdXRwdXQKQEAgLTEyOTc1LDggKzEyOTk2LDYgQEAgQ09OVkVS
U0lPTiAgU2hlbGwgZm9ybWF0IGV4YW1wbGUgICAgICAgIE91dHB1dAogJXEgICAgICAgICAg
JyVxICcgJ2EnICc7YicgJCdjXG4nICAgICAgIGEgJztiJyAnYyckJ1xuJwogQGVuZCBleGFt
cGxlCiAKLUBtYXlDb25mbGljdFdpdGhTaGVsbEJ1aWx0SW57cHJpbnRmfQotCiBUaGUgZGlm
ZmVyZW5jZXMgZnJvbSB0aGUgQyBAc2FtcHtwcmludGZ9IGZ1bmN0aW9uIGFyZToKIAogQGl0
ZW1pemUgQGJ1bGxldAotLSAKMi41NS4wCgo=

--------------0GA8ToayCz9Lg0AxWdMEz5Re--