summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/lang-wrd.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2019-02-22 20:29:46 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2019-02-22 20:29:46 +0100
commit7b271baae19db1528fbe6621bdf50af89a5a336b (patch)
tree4fc24a8f2be20aa90e90f6e1bcb62d69f4946235 /tex/context/base/mkiv/lang-wrd.lua
parent67b9965fe473d18f13ed4c40f1e4e008eb870322 (diff)
downloadcontext-7b271baae19db1528fbe6621bdf50af89a5a336b.tar.gz
2019-02-22 19:43:00
Diffstat (limited to 'tex/context/base/mkiv/lang-wrd.lua')
-rw-r--r--tex/context/base/mkiv/lang-wrd.lua16
1 files changed, 7 insertions, 9 deletions
diff --git a/tex/context/base/mkiv/lang-wrd.lua b/tex/context/base/mkiv/lang-wrd.lua
index 7363dbb31..9fbced2ce 100644
--- a/tex/context/base/mkiv/lang-wrd.lua
+++ b/tex/context/base/mkiv/lang-wrd.lua
@@ -31,7 +31,6 @@ local numbers = languages.numbers
local registered = languages.registered
local nuts = nodes.nuts
-local tonut = nuts.tonut
----- getfield = nuts.getfield
local getnext = nuts.getnext
@@ -43,8 +42,8 @@ local setattr = nuts.setattr
local getlang = nuts.getlang
local ischar = nuts.ischar
-local traverse_nodes = nuts.traverse
------ traverse_ids = nuts.traverse_id
+local nextnode = nuts.traversers.node
+----- nextglyph = nuts.traversers.glyph
local wordsdata = words.data
local chardata = characters.data
@@ -145,14 +144,13 @@ end
-- there is an n=1 problem somewhere in nested boxes
local function mark_words(head,whenfound) -- can be optimized and shared
- local current, language, done = tonut(head), nil, nil, 0, false
+ local current, language = head, nil, nil, 0
local str, s, nds, n = { }, 0, { }, 0 -- n could also be a table, saves calls
local function action()
if s > 0 then
local word = concat(str,"",1,s)
local mark = whenfound(language,word)
if mark then
- done = true
for i=1,n do
mark(nds[i])
end
@@ -198,7 +196,7 @@ local function mark_words(head,whenfound) -- can be optimized and shared
-- n = n + 1
-- nds[n] = current
-- --
- -- for current in traverse_ids(glyph_code,r) do
+ -- for current in nextglyph, r do
-- local code = getchar(current)
-- n = n + 1
-- nds[n] = current
@@ -217,7 +215,7 @@ local function mark_words(head,whenfound) -- can be optimized and shared
if s > 0 then
action()
end
- return head, done
+ return head
end
local methods = { }
@@ -285,7 +283,7 @@ local function sweep(language,str)
end
methods[1] = function(head)
- for n in traverse_nodes(head) do
+ for n in nextnode, head do
setattr(n,a_color,unsetvalue) -- hm, not that selective (reset color)
end
return mark_words(head,sweep)
@@ -380,7 +378,7 @@ local function sweep(language,str)
end
methods[3] = function(head)
- for n in traverse_nodes(head) do
+ for n in nextnode, head do
setattr(n,a_color,unsetvalue)
end
return mark_words(head,sweep)