132
|
1 /*****************************************************************
|
|
2
|
|
3 Simple example that shows possible inputs to normalize and the
|
|
4 corresponding outputs.
|
|
5
|
|
6 Put into public domain by Lars Ivar Igesund.
|
|
7
|
|
8 *****************************************************************/
|
|
9
|
|
10 import tango.io.Stdout;
|
|
11
|
|
12 import tango.util.PathUtil;
|
|
13
|
|
14 int main()
|
|
15 {
|
|
16 version (Posix) {
|
|
17 Stdout(normalize ( "/foo/../john")).newline;
|
|
18 Stdout(normalize ( "foo/../john")).newline;
|
|
19 Stdout(normalize ( "foo/bar/..")).newline;
|
|
20 Stdout(normalize ( "foo/bar/../john")).newline;
|
|
21 Stdout(normalize ( "foo/bar/doe/../../john")).newline;
|
|
22 Stdout(normalize ( "foo/bar/doe/../../john/../bar")).newline;
|
|
23 Stdout(normalize ( "./foo/bar/doe")).newline;
|
|
24 Stdout(normalize ( "./foo/bar/doe/../../john/../bar")).newline;
|
|
25 Stdout(normalize ( "./foo/bar/../../john/../bar")).newline;
|
|
26 Stdout(normalize ( "foo/bar/./doe/../../john")).newline;
|
|
27 Stdout(normalize ( "../../foo/bar/./doe/../../john")).newline;
|
|
28 Stdout(normalize ( "../../../foo/bar")).newline;
|
|
29 Stdout("** Should now throw exception as the following path is invalid for normalization.").newline;
|
|
30 Stdout(normalize ( "/../../../foo/bar")).newline;
|
|
31 }
|
|
32 version (Windows) {
|
|
33 Stdout(normalize ( "C:\\foo\\..\\john")).newline;
|
|
34 Stdout(normalize ( "foo\\..\\john")).newline;
|
|
35 Stdout(normalize ( "foo\\bar\\..")).newline;
|
|
36 Stdout(normalize ( "foo\\bar\\..\\john")).newline;
|
|
37 Stdout(normalize ( "foo\\bar\\doe\\..\\..\\john")).newline;
|
|
38 Stdout(normalize ( "foo\\bar\\doe\\..\\..\\john\\..\\bar")).newline;
|
|
39 Stdout(normalize ( ".\\foo\\bar\\doe")).newline;
|
|
40 Stdout(normalize ( ".\\foo\\bar\\doe\\..\\..\\john\\..\\bar")).newline;
|
|
41 Stdout(normalize ( ".\\foo\\bar\\..\\..\\john\\..\\bar")).newline;
|
|
42 Stdout(normalize ( "foo\\bar\\.\\doe\\..\\..\\john")).newline;
|
|
43 Stdout(normalize ( "..\\..\\foo\\bar\\.\\doe\\..\\..\\john")).newline;
|
|
44 Stdout(normalize ( "..\\..\\..\\foo\\bar")).newline;
|
|
45 Stdout("** Should now throw exception as the following path is invalid for normalization.").newline;
|
|
46 Stdout(normalize ( "C:\\..\\..\\..\\foo\\bar")).newline;
|
|
47 }
|
|
48
|
|
49
|
|
50 return 0;
|
|
51 }
|