summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/l-macro.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/l-macro.lua')
-rw-r--r--tex/context/base/mkiv/l-macro.lua8
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