summaryrefslogtreecommitdiff
path: root/src/luaotfload-basics-nod.lua
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2014-05-18 08:50:21 +0200
committerPhilipp Gesang <phg42.2a@gmail.com>2014-05-18 08:50:21 +0200
commitd7fc0762b087bcfae22823dc77844db89009a563 (patch)
tree289c9968c13d16ea195a705db1701b62a4731274 /src/luaotfload-basics-nod.lua
parentd435ea827827dcb4494ddff8583e5b15d27625b4 (diff)
downloadluaotfload-d7fc0762b087bcfae22823dc77844db89009a563.tar.gz
[fontloader] sync with Context as of 2014-05-18
Diffstat (limited to 'src/luaotfload-basics-nod.lua')
-rw-r--r--src/luaotfload-basics-nod.lua15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/luaotfload-basics-nod.lua b/src/luaotfload-basics-nod.lua
index 50a1e86..373dab5 100644
--- a/src/luaotfload-basics-nod.lua
+++ b/src/luaotfload-basics-nod.lua
@@ -54,22 +54,33 @@ nodes.handlers = { }
local nodecodes = { } for k,v in next, node.types () do nodecodes[string.gsub(v,"_","")] = k end
local whatcodes = { } for k,v in next, node.whatsits() do whatcodes[string.gsub(v,"_","")] = k end
local glyphcodes = { [0] = "character", "glyph", "ligature", "ghost", "left", "right" }
+local disccodes = { [0] = "discretionary", "explicit", "automatic", "regular", "first", "second" }
nodes.nodecodes = nodecodes
nodes.whatcodes = whatcodes
nodes.whatsitcodes = whatcodes
nodes.glyphcodes = glyphcodes
+nodes.disccodes = disccodes
local free_node = node.free
local remove_node = node.remove
local new_node = node.new
local traverse_id = node.traverse_id
-local math_code = nodecodes.math
-
nodes.handlers.protectglyphs = node.protect_glyphs
nodes.handlers.unprotectglyphs = node.unprotect_glyphs
+local math_code = nodecodes.math
+local end_of_math = node.end_of_math
+
+function node.end_of_math(n)
+ if n.id == math_code and n.subtype == 1 then
+ return n
+ else
+ return end_of_math(n)
+ end
+end
+
function nodes.remove(head, current, free_too)
local t = current
head, current = remove_node(head,current)