Module:Wikitext Parsing: Difference between revisions
the Lua # operator recalculates the length every time it's accessed (including on every loop in a for), so cache its value in cheaptrim since the string isn't modified in-place
m (1 revision imported) |
(the Lua # operator recalculates the length every time it's accessed (including on every loop in a for), so cache its value in cheaptrim since the string isn't modified in-place) |
||
| Line 22: | Line 22: | ||
-- local out = string.gsub(str, "^%s*(.-)%s*$", "%1") | -- local out = string.gsub(str, "^%s*(.-)%s*$", "%1") | ||
local lowEnd | local lowEnd | ||
for i = 1, | local strlen = #str | ||
for i = 1,strlen do | |||
if not whitespace[string.sub(str, i, i)] then | if not whitespace[string.sub(str, i, i)] then | ||
lowEnd = i | lowEnd = i | ||
| Line 32: | Line 33: | ||
return "" | return "" | ||
end | end | ||
for i = | for i = strlen,1,-1 do | ||
if not whitespace[string.sub(str, i, i)] then | if not whitespace[string.sub(str, i, i)] then | ||
local out = string.sub(str, lowEnd, i) | local out = string.sub(str, lowEnd, i) | ||