[ t ] [ "\\\\?\\c:" root-directory? ] unit-test
[ f ] [ "\\\\?\\c:\\bar" root-directory? ] unit-test
+[ "\\\\a\\b\\c\\foo.xls" ] [ "//a/b/c/foo.xls" normalize-path ] unit-test
+[ "\\\\a\\b\\c\\foo.xls" ] [ "\\\\a\\b\\c\\foo.xls" normalize-path ] unit-test
+
[ "\\foo\\bar" ] [ "/foo/bar" normalize-path ":" split1 nip ] unit-test
[ "\\\\?\\C:\\builds\\factor\\log.txt" ] [
TR: normalize-separators "/" "\\" ;
+<PRIVATE
+
+: unc-path? ( string -- ? )
+ [ "//" head? ] [ "\\\\" head? ] bi or ;
+
+PRIVATE>
+
M: winnt normalize-path ( string -- string' )
- dup [ "//" head? ] [ "\\\\" head? ] bi
- or [
+ dup unc-path? [
normalize-separators
] [
absolute-path