You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
match of macro argument name happens inside the identifier sometimes #21
This diff takes care of the problem (although needs more testing, including here mostly for comments):
diff --git a/lcpp.lua b/lcpp.lua
index 9ac5088..4d1defb 100755
--- a/lcpp.lua+++ b/lcpp.lua@@ -1273,11 +1273,11 @@ local function parseFunction(state, input)
for argname in argsstr:gmatch(IDENTIFIER) do
noargs = noargs + 1
-- avoid matching substring of another identifier (eg. attrib matches __attribute__ and replace it)
- repl = repl:gsub("(#*)(%s*)("..argname..")([_%w]?)", function (s1, s2, s3, s4)- if #s4 <= 0 then+ repl = repl:gsub("(#*)(%s*)([_%w]?)("..argname..")([_%w]?)", function (s1, s2, s3, s4, s5)+ if (#s5 <= 0) and (#s3 <= 0) then
return (#s1 == 1) and ("\"$"..noargs.."\"") or (s1..s2.."$"..noargs)
else
- return s1..s2..s3..s4+ return s1..s2..s3..s4..s5
end
end)
end
Activity
ayourtch commentedon Aug 17, 2016
This diff takes care of the problem (although needs more testing, including here mostly for comments):
Fix match of macro argument happening within the identifier
Testcase for argument name match happening within the macro name
Fix argument name match happening within the macro name