Skip to content

Commit 2bcb6ea

Browse files
committed
symlink: don't coerce type
1 parent ca43cc0 commit 2bcb6ea

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed

+stdlib/filename.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
if isunix()
1818
pat = '[^/]*$';
1919
else
20-
pat = ['[^/\\]*$'];
20+
pat = '[^/\\]*$';
2121
end
2222

2323
m = regexp(p, pat, 'match', 'once');

+stdlib/is_symlink.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
ok = isSymbolicLink(p);
1212
catch e
1313
switch e.identifier
14-
case "MATLAB:UndefinedFunction", ok = java.nio.file.Files.isSymbolicLink(javaPathObject(stdlib.absolute(p, "", false)));
14+
case "MATLAB:UndefinedFunction", ok = java.nio.file.Files.isSymbolicLink(javaPathObject(stdlib.absolute(p, '', false)));
1515
case "Octave:undefined-function", ok = S_ISLNK(stat(p).mode);
1616
otherwise, rethrow(e)
1717
end

+stdlib/read_symlink.m

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,29 @@
1010

1111
try
1212
[ok, r] = isSymbolicLink(p);
13-
if ~ok, r = ""; end
13+
if ~ok, r = ''; end
1414
catch e
1515
switch e.identifier
1616
case "Octave:undefined-function", r = readlink(p);
1717
case "MATLAB:UndefinedFunction"
1818
if stdlib.is_symlink(p)
1919
% must be absolute path
2020
% must not be .canonical or symlink is gobbled!
21-
r = stdlib.absolute(p, "", false);
21+
r = stdlib.absolute(p, '', false);
2222

2323
% https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/file/Files.html#readSymbolicLink(java.nio.file.Path)
2424
r = java.nio.file.Files.readSymbolicLink(javaPathObject(r)).string;
2525
else
26-
r = "";
26+
r = '';
2727
end
2828
otherwise, rethrow(e)
2929
end
3030
end
3131

32+
if isstring(p)
33+
r = string(r);
34+
end
35+
3236
end
3337

3438
%!test

test/TestSymlink.m

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ function test_is_symlink(tc, p)
3737
function test_read_symlink(tc)
3838

3939
tc.verifyEqual(stdlib.read_symlink(""), "")
40-
tc.verifyEqual(stdlib.read_symlink("not-exist"), "")
40+
tc.verifyEqual(stdlib.read_symlink(''), '')
41+
tc.verifyEqual(stdlib.read_symlink(tempname), '')
4142
tc.verifyEqual(stdlib.read_symlink(tc.target), "")
4243

4344
t = stdlib.read_symlink(tc.link);
@@ -51,7 +52,7 @@ function test_read_symlink(tc)
5152
function test_create_symlink(tc)
5253
tc.applyFixture(matlab.unittest.fixtures.SuppressedWarningsFixture(["MATLAB:io:filesystem:symlink:TargetNotFound","MATLAB:io:filesystem:symlink:FileExists"]))
5354

54-
tc.verifyFalse(stdlib.create_symlink("", tempname()))
55+
tc.verifyFalse(stdlib.create_symlink('', tempname()))
5556
tc.verifyFalse(stdlib.create_symlink(tc.target, tc.link), "should fail for existing symlink")
5657

5758
ano = tc.tempDir + "/another.lnk";

0 commit comments

Comments
 (0)