summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/typo-dub.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/typo-dub.lua')
-rw-r--r--tex/context/base/mkiv/typo-dub.lua27
1 files changed, 11 insertions, 16 deletions
diff --git a/tex/context/base/mkiv/typo-dub.lua b/tex/context/base/mkiv/typo-dub.lua
index 7ac339799..eea743c6d 100644
--- a/tex/context/base/mkiv/typo-dub.lua
+++ b/tex/context/base/mkiv/typo-dub.lua
@@ -57,7 +57,6 @@ local textclassdata = characters.textclasses
local nuts = nodes.nuts
local tonut = nuts.tonut
local tonode = nuts.tonode
-local nutstring = nuts.tostring
local getnext = nuts.getnext
local getid = nuts.getid
@@ -67,10 +66,13 @@ local getchar = nuts.getchar
local getattr = nuts.getattr
local getfield = nuts.getfield
local getprop = nuts.getprop
+local getdir = nuts.getdir
local setfield = nuts.setfield
local setprop = nuts.setprop
local setchar = nuts.setchar
+local setdir = nuts.setdir
+local setattrlist = nuts.setattrlist
local remove_node = nuts.remove
local insert_node_after = nuts.insert_after
@@ -98,12 +100,6 @@ local setcolor = directions.setcolor
local getfences = directions.getfences
local a_directions = attributes.private('directions')
-local a_textbidi = attributes.private('textbidi')
------ a_state = attributes.private('state')
-
------ s_isol = fonts.analyzers.states.isol
-
------ current[a_state] = s_isol -- maybe better have a special bidi attr value -> override (9) -> todo
local remove_controls = true directives.register("typesetters.directions.removecontrols",function(v) remove_controls = v end)
----- analyze_fences = true directives.register("typesetters.directions.analyzefences", function(v) analyze_fences = v end)
@@ -288,7 +284,7 @@ local function build_list(head) -- todo: store node pointer ... saves loop
list[size] = { char = 0x0020, direction = "ws", original = "ws", level = 0 }
current = getnext(current)
elseif id == dir_code then
- local dir = getfield(current,"dir")
+ local dir = getdir(current)
if dir == "+TLT" then
list[size] = { char = 0x202A, direction = "lre", original = "lre", level = 0 }
elseif dir == "+TRT" then
@@ -403,7 +399,7 @@ end
local function get_baselevel(head,list,size) -- todo: skip if first is object (or pass head and test for localpar)
local id = getid(head)
if id == localpar_code then
- if getfield(head,"dir") == "TRT" then
+ if getdir(head) == "TRT" then
return 1, "TRT", true
else
return 0, "TLT", true
@@ -901,13 +897,13 @@ local function apply_to_list(list,size,head,pardir)
setcolor(current,direction,false,mirror)
end
elseif id == hlist_code or id == vlist_code then
- setfield(current,"dir",pardir) -- is this really needed?
+ setdir(current,pardir) -- is this really needed?
elseif id == glue_code then
if enddir and getsubtype(current) == parfillskip_code then
-- insert the last enddir before \parfillskip glue
local d = new_textdir(enddir)
setprop(d,"directions",true)
- -- setfield(d,"attr",getfield(current,"attr"))
+ -- setattrlist(d,current)
head = insert_node_before(head,current,d)
enddir = false
done = true
@@ -917,17 +913,16 @@ local function apply_to_list(list,size,head,pardir)
-- localpar should always be the 1st node
local d = new_textdir(begindir)
setprop(d,"directions",true)
- -- setfield(d,"attr",getfield(current,"attr"))
+ -- setattrlist(d,current)
head, current = insert_node_after(head,current,d)
begindir = nil
done = true
end
- else
end
if begindir then
local d = new_textdir(begindir)
setprop(d,"directions",true)
- -- setfield(d,"attr",getfield(current,"attr"))
+ -- setattrlist(d,current)
head = insert_node_before(head,current,d)
done = true
end
@@ -941,7 +936,7 @@ local function apply_to_list(list,size,head,pardir)
if enddir then
local d = new_textdir(enddir)
setprop(d,"directions",true)
- -- setfield(d,"attr",getfield(current,"attr"))
+ -- setattrlist(d,current)
head, current = insert_node_after(head,current,d)
done = true
end
@@ -983,7 +978,7 @@ local function process(head)
report_directions("after : %s",show_list(list,size,"direction"))
report_directions("result : %s",show_done(list,size))
end
- head, done = apply_to_list(list,size,head,pardir)
+ local head, done = apply_to_list(list,size,head,pardir)
return tonode(head), done
end