27 lines
		
	
	
		
			579 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			579 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
package lnx2d;
 | 
						|
 | 
						|
class Path {
 | 
						|
 | 
						|
	public static function toRelative(path:String, cwd:String):String {
 | 
						|
		path = haxe.io.Path.normalize(path);
 | 
						|
		cwd = haxe.io.Path.normalize(cwd);
 | 
						|
 | 
						|
		var ar:Array<String> = [];
 | 
						|
		var ar1 = path.split("/");
 | 
						|
		var ar2 = cwd.split("/");
 | 
						|
 | 
						|
		var index = 0;
 | 
						|
		while (ar1[index] == ar2[index]) index++;
 | 
						|
 | 
						|
		for (i in 0...ar2.length - index) ar.push("..");
 | 
						|
 | 
						|
		for (i in index...ar1.length) ar.push(ar1[i]);
 | 
						|
 | 
						|
		return ar.join("/");
 | 
						|
	}
 | 
						|
 | 
						|
	public static function toAbsolute(path:String, cwd:String):String {
 | 
						|
		return haxe.io.Path.normalize(cwd + "/" + path);
 | 
						|
	}
 | 
						|
}
 |