summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty')
-rw-r--r--Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty32
1 files changed, 23 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
index bc985aab9ab..8581588df51 100644
--- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
+++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
@@ -5,7 +5,7 @@
#1#2[#3]{\endgroup\immediate\write-1{Package: #1 #3}}
\fi
\ProvidesPackage{luatexbase}
-[2015/10/01 v1.0
+[2015/10/02 v1.1
luatexbase interface to LuaTeX
]
\edef\emuatcatcode{\the\catcode`\@}
@@ -62,15 +62,29 @@ function luatexbase.reset_callback(name,make_false)
end
luatexbase.base_add_to_callback=luatexbase.add_to_callback
function luatexbase.add_to_callback(name,fun,description,priority)
-if(luatexbase.callbacktypes[name] == 3 and
- priority == 1 and
- \string#luatexbase.callback_descriptions(name)==1) then
- luatexbase.module_warning("luatexbase",
- "resetting exclusive callback: " .. name)
- luatexbase.reset_callback(name)
-end
-return
+ local priority= priority
+ if priority==nil then
+ priority=\string#luatexbase.callback_descriptions(name)+1
+ end
+ if(luatexbase.callbacktypes[name] == 3 and
+ priority == 1 and
+ \string#luatexbase.callback_descriptions(name)==1) then
+ luatexbase.module_warning("luatexbase",
+ "resetting exclusive callback: " .. name)
+ luatexbase.reset_callback(name)
+ end
+ local saved_callback={},ff,dd
+ for k,v in pairs(luatexbase.callback_descriptions(name)) do
+ if k >= priority then
+ ff,dd= luatexbase.remove_from_callback(name, v)
+ saved_callback[k]={ff,dd}
+ end
+ end
luatexbase.base_add_to_callback(name,fun,description)
+ for k,v in pairs(saved_callback) do
+ luatexbase.base_add_to_callback(name,v[1],v[2])
+ end
+ return
end
luatexbase.catcodetables=setmetatable(
{['latex-package'] = \number\CatcodeTableLaTeXAtLetter,