Skip to content

Commit 58c2d9f

Browse files
committed
canonical: default non-java
1 parent b8e4592 commit 58c2d9f

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

+stdlib/canonical.m

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
arguments
1919
p (1,1) string
2020
expand_tilde (1,1) logical = true
21-
use_java (1,1) logical = true
21+
use_java (1,1) logical = false
2222
end
2323

2424
if expand_tilde
@@ -33,15 +33,16 @@
3333
end
3434

3535
e = stdlib.exists(c);
36-
if ~e && ~stdlib.has_java
37-
% _canonicalizepath errors if path does not exist
38-
return
39-
end
4036

4137
if ~stdlib.is_absolute(c)
4238
if e
43-
% workaround Java/Matlab limitations
44-
c = stdlib.join(pwd, c);
39+
if ~expand_tilde && ~use_java && startsWith(c, "~")
40+
c = stdlib.normalize(c, use_java);
41+
return
42+
else
43+
% workaround Java/Matlab limitations
44+
c = stdlib.join(pwd, c);
45+
end
4546
else
4647
% for non-existing path, return normalized relative path
4748
% like C++ filesystem weakly_canonical()
@@ -50,12 +51,13 @@
5051
end
5152
end
5253

53-
if use_java && stdlib.has_java
54-
% we use has_java check because default is use_java
54+
if use_java
5555
c = java.io.File(c).getCanonicalPath();
56-
else
57-
% similar benchmark time as java method
56+
elseif e
57+
% errors if path does not exist. Errors on leading ~
5858
c = builtin('_canonicalizepath', c);
59+
else
60+
c = stdlib.normalize(c, use_java);
5961
end
6062

6163
c = stdlib.posix(c);

0 commit comments

Comments
 (0)