commit 63ab7ea86d12ff87f311e9a59dffdc4f1d47ff33
Author: Herbert Xu <[email protected]>
Date: Fri Sep 26 22:16:26 2014 +0800
[MAN] Change characters for printf precision to bytes
On Sun, Mar 09, 2014 at 11:11:43AM +0000, Jeroen van Dijke wrote:
>
> There seems to be a bug in the dash man page, at least in 0.5.7. It reads:
>
> Precision:
> An optional period, `.', followed by an optional
digit string giving a precision which specifies the number of digits to appear
after the decimal point, for e and f formats, or the maximum number of
*characters* to be printed from a string (b and s for-
> mats); if the digit string is missing, the precision
is treated as zero;
>
> dash behaves cuts to the number of bytes
>
> $ length=10; printf "%.${length}s\n" "eeeeeeeeeeeeeeeeeeeeeeeee"
> eeeeeeeeee
> $ length=10; printf "%.${length}s\n" "ëëëëëëëëëëëëëëëëëëëëëëëëë”
> ëëëëë
>
>
> The POSIX specification (2008) says:
>
> precision Gives the minimum number of digits to appear for the d, o, i,
u, x, or X conversion specifiers (the field is padded with leading zeros), the
number of digits to appear after the radix character for the e and f conversion
specifiers, the maximum number of significant digits for the g conversion
specifier; or the maximum number of *bytes* to be written from a string in the
s conversion specifier. The precision shall take the form of a ( '.' ) followed
by a decimal digit string; a null digit string is treated as zero.
>
> So it seems to me that “characters” should be changed to “bytes”.
Indeed and this patch makes that change.
Signed-off-by: Herbert Xu <[email protected]>
diff --git a/ChangeLog b/ChangeLog
index 7b67c0c..6f27fd7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
* Small optimisation of command -pv change.
* Set command -p path to /usr/sbin:/usr/bin:/sbin:/bin.
+ * Change "characters" for printf precision to "bytes".
2014-09-26 Harald van Dijk <[email protected]>
diff --git a/src/dash.1 b/src/dash.1
index 6241a61..6ceb16a 100644
--- a/src/dash.1
+++ b/src/dash.1
@@ -1670,7 +1670,7 @@ for
.Cm e
and
.Cm f
-formats, or the maximum number of characters to be printed
+formats, or the maximum number of bytes to be printed
from a string
.Sm off
.Pf ( Cm b
@@ -1758,7 +1758,7 @@ is printed.
.It Cm s
Characters from the string
.Ar argument
-are printed until the end is reached or until the number of characters
+are printed until the end is reached or until the number of bytes
indicated by the precision specification is reached; if the
precision is omitted, all characters in the string are printed.
.It Cm \&%
Thanks,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html