New submission from Jan David Mol <jjd...@gmail.com>: The shlex parser parses "foo#bar" as "foo", discarding the rest as a comment. This is actually one of the test cases, even in POSIX mode.
However, POSIX (see below) only allows comments to start at the beginning of a token, so "foo#bar" has to result in a "foo#bar" token. To easily see this, do "echo foo#bar" in bash, versus "echo foo #bar". Fixing this might break some applications that rely on this broken behaviour, even though they're not strictly POSIX compliant. POSIX 2008, Rationale C.2.3 (which refers to Shell & Utilities 2.3(10)): The (10) rule about '#' as the current character is the first in the sequence in which a new token is being assembled. The '#' starts a comment only when it is at the beginning of a token. This rule is also written to indicate that the search for the end-of-comment does not consider escaped <newline> specially, so that a comment cannot be continued to the next line. ---------- components: Library (Lib) messages: 97081 nosy: jjdmol2 severity: normal status: open title: shlex not posix compliant when parsing "foo#bar" type: behavior versions: Python 2.5, Python 2.6, Python 2.7, Python 3.1, Python 3.2 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue7611> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com