diff options
Diffstat (limited to 'tex/context/base/mkiv/toks-ini.lua')
-rw-r--r-- | tex/context/base/mkiv/toks-ini.lua | 34 |
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 = { |