summaryrefslogtreecommitdiff
path: root/tex/generic/context/luatex/luatex-basics-nod.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-05-25 13:21:58 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-05-25 13:21:58 +0200
commit82aed3e7e8af29f359ebef4f93684d20e98107e6 (patch)
tree2b92c44d14566481aad5635f479b1b106d4e2347 /tex/generic/context/luatex/luatex-basics-nod.lua
parentaceba29d651766f5621b9812d4c40e28029bc4ea (diff)
downloadcontext-82aed3e7e8af29f359ebef4f93684d20e98107e6.tar.gz
2017-05-25 12:56:00
Diffstat (limited to 'tex/generic/context/luatex/luatex-basics-nod.lua')
-rw-r--r--tex/generic/context/luatex/luatex-basics-nod.lua38
1 files changed, 36 insertions, 2 deletions
diff --git a/tex/generic/context/luatex/luatex-basics-nod.lua b/tex/generic/context/luatex/luatex-basics-nod.lua
index 5571a82ba..c51473a4b 100644
--- a/tex/generic/context/luatex/luatex-basics-nod.lua
+++ b/tex/generic/context/luatex/luatex-basics-nod.lua
@@ -228,8 +228,8 @@ nuts.getcomponents = direct.getcomponents or function(n) return getfield(n,"co
nuts.setcomponents = direct.setcomponents or function(n,c) setfield(n,"components",c) end
nuts.getkern = direct.getkern or function(n) return getfield(n,"kern") end
nuts.setkern = direct.setkern or function(n,k) setfield(n,"kern",k) end
-nuts.getdir = direct.getkern or function(n) return getfield(n,"dir") end
-nuts.setdir = direct.setkern or function(n,d) setfield(n,"dir",d) end
+nuts.getdir = direct.getdir or function(n) return getfield(n,"dir") end
+nuts.setdir = direct.setdir or function(n,d) setfield(n,"dir",d) end
nuts.getwidth = direct.getwidth or function(n) return getfield(n,"width") end
nuts.setwidth = direct.setwidth or function(n,w) return setfield(n,"width",w) end
nuts.getheight = direct.getheight or function(n) return getfield(n,"height") end
@@ -462,3 +462,37 @@ function nuts.copy_only_glyphs(current)
end
return head
end
+
+nuts.uses_font = direct.uses_font
+
+if not nuts.uses_font then
+ local getdisc = nuts.getdisc
+ local getfont = nuts.getfont
+ function nuts.uses_font(n,font)
+ local pre, post, replace = getdisc(n)
+ if pre then
+ -- traverse_char
+ for n in traverse_id(glyph_code,pre) do
+ if getfont(n) == font then
+ return true
+ end
+ end
+ end
+ if post then
+ for n in traverse_id(glyph_code,post) do
+ if getfont(n) == font then
+ return true
+ end
+ end
+ end
+ if replace then
+ for n in traverse_id(glyph_code,replace) do
+ if getfont(n) == font then
+ return true
+ end
+ end
+ end
+ return false
+ end
+end
+