Skip to content

Commit b9f2fe0

Browse files
committed
is_prefix: handle empty case
1 parent 93fe415 commit b9f2fe0

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

+stdlib/is_prefix.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
pr = stdlib.drop_slash(prefix);
1212
p = stdlib.drop_slash(pth);
1313

14-
s = startsWith(p, pr) && (stdlib.len(p) >= stdlib.len(pr));
14+
Lp = stdlib.len(p);
15+
16+
s = Lp && startsWith(p, pr) && (Lp >= stdlib.len(pr));
1517

1618
end
1719

test/TestIsSubdir.m

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
methods (Test)
1010

1111
function test_is_subdir(tc, p_is_subdir)
12-
tc.verifyEqual(stdlib.is_subdir(p_is_subdir{1}, p_is_subdir{2}), p_is_subdir{3}, "subdir(" + p_is_subdir{1} + "," + p_is_subdir{2} + ")")
12+
tc.verifyEqual(stdlib.is_subdir(p_is_subdir{1}, p_is_subdir{2}), p_is_subdir{3}, ...
13+
"subdir(" + p_is_subdir{1} + "," + p_is_subdir{2} + ")")
1314
end
1415

1516
function test_is_prefix(tc, p_is_prefix)
16-
tc.verifyEqual(stdlib.is_prefix(p_is_prefix{1}, p_is_prefix{2}), p_is_prefix{3}, "prefix(" + p_is_prefix{1} + "," + p_is_prefix{2} + ")")
17+
tc.verifyEqual(stdlib.is_prefix(p_is_prefix{1}, p_is_prefix{2}), p_is_prefix{3}, ...
18+
"prefix(" + p_is_prefix{1} + "," + p_is_prefix{2} + ")")
1719
end
1820

1921
end
@@ -31,7 +33,9 @@ function test_is_prefix(tc, p_is_prefix)
3133
{"a/b/c", "a/./b", false}, ...
3234
{"a/b", "a/b/", false}, ...
3335
{"a/b", "a", true}, ...
34-
{"a/.c", "a", true}
36+
{"a/.c", "a", true}, ...
37+
{"file:///", "file:///", false}, ...
38+
{"", "", false}, ...
3539
};
3640
% NOTE: ".." in is_subdir (either argument) is ambiguous
3741

@@ -50,5 +54,5 @@ function test_is_prefix(tc, p_is_prefix)
5054
p{6}{3} = true;
5155
p{7}{3} = false;
5256
p{8}{3} = false;
53-
p{9}{3} = true;
57+
p{11}{3} = true;
5458
end

0 commit comments

Comments
 (0)