aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-06-13 15:45:34 +0200
committerGitHub <noreply@github.com>2023-06-13 15:45:34 +0200
commitf99b70233e49db2229350bb82d9ddc6e2f4131c0 (patch)
tree6fe259fe17563f9c905333b489d265e277ff9c31 /lua
parentfix(async): always check channel state (#1351) (diff)
downloadmason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.tar
mason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.tar.gz
mason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.tar.bz2
mason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.tar.lz
mason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.tar.xz
mason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.tar.zst
mason-f99b70233e49db2229350bb82d9ddc6e2f4131c0.zip
fix(functional): strip_prefix and strip_suffix should not use patterns (#1352)
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/functional/string.lua22
1 files changed, 14 insertions, 8 deletions
diff --git a/lua/mason-core/functional/string.lua b/lua/mason-core/functional/string.lua
index e9e060f7..c641dcbc 100644
--- a/lua/mason-core/functional/string.lua
+++ b/lua/mason-core/functional/string.lua
@@ -108,21 +108,27 @@ _.trim_end_matches = fun.curryN(function(pattern, str)
end, 2)
_.strip_prefix = fun.curryN(function(prefix_pattern, str)
- local _, start = string.find(str, "^" .. prefix_pattern)
- if start then
- return str:sub(start + 1)
- else
+ if #prefix_pattern > #str then
return str
end
+ for i = 1, #prefix_pattern do
+ if str:sub(i, i) ~= prefix_pattern:sub(i, i) then
+ return str
+ end
+ end
+ return str:sub(#prefix_pattern + 1)
end, 2)
_.strip_suffix = fun.curryN(function(suffix_pattern, str)
- local stop = string.find(str, suffix_pattern .. "$")
- if stop then
- return str:sub(1, stop - 1)
- else
+ if #suffix_pattern > #str then
return str
end
+ for i = 1, #suffix_pattern do
+ if str:sub(-i, -i) ~= suffix_pattern:sub(-i, -i) then
+ return str
+ end
+ end
+ return str:sub(1, -#suffix_pattern - 1)
end, 2)
return _