diff options
Diffstat (limited to 'tex/context/base/mkiv/typo-dub.lua')
-rw-r--r-- | tex/context/base/mkiv/typo-dub.lua | 27 |
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 |