Hynek Schlawack <[email protected]> added the comment:
So I have good news and bad news. The good is: I fixed it for non-Win platforms
and the patch is truly beautiful:
Lib/test/test_builtin.py | 6 ++++++
Modules/_io/fileio.c | 25 ++++---------------------
2 files changed, 10 insertions(+), 21 deletions(-)
;)
Two problems:
1. I'm not sure if it's okay for me to put the test where I put it?
2. I'm not sure how to fix it for Win32 (and I also can't test it :().
It's just about the case when it's called with a Unicode path name. The current
code looks like as following:
if (PyUnicode_Check(nameobj)) {
widename = PyUnicode_AsUnicode(nameobj);
if (widename == NULL)
return -1;
}
We can't use the nifty PyUnicode_FSConverter because we want to keep Unicode.
So I assume the way to go would be the C equivalent of somthing like:
if '\0' in widename:
raise TypeError()
Right?
I hope someone would be so kind to implement it, otherwise the patch attached
passes all test on Linux and Mac (except for test_recursion_limit but that
fails currently for me on the Mac even without my patch).
----------
keywords: +patch
Added file: http://bugs.python.org/file24316/open-nul.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue13848>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com