On 17-jun-2006, at 6:44, Nick Coghlan wrote: > Bob Ippolito wrote: >> There's a similar issue in that if sys.prefix contains a colon, >> Python >> is also busted: >> http://python.org/sf/1507224 >> >> Of course, that's not a Windows issue, but it is everywhere else. The >> offending code in that case is Modules/getpath.c, > > Since it has to do with the definition of Py_GetPath as returning a > single > string that is really a DELIM separated list of strings, where > DELIM is > defined by the current platform (';' on Windows, ':' everywhere > else), this > seems more like a platform problem than a Python problem, though - > you can't > have directories containing a colon as an entry in PATH or > PYTHONPATH either. > It's not really Python's fault that the platform defines a legal > filename > character as the delimiter for path entries.
On unix-y systems any character except the NUL byte can be used in a legal fileystem path, that leaves awfully little characters to use as delimiter without risking issues like the one in the bug Bob mentioned. > > The only real alternative I can see is to normalise Py_GetPath to > always > return a ';' delimited list of strings, regardless of platform, and > update > PySys_SetPath accordingly. That'd cause potential compatibility > problems for > embedded interpreters, though. That wouldn't help, ';' is also a valid character in filenames on Unix. Except for accepting the status quo (which is a perfectly fine alternative) there seem to be two valid ways to solve this problem. You can either define Py_GetPath2 that returns a python list or tuple, or introduce some way of quoting the delimiter. Both would be backward incompatible. Ronald _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com