diff options
author | Hans Hagen <pragma@wxs.nl> | 2020-11-23 19:48:34 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2020-11-23 19:48:34 +0100 |
commit | 18499e46a49b8ccf4346686d1cf626ada33935b8 (patch) | |
tree | bd0ae7b601b323e20954c10c07598637d9403e00 /tex/context/base/mkiv/node-gcm.lmt | |
parent | 4b089e589d39346a66a27d04f9857fe16e4b7b41 (diff) | |
download | context-18499e46a49b8ccf4346686d1cf626ada33935b8.tar.gz |
2020-11-23 18:39:00
Diffstat (limited to 'tex/context/base/mkiv/node-gcm.lmt')
-rw-r--r-- | tex/context/base/mkiv/node-gcm.lmt | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/tex/context/base/mkiv/node-gcm.lmt b/tex/context/base/mkiv/node-gcm.lmt deleted file mode 100644 index 8b09fb82b..000000000 --- a/tex/context/base/mkiv/node-gcm.lmt +++ /dev/null @@ -1,112 +0,0 @@ -if not modules then modules = { } end modules ['node-gmc'] = { - version = 1.001, - comment = "companion to node-ini.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local type, tostring = type, tostring - -local nodes = nodes -local ligature_code = nodes.glyphcodes.ligature -local nuts = nodes.nuts - -local getnext = nuts.getnext -local getsubtype = nuts.getsubtype -local copy_node = nuts.copy -local flush_list = nuts.flush_list -local count = nuts.count -local isglyph = nuts.isglyph -local getprop = nuts.getprop -local setprop = nuts.setprop - -local fastcopy = table.fastcopy - -local report_error = logs.reporter("node-aux:error") - -local function set_components(base,list) - local t = { } - local n = 0 - local l = list - while list do - local char = isglyph(list) - if char then - n = n + 1 - t[n] = char - end - list = getnext(list) - end - -- was forgotten: - flush_list(l) - -- - setprop(base,"components",n > 0 and t or false) -end - -local function get_components(base) - return getprop(base,"components") -end - -local function copy_no_components(base) - local copy = copy_node(base) - setprop(copy,"components",false) -- no metatable lookup! - return copy -end - -local function copy_only_glyphs(base) - local t = getprop(base,"components") -- also metatable - if t then - return fastcopy(t) - end -end - -local function do_count(t,marks) - local n = 0 - if t then - for i=1,#t do - local c = t[i] - if type(c) == "table" then - n = n + do_count(t,marks) - elseif not marks[c] then - n = n + 1 - else - --marks don't count - end - end - end - return n -end - --- start is a mark and we need to keep that one - -local done = false - -local function count_components(base,marks) - local char = isglyph(base) - if char then - if getsubtype(base) == ligature_code then - if not done then - logs.report("fonts","!") - logs.report("fonts","! check count_components with mkiv !") - logs.report("fonts","!") - done = true - end - local t = getprop(base,"components") - if t then - return do_count(t,marks) - end - elseif not marks[char] then - return 1 - end - end - return 0 -end - -nuts.set_components = set_components -nuts.get_components = get_components -nuts.copy_only_glyphs = copy_only_glyphs -nuts.copy_no_components = copy_no_components -nuts.count_components = count_components - -nuts.setcomponents = function() report_error("unsupported: %a","setcomponents") end -nuts.getcomponents = function() report_error("unsupported: %a","getcomponents") end |