Proposal for std.path replacement

spir denis.spir at gmail.com
Sun Mar 6 06:54:19 PST 2011


On 03/06/2011 12:56 PM, Lars T. Kyllingstad wrote:
> On Sun, 06 Mar 2011 09:37:15 +0100, Rainer Schuetze wrote:
>
>> Looks good overall. I have a few comments and nitpicks though:
>>
>>   >    basename("dir/subdir/")             -->   "subdir"
>>   >    directory("dir/subdir/")      -->   "dir"
>>
>> Is this what everybody expects? I'm not sure, but another possibility
>> would be to treat these as if "dir/subdir/." is passed.
>
> I don't know about everybody, but it is what *NIX users expect, at
> least.  I have written those functions so they adhere to the POSIX
> requirements for the 'basename' and 'dirname' commands.
>
>
>> What is the
>> result of directory("/") or directory("d:/")?
>
> "/" and "d:/", respectively.  The first is what 'dirname' prints, and the
> second is the natural extension to Windows paths.  (I believe I have
> covered most corner cases in the unittests.  I think it would just be
> confusing to add all of them to the documentation.)
>
>
>>   >    extension("file")               -->   "" extension("file.ext")
>>   >        -->   "ext"
>>
>> What about "file."? I tried it on NTFS, but trailing '.' seems to always
>> be cut off. Is it possible to create such a file on unix systems? If
>> yes, you won't be able to recreate it from the result of basename() and
>> extension().
>
> Good point.  I don't know if there is any kind of precedent here.  What
> do others think?
>
>
>> What about network shares like "\\server\share\dir\file"? Maybe it
>> should also be shown in the examples? Does the "\\server" part need
>> special consideration?
>
> Hmm.. that's another good point.  I haven't even though of those, but
> they should probably be covered as well.  I'll look into it.

What about extending the notion of 'device' (see other post) to cover 'http://' 
and "ftp://"?
Would it be complicated?

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d mailing list