Make string replacements not use gsub

This commit is contained in:
Fierelier 2024-06-11 09:36:56 +02:00
parent 113d44202e
commit 52ba6af283

View File

@ -119,7 +119,7 @@ end
function applyEnv(str,env) function applyEnv(str,env)
for i,v in pairs(env) do for i,v in pairs(env) do
str = string.gsub(str,"%$%$" ..i.. "%$%$",v) str = stringReplace(str,"$$" ..i.. "$$",v)
end end
return str return str
end end
@ -187,10 +187,27 @@ end
p = pathJoin p = pathJoin
function removeNewline(str) function removeNewline(str)
str = string.gsub(str,"\n","") str = stringReplace(str,"\n","")
str = string.gsub(str,"\r","") str = stringReplace(str,"\r","")
return str return str
end end
function stringReplace(originalString, pattern, replacement)
local result = ""
local patternLength = #pattern
local startIdx = 1
local foundIdx = originalString:find(pattern, startIdx, true)
while foundIdx do
result = result .. originalString:sub(startIdx, foundIdx - 1) .. replacement
startIdx = foundIdx + patternLength
foundIdx = originalString:find(pattern, startIdx, true)
end
result = result .. originalString:sub(startIdx)
return result
end
main() main()