summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/toks-ini.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/toks-ini.lua')
-rw-r--r--tex/context/base/mkiv/toks-ini.lua34
1 files changed, 26 insertions, 8 deletions
diff --git a/tex/context/base/mkiv/toks-ini.lua b/tex/context/base/mkiv/toks-ini.lua
index 132605d38..0ce7b4836 100644
--- a/tex/context/base/mkiv/toks-ini.lua
+++ b/tex/context/base/mkiv/toks-ini.lua
@@ -68,7 +68,23 @@ local scan_csname = token.scan_csname
local get_next = token.get_next
+if not token.get_macro then
+ local scantoks = tex.scantoks
+ local gettoks = tex.gettoks
+ function token.get_meaning(name)
+ scantoks("t_get_macro",tex.ctxcatcodes,"\\"..name)
+ return gettoks("t_get_macro")
+ end
+ function token.get_macro(name)
+ scantoks("t_get_macro",tex.ctxcatcodes,"\\"..name)
+ local s = gettoks("t_get_macro")
+ return match(s,"^.-%->(.*)$") or s
+ end
+end
+
local set_macro = token.set_macro
+local get_macro = token.get_macro
+local get_meaning = token.get_meaning
local get_cmdname = token.get_cmdname
local create_token = token.create
@@ -238,14 +254,16 @@ tokens.scanners = { -- these expand
}
tokens.getters = { -- these don't expand
- token = get_next,
- count = tex.getcount,
- dimen = tex.getdimen,
- skip = tex.getglue,
- glue = tex.getglue,
- skip = tex.getmuglue,
- glue = tex.getmuglue,
- box = tex.getbox,
+ meaning = get_meaning,
+ macro = get_macro,
+ token = get_next,
+ count = tex.getcount,
+ dimen = tex.getdimen,
+ skip = tex.getglue,
+ glue = tex.getglue,
+ skip = tex.getmuglue,
+ glue = tex.getmuglue,
+ box = tex.getbox,
}
tokens.setters = {