diff --git a/generate b/generate index cec0f0a..bcf9bf2 100755 --- a/generate +++ b/generate @@ -119,7 +119,7 @@ end function applyEnv(str,env) for i,v in pairs(env) do - str = string.gsub(str,"%$%$" ..i.. "%$%$",v) + str = stringReplace(str,"$$" ..i.. "$$",v) end return str end @@ -187,10 +187,27 @@ end p = pathJoin function removeNewline(str) - str = string.gsub(str,"\n","") - str = string.gsub(str,"\r","") + str = stringReplace(str,"\n","") + str = stringReplace(str,"\r","") return str 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()