Lines Matching refs:filename

78             Temp = filename:join([Drive|":/"], "temp"),
85 [Drive|":/temp/foo"] = filename:absname(foo),
86 [Drive|":/temp/foo"] = filename:absname("foo"),
87 [Drive|":/temp/../ebin"] = filename:absname("../ebin"),
88 [Drive|":/erlang"] = filename:absname("/erlang"),
89 [Drive|":/erlang/src"] = filename:absname("/erlang/src"),
90 [Drive|":/erlang/src"] = filename:absname("\\erlang\\src"),
91 [Drive|":/temp/erlang"] = filename:absname([Drive|":erlang"]),
93 filename:absname([Drive|":erlang/src"]),
95 filename:absname([Drive|":erlang\\src\\"]),
96 "a:/erlang" = filename:absname("a:erlang"),
99 [Drive|":/foo"] = filename:absname(foo),
100 [Drive|":/foo"] = filename:absname("foo"),
101 [Drive|":/../ebin"] = filename:absname("../ebin"),
102 [Drive|":/erlang"] = filename:absname("/erlang"),
103 [Drive|":/erlang/src"] = filename:absname("/erlang/src"),
104 [Drive|":/erlang/src"] = filename:absname(["/erlang",'/src']),
105 [Drive|":/erlang/src"] = filename:absname("\\erlang\\\\src"),
106 [Drive|":/erlang"] = filename:absname([Drive|":erlang"]),
107 [Drive|":/erlang/src"] = filename:absname([Drive|":erlang/src"]),
108 "a:/erlang" = filename:absname("a:erlang"),
110 "//foo" = filename:absname("//foo"),
111 "//foo/bar" = filename:absname("//foo/bar"),
112 "//foo/\bar" = filename:absname("//foo/\bar"),
113 "//foo/bar/baz" = filename:absname("//foo/bar\\baz"),
114 "//foo/bar/baz" = filename:absname("//foo\\bar/baz"),
115 "//foo" = filename:absname("\\\\foo"),
116 "//foo/bar" = filename:absname("\\\\foo/bar"),
117 "//foo/\bar" = filename:absname("\\\\foo/\bar"),
118 "//foo/bar/baz" = filename:absname("\\\\foo/bar\\baz"),
119 "//foo/bar/baz" = filename:absname("\\\\foo\\bar/baz"),
125 "/usr/foo" = filename:absname(foo),
126 "/usr/foo" = filename:absname("foo"),
127 "/usr/../ebin" = filename:absname("../ebin"),
130 "/foo" = filename:absname(foo),
131 "/foo" = filename:absname("foo"),
132 "/../ebin" = filename:absname("../ebin"),
133 "/erlang" = filename:absname("/erlang"),
134 "/erlang/src" = filename:absname("/erlang/src"),
135 "/erlang/src" = filename:absname(["/erl",'ang/s',"rc"]),
136 "/erlang/src" = filename:absname(["/erl",'a','ng',"/",'s',"rc"]),
137 "/erlang/src" = filename:absname("/erlang///src"),
138 "/file_sorter.erl" = filename:absname([file_sorter|'.erl']),
149 [Drive|":/temp/foo"] = filename:absname(foo, [Drive|":/temp"]),
150 [Drive|":/temp/foo"] = filename:absname("foo", [Drive|":/temp"]),
151 [Drive|":/temp/../ebin"] = filename:absname("../ebin",
153 [Drive|":/erlang"] = filename:absname("/erlang", [Drive|":/temp"]),
154 [Drive|":/erlang/src"] = filename:absname("/erlang/src",
156 [Drive|":/erlang/src"] = filename:absname("\\erlang\\src",
158 [Drive|":/temp/erlang"] = filename:absname([Drive|":erlang"],
160 [Drive|":/temp/erlang/src"] = filename:absname([Drive|":erlang/src"],
163 filename:absname([Drive|":erlang\\src\\"], [Drive|":/temp"]),
164 "a:/erlang" = filename:absname("a:erlang", [Drive|":/temp"]),
167 [Drive|":/foo"] = filename:absname(foo, [Drive|":/"]),
168 [Drive|":/foo"] = filename:absname("foo", [Drive|":/"]),
169 [Drive|":/../ebin"] = filename:absname("../ebin", [Drive|":/"]),
170 [Drive|":/erlang"] = filename:absname("/erlang", [Drive|":/"]),
171 [Drive|":/erlang/src"] = filename:absname("/erlang/src",
173 [Drive|":/erlang/src"] = filename:absname("\\erlang\\\\src",
175 [Drive|":/erlang"] = filename:absname([Drive|":erlang"],
177 [Drive|":/erlang/src"] = filename:absname([Drive|":erlang/src"],
179 "a:/erlang" = filename:absname("a:erlang", [Drive|":/"]),
181 "//foo" = filename:absname("foo","//"),
182 "//foo/bar" = filename:absname("foo/bar", "//"),
183 "//foo/bar" = filename:absname("bar", "//foo"),
184 "//bar" = filename:absname("/bar", "//foo"),
185 "//foo/bar/baz" = filename:absname("bar/baz", "//foo"),
186 "//bar/baz" = filename:absname("//bar/baz", "//foo"),
187 "//\bar" = filename:absname("/\bar", "//foo"),
188 "//foo" = filename:absname("foo","\\\\"),
189 "//foo/bar" = filename:absname("foo/bar", "\\\\"),
190 "//foo/bar" = filename:absname("bar", "\\\\foo"),
191 "//bar" = filename:absname("/bar", "\\\\foo"),
192 "//foo/bar/baz" = filename:absname("bar/baz", "\\\\foo"),
193 "//bar/baz" = filename:absname("\\\\bar/baz", "\\\\foo"),
194 "//\bar" = filename:absname("/\bar", "\\\\foo"),
195 "//bar/baz" = filename:absname("\\\\bar/baz", "//foo"),
196 "//bar/baz" = filename:absname("//bar/baz", "\\\\foo"),
200 "/usr/foo" = filename:absname(foo, "/usr"),
201 "/usr/foo" = filename:absname("foo", "/usr"),
202 "/usr/../ebin" = filename:absname("../ebin", "/usr"),
204 "/foo" = filename:absname(foo, "/"),
205 "/foo" = filename:absname("foo", "/"),
206 "/../ebin" = filename:absname("../ebin", "/"),
207 "/erlang" = filename:absname("/erlang", "/"),
208 "/erlang/src" = filename:absname("/erlang/src", "/"),
209 "/erlang/src" = filename:absname("/erlang///src", "/"),
216 "." = filename:basename("."),
217 "foo" = filename:basename("foo"),
218 "foo" = filename:basename("/usr/foo"),
219 "foo.erl" = filename:basename("A:usr/foo.erl"),
220 "foo" = filename:basename('/usr/foo'),
221 "foo" = filename:basename(["/usr","/","f","o","o"]),
222 "foo" = filename:basename(["/usr/",foo]),
223 "foo" = filename:basename(["/usr/f",oo]),
224 "foo" = filename:basename(["usr/", "foo"]),
225 "foo" = filename:basename(["usr/"|foo]),
226 "foo" = filename:basename(["usr/foo/"]),
229 "foo" = filename:basename(["usr\\foo\\"]),
230 "foo" = filename:basename("A:\\usr\\foo"),
231 "foo" = filename:basename("A:foo");
234 filename:basename("strange\\but\\true")
239 "." = filename:basename(".", ".erl"),
240 "foo" = filename:basename("foo.erl", ".erl"),
241 "foo" = filename:basename('foo.erl', ".erl"),
242 "foo" = filename:basename("foo.erl", '.erl'),
243 "foo" = filename:basename(["/usr","/","f","oo"], ".erl"),
244 "foo.erl" = filename:basename("/usr/foo.erl", ".hrl"),
245 "foo.erl" = filename:basename("/usr.hrl/foo.erl", ".hrl"),
246 "foo" = filename:basename("/usr.hrl/foo", ".hrl"),
247 "foo" = filename:basename("usr/foo/", ".erl"),
248 "foo.erl" = filename:basename("usr/foo.erl/", ".erl"),
249 "foo.erl" = filename:basename("usr/foo.erl/", '.erl'),
250 "foo" = filename:basename(["/usr",'/','f','oo'], ".erl"),
251 "foo.erl" = filename:basename(["usr/foo.e",'rl/'], ".erl"),
254 "foo" = filename:basename("A:foo", ".erl"),
255 "foo.erl" = filename:basename("a:\\usr\\foo.erl", ".hrl"),
256 "foo.erl" = filename:basename("c:\\usr.hrl\\foo.erl", ".hrl"),
257 "foo" = filename:basename("A:\\usr\\foo", ".hrl");
260 filename:basename("strange\\but\\true.erl", ".erl"),
262 filename:basename("strange\\but\\true", ".erl")
271 "A:/usr" = filename:dirname("A:/usr/foo.erl"),
272 "A:usr" = filename:dirname("A:usr/foo.erl"),
273 "/usr" = filename:dirname("\\usr\\foo.erl"),
274 "/" = filename:dirname("\\usr"),
275 "//foo/bar" = filename:dirname("//foo/bar/baz.erl"),
276 "//foo/\bar" = filename:dirname("//foo/\bar/baz.erl"),
277 "//foo/bar" = filename:dirname("//foo\\bar/baz.erl"),
278 "//foo/bar" = filename:dirname("\\\\foo/bar/baz.erl"),
279 "//foo/\bar" = filename:dirname("\\\\foo/\bar/baz.erl"),
280 "//foo/bar" = filename:dirname("\\\\foo\\bar/baz.erl"),
281 "//foo" = filename:dirname("//foo/baz.erl"),
282 "//foo" = filename:dirname("//foo/\baz.erl"),
283 "//foo" = filename:dirname("//foo\\baz.erl"),
284 "//foo" = filename:dirname("\\\\foo/baz.erl"),
285 "//foo" = filename:dirname("\\\\foo/\baz.erl"),
286 "//foo" = filename:dirname("\\\\foo\\baz.erl"),
287 "A:" = filename:dirname("A:");
290 "usr" = filename:dirname("usr///foo.erl"),
291 "." = filename:dirname("foo.erl"),
292 "." = filename:dirname("."),
293 "usr" = filename:dirname('usr/foo.erl'),
294 "usr" = filename:dirname(['usr','/foo.erl']),
295 "usr" = filename:dirname(['us','r/foo.erl']),
296 "usr" = filename:dirname(['usr/','/foo.erl']),
297 "usr" = filename:dirname(['usr/','foo.erl']),
298 "usr" = filename:dirname(['usr/'|'foo.erl']),
299 "usr" = filename:dirname(['usr/f','oo.erl']),
300 "/" = filename:dirname("/"),
301 "/" = filename:dirname("/usr"),
308 ".erl" = filename:extension("A:/usr/foo.erl"),
309 ".erl" = filename:extension("A:/usr/foo.nisse.erl"),
310 ".erl" = filename:extension(["A:/usr/", 'foo.ni', "sse.erl"]),
311 ".erl" = filename:extension(["A:/usr/", 'foo.ni', "sse.e", 'rl']),
312 ".erl" = filename:extension(["A:/usr/", 'foo.ni', "sse.e"|'rl']),
313 ".erl" = filename:extension("A:/usr.bar/foo.nisse.erl"),
314 "" = filename:extension("A:/usr.bar/foo"),
315 "" = filename:extension("A:/usr/foo"),
318 "" = filename:extension("A:\\usr\\foo"),
319 ".erl" = filename:extension("A:/usr.bar/foo.nisse.erl"),
320 "" = filename:extension("A:/usr.bar/foo"),
331 "/" = filename:join(["/"]),
339 "a/b/c/d/e/f/g" = filename:join(["a//b/c/////d//e/f/g"]),
348 "/." = filename:join(["/."]),
349 "/" = filename:join(["/./"]),
350 "/." = filename:join(["/./."]),
351 "./." = filename:join(["./."]),
365 "/" = filename:join(["/"]),
366 "/" = filename:join(["/./"]),
367 "/a" = filename:join(["/a/"]),
373 "//" = filename:join(["//"]),
374 "d:/" = filename:join(["D:/"]),
375 "d:/" = filename:join(["D:\\"]),
378 "a/b/c/d/e/f/g" = filename:join(["a//b\\c//\\/\\d/\\e/f\\g"]),
379 "a:usr/foo.erl" = filename:join(["A:","usr","foo.erl"]),
380 "/usr/foo.erl" = filename:join(["A:","/usr","foo.erl"]),
384 "c:/usr/foo.erl" = filename:join(["A:","C:/usr","foo.erl"]),
385 "c:usr/foo.erl" = filename:join(["A:","C:usr","foo.erl"]),
386 "d:/foo" = filename:join([$D, $:, $/, []], "foo"),
387 "//" = filename:join("\\\\", ""),
388 "//foo" = filename:join("\\\\", "foo"),
389 "//foo/bar" = filename:join("\\\\", "foo\\\\bar"),
390 "//foo/bar/baz" = filename:join("\\\\foo", "bar\\\\baz"),
391 "//foo/bar/baz" = filename:join("\\\\foo", "bar\\baz"),
392 "//foo/bar/baz" = filename:join("\\\\foo\\bar", baz),
393 "//foo/\bar/baz" = filename:join("\\\\foo/\bar", baz),
394 "//foo/bar/baz" = filename:join("\\\\foo/bar", baz),
395 "//bar/baz" = filename:join("\\\\foo", "\\\\bar\\baz"),
396 "//bar/baz" = filename:join("\\\\foo", "//bar\\baz"),
397 "//bar/baz" = filename:join("\\\\foo", "//bar/baz"),
398 "//bar/baz" = filename:join("\\\\foo", "\\\\bar/baz"),
399 "//d/e/f/g" = filename:join("a//b/c", "//d//e/f/g"),
400 "//" = filename:join("//", ""),
401 "//foo" = filename:join("//", "foo"),
402 "//foo/bar" = filename:join("//", "foo\\\\bar"),
403 "//foo/bar/baz" = filename:join("//foo", "bar\\\\baz"),
404 "//foo/bar/baz" = filename:join("//foo", "bar\\baz"),
405 "//foo/bar/baz" = filename:join("//foo\\bar", baz),
406 "//foo/\bar/baz" = filename:join("//foo/\bar", baz),
407 "//foo/bar/baz" = filename:join("//foo/bar", baz),
408 "//bar/baz" = filename:join("//foo", "\\\\bar\\baz"),
409 "//bar/baz" = filename:join("//foo", "//bar\\baz"),
410 "//bar/baz" = filename:join("//foo", "//bar/baz"),
411 "//bar/baz" = filename:join("//foo", "\\\\bar/baz"),
414 "/" = filename:join(["//"]),
415 "/d/e/f/g" = filename:join("a//b/c", "//d//e/f/g"),
421 Res = filename:join(A,B),
422 Res = filename:join([A,B]).
425 relative = filename:pathtype(".."),
426 relative = filename:pathtype("foo"),
427 relative = filename:pathtype("foo/bar"),
428 relative = filename:pathtype('foo/bar'),
429 relative = filename:pathtype(['f','oo',"/bar"]),
432 volumerelative = filename:pathtype("/usr/local/bin"),
433 volumerelative = filename:pathtype("A:usr/local/bin"),
436 absolute = filename:pathtype("/"),
437 absolute = filename:pathtype("/usr/local/bin"),
442 "/jam.src/kalle" = filename:rootname("/jam.src/kalle"),
443 "/jam.src/foo" = filename:rootname("/jam.src/foo.erl"),
444 "/jam.src/foo" = filename:rootname(["/ja",'m.sr',"c/foo.erl"]),
445 "/jam.src/foo" = filename:rootname("/jam.src/foo.erl", ".erl"),
446 "/jam.src/foo.jam" = filename:rootname("/jam.src/foo.jam", ".erl"),
447 "/jam.src/foo.jam" = filename:rootname(["/jam.sr",'c/foo.j',"am"],".erl"),
448 "/jam.src/foo.jam" = filename:rootname(["/jam.sr",'c/foo.j'|am],".erl"),
452 ["/","usr","local","bin"] = filename:split("/usr/local/bin"),
453 ["foo","bar"]= filename:split("foo/bar"),
454 ["foo", "bar", "hello"]= filename:split("foo////bar//hello"),
455 ["foo", "bar", "hello"]= filename:split(["foo//",'//bar//h',"ello"]),
456 ["foo", "bar", "hello"]= filename:split(["foo//",'//bar//h'|ello]),
457 ["/"] = filename:split("/"),
458 [] = filename:split(""),
462 filename:split("a:/msdev/include"),
464 filename:split("A:/msdev/include"),
466 filename:split("msdev\\include"),
468 filename:split("a:\\msdev\\include"),
470 filename:split("a:msdev\\include"),
472 filename:split("\\\\foo"),
474 filename:split("//foo"),
476 filename:split("\\\\foo\\\\bar"),
478 filename:split("\\\\foo\\baz"),
480 filename:split("//foo\\baz"),
487 "abcedf" = filename:nativename(abcedf),
488 "abcedf" = filename:nativename(["abc", "edf"]),
489 "abcgluff" = filename:nativename(["abc", gluff]),
493 filename:nativename("A:/temp//arne.exe/");
496 filename:nativename("/usr/tmp//arne/")
500 {Source,_} = filename:find_src(file),
501 ["file"|_] = lists:reverse(filename:split(Source)),
502 {Source,_} = filename:find_src(file, [{"",""}, {"ebin","src"}]),
503 {Source,_} = filename:find_src(Source),
504 {Source,_} = filename:find_src(Source ++ ".erl"),
507 {error,{preloaded,init}} = filename:find_src(init),
515 SrcPath = filename:join(PrivDir, Src) ++ ".erl",
519 BeamPath = filename:join(PrivDir, Src),
520 {BeamPath,[]} = filename:find_src(simple)
536 Temp = filename:join([Drive|":/"], "temp"),
543 <<Drive:8,":/temp/foo">> = filename:absname(<<"foo">>),
544 <<Drive:8,":/temp/../ebin">> = filename:absname(<<"../ebin">>),
545 <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>),
546 <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>),
547 <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\src">>),
548 <<Drive:8,":/temp/erlang">> = filename:absname(<<Drive:8,":erlang">>),
550 filename:absname(<<Drive:8,":erlang/src">>),
552 filename:absname(<<Drive:8,":erlang\\src\\">>),
553 <<"a:/erlang">> = filename:absname(<<"a:erlang">>),
556 <<Drive:8,":/foo">> = filename:absname(<<"foo">>),
557 <<Drive:8,":/../ebin">> = filename:absname(<<"../ebin">>),
558 <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>),
559 <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>),
560 <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\\\src">>),
561 <<Drive:8,":/erlang">> = filename:absname(<<Drive:8,":erlang">>),
562 <<Drive:8,":/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>),
563 <<"a:/erlang">> = filename:absname(<<"a:erlang">>),
569 <<"/usr/foo">> = filename:absname(<<"foo">>),
570 <<"/usr/../ebin">> = filename:absname(<<"../ebin">>),
573 <<"/foo">> = filename:absname(<<"foo">>),
574 <<"/../ebin">> = filename:absname(<<"../ebin">>),
575 <<"/erlang">> = filename:absname(<<"/erlang">>),
576 <<"/erlang/src">> = filename:absname(<<"/erlang/src">>),
577 <<"/erlang/src">> = filename:absname(<<"/erlang///src">>),
588 <<Drive:8,":/temp/foo">> = filename:absname(<<"foo">>, <<Drive:8,":/temp">>),
589 <<Drive:8,":/temp/../ebin">> = filename:absname(<<"../ebin">>,
591 <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>, <<Drive:8,":/temp">>),
592 <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>,
594 <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\src">>,
596 <<Drive:8,":/temp/erlang">> = filename:absname(<<Drive:8,":erlang">>,
598 <<Drive:8,":/temp/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>,
601 filename:absname(<<Drive:8,":erlang\\src\\">>, <<Drive:8,":/temp">>),
602 <<"a:/erlang">> = filename:absname(<<"a:erlang">>, <<Drive:8,":/temp">>),
605 <<Drive:8,":/foo">> = filename:absname(foo, <<Drive:8,":/">>),
606 <<Drive:8,":/foo">> = filename:absname(<<"foo">>, <<Drive:8,":/">>),
607 <<Drive:8,":/../ebin">> = filename:absname(<<"../ebin">>, <<Drive:8,":/">>),
608 <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>, <<Drive:8,":/">>),
609 <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>,
611 <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\\\src">>,
613 <<Drive:8,":/erlang">> = filename:absname(<<Drive:8,":erlang">>,
615 <<Drive:8,":/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>,
617 <<"a:/erlang">> = filename:absname(<<"a:erlang">>, <<Drive:8,":/">>),
621 <<"/usr/foo">> = filename:absname(<<"foo">>, <<"/usr">>),
622 <<"/usr/../ebin">> = filename:absname(<<"../ebin">>, <<"/usr">>),
623 <<"/foo">> = filename:absname(<<"foo">>, <<"/">>),
624 <<"/../ebin">> = filename:absname(<<"../ebin">>, <<"/">>),
625 <<"/erlang">> = filename:absname(<<"/erlang">>, <<"/">>),
626 <<"/erlang/src">> = filename:absname(<<"/erlang/src">>, <<"/">>),
627 <<"/erlang/src">> = filename:absname(<<"/erlang///src">>, <<"/">>),
634 <<".">> = filename:basename(<<".">>),
635 <<"foo">> = filename:basename(<<"foo">>),
636 <<"foo">> = filename:basename(<<"/usr/foo">>),
637 <<"foo.erl">> = filename:basename(<<"A:usr/foo.erl">>),
640 <<"foo">> = filename:basename(<<"A:\\usr\\foo">>),
641 <<"foo">> = filename:basename(<<"A:foo">>);
643 <<"strange\\but\\true">> = filename:basename(<<"strange\\but\\true">>)
648 <<".">> = filename:basename(<<".">>, <<".erl">>),
649 <<"foo">> = filename:basename(<<"foo.erl">>, <<".erl">>),
650 <<"foo.erl">> = filename:basename(<<"/usr/foo.erl">>, <<".hrl">>),
651 <<"foo.erl">> = filename:basename(<<"/usr.hrl/foo.erl">>, <<".hrl">>),
652 <<"foo">> = filename:basename(<<"/usr.hrl/foo">>, <<".hrl">>),
653 <<"foo">> = filename:basename(<<"usr/foo/">>, <<".erl">>),
654 <<"foo.erl">> = filename:basename(<<"usr/foo.erl/">>, <<".erl">>),
657 <<"foo">> = filename:basename(<<"A:foo">>, <<".erl">>),
658 <<"foo.erl">> = filename:basename(<<"a:\\usr\\foo.erl">>, <<".hrl">>),
659 <<"foo.erl">> = filename:basename(<<"c:\\usr.hrl\\foo.erl">>, <<".hrl">>),
660 <<"foo">> = filename:basename(<<"A:\\usr\\foo">>, <<".hrl">>);
663 filename:basename(<<"strange\\but\\true.erl">>, <<".erl">>),
665 filename:basename(<<"strange\\but\\true">>, <<".erl">>)
674 <<"A:/usr">> = filename:dirname(<<"A:/usr/foo.erl">>),
675 <<"A:usr">> = filename:dirname(<<"A:usr/foo.erl">>),
676 <<"/usr">> = filename:dirname(<<"\\usr\\foo.erl">>),
677 <<"/">> = filename:dirname(<<"\\usr">>),
678 <<"A:">> = filename:dirname(<<"A:">>);
681 <<"usr">> = filename:dirname(<<"usr///foo.erl">>),
682 <<".">> = filename:dirname(<<"foo.erl">>),
683 <<".">> = filename:dirname(<<".">>),
684 <<"/">> = filename:dirname(<<"/">>),
685 <<"/">> = filename:dirname(<<"/usr">>),
691 <<".erl">> = filename:extension(<<"A:/usr/foo.erl">>),
692 <<".erl">> = filename:extension(<<"A:/usr/foo.nisse.erl">>),
693 <<".erl">> = filename:extension(<<"A:/usr.bar/foo.nisse.erl">>),
694 <<"">> = filename:extension(<<"A:/usr.bar/foo">>),
695 <<"">> = filename:extension(<<"A:/usr/foo">>),
698 <<"">> = filename:extension(<<"A:\\usr\\foo">>),
699 <<".erl">> = filename:extension(<<"A:/usr.bar/foo.nisse.erl">>),
700 <<"">> = filename:extension(<<"A:/usr.bar/foo">>),
708 <<"/">> = filename:join([<<"/">>]),
709 <<"usr/foo.erl">> = filename:join(<<"usr">>,<<"foo.erl">>),
710 <<"/src/foo.erl">> = filename:join(usr, <<"/src/foo.erl">>),
711 <<"/src/foo.erl">> = filename:join([<<"/src/">>,'foo.erl']),
712 <<"/src/foo.erl">> = filename:join(<<"usr">>, ["/sr", 'c/foo.erl']),
713 <<"/src/foo.erl">> = filename:join(<<"usr">>, <<"/src/foo.erl">>),
716 <<"a/b/c/d/e/f/g">> = filename:join([<<"a//b/c/////d//e/f/g">>]),
717 <<"a/b/c/d/e/f/g">> = filename:join([<<"a//b/c/">>, <<"d//e/f/g">>]),
718 <<"a/b/c/d/e/f/g">> = filename:join([<<"a//b/c">>, <<"d//e/f/g">>]),
719 <<"/d/e/f/g">> = filename:join([<<"a//b/c">>, <<"/d//e/f/g">>]),
721 <<"foo/bar">> = filename:join([$f,$o,$o,$/,[]], <<"bar">>),
726 <<"/.">> = filename:join([<<"/.">>]),
727 <<"/">> = filename:join([<<"/./">>]),
728 <<"/.">> = filename:join([<<"/./.">>]),
729 <<"./.">> = filename:join([<<"./.">>]),
731 <<"/a/b">> = filename:join([<<"/a/.">>,<<"b">>]),
732 <<"/a/b">> = filename:join(<<"/a/.">>,<<"b">>),
734 <<"/a/b/.">> = filename:join([<<"/a/.">>,<<"b/.">>]),
735 <<"/a/b/.">> = filename:join(<<"/a/.">>,<<"b/.">>),
737 <<"/a/.">> = filename:join([<<"/a/.">>,<<".">>]),
738 <<"/a/.">> = filename:join(<<"/a/.">>,<<".">>),
740 <<"/a/.">> = filename:join([<<"/a">>,<<".">>]),
741 <<"/a/.">> = filename:join(<<"/a">>,<<".">>),
743 <<"/a/.">> = filename:join([<<"/a/.">>,<<"">>]),
744 <<"/a/.">> = filename:join(<<"/a/.">>,<<"">>),
746 <<"./.">> = filename:join([<<"./.">>,<<".">>]),
747 <<"./.">> = filename:join(<<"./.">>,<<".">>),
749 <<"./.">> = filename:join([<<"./">>,<<".">>]),
750 <<"./.">> = filename:join(<<"./">>,<<".">>),
752 <<"./.">> = filename:join([<<"./.">>,<<"">>]),
753 <<"./.">> = filename:join(<<"./.">>,<<"">>),
755 <<".">> = filename:join([<<".">>,<<"">>]),
756 <<".">> = filename:join(<<".">>,<<"">>),
758 <<"./.">> = filename:join([<<".">>,<<".">>]),
759 <<"./.">> = filename:join(<<".">>,<<".">>),
762 <<"/">> = filename:join([<<"/">>]),
763 <<"/">> = filename:join([<<"/./">>]),
764 <<"/a">> = filename:join([<<"/a/">>]),
765 <<"/b">> = filename:join([<<"/a/">>,<<"/b/">>]),
766 <<"/b">> = filename:join(<<"/a/">>,<<"/b/">>),
767 <<"/a/b">> = filename:join([<<"/a/">>,<<"b/">>]),
768 <<"/a/b">> = filename:join(<<"/a/">>,<<"b/">>),
772 <<"//">> = filename:join([<<"//">>]),
773 <<"d:/">> = filename:join([<<"D:/">>]),
774 <<"d:/">> = filename:join([<<"D:\\">>]),
775 <<"d:/abc">> = filename:join([<<"D:/">>, <<"abc">>]),
776 <<"d:abc">> = filename:join([<<"D:">>, <<"abc">>]),
777 <<"a/b/c/d/e/f/g">> = filename:join([<<"a//b\\c//\\/\\d/\\e/f\\g">>]),
778 <<"a:usr/foo.erl">> = filename:join([<<"A:">>,<<"usr">>,<<"foo.erl">>]),
779 <<"/usr/foo.erl">> = filename:join([<<"A:">>,<<"/usr">>,<<"foo.erl">>]),
780 <<"c:usr">> = filename:join(<<"A:">>,<<"C:usr">>),
781 <<"a:usr">> = filename:join(<<"A:">>,<<"usr">>),
782 <<"c:/usr">> = filename:join(<<"A:">>, <<"C:/usr">>),
783 <<"c:/usr/foo.erl">> = filename:join([<<"A:">>,<<"C:/usr">>,<<"foo.erl">>]),
784 <<"c:usr/foo.erl">> = filename:join([<<"A:">>,<<"C:usr">>,<<"foo.erl">>]),
785 <<"d:/foo">> = filename:join([$D, $:, $/, []], <<"foo">>),
786 <<"//">> = filename:join(<<"\\\\">>, <<"">>),
787 <<"//foo">> = filename:join(<<"\\\\">>, <<"foo">>),
788 <<"//foo/bar">> = filename:join(<<"\\\\">>, <<"foo\\\\bar">>),
789 <<"//foo/bar/baz">> = filename:join(<<"\\\\foo">>, <<"bar\\\\baz">>),
790 <<"//bar/baz">> = filename:join(<<"\\\\foo">>, <<"\\\\bar\\baz">>),
791 <<"//foo/bar/baz">> = filename:join(<<"\\\\foo\\bar">>, baz),
792 <<"//foo/\bar/baz">> = filename:join(<<"\\\\foo/\bar">>, baz),
793 <<"//foo/bar/baz">> = filename:join(<<"\\\\foo/bar">>, baz),
794 <<"//bar/baz">> = filename:join(<<"\\\\foo">>, <<"\\\\bar\\baz">>),
795 <<"//bar/baz">> = filename:join(<<"\\\\foo">>, <<"//bar\\baz">>),
796 <<"//bar/baz">> = filename:join(<<"\\\\foo">>, <<"//bar/baz">>),
797 <<"//bar/baz">> = filename:join(<<"\\\\foo">>, <<"\\\\bar/baz">>),
798 <<"//d/e/f/g">> = filename:join([<<"a//b/c">>, <<"//d//e/f/g">>]),
799 <<"//">> = filename:join(<<"//">>, <<"">>),
800 <<"//foo">> = filename:join(<<"//">>, <<"foo">>),
801 <<"//foo/bar">> = filename:join(<<"//">>, <<"foo\\\\bar">>),
802 <<"//foo/bar/baz">> = filename:join(<<"//foo">>, <<"bar\\\\baz">>),
803 <<"//bar/baz">> = filename:join(<<"//foo">>, <<"\\\\bar\\baz">>),
804 <<"//foo/bar/baz">> = filename:join(<<"//foo\\bar">>, baz),
805 <<"//foo/\bar/baz">> = filename:join(<<"//foo/\bar">>, baz),
806 <<"//foo/bar/baz">> = filename:join(<<"//foo/bar">>, baz),
807 <<"//bar/baz">> = filename:join(<<"//foo">>, <<"\\\\bar\\baz">>),
808 <<"//bar/baz">> = filename:join(<<"//foo">>, <<"//bar\\baz">>),
809 <<"//bar/baz">> = filename:join(<<"//foo">>, <<"//bar/baz">>),
810 <<"//bar/baz">> = filename:join(<<"//foo">>, <<"\\\\bar/baz">>),
813 <<"/">> = filename:join([<<"//">>]),
814 <<"/d/e/f/g">> = filename:join([<<"a//b/c">>, <<"//d//e/f/g">>]),
819 relative = filename:pathtype(<<"..">>),
820 relative = filename:pathtype(<<"foo">>),
821 relative = filename:pathtype(<<"foo/bar">>),
822 relative = filename:pathtype('foo/bar'),
825 volumerelative = filename:pathtype(<<"/usr/local/bin">>),
826 volumerelative = filename:pathtype(<<"A:usr/local/bin">>),
829 absolute = filename:pathtype(<<"/">>),
830 absolute = filename:pathtype(<<"/usr/local/bin">>),
835 <<"/jam.src/kalle">> = filename:rootname(<<"/jam.src/kalle">>),
836 <<"/jam.src/foo">> = filename:rootname(<<"/jam.src/foo.erl">>),
837 <<"/jam.src/foo">> = filename:rootname(<<"/jam.src/foo.erl">>, <<".erl">>),
838 <<"/jam.src/foo.jam">> = filename:rootname(<<"/jam.src/foo.jam">>, <<".erl">>),
839 <<"/jam.src/foo.jam">> = filename:rootname(["/jam.sr",'c/foo.j',"am"],<<".erl">>),
840 <<"/jam.src/foo.jam">> = filename:rootname(["/jam.sr",'c/foo.j'|am],<<".erl">>),
844 [<<"/">>,<<"usr">>,<<"local">>,<<"bin">>] = filename:split(<<"/usr/local/bin">>),
845 [<<"foo">>,<<"bar">>]= filename:split(<<"foo/bar">>),
846 [<<"foo">>, <<"bar">>, <<"hello">>]= filename:split(<<"foo////bar//hello">>),
847 [<<"/">>] = filename:split(<<"/">>),
848 [] = filename:split(<<"">>),
852 filename:split(<<"a:/msdev/include">>),
854 filename:split(<<"A:/msdev/include">>),
856 filename:split(<<"msdev\\include">>),
858 filename:split(<<"a:\\msdev\\include">>),
860 filename:split(<<"a:msdev\\include">>),
862 filename:split(<<"\\\\foo">>),
864 filename:split(<<"//foo">>),
866 filename:split(<<"\\\\foo\\\\bar">>),
868 filename:split(<<"\\\\foo\\baz">>),
870 filename:split(<<"//foo\\baz">>),
877 <<"abcedf">> = filename:nativename(<<"abcedf">>),
881 filename:nativename(<<"A:/temp//arne.exe/">>);
884 filename:nativename(<<"/usr/tmp//arne/">>)
889 Root = filename:join(PrivDir, ?FUNCTION_NAME),
938 case filename:safe_relative_path(RelPath) of
955 true = is_list(filename:basedir(site_data, "My App")),
956 true = is_list(filename:basedir(site_config, "My App")),
957 true = is_list(filename:basedir(user_data, "My App")),
958 true = is_list(filename:basedir(user_log, "My App")),
959 true = is_list(filename:basedir(user_config, "My App")),
960 true = is_list(filename:basedir(user_cache, "My App")),
962 true = is_list(filename:basedir(site_data, <<"My App">>)),
963 true = is_list(filename:basedir(site_config, <<"My App">>)),
964 true = is_binary(filename:basedir(user_data, <<"My App">>)),
965 true = is_binary(filename:basedir(user_log, <<"My App">>)),
966 true = is_binary(filename:basedir(user_config, <<"My App">>)),
967 true = is_binary(filename:basedir(user_cache, <<"My App">>)),
976 true = is_list(filename:basedir(site_data, "My App", #{})),
977 true = is_list(filename:basedir(site_config, "My App", #{os=>linux})),
978 true = is_list(filename:basedir(user_data, "My App", #{os=>darwin})),
979 true = is_list(filename:basedir(user_log, "My App", #{os=>windows})),
980 true = is_list(filename:basedir(user_config, "My App",#{author=>"Erl"})),
981 true = is_list(filename:basedir(user_config, "My App",#{os=>darwin,
983 true = is_list(filename:basedir(user_config, "My App",#{os=>linux,
985 true = is_list(filename:basedir(user_cache, "My App",#{os=>windows,
987 true = is_list(filename:basedir(user_config, "My App",#{os=>darwin,
990 true = is_list(filename:basedir(user_config, "My App",#{os=>linux,
993 true = is_list(filename:basedir(user_cache, "My App",#{os=>windows,
996 true = is_binary(filename:basedir(user_config, "My App",#{os=>darwin,
999 true = is_binary(filename:basedir(user_config, "My App",#{os=>windows,
1002 true = is_binary(filename:basedir(user_cache, "My App",#{os=>linux,
1011 {'EXIT', _} = (catch filename:basedir(wrong_config, "My App")),
1012 {'EXIT', _} = (catch filename:basedir(user_cache, {bad,name})),
1013 {'EXIT', _} = (catch filename:basedir(user_cache, "My App", badopts)),
1014 {'EXIT', _} = (catch filename:basedir(user_cache, "My App", [])),
1045 filename:basedir(Type, Name, Opt)),
1048 filename:basedir(Type, Name, Opt#{author=>"Erl"})),
1051 filename:basedir(Type, Name, Opt#{version=>"1.0"})),
1054 filename:basedir(Type, Name, Opt#{author=>"Erl",
1059 BDR = lists:reverse(filename:split(Basedir)),
1088 user_log -> filename:join([NDir,Name,"log"]);
1089 site_data -> [filename:join([NDir,Name])];
1090 site_config -> [filename:join([NDir,Name])];
1091 _ -> filename:join([NDir,Name])
1094 ok = check_basedir(Type, DefPath, filename:basedir(Type, Name, Opt)),
1096 ok = check_basedir(Type, EnvPath, filename:basedir(Type, Name, Opt)),
1098 ok = check_basedir(Type, DefPath, filename:basedir(Type, Name, Opt)),
1118 user_data -> filename:join([Home,".local","share",Name]);
1119 user_config -> filename:join([Home,".config",Name]);
1120 user_cache -> filename:join([Home,".cache",Name]);
1121 user_log -> filename:join([Home,".cache",Name,"log"]);
1122 site_data -> [filename:join([Dir,Name]) ||
1124 site_config -> [filename:join(["/etc/xdg",Name])]