diff options
author | Hans Hagen <pragma@wxs.nl> | 2017-05-25 13:21:58 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2017-05-25 13:21:58 +0200 |
commit | 82aed3e7e8af29f359ebef4f93684d20e98107e6 (patch) | |
tree | 2b92c44d14566481aad5635f479b1b106d4e2347 /tex/generic/context/luatex/luatex-basics-nod.lua | |
parent | aceba29d651766f5621b9812d4c40e28029bc4ea (diff) | |
download | context-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.lua | 38 |
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 + |