summary refs log tree commit diff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2014-09-26 22:16:26 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2014-09-26 22:27:20 +0800
commit012222e38cd0b48a3dabd10c9a3cf6b2c4c5befc (patch)
tree11d7a8dc02d9c01c19367f68416d7e1efa5e96f2
parent[JOBS] Fix off-by-one error for multiple of four job numbers (diff)
downloaddash-012222e38cd0b48a3dabd10c9a3cf6b2c4c5befc.tar.gz
dash-012222e38cd0b48a3dabd10c9a3cf6b2c4c5befc.zip
[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 <herbert@gondor.apana.org.au>
-rw-r--r--ChangeLog1
-rw-r--r--src/dash.14
2 files changed, 3 insertions, 2 deletions
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 <harald@gigawatt.nl>
 
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 \&%