/* This tests the path collapser in libwsmake. Compile: g++ paths.c -o paths ../../libwsmake/wmfile.o -I ../../libwsmake */ #include #include "wmfile.h" void main() { collapsePath("", NULL, ""); collapsePath("/", NULL, "/"); collapsePath("//", NULL, "/"); collapsePath("/.", NULL, "/"); collapsePath("/a", NULL, "/a"); collapsePath("///", NULL, "/"); collapsePath("//.", NULL, "/"); collapsePath("//a", NULL, "/a"); collapsePath("/./", NULL, "/"); collapsePath("/..", NULL, "/"); collapsePath("/.a", NULL, "/.a"); collapsePath("/a/", NULL, "/a"); collapsePath("/a.", NULL, "/a."); collapsePath("/aa", NULL, "/aa"); collapsePath("////", NULL, "/"); collapsePath("///.", NULL, "/"); collapsePath("///a", NULL, "/a"); collapsePath("//./", NULL, "/"); collapsePath("//..", NULL, "/"); collapsePath("//.a", NULL, "/.a"); collapsePath("//a/", NULL, "/a"); collapsePath("//a.", NULL, "/a."); collapsePath("//aa", NULL, "/aa"); collapsePath("/.//", NULL, "/"); collapsePath("/./.", NULL, "/"); collapsePath("/./a", NULL, "/a"); collapsePath("/../", NULL, "/"); collapsePath("/...", NULL, "/..."); collapsePath("/..a", NULL, "/..a"); collapsePath("/.a/", NULL, "/.a"); collapsePath("/.a.", NULL, "/.a."); collapsePath("/.aa", NULL, "/.aa"); collapsePath("/a//", NULL, "/a"); collapsePath("/a/.", NULL, "/a"); collapsePath("/a/a", NULL, "/a/a"); collapsePath("/a./", NULL, "/a."); collapsePath("/a..", NULL, "/a.."); collapsePath("/a.a", NULL, "/a.a"); collapsePath("/aa/", NULL, "/aa"); collapsePath("/aa.", NULL, "/aa."); collapsePath("/aaa", NULL, "/aaa"); collapsePath("/////", NULL, "/"); collapsePath("////.", NULL, "/"); collapsePath("////a", NULL, "/a"); collapsePath("///./", NULL, "/"); collapsePath("///..", NULL, "/"); collapsePath("///.a", NULL, "/.a"); collapsePath("///a/", NULL, "/a"); collapsePath("///a.", NULL, "/a."); collapsePath("///aa", NULL, "/aa"); collapsePath("//.//", NULL, "/"); collapsePath("//./.", NULL, "/"); collapsePath("//./a", NULL, "/a"); collapsePath("//../", NULL, "/"); collapsePath("//...", NULL, "/..."); collapsePath("//..a", NULL, "/..a"); collapsePath("//.a/", NULL, "/.a"); collapsePath("//.a.", NULL, "/.a."); collapsePath("//.aa", NULL, "/.aa"); collapsePath("//a//", NULL, "/a"); collapsePath("//a/.", NULL, "/a"); collapsePath("//a/a", NULL, "/a/a"); collapsePath("//a./", NULL, "/a."); collapsePath("//a..", NULL, "/a.."); collapsePath("//a.a", NULL, "/a.a"); collapsePath("//aa/", NULL, "/aa"); collapsePath("//aa.", NULL, "/aa."); collapsePath("//aaa", NULL, "/aaa"); collapsePath("/.///", NULL, "/"); collapsePath("/.//.", NULL, "/"); collapsePath("/.//a", NULL, "/a"); collapsePath("/././", NULL, "/"); collapsePath("/./..", NULL, "/"); collapsePath("/./.a", NULL, "/.a"); collapsePath("/./a/", NULL, "/a"); collapsePath("/./a.", NULL, "/a."); collapsePath("/./aa", NULL, "/aa"); collapsePath("/..//", NULL, "/"); collapsePath("/../.", NULL, "/"); collapsePath("/../a", NULL, "/a"); collapsePath("/.../", NULL, "/..."); collapsePath("/....", NULL, "/...."); collapsePath("/...a", NULL, "/...a"); collapsePath("/..a/", NULL, "/..a"); collapsePath("/..a.", NULL, "/..a."); collapsePath("/..aa", NULL, "/..aa"); collapsePath("/.a//", NULL, "/.a"); collapsePath("/.a/.", NULL, "/.a"); collapsePath("/.a/a", NULL, "/.a/a"); collapsePath("/.a./", NULL, "/.a."); collapsePath("/.a..", NULL, "/.a.."); collapsePath("/.a.a", NULL, "/.a.a"); collapsePath("/.aa/", NULL, "/.aa"); collapsePath("/.aa.", NULL, "/.aa."); collapsePath("/.aaa", NULL, "/.aaa"); collapsePath("/a///", NULL, "/a"); collapsePath("/a//.", NULL, "/a"); collapsePath("/a//a", NULL, "/a/a"); collapsePath("/a/./", NULL, "/a"); collapsePath("/a/..", NULL, "/"); collapsePath("/a/.a", NULL, "/a/.a"); collapsePath("/a/a/", NULL, "/a/a"); collapsePath("/a/a.", NULL, "/a/a."); collapsePath("/a/aa", NULL, "/a/aa"); collapsePath("/a.//", NULL, "/a."); collapsePath("/a./.", NULL, "/a."); collapsePath("/a./a", NULL, "/a./a"); collapsePath("/a../", NULL, "/a.."); collapsePath("/a...", NULL, "/a..."); collapsePath("/a..a", NULL, "/a..a"); collapsePath("/a.a/", NULL, "/a.a"); collapsePath("/a.a.", NULL, "/a.a."); collapsePath("/a.aa", NULL, "/a.aa"); collapsePath("/aa//", NULL, "/aa"); collapsePath("/aa/.", NULL, "/aa"); collapsePath("/aa/a", NULL, "/aa/a"); collapsePath("/aa./", NULL, "/aa."); collapsePath("/aa..", NULL, "/aa.."); collapsePath("/aa.a", NULL, "/aa.a"); collapsePath("/aaa/", NULL, "/aaa"); collapsePath("/aaa.", NULL, "/aaa."); collapsePath("/aaaa", NULL, "/aaaa"); collapsePath("//////", NULL, "/"); collapsePath("/////.", NULL, "/"); collapsePath("/////a", NULL, "/a"); collapsePath("////./", NULL, "/"); collapsePath("////..", NULL, "/"); collapsePath("////.a", NULL, "/.a"); collapsePath("////a/", NULL, "/a"); collapsePath("////a.", NULL, "/a."); collapsePath("////aa", NULL, "/aa"); collapsePath("///.//", NULL, "/"); collapsePath("///./.", NULL, "/"); collapsePath("///./a", NULL, "/a"); collapsePath("///../", NULL, "/"); collapsePath("///...", NULL, "/..."); collapsePath("///..a", NULL, "/..a"); collapsePath("///.a/", NULL, "/.a"); collapsePath("///.a.", NULL, "/.a."); collapsePath("///.aa", NULL, "/.aa"); collapsePath("///a//", NULL, "/a"); collapsePath("///a/.", NULL, "/a"); collapsePath("///a/a", NULL, "/a/a"); collapsePath("///a./", NULL, "/a."); collapsePath("///a..", NULL, "/a.."); collapsePath("///a.a", NULL, "/a.a"); collapsePath("///aa/", NULL, "/aa"); collapsePath("///aa.", NULL, "/aa."); collapsePath("///aaa", NULL, "/aaa"); collapsePath("//.///", NULL, "/"); collapsePath("//.//.", NULL, "/"); collapsePath("//.//a", NULL, "/a"); collapsePath("//././", NULL, "/"); collapsePath("//./..", NULL, "/"); collapsePath("//./.a", NULL, "/.a"); collapsePath("//./a/", NULL, "/a"); collapsePath("//./a.", NULL, "/a."); collapsePath("//./aa", NULL, "/aa"); collapsePath("//..//", NULL, "/"); collapsePath("//../.", NULL, "/"); collapsePath("//../a", NULL, "/a"); collapsePath("//.../", NULL, "/..."); collapsePath("//....", NULL, "/...."); collapsePath("//...a", NULL, "/...a"); collapsePath("//..a/", NULL, "/..a"); collapsePath("//..a.", NULL, "/..a."); collapsePath("//..aa", NULL, "/..aa"); collapsePath("//.a//", NULL, "/.a"); collapsePath("//.a/.", NULL, "/.a"); collapsePath("//.a/a", NULL, "/.a/a"); collapsePath("//.a./", NULL, "/.a."); collapsePath("//.a..", NULL, "/.a.."); collapsePath("//.a.a", NULL, "/.a.a"); collapsePath("//.aa/", NULL, "/.aa"); collapsePath("//.aa.", NULL, "/.aa."); collapsePath("//.aaa", NULL, "/.aaa"); collapsePath("//a///", NULL, "/a"); collapsePath("//a//.", NULL, "/a"); collapsePath("//a//a", NULL, "/a/a"); collapsePath("//a/./", NULL, "/a"); collapsePath("//a/..", NULL, "/"); collapsePath("//a/.a", NULL, "/a/.a"); collapsePath("//a/a/", NULL, "/a/a"); collapsePath("//a/a.", NULL, "/a/a."); collapsePath("//a/aa", NULL, "/a/aa"); collapsePath("//a.//", NULL, "/a."); collapsePath("//a./.", NULL, "/a."); collapsePath("//a./a", NULL, "/a./a"); collapsePath("//a../", NULL, "/a.."); collapsePath("//a...", NULL, "/a..."); collapsePath("//a..a", NULL, "/a..a"); collapsePath("//a.a/", NULL, "/a.a"); collapsePath("//a.a.", NULL, "/a.a."); collapsePath("//a.aa", NULL, "/a.aa"); collapsePath("//aa//", NULL, "/aa"); collapsePath("//aa/.", NULL, "/aa"); collapsePath("//aa/a", NULL, "/aa/a"); collapsePath("//aa./", NULL, "/aa."); collapsePath("//aa..", NULL, "/aa.."); collapsePath("//aa.a", NULL, "/aa.a"); collapsePath("//aaa/", NULL, "/aaa"); collapsePath("//aaa.", NULL, "/aaa."); collapsePath("//aaaa", NULL, "/aaaa"); collapsePath("/.////", NULL, "/"); collapsePath("/.///.", NULL, "/"); collapsePath("/.///a", NULL, "/a"); collapsePath("/.//./", NULL, "/"); collapsePath("/.//..", NULL, "/"); collapsePath("/.//.a", NULL, "/.a"); collapsePath("/.//a/", NULL, "/a"); collapsePath("/.//a.", NULL, "/a."); collapsePath("/.//aa", NULL, "/aa"); collapsePath("/././/", NULL, "/"); collapsePath("/././.", NULL, "/"); collapsePath("/././a", NULL, "/a"); collapsePath("/./../", NULL, "/"); collapsePath("/./...", NULL, "/..."); collapsePath("/./..a", NULL, "/..a"); collapsePath("/./.a/", NULL, "/.a"); collapsePath("/./.a.", NULL, "/.a."); collapsePath("/./.aa", NULL, "/.aa"); collapsePath("/./a//", NULL, "/a"); collapsePath("/./a/.", NULL, "/a"); collapsePath("/./a/a", NULL, "/a/a"); collapsePath("/./a./", NULL, "/a."); collapsePath("/./a..", NULL, "/a.."); collapsePath("/./a.a", NULL, "/a.a"); collapsePath("/./aa/", NULL, "/aa"); collapsePath("/./aa.", NULL, "/aa."); collapsePath("/./aaa", NULL, "/aaa"); collapsePath("/..///", NULL, "/"); collapsePath("/..//.", NULL, "/"); collapsePath("/..//a", NULL, "/a"); collapsePath("/.././", NULL, "/"); collapsePath("/../..", NULL, "/"); collapsePath("/../.a", NULL, "/.a"); collapsePath("/../a/", NULL, "/a"); collapsePath("/../a.", NULL, "/a."); collapsePath("/../aa", NULL, "/aa"); collapsePath("/...//", NULL, "/..."); collapsePath("/.../.", NULL, "/..."); collapsePath("/.../a", NULL, "/.../a"); collapsePath("/..../", NULL, "/...."); collapsePath("/.....", NULL, "/....."); collapsePath("/....a", NULL, "/....a"); collapsePath("/...a/", NULL, "/...a"); collapsePath("/...a.", NULL, "/...a."); collapsePath("/...aa", NULL, "/...aa"); collapsePath("/..a//", NULL, "/..a"); collapsePath("/..a/.", NULL, "/..a"); collapsePath("/..a/a", NULL, "/..a/a"); collapsePath("/..a./", NULL, "/..a."); collapsePath("/..a..", NULL, "/..a.."); collapsePath("/..a.a", NULL, "/..a.a"); collapsePath("/..aa/", NULL, "/..aa"); collapsePath("/..aa.", NULL, "/..aa."); collapsePath("/..aaa", NULL, "/..aaa"); collapsePath("/.a///", NULL, "/.a"); collapsePath("/.a//.", NULL, "/.a"); collapsePath("/.a//a", NULL, "/.a/a"); collapsePath("/.a/./", NULL, "/.a"); collapsePath("/.a/..", NULL, "/"); collapsePath("/.a/.a", NULL, "/.a/.a"); collapsePath("/.a/a/", NULL, "/.a/a"); collapsePath("/.a/a.", NULL, "/.a/a."); collapsePath("/.a/aa", NULL, "/.a/aa"); collapsePath("/.a.//", NULL, "/.a."); collapsePath("/.a./.", NULL, "/.a."); collapsePath("/.a./a", NULL, "/.a./a"); collapsePath("/.a../", NULL, "/.a.."); collapsePath("/.a...", NULL, "/.a..."); collapsePath("/.a..a", NULL, "/.a..a"); collapsePath("/.a.a/", NULL, "/.a.a"); collapsePath("/.a.a.", NULL, "/.a.a."); collapsePath("/.a.aa", NULL, "/.a.aa"); collapsePath("/.aa//", NULL, "/.aa"); collapsePath("/.aa/.", NULL, "/.aa"); collapsePath("/.aa/a", NULL, "/.aa/a"); collapsePath("/.aa./", NULL, "/.aa."); collapsePath("/.aa..", NULL, "/.aa.."); collapsePath("/.aa.a", NULL, "/.aa.a"); collapsePath("/.aaa/", NULL, "/.aaa"); collapsePath("/.aaa.", NULL, "/.aaa."); collapsePath("/.aaaa", NULL, "/.aaaa"); collapsePath("/a////", NULL, "/a"); collapsePath("/a///.", NULL, "/a"); collapsePath("/a///a", NULL, "/a/a"); collapsePath("/a//./", NULL, "/a"); collapsePath("/a//..", NULL, "/"); collapsePath("/a//.a", NULL, "/a/.a"); collapsePath("/a//a/", NULL, "/a/a"); collapsePath("/a//a.", NULL, "/a/a."); collapsePath("/a//aa", NULL, "/a/aa"); collapsePath("/a/.//", NULL, "/a"); collapsePath("/a/./.", NULL, "/a"); collapsePath("/a/./a", NULL, "/a/a"); collapsePath("/a/../", NULL, "/"); collapsePath("/a/...", NULL, "/a/..."); collapsePath("/a/..a", NULL, "/a/..a"); collapsePath("/a/.a/", NULL, "/a/.a"); collapsePath("/a/.a.", NULL, "/a/.a."); collapsePath("/a/.aa", NULL, "/a/.aa"); collapsePath("/a/a//", NULL, "/a/a"); collapsePath("/a/a/.", NULL, "/a/a"); collapsePath("/a/a/a", NULL, "/a/a/a"); collapsePath("/a/a./", NULL, "/a/a."); collapsePath("/a/a..", NULL, "/a/a.."); collapsePath("/a/a.a", NULL, "/a/a.a"); collapsePath("/a/aa/", NULL, "/a/aa"); collapsePath("/a/aa.", NULL, "/a/aa."); collapsePath("/a/aaa", NULL, "/a/aaa"); collapsePath("/a.///", NULL, "/a."); collapsePath("/a.//.", NULL, "/a."); collapsePath("/a.//a", NULL, "/a./a"); collapsePath("/a././", NULL, "/a."); collapsePath("/a./..", NULL, "/"); collapsePath("/a./.a", NULL, "/a./.a"); collapsePath("/a./a/", NULL, "/a./a"); collapsePath("/a./a.", NULL, "/a./a."); collapsePath("/a./aa", NULL, "/a./aa"); collapsePath("/a..//", NULL, "/a.."); collapsePath("/a../.", NULL, "/a.."); collapsePath("/a../a", NULL, "/a../a"); collapsePath("/a.../", NULL, "/a..."); collapsePath("/a....", NULL, "/a...."); collapsePath("/a...a", NULL, "/a...a"); collapsePath("/a..a/", NULL, "/a..a"); collapsePath("/a..a.", NULL, "/a..a."); collapsePath("/a..aa", NULL, "/a..aa"); collapsePath("/a.a//", NULL, "/a.a"); collapsePath("/a.a/.", NULL, "/a.a"); collapsePath("/a.a/a", NULL, "/a.a/a"); collapsePath("/a.a./", NULL, "/a.a."); collapsePath("/a.a..", NULL, "/a.a.."); collapsePath("/a.a.a", NULL, "/a.a.a"); collapsePath("/a.aa/", NULL, "/a.aa"); collapsePath("/a.aa.", NULL, "/a.aa."); collapsePath("/a.aaa", NULL, "/a.aaa"); collapsePath("/aa///", NULL, "/aa"); collapsePath("/aa//.", NULL, "/aa"); collapsePath("/aa//a", NULL, "/aa/a"); collapsePath("/aa/./", NULL, "/aa"); collapsePath("/aa/..", NULL, "/"); collapsePath("/aa/.a", NULL, "/aa/.a"); collapsePath("/aa/a/", NULL, "/aa/a"); collapsePath("/aa/a.", NULL, "/aa/a."); collapsePath("/aa/aa", NULL, "/aa/aa"); collapsePath("/aa.//", NULL, "/aa."); collapsePath("/aa./.", NULL, "/aa."); collapsePath("/aa./a", NULL, "/aa./a"); collapsePath("/aa../", NULL, "/aa.."); collapsePath("/aa...", NULL, "/aa..."); collapsePath("/aa..a", NULL, "/aa..a"); collapsePath("/aa.a/", NULL, "/aa.a"); collapsePath("/aa.a.", NULL, "/aa.a."); collapsePath("/aa.aa", NULL, "/aa.aa"); collapsePath("/aaa//", NULL, "/aaa"); collapsePath("/aaa/.", NULL, "/aaa"); collapsePath("/aaa/a", NULL, "/aaa/a"); collapsePath("/aaa./", NULL, "/aaa."); collapsePath("/aaa..", NULL, "/aaa.."); collapsePath("/aaa.a", NULL, "/aaa.a"); collapsePath("/aaaa/", NULL, "/aaaa"); collapsePath("/aaaa.", NULL, "/aaaa."); collapsePath("/aaaaa", NULL, "/aaaaa"); collapsePath("/a/a/../..", NULL, "/"); collapsePath("/a/a/../../", NULL, "/"); collapsePath("/a/a/..", NULL, "/a"); collapsePath("/a/a/../", NULL, "/a"); collapsePath("/a/../..", NULL, "/"); collapsePath("/a/../../", NULL, "/"); collapsePath("../a/../..", NULL, "../.."); collapsePath("../../a/..", NULL, "../.."); /***********/ collapsePath(".", NULL, ""); collapsePath("./", NULL, ""); collapsePath("..", NULL, ".."); collapsePath(".a", NULL, ".a"); collapsePath(".//", NULL, ""); collapsePath("./.", NULL, ""); collapsePath("./a", NULL, "a"); collapsePath("../", NULL, ".."); collapsePath("...", NULL, "..."); collapsePath("..a", NULL, "..a"); collapsePath(".a/", NULL, ".a"); collapsePath(".a.", NULL, ".a."); collapsePath(".aa", NULL, ".aa"); collapsePath(".///", NULL, ""); collapsePath(".//.", NULL, ""); collapsePath(".//a", NULL, "a"); collapsePath("././", NULL, ""); collapsePath("./..", NULL, ".."); collapsePath("./.a", NULL, ".a"); collapsePath("./a/", NULL, "a"); collapsePath("./a.", NULL, "a."); collapsePath("./aa", NULL, "aa"); collapsePath("..//", NULL, ".."); collapsePath("../.", NULL, ".."); collapsePath("../a", NULL, "../a"); collapsePath(".../", NULL, "..."); collapsePath("....", NULL, "...."); collapsePath("...a", NULL, "...a"); collapsePath("..a/", NULL, "..a"); collapsePath("..a.", NULL, "..a."); collapsePath("..aa", NULL, "..aa"); collapsePath(".a//", NULL, ".a"); collapsePath(".a/.", NULL, ".a"); collapsePath(".a/a", NULL, ".a/a"); collapsePath(".a./", NULL, ".a."); collapsePath(".a..", NULL, ".a.."); collapsePath(".a.a", NULL, ".a.a"); collapsePath(".aa/", NULL, ".aa"); collapsePath(".aa.", NULL, ".aa."); collapsePath(".aaa", NULL, ".aaa"); collapsePath(".////", NULL, ""); collapsePath(".///.", NULL, ""); collapsePath(".///a", NULL, "a"); collapsePath(".//./", NULL, ""); collapsePath(".//..", NULL, ".."); collapsePath(".//.a", NULL, ".a"); collapsePath(".//a/", NULL, "a"); collapsePath(".//a.", NULL, "a."); collapsePath(".//aa", NULL, "aa"); collapsePath("././/", NULL, ""); collapsePath("././.", NULL, ""); collapsePath("././a", NULL, "a"); collapsePath("./../", NULL, ".."); collapsePath("./...", NULL, "..."); collapsePath("./..a", NULL, "..a"); collapsePath("./.a/", NULL, ".a"); collapsePath("./.a.", NULL, ".a."); collapsePath("./.aa", NULL, ".aa"); collapsePath("./a//", NULL, "a"); collapsePath("./a/.", NULL, "a"); collapsePath("./a/a", NULL, "a/a"); collapsePath("./a./", NULL, "a."); collapsePath("./a..", NULL, "a.."); collapsePath("./a.a", NULL, "a.a"); collapsePath("./aa/", NULL, "aa"); collapsePath("./aa.", NULL, "aa."); collapsePath("./aaa", NULL, "aaa"); collapsePath("..///", NULL, ".."); collapsePath("..//.", NULL, ".."); collapsePath("..//a", NULL, "../a"); collapsePath(".././", NULL, ".."); collapsePath("../..", NULL, "../.."); collapsePath("../.a", NULL, "../.a"); collapsePath("../a/", NULL, "../a"); collapsePath("../a.", NULL, "../a."); collapsePath("../aa", NULL, "../aa"); collapsePath("...//", NULL, "..."); collapsePath(".../.", NULL, "..."); collapsePath(".../a", NULL, ".../a"); collapsePath("..../", NULL, "...."); collapsePath(".....", NULL, "....."); collapsePath("....a", NULL, "....a"); collapsePath("...a/", NULL, "...a"); collapsePath("...a.", NULL, "...a."); collapsePath("...aa", NULL, "...aa"); collapsePath("..a//", NULL, "..a"); collapsePath("..a/.", NULL, "..a"); collapsePath("..a/a", NULL, "..a/a"); collapsePath("..a./", NULL, "..a."); collapsePath("..a..", NULL, "..a.."); collapsePath("..a.a", NULL, "..a.a"); collapsePath("..aa/", NULL, "..aa"); collapsePath("..aa.", NULL, "..aa."); collapsePath("..aaa", NULL, "..aaa"); collapsePath(".a///", NULL, ".a"); collapsePath(".a//.", NULL, ".a"); collapsePath(".a//a", NULL, ".a/a"); collapsePath(".a/./", NULL, ".a"); collapsePath(".a/..", NULL, ""); collapsePath(".a/.a", NULL, ".a/.a"); collapsePath(".a/a/", NULL, ".a/a"); collapsePath(".a/a.", NULL, ".a/a."); collapsePath(".a/aa", NULL, ".a/aa"); collapsePath(".a.//", NULL, ".a."); collapsePath(".a./.", NULL, ".a."); collapsePath(".a./a", NULL, ".a./a"); collapsePath(".a../", NULL, ".a.."); collapsePath(".a...", NULL, ".a..."); collapsePath(".a..a", NULL, ".a..a"); collapsePath(".a.a/", NULL, ".a.a"); collapsePath(".a.a.", NULL, ".a.a."); collapsePath(".a.aa", NULL, ".a.aa"); collapsePath(".aa//", NULL, ".aa"); collapsePath(".aa/.", NULL, ".aa"); collapsePath(".aa/a", NULL, ".aa/a"); collapsePath(".aa./", NULL, ".aa."); collapsePath(".aa..", NULL, ".aa.."); collapsePath(".aa.a", NULL, ".aa.a"); collapsePath(".aaa/", NULL, ".aaa"); collapsePath(".aaa.", NULL, ".aaa."); collapsePath(".aaaa", NULL, ".aaaa"); /***********/ collapsePath("a", NULL, "a"); collapsePath("a/", NULL, "a"); collapsePath("a.", NULL, "a."); collapsePath("aa", NULL, "aa"); collapsePath("a//", NULL, "a"); collapsePath("a/.", NULL, "a"); collapsePath("a/a", NULL, "a/a"); collapsePath("a./", NULL, "a."); collapsePath("a..", NULL, "a.."); collapsePath("a.a", NULL, "a.a"); collapsePath("aa/", NULL, "aa"); collapsePath("aa.", NULL, "aa."); collapsePath("aaa", NULL, "aaa"); collapsePath("a///", NULL, "a"); collapsePath("a//.", NULL, "a"); collapsePath("a//a", NULL, "a/a"); collapsePath("a/./", NULL, "a"); collapsePath("a/..", NULL, ""); collapsePath("a/.a", NULL, "a/.a"); collapsePath("a/a/", NULL, "a/a"); collapsePath("a/a.", NULL, "a/a."); collapsePath("a/aa", NULL, "a/aa"); collapsePath("a.//", NULL, "a."); collapsePath("a./.", NULL, "a."); collapsePath("a./a", NULL, "a./a"); collapsePath("a../", NULL, "a.."); collapsePath("a...", NULL, "a..."); collapsePath("a..a", NULL, "a..a"); collapsePath("a.a/", NULL, "a.a"); collapsePath("a.a.", NULL, "a.a."); collapsePath("a.aa", NULL, "a.aa"); collapsePath("aa//", NULL, "aa"); collapsePath("aa/.", NULL, "aa"); collapsePath("aa/a", NULL, "aa/a"); collapsePath("aa./", NULL, "aa."); collapsePath("aa..", NULL, "aa.."); collapsePath("aa.a", NULL, "aa.a"); collapsePath("aaa/", NULL, "aaa"); collapsePath("aaa.", NULL, "aaa."); collapsePath("aaaa", NULL, "aaaa"); collapsePath("a////", NULL, "a"); collapsePath("a///.", NULL, "a"); collapsePath("a///a", NULL, "a/a"); collapsePath("a//./", NULL, "a"); collapsePath("a//..", NULL, ""); collapsePath("a//.a", NULL, "a/.a"); collapsePath("a//a/", NULL, "a/a"); collapsePath("a//a.", NULL, "a/a."); collapsePath("a//aa", NULL, "a/aa"); collapsePath("a/.//", NULL, "a"); collapsePath("a/./.", NULL, "a"); collapsePath("a/./a", NULL, "a/a"); collapsePath("a/../", NULL, ""); collapsePath("a/...", NULL, "a/..."); collapsePath("a/..a", NULL, "a/..a"); collapsePath("a/.a/", NULL, "a/.a"); collapsePath("a/.a.", NULL, "a/.a."); collapsePath("a/.aa", NULL, "a/.aa"); collapsePath("a/a//", NULL, "a/a"); collapsePath("a/a/.", NULL, "a/a"); collapsePath("a/a/a", NULL, "a/a/a"); collapsePath("a/a./", NULL, "a/a."); collapsePath("a/a..", NULL, "a/a.."); collapsePath("a/a.a", NULL, "a/a.a"); collapsePath("a/aa/", NULL, "a/aa"); collapsePath("a/aa.", NULL, "a/aa."); collapsePath("a/aaa", NULL, "a/aaa"); collapsePath("a.///", NULL, "a."); collapsePath("a.//.", NULL, "a."); collapsePath("a.//a", NULL, "a./a"); collapsePath("a././", NULL, "a."); collapsePath("a./..", NULL, ""); collapsePath("a./.a", NULL, "a./.a"); collapsePath("a./a/", NULL, "a./a"); collapsePath("a./a.", NULL, "a./a."); collapsePath("a./aa", NULL, "a./aa"); collapsePath("a..//", NULL, "a.."); collapsePath("a../.", NULL, "a.."); collapsePath("a../a", NULL, "a../a"); collapsePath("a.../", NULL, "a..."); collapsePath("a....", NULL, "a...."); collapsePath("a...a", NULL, "a...a"); collapsePath("a..a/", NULL, "a..a"); collapsePath("a..a.", NULL, "a..a."); collapsePath("a..aa", NULL, "a..aa"); collapsePath("a.a//", NULL, "a.a"); collapsePath("a.a/.", NULL, "a.a"); collapsePath("a.a/a", NULL, "a.a/a"); collapsePath("a.a./", NULL, "a.a."); collapsePath("a.a..", NULL, "a.a.."); collapsePath("a.a.a", NULL, "a.a.a"); collapsePath("a.aa/", NULL, "a.aa"); collapsePath("a.aa.", NULL, "a.aa."); collapsePath("a.aaa", NULL, "a.aaa"); collapsePath("aa///", NULL, "aa"); collapsePath("aa//.", NULL, "aa"); collapsePath("aa//a", NULL, "aa/a"); collapsePath("aa/./", NULL, "aa"); collapsePath("aa/..", NULL, ""); collapsePath("aa/.a", NULL, "aa/.a"); collapsePath("aa/a/", NULL, "aa/a"); collapsePath("aa/a.", NULL, "aa/a."); collapsePath("aa/aa", NULL, "aa/aa"); collapsePath("aa.//", NULL, "aa."); collapsePath("aa./.", NULL, "aa."); collapsePath("aa./a", NULL, "aa./a"); collapsePath("aa../", NULL, "aa.."); collapsePath("aa...", NULL, "aa..."); collapsePath("aa..a", NULL, "aa..a"); collapsePath("aa.a/", NULL, "aa.a"); collapsePath("aa.a.", NULL, "aa.a."); collapsePath("aa.aa", NULL, "aa.aa"); collapsePath("aaa//", NULL, "aaa"); collapsePath("aaa/.", NULL, "aaa"); collapsePath("aaa/a", NULL, "aaa/a"); collapsePath("aaa./", NULL, "aaa."); collapsePath("aaa..", NULL, "aaa.."); collapsePath("aaa.a", NULL, "aaa.a"); collapsePath("aaaa/", NULL, "aaaa"); collapsePath("aaaa.", NULL, "aaaa."); collapsePath("aaaaa", NULL, "aaaaa"); collapsePath("//./.././././//./x/.../././/.///./../.", NULL, "/x"); collapsePath("../../a/../..", NULL, "../../.."); }