Files
ldc/tango/example/system/normpath.d
Tomas Lindquist Olsen b15b3484c8 [svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.

Lots of bugfixes...

This build is not suitable for most things.
2008-01-11 17:57:40 +01:00

52 lines
2.1 KiB
D

/*****************************************************************
Simple example that shows possible inputs to normalize and the
corresponding outputs.
Put into public domain by Lars Ivar Igesund.
*****************************************************************/
import tango.io.Stdout;
import tango.util.PathUtil;
int main()
{
version (Posix) {
Stdout(normalize ( "/foo/../john")).newline;
Stdout(normalize ( "foo/../john")).newline;
Stdout(normalize ( "foo/bar/..")).newline;
Stdout(normalize ( "foo/bar/../john")).newline;
Stdout(normalize ( "foo/bar/doe/../../john")).newline;
Stdout(normalize ( "foo/bar/doe/../../john/../bar")).newline;
Stdout(normalize ( "./foo/bar/doe")).newline;
Stdout(normalize ( "./foo/bar/doe/../../john/../bar")).newline;
Stdout(normalize ( "./foo/bar/../../john/../bar")).newline;
Stdout(normalize ( "foo/bar/./doe/../../john")).newline;
Stdout(normalize ( "../../foo/bar/./doe/../../john")).newline;
Stdout(normalize ( "../../../foo/bar")).newline;
Stdout("** Should now throw exception as the following path is invalid for normalization.").newline;
Stdout(normalize ( "/../../../foo/bar")).newline;
}
version (Windows) {
Stdout(normalize ( "C:\\foo\\..\\john")).newline;
Stdout(normalize ( "foo\\..\\john")).newline;
Stdout(normalize ( "foo\\bar\\..")).newline;
Stdout(normalize ( "foo\\bar\\..\\john")).newline;
Stdout(normalize ( "foo\\bar\\doe\\..\\..\\john")).newline;
Stdout(normalize ( "foo\\bar\\doe\\..\\..\\john\\..\\bar")).newline;
Stdout(normalize ( ".\\foo\\bar\\doe")).newline;
Stdout(normalize ( ".\\foo\\bar\\doe\\..\\..\\john\\..\\bar")).newline;
Stdout(normalize ( ".\\foo\\bar\\..\\..\\john\\..\\bar")).newline;
Stdout(normalize ( "foo\\bar\\.\\doe\\..\\..\\john")).newline;
Stdout(normalize ( "..\\..\\foo\\bar\\.\\doe\\..\\..\\john")).newline;
Stdout(normalize ( "..\\..\\..\\foo\\bar")).newline;
Stdout("** Should now throw exception as the following path is invalid for normalization.").newline;
Stdout(normalize ( "C:\\..\\..\\..\\foo\\bar")).newline;
}
return 0;
}