* [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments
@ 2022-12-15 0:25 наб
2022-12-15 0:25 ` [PATCH v3 2/2] man: printf: in 'X, X is a byte under dash наб
2023-01-05 9:45 ` [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments Herbert Xu
0 siblings, 2 replies; 4+ messages in thread
From: наб @ 2022-12-15 0:25 UTC (permalink / raw)
To: dash
[-- Attachment #1: Type: text/plain, Size: 2075 bytes --]
The current wording says that given
printf a b c d
a is the format, c and d are processed as noted,
but b is unspecified
---
Resending my patchset from August
src/dash.1 | 29 +++++++++++++----------------
1 file changed, 13 insertions(+), 16 deletions(-)
diff --git a/src/dash.1 b/src/dash.1
index ff02237..310f34e 100644
--- a/src/dash.1
+++ b/src/dash.1
@@ -1528,30 +1528,26 @@ With the
option specified the output will be formatted suitably for non-interactive use.
.\".Pp
.It Xo printf Ar format
-.Op Ar arguments ...
+.Oo Ar value Oc Ns ...
.Xc
.Ic printf
-formats and prints its arguments, after the first, under control
-of the
-.Ar format .
-The
-.Ar format
-is a character string which contains three types of objects: plain characters,
+formats and prints its arguments according to
+.Ar format ,
+a character string which contains three types of objects: plain characters,
which are simply copied to standard output, character escape sequences which
are converted and copied to the standard output, and format specifications,
each of which causes printing of the next successive
-.Ar argument .
+.Ar value .
.Pp
-The
-.Ar arguments
-after the first are treated as strings if the corresponding format is
+Each
+.Ar value
+is treated as a string if the corresponding format specification is
either
.Cm b ,
-.Cm c
+.Cm c ,
or
.Cm s ;
-otherwise it is evaluated as a C constant, with the following extensions:
-.Pp
+otherwise it is evaluated as a C constant, with the following additions:
.Bl -bullet -offset indent -compact
.It
A leading plus or minus sign is allowed.
@@ -1561,8 +1557,9 @@ If the leading character is a single or double quote, the value is the
code of the next character.
.El
.Pp
-The format string is reused as often as necessary to satisfy the
-.Ar arguments .
+The format string is reused as often as necessary until all
+.Ar value Ns s
+are consumed.
Any extra format specifications are evaluated with zero or the null
string.
.Pp
--
2.30.2
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] man: printf: in 'X, X is a byte under dash
2022-12-15 0:25 [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments наб
@ 2022-12-15 0:25 ` наб
2022-12-16 19:16 ` Tom Schwindl
2023-01-05 9:45 ` [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments Herbert Xu
1 sibling, 1 reply; 4+ messages in thread
From: наб @ 2022-12-15 0:25 UTC (permalink / raw)
To: dash
[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]
Multiple issues:
* the encoding is not always ASCII
* what ASCII code is assigned to я
* dash isn't internationalised
(this is nonconformant but out of scope),
and uses the next /byte/; in a UTF-8 locale:
$ printf %d\\n \'ą
196
$ printf %d\\n \'я
196
this is in contrast to POSIX (and bash), which says:
> If the leading character is a single-quote or double-quote,
> the value shall be the numeric value in the underlying codeset
> of the character following the single-quote or double-quote.
(i.e. mbrtowc(&val, argv[n], ...))
---
src/dash.1 | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/dash.1 b/src/dash.1
index 310f34e..38cf020 100644
--- a/src/dash.1
+++ b/src/dash.1
@@ -1552,9 +1552,7 @@ otherwise it is evaluated as a C constant, with the following additions:
.It
A leading plus or minus sign is allowed.
.It
-If the leading character is a single or double quote, the value is the
-.Tn ASCII
-code of the next character.
+If the leading character is a single or double quote, the value of the next byte.
.El
.Pp
The format string is reused as often as necessary until all
--
2.30.2
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v3 2/2] man: printf: in 'X, X is a byte under dash
2022-12-15 0:25 ` [PATCH v3 2/2] man: printf: in 'X, X is a byte under dash наб
@ 2022-12-16 19:16 ` Tom Schwindl
0 siblings, 0 replies; 4+ messages in thread
From: Tom Schwindl @ 2022-12-16 19:16 UTC (permalink / raw)
To: dash
On Thu Dec 15, 2022 at 1:25 AM CET, наб wrote:
> Multiple issues:
> * the encoding is not always ASCII
> * what ASCII code is assigned to я
> * dash isn't internationalised
> (this is nonconformant but out of scope),
> and uses the next /byte/; in a UTF-8 locale:
> $ printf %d\\n \'ą
> 196
> $ printf %d\\n \'я
> 196
> this is in contrast to POSIX (and bash), which says:
> > If the leading character is a single-quote or double-quote,
> > the value shall be the numeric value in the underlying codeset
> > of the character following the single-quote or double-quote.
> (i.e. mbrtowc(&val, argv[n], ...))
> ---
> src/dash.1 | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/src/dash.1 b/src/dash.1
> index 310f34e..38cf020 100644
> --- a/src/dash.1
> +++ b/src/dash.1
> @@ -1552,9 +1552,7 @@ otherwise it is evaluated as a C constant, with the following additions:
> .It
> A leading plus or minus sign is allowed.
> .It
> -If the leading character is a single or double quote, the value is the
> -.Tn ASCII
> -code of the next character.
> +If the leading character is a single or double quote, the value of the next byte.
s/of/is/
sounds better to me.
--
Best Regards,
Tom Schwindl
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments
2022-12-15 0:25 [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments наб
2022-12-15 0:25 ` [PATCH v3 2/2] man: printf: in 'X, X is a byte under dash наб
@ 2023-01-05 9:45 ` Herbert Xu
1 sibling, 0 replies; 4+ messages in thread
From: Herbert Xu @ 2023-01-05 9:45 UTC (permalink / raw)
To: наб; +Cc: dash
наб <nabijaczleweli@nabijaczleweli.xyz> wrote:
> [-- text/plain, encoding quoted-printable, charset: us-ascii, 75 lines --]
>
> The current wording says that given
> printf a b c d
> a is the format, c and d are processed as noted,
> but b is unspecified
> ---
> Resending my patchset from August
>
> src/dash.1 | 29 +++++++++++++----------------
> 1 file changed, 13 insertions(+), 16 deletions(-)
All applied. Thanks.
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-01-05 9:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-15 0:25 [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments наб
2022-12-15 0:25 ` [PATCH v3 2/2] man: printf: in 'X, X is a byte under dash наб
2022-12-16 19:16 ` Tom Schwindl
2023-01-05 9:45 ` [PATCH v3 1/2] man: printf: reword to avoid confusion v/v Ar argument[s]/arguments Herbert Xu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox