diff options
Diffstat (limited to 'tex/context/base/mkiv/l-macro.lua')
-rw-r--r-- | tex/context/base/mkiv/l-macro.lua | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tex/context/base/mkiv/l-macro.lua b/tex/context/base/mkiv/l-macro.lua index a3a5bf4d9..24a3d07bc 100644 --- a/tex/context/base/mkiv/l-macro.lua +++ b/tex/context/base/mkiv/l-macro.lua @@ -19,8 +19,10 @@ local next, load, type = next, load, type local newline = S("\n\r")^1 local continue = P("\\") * newline +local whitespace = S(" \t\n\r") local spaces = S(" \t") + continue -local name = R("az","AZ","__","09")^1 +local nametoken = R("az","AZ","__","09") +local name = nametoken^1 local body = ((continue/"" + 1) - newline)^1 local lparent = P("(") local rparent = P(")") @@ -53,7 +55,9 @@ end -- todo: zero case -resolve = C(C(name) * arguments^-1) / function(raw,s,a) +local safeguard = P("local") * whitespace^1 * name * (whitespace + P("=")) + +resolve = safeguard + C(C(name) * (arguments^-1)) / function(raw,s,a) local d = definitions[s] if d then if a then |