summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElie Roux <elie.roux@telecom-bretagne.eu>2013-06-09 10:21:58 +0200
committerElie Roux <elie.roux@telecom-bretagne.eu>2013-06-09 10:21:58 +0200
commitc4eb95663d8e14360fc564279757de46eeecdc6f (patch)
tree8a5c7b55edfe6ce5431b0f02c77c83b2f84aa9bf
parent8918b4798de4c6efdd0e24d0419f080496e5545e (diff)
downloadluatexbase-c4eb95663d8e14360fc564279757de46eeecdc6f.tar.gz
In simple callbacks, we stop on a false return
(so that we can truely disable hyphenation)
-rw-r--r--luatexbase-mcb.dtx14
1 files changed, 11 insertions, 3 deletions
diff --git a/luatexbase-mcb.dtx b/luatexbase-mcb.dtx
index 3740e06..6d23eb8 100644
--- a/luatexbase-mcb.dtx
+++ b/luatexbase-mcb.dtx
@@ -572,7 +572,7 @@ local function listhandler (name)
for _, f in ipairs(callbacklist[name]) do
ret = f.func(head, ...)
if ret == false then
- log("function '%s' returned false\nin callback '%s'",
+ log("function '%s' returned false in callback '%s'",
f.description, name)
break
end
@@ -611,14 +611,22 @@ local function firsthandler (name)
end
% \end{macrocode}
%
-% Handler for |simple| callbacks.
+% Handler for |simple| callbacks. If a function returns false, we return
+% this value, without going through other functions.
%
% \begin{macrocode}
local function simplehandler (name)
return function(...)
+ local ret = true
for _, f in ipairs(callbacklist[name]) do
- f.func(...)
+ ret = f.func(...)
+ if ret == false then
+ log("function '%s' returned false in callback '%s'",
+ f.description, name)
+ return false
+ end
end
+ return ret
end
end
% \end{macrocode}