Hi! On Fri, Jun 28, 2024 at 11:07:02PM GMT, наб wrote: > As it stands, this is worse than useless > (defined as: I had to test it explicitly against strfmon() and look at > POSIX myself to make sure the manual wasn't lying to me > https://101010.pl/@nabijaczleweli/112694726416515899): > > No-one cares if some compiler doesn't understand something from 1994. > (Careful readers will note it's been 30 years.) > > "SUSv2 doesn't have this, SUSv3 does" is reefer-induced: > this figures in SUSv1 (XPG Issue 4 Version 2) > and the CHANGE HISTORY clearly notes ' was added in i4, not i4v2. > > It's important that these aren't actually grouped by the thousand, > but, instead, by "what the locale says". > > Each locale has two groupings: monetary and non-monetary, > and it's paramount to indicate which is which > (hi_IN is 3,2... monetary and 3... non-monetary; > mjw_IN is 3,2... both). > > It waxes poetic for way too long about "how to set a locale". > > Also replace "The Single UNIX Specification adds" with "POSIX adds". > The SUS is, on a good day, a profile of POSIX you pay 300$ for. > Maybe you could swing this back when it was an "extension" > (so, only required in the SUS profile) > but it's just shaded CX ("this is intentionally different from C") > in Issue 8. It's really irrelevant here. > > Also add this to HISTORY > (and call it something sane there; > the Proper nomenclature is absolutely meaningless to normal people). > The most important bit for every HISTORY reader is the 1994 date. > > Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> > --- > > Hmmm, struct lconv is documented in lconv(3type), but that page is > > missing details that are available in locale(7). Maybe we should move > > some text from there to lconv(3type). > Nothing links to lconv(3type) so I didn't even know it existed. > Even then, it's a stub that's actively worse than locale(7) > (itself not that great). struct lconv is documented in locale(7). Yeah, I mean, maybe we could move that documentation from locale(7) to lconv(3type), and transform that stub into something good. And then link to it. > > > +Issue 4 of the X/Open Portability Guide (SUSv1, 1994) adds \[aq]. > > .IR \[aq] . > BR actually for compatibility with the rest D'oh; you're right. > (in the list and below in HISTORY). Patch applied. Thanks! Cheers, Alex > > man/man3/printf.3 | 33 +++++++++++++++++++-------------- > 1 file changed, 19 insertions(+), 14 deletions(-) > > diff --git a/man/man3/printf.3 b/man/man3/printf.3 > index 54a0339..771e295 100644 > --- a/man/man3/printf.3 > +++ b/man/man3/printf.3 > @@ -361,7 +361,7 @@ .SS Flag characters > overrides a space if both are used. > .P > The five flag characters above are defined in the C99 standard. > -The Single UNIX Specification specifies one further flag character. > +POSIX specifies one further flag character. > .TP > .B \[aq] > For decimal conversion > @@ -373,19 +373,21 @@ .SS Flag characters > .BR g , > .BR G ) > the output is to be grouped with thousands' grouping characters > -if the locale information indicates any. > -(See > -.BR setlocale (3).) > -Note that many versions of > -.BR gcc (1) > -cannot parse this option and will issue a warning. > -(SUSv2 did not > -include \fI%\[aq]F\fP, but SUSv3 added it.) > -Note also that the default locale of a C program is "C" > -whose locale information indicates no thousands' grouping character. > -Therefore, without a prior call to > -.BR setlocale (3), > -no thousands' grouping characters will be printed. > +as a > +.I non-monetary > +quantity. > +Misleadingly, this isn't necessarily every thousand: > +for example Karbi ("mjw_IN"), groups its digits into 3 once, then 2 repeatedly. > +Compare > +.BR locale (7) > +.I grouping > +and > +.IR thousands_sep , > +contrast with > +.IR mon_grouping / mon_thousands_sep > +and > +.BR strfmon (3). > +This is a no-op in the default "C" locale. > .P > glibc 2.2 adds one further flag character. > .TP > @@ -980,6 +982,9 @@ .SH HISTORY > .BR vdprintf () > GNU, POSIX.1-2008. > .P > +Issue 4 of the X/Open Portability Guide (SUSv1, 1994) adds > +.BR \[aq] . > +.P > .\" Linux libc4 knows about the five C standard flags. > .\" It knows about the length modifiers \fBh\fP, \fBl\fP, \fBL\fP, > .\" and the conversions > -- > 2.39.2 -- <https://www.alejandro-colomar.es/>
Attachment:
signature.asc
Description: PGP signature