summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-03-29 19:04:21 +0200
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-03-29 19:04:21 +0200
commitcdde5d9fde1a7df9e1582de4974c27951a2066bb (patch)
treee47ee8b165a148a152cbaa38e0e939d68436ea96
parentd57329fe7287453cfddbf1b4ad8df03c19283e59 (diff)
downloadluatexbase-cdde5d9fde1a7df9e1582de4974c27951a2066bb.tar.gz
Less globals in mcb.
-rw-r--r--luatexbase-mcb.dtx74
1 files changed, 44 insertions, 30 deletions
diff --git a/luatexbase-mcb.dtx b/luatexbase-mcb.dtx
index 5633e14..a055813 100644
--- a/luatexbase-mcb.dtx
+++ b/luatexbase-mcb.dtx
@@ -292,10 +292,13 @@ See source file '\inFileName' for details.
%
% \subsection{Lua module}
%
-% Module identification.
-%
% \begin{macrocode}
%<*lua>
+% \end{macrocode}
+%
+% \subsubsection{Module identification}
+%
+% \begin{macrocode}
module('luatexbase.mcb', package.seeall)
luatexbase.provides_module({
name = "luamcallbacks",
@@ -308,18 +311,37 @@ luatexbase.provides_module({
})
% \end{macrocode}
%
+% Shortcuts for error functions.
+%
+% \begin{macrocode}
+local log = log or function(...)
+ luatexbase.module_log('luamcallbacks', string.format(...))
+end
+local info = info or function(...)
+ luatexbase.module_info('luamcallbacks', string.format(...))
+end
+local warning = warning or function(...)
+ luatexbase.module_warning('luamcallbacks', string.format(...))
+end
+local err = err or function(...)
+ luatexbase.module_error('luamcallbacks', string.format(...))
+end
+% \end{macrocode}
+%
+% \subsubsection{Initialisations}
+%
% \texttt{callbacklist} is the main list, that contains the callbacks as
% keys and a table of the registered functions a values.
%
% \begin{macrocode}
-callbacklist = callbacklist or { }
+local callbacklist = callbacklist or { }
% \end{macrocode}
%
% A table with the default functions of the created callbacks. See
% \texttt{create} for further informations.
%
% \begin{macrocode}
-lua_callbacks_defaults = { }
+local lua_callbacks_defaults = { }
% \end{macrocode}
%
% There are 4 types of callback:
@@ -344,7 +366,7 @@ local simple = 4
% and the type (list or data) as values.
%
% \begin{macrocode}
-callbacktypes = callbacktypes or {
+local callbacktypes = callbacktypes or {
buildpage_filter = simple,
token_filter = first,
pre_output_filter = list,
@@ -406,31 +428,20 @@ end
% \end{macrocode}
%
% As we overwrite \texttt{callback.register}, we save it as
-% \texttt{internalregister}. After that we declare some
-% functions to write the errors or the logs.
+% \texttt{internalregister}.
%
% \begin{macrocode}
-internalregister = internalregister or callback.register
-log = log or function(...)
- luatexbase.module_log('luamcallbacks', string.format(...))
-end
-info = info or function(...)
- luatexbase.module_info('luamcallbacks', string.format(...))
-end
-warning = warning or function(...)
- luatexbase.module_warning('luamcallbacks', string.format(...))
-end
-err = err or function(...)
- luatexbase.module_error('luamcallbacks', string.format(...))
-end
+local internalregister = internalregister or callback.register
% \end{macrocode}
%
+% \subsubsection{Unsorted stuff}
+%
% A simple function we'll use later to understand the arguments of the
% \texttt{create} function. It takes a string and returns the type
% corresponding to the string or nil.
%
% \begin{macrocode}
-function str_to_type(str)
+local function str_to_type(str)
if str == 'list' then
return list
elseif str == 'data' then
@@ -457,7 +468,7 @@ end
% callback must also call it, see next function.
%
% \begin{macrocode}
-function create(name, ctype, default)
+local function create(name, ctype, default)
if not name then
err("unable to call callback, no proper name passed", name)
return nil
@@ -486,7 +497,7 @@ end
% the \texttt{create} function.
%
% \begin{macrocode}
-function call(name, ...)
+local function call(name, ...)
if not name then
err("unable to call callback, no proper name passed", name)
return nil
@@ -533,10 +544,10 @@ end
% Something that must be made clear, is that there is absolutely no
% solution for packages conflicts: if two packages want the top priority on
% a certain callback, they will have to decide the priority they will give
-% to their function themself. Most of the time, the priority is not needed.
+% to their function themselves. Most of the time, the priority is not needed.
%
% \begin{macrocode}
-function add (name,func,description,priority)
+local function add (name,func,description,priority)
if type(func) ~= "function" then
err("unable to add function, no proper function passed")
return
@@ -624,7 +635,7 @@ end
% \texttt{mcallbacks.add}.
%
% \begin{macrocode}
-function remove (name, description)
+local function remove (name, description)
if not name or name == "" then
err("unable to remove function, no proper callback name passed")
return
@@ -663,7 +674,7 @@ end
% This function removes all the functions registered in a callback.
%
% \begin{macrocode}
-function reset (name)
+local function reset (name)
if not name or name == "" then
err("unable to reset, no proper callback name passed")
return
@@ -687,6 +698,7 @@ end
% and return true, false, or a new list head.
%
% \begin{macrocode}
+-- local
function listhandler (name)
return function(head,...)
local l = callbacklist[name]
@@ -721,7 +733,7 @@ end
% The handler for callbacks taking datas and returning modified ones.
%
% \begin{macrocode}
-function datahandler (name)
+local function datahandler (name)
return function(data,...)
local l = callbacklist[name]
if l then
@@ -739,7 +751,7 @@ end
% list.
%
% \begin{macrocode}
-function firsthandler (name)
+local function firsthandler (name)
return function(...)
local l = callbacklist[name]
if l then
@@ -755,7 +767,7 @@ end
% Handler for simple functions that don't return anything.
%
% \begin{macrocode}
-function simplehandler (name)
+local function simplehandler (name)
return function(...)
local l = callbacklist[name]
if l then
@@ -784,6 +796,8 @@ err("function callback.register has been deleted by luamcallbacks, "
end
% \end{macrocode}
%
+% That's all folks!
+%
% \begin{macrocode}
%</lua>
% \end{macrocode}