Re: Bug in man page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



commit 63ab7ea86d12ff87f311e9a59dffdc4f1d47ff33
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
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 <herbert@xxxxxxxxxxxxxxxxxxx>

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@xxxxxxxxxxx>
 
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 <herbert@xxxxxxxxxxxxxxxxxxx>
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux