[Issue 6068] New: std.path has some issues for Windows user
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat May 28 05:25:46 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6068
Summary: std.path has some issues for Windows user
Product: D
Version: D1 & D2
Platform: Other
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: verylonglogin.reg at gmail.com
--- Comment #0 from Denis <verylonglogin.reg at gmail.com> 2011-05-28 05:21:26 PDT ---
getExt, getName and join doesn't support Windows's altsep, look at pull for
D2's phobos:
https://github.com/D-Programming-Language/phobos/pull/63
Confusing (for me) behaviour of functions:
1. isabs - from
http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx
: "A single backslash, for example, "\directory" or "\file.txt". This is also
referred to as an absolute path." and in .NET Framework Path.IsPathRooted
returns true for such case, e.g. But I agree with phobos's way, and this
behaviour is clearly written in documentation. Have it your way. But it affects
next function.
2. join - if second path is "drive relative rooted":
assert( join(`a`, `\b`) == `\b` ); //good (like .NET Framework)
assert( join(`c:a`, `\b`) == `c:a\b` ); //why not `c:\b`?
assert( join(`c:\a`, `\b`) == `c:\a\b` ); //why not `c:\b`?
.NET Framework's Path.Combine for all cases shows `\b` (because `\b` is rooted
for it).
Possible solutions:
1. We don't want to know about Microsoft's stupid "drive relative rooted"
paths, let it be so:
assert( join(`a`, `\b`) == `a\b` );
assert( join(`c:a`, `\b`) == `c:a\b` );
assert( join(`c:\a`, `\b`) == `c:\a\b` );
2. We know about it:
assert( join(`a`, `\b`) == `\b` );
assert( join(`c:a`, `\b`) == `c:\b` );
assert( join(`c:\a`, `\b`) == `c:\b` );
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list