view tango/example/system/normpath.d @ 243:4d006f7b2ada trunk

[svn r260] Changed some of the LLVMDC specific code in the Tango core and did some minor cleanups.
author lindquist
date Mon, 09 Jun 2008 03:02:14 +0200
parents 1700239cab2e
children
line wrap: on
line source

/*****************************************************************

  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;
}