std.path.getName(): Screwy by design?

Lars T. Kyllingstad public at kyllingen.NOSPAMnet
Tue Mar 1 08:15:35 PST 2011


On Tue, 01 Mar 2011 11:07:15 -0500, Steven Schveighoffer wrote:

> On Tue, 01 Mar 2011 11:04:52 -0500, Lars T. Kyllingstad
> <public at kyllingen.nospamnet> wrote:
> 
>> On Tue, 01 Mar 2011 10:55:57 -0500, Steven Schveighoffer wrote:
>>
>>> The point of this whole discussion is how should phobos' std.path deal
>>> with filenames.  I thought that was implied.
>>
>> But std.path doesn't have to deal with these issues.  std.path is
>> basically a bunch of functions that search for '/', '\' or '.' in some
>> string.  The only special case it needs to worry about is that '\' is
>> an ordinary character on POSIX and a dir separator on Windows.
>>
>> If you want to disallow creating files named "-rf *", that'll have to
>> be done in std.stdio and std.file.
> 
> Well, then that's probably where it should be disallowed then.  You are
> right, path shouldn't care about the contents, because looking at a path
> does not cause problem, it's only creating a file based on the given
> path that causes problems.

std.path *could*, however, contain an isSafePath() function that checks 
whether a given path contains special characters.  And if we define 
"special characters" as "characters not allowed in Windows filenames" it 
would double as a Windows filename validator.

-Lars


More information about the Digitalmars-d mailing list