On 08.06.2011 21:29, Lars Tandle Kyllingstad wrote:
As you may already know, I've had a new version of std.path in the works
for a while. It is ready now, and I am waiting for my turn in the
review queue in the main NG. In the meantime, I just thought I'd run it
by this mailing list to iron out the worst wrinkles.
So, if you feel like it, please comment.
Code:
https://github.com/kyllingstad/phobos/blob/std-path/std/path.d
Docs:
http://www.kyllingen.net/code/new-std-path/phobos-prerelease/std_path.html
-Lars
Looks good to me. A few notes:
- I agree with Jose that toAbsolute and expandTilde feel a little
out-of-place in this module as they are not only string manipulation
functions.
- expandTilde is currently not implemented on windows, but I think a
similar functionality using environment variables similar to HOME could
work, too. I have no idea how to implement it for other users than the
current, though.
- \\network drives are currently only respected under windows (at least
that's what the documentation says). At work I'm using the same syntax
on OSX to mount network drives (with forward slashes), so I guess it is
also valid on Posix systems.
- isRelative and isAbsolute both return false on the empty string, while
dirName("") returns ".". Wouldn't that imply that isRelative("") is true?
- when transferring data containing file names between different
operating systems, it would be convenient to have the path operation of
the other system available, too. While you can deal with posix file
names on windows without big problems, the reverse is usually not the
case (you have to convert backslashes manually, don't know how to strip
drive names, etc). Would it be a good idea to have both versions
accessible through namespaces, e.g. Posix.isRooted() and Win.isRooted(),
and let the global functions dispatch to the implementation that fits
the current OS?
Rainer
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos