This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients eric.araujo, lemburg, pitrou, r.david.murray, vstinner
Date 2010-08-13.13:32:16
SpamBayes Score 7.76601e-14
Marked as misclassified No
Message-id <1281706339.17.0.144370350465.issue9560@psf.upfronthosting.co.za>
In-reply-to
Content
> Looking at the only use case of _syscmd_file(), it may not even 
> be worth the trouble of adding the -b option. Fixing the doc-string 
> may be enough: (...)

Well, my problem is that _syscmd_file() fails with a non encodable filename on Linux because the file program writes the filename to stdout, but os.popen() is unable to parse it because the filename is not decodable from the filesystem encoding (without surrogateescape).

I would like to add -b option just to avoid this encoding problem.

The bug:
---
$ cp /bin/ls $(echo -ne "ls-\x80")
$ ./python -c "import platform; platform.architecture(executable='ls-\uDC80')"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/SHARE/SVN/py3k/Lib/platform.py", line 1059, in architecture
    output = _syscmd_file(executable, '')
  File "/home/SHARE/SVN/py3k/Lib/platform.py", line 1006, in _syscmd_file
    output = f.read().strip()
  File "/home/SHARE/SVN/py3k/Lib/codecs.py", line 300, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 24: invalid start byte
---

See also #8611 and #9425.
History
Date User Action Args
2010-08-13 13:32:19vstinnersetrecipients: + vstinner, lemburg, pitrou, eric.araujo, r.david.murray
2010-08-13 13:32:19vstinnersetmessageid: <1281706339.17.0.144370350465.issue9560@psf.upfronthosting.co.za>
2010-08-13 13:32:17vstinnerlinkissue9560 messages
2010-08-13 13:32:16vstinnercreate