tags 435648 fixed-upstream thanks fixed in upstream 3.04.
Hello Vincent, Vincent Lefevre wrote:
Package: manpages-dev Version: 2.62-1 Severity: normal The scanf man page says: ยท An optional decimal integer which specifies the maximum field width. Reading of characters stops either when this maximum is reached or when a non-matching character is found, whichever happens first. Most conversions discard initial whitespace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ characters (the exceptions are noted below), and these discarded ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ characters don't count towards the maximum field width. String input conversions store a null terminator ('\0') to mark the end of the input; the maximum field width does not include this ter- minator. and The following conversion specifiers are available: % Matches a literal '%'. That is, %% in the format string matches a single input '%' character. No conversion is done, and ^^^^^^^^^^^^^^^^^^^^^^^ assignment does not occur. So, one may think that since %% doesn't do a conversion, initial whitespace is not discarded. But this is incorrect: initial whitespace is discarded (as required by the ISO C standard). The C standard has better wording ("conversion specification" instead of "conversion"):
Interestingly, the wording of the man page is quite close to the POSIX.1 spec: % Matches a single '%' character; no conversion or assignment occurs. The complete conversion specification shall be %% .
[...] A conversion specification is executed in the following steps: ^^^^^^^^^^^^^ Input white-space characters (as specified by the isspace function) are skipped, unless the specification includes a [, c, or n specifier. The scanf man page should probably say: "... Most conversion specifications discard initial whitespace characters ..."
I prefer to be more explicit. For the description of %% I changed the text to: No conversion is done (but initial white space characters are discarded), and assignment does not occur. okay? Cheers, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]