Possible bug in std.path?
Hugo via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 18 20:49:36 PDT 2016
I am having a problem on Windows with the following code:
module mytest;
import std.stdio, std.file, std.path;
enum EXIT_SUCCESS = 0;
enum EXIT_FAILURE = -1;
int main(string[] args) {
string appdir;
switch(args.length-1) {
case 0:
writeln("You must provide an argument with a valid
directory path.");
break;
case 1:
appdir = buildNormalizedPath(args[1]);
if(appdir.exists && appdir.isDir) break;
default:
writefln("Error: '%s' is not a valid directory path.",
appdir);
return EXIT_FAILURE;
}
writeln("OK");
return EXIT_SUCCESS;
}
Suppose I compiled this unit on current dir and then executed
these commands:
mkdir "my dir"
mytest "my dir\"
I should get "OK", but instead I get:
Error: 'my test"' is not a valid directory path.
If the trailing backslash is removed it works as intended, but
IMHO buildNormalizedPath should have worked.
In any case, notice the double quote in the output. To me this
suggests the backslash is acting not as a path terminator but as
an escape sequence.
More information about the Digitalmars-d
mailing list