[2/3] ntdll: don't treat DOS paths starting with / as Unix paths

Ben Klein shacklein at gmail.com
Tue Apr 7 18:29:50 CDT 2009


2009/4/8 Paul Chitescu <paulc at voip.null.ro>:
> On Tuesday 07 April 2009 17:30:57 Ben Klein wrote:
>> 2009/4/8 Vincent Povirk <madewokherd+8cd9 at gmail.com>:
>> > On Tue, Apr 7, 2009 at 5:43 AM, Dmitry Timoshkov <dmitry at codeweavers.com>
> wrote:
>> >> A real user who is trying to get real work done won't run the python
>> >> test suite.
>> >
>> > True.
>> >
>> > On Tue, Apr 7, 2009 at 4:45 AM, Henri Verbeet <hverbeet at gmail.com> wrote:
>> >> Out of curiosity, why do the python tests even care if /bin/sh exists?
>> >
>> > The python tests run on multiple platforms, some of which have a
>> > working /bin/sh. If it exists, certain ones (there are only two) will
>> > start an sh process and read its output.
>>
>> Surely this is still a bug in the Python test suite though. They
>> should know that "/bin/sh" is not technically a valid path on
>> Windows/DOS systems, and it only works due to system magic translating
>> /'s to \'s.
>
> Ben,
>
> Paths with slashes ARE valid in DOS/Windows since the dawn of DOS 2.0 (first
> to include paths). While there are bugs in some versions at the API level
> forward or backward slashes (or mixtures) can be used for any operation.
>
> Only the command line parsers make a difference because forward slash was used
> as option separator since CP/M.
>
> So /bin/sh is just equivalent to \bin\sh on the default drive.

This is what I meant about magic translation. It *shouldn't* work, but
I'm aware that it does. DOS/Windows uses backslash as the delimiter
when reporting and storing paths. Is the behaviour of magic
translation from foreslash to backslash documented (by Microsoft)
anywhere?

I don't think there's any way for Wine to solve this ambiguity.
Python's test suite would need to be fixed.



More information about the wine-devel mailing list