diff options
Diffstat (limited to 'tex/context/base/mkxl/node-ref.lmt')
-rw-r--r-- | tex/context/base/mkxl/node-ref.lmt | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/tex/context/base/mkxl/node-ref.lmt b/tex/context/base/mkxl/node-ref.lmt index 583f979b2..98c600aa0 100644 --- a/tex/context/base/mkxl/node-ref.lmt +++ b/tex/context/base/mkxl/node-ref.lmt @@ -226,13 +226,13 @@ local inject_areas do end else if trace_areas then - report_area("dimensions taken of range starting with %a using parent",nodecodes[id]) + report_area("dimensions taken of range starting with %a using parent",nodecodes[getid(start)]) end return hlist_dimensions(start,stop,parent) end else if trace_areas then - report_area("dimensions taken of range starting with %a",nodecodes[id]) + report_area("dimensions taken of range starting with %a",nodecodes[getid(start)]) end return hlist_dimensions(start,stop) end @@ -313,17 +313,26 @@ local inject_areas do -- test \goto{\TeX}[page(2)] test \gotobox{\hbox {x} \hbox {x}}[page(2)] if r then if not reference then - reference, first, last, firstdir = r, current, current, txtdir + reference = r + first = current + last = current + firstdir = txtdir elseif r == reference then -- same link last = current elseif (done[reference] or 0) == 0 then if not skip or r > skip then -- maybe no > test head, current = inject_range(head,first,last,reference,parent,pardir,firstdir) - reference, first, last, firstdir = nil, nil, nil, nil + reference = nil + first = nil + last = nil + firstdir = nil end else - reference, first, last, firstdir = r, current, current, txtdir + reference = r + first = current + last = current + firstdir = txtdir end done[r] = (done[r] or 0) + 1 end @@ -355,7 +364,10 @@ local inject_areas do elseif subtype == rightskip_code or subtype == parfillskip_code then if reference and (done[reference] or 0) == 0 then head, current = inject_range(head,first,last,reference,parent,pardir,firstdir) - reference, first, last, firstdir = nil, nil, nil, nil + reference = nil + first = nil + last = nil + firstdir = nil end goto NEXT end @@ -365,16 +377,29 @@ local inject_areas do if not r then -- just go on, can be kerns elseif not reference then - reference, first, last, firstdir = r, current, current, txtdir + reference = r + first = current + last = current + firstdir = txtdir elseif r == reference then last = current elseif (done[reference] or 0) == 0 then -- or (id == glue_code and getsubtype(current) == right_skip_code) then if not skip or r > skip then -- maybe no > test head, current = inject_range(head,first,last,reference,parent,pardir,firstdir) - reference, first, last, firstdir = nil, nil, nil, nil + reference = nil + first = nil + last = nil + firstdir = nil + else +-- print("!!!!!!!!") end else - reference, first, last, firstdir = r, current, current, txtdir + -- todo: safeguard when we have a glyph or dics or ... so we might as well + -- then scan for all possibel content nodes + reference = r + first = current + last = current + firstdir = txtdir end end ::NEXT:: |