std.path review: update

Lars T. Kyllingstad public at kyllingen.NOSPAMnet
Mon Jul 18 11:30:51 PDT 2011


On Mon, 18 Jul 2011 13:26:08 -0400, Steven Schveighoffer wrote:

> On Sun, 17 Jul 2011 18:24:30 -0400, Andrej Mitrovic
> <andrej.mitrovich at gmail.com> wrote:
> 
>> On 7/17/11, Lars T. Kyllingstad <public at kyllingen.nospamnet> wrote:
>>> - Should I add toNativePath(), which replaces '/' with '\' on Windows
>>> and
>>> vice versa on POSIX?
>>
>> Actually I withdraw that feature request. Some tools will work with
>> only forward slashes, others only backward slashes, but this is
>> regardless of what platform they're on.
>>
>> E.g. some tools don't work with forward slashes, while GIT doesn't work
>> with backward slashes when running on Windows.
>>
>> I think .replace(r"\", "/") and .replace("/", r"\") are good enough,
>> but maybe an alias to each version wouldn't be bad. E.g.
>> "toForwardSlash" and "toBackslash". It's not hard to define this in our
>> own code, so it's not really a feature request.
> 
> 
> Hum... I wonder if normalize should do this...
> 
> Is normalize supposed to create a canonical path?  If so, then this
> needs to happen.

normalize does this on Windows, where '/' is also a directory separator, 
but not on POSIX, where '\' is an ordinary filename character.

I am not entirely sure what the exact definition of "canonical path" is, 
but according to some it entails resolving symlinks.  normalize does not 
do this, but it does everything else:

  - resolves . and .. to the extent possible
  - collapses redundant directory separators
  - changes '/' to '\' on Windows

-Lars
-Lars


More information about the Digitalmars-d mailing list