From 4222a7a7565a6cfce6e9acf98290d9e24b6d36a7 Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Mon, 10 Aug 2015 14:15:05 +0200 Subject: 2015-08-10 13:51:00 --- tex/context/base/attr-col.lua | 4 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4203 -> 4204 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/font-ots.lua | 5 ++- tex/context/base/font-pre.mkiv | 6 ++- tex/context/base/grph-inc.lua | 6 +-- tex/context/base/lang-dis.lua | 4 +- tex/context/base/mlib-pps.lua | 26 ++++++++---- tex/context/base/mult-low.lua | 1 + tex/context/base/node-fnt.lua | 33 +++++++++++++-- tex/context/base/page-ini.mkiv | 1 + tex/context/base/page-lin.lua | 2 +- tex/context/base/status-files.pdf | Bin 24452 -> 24444 bytes tex/context/base/status-lua.pdf | Bin 255443 -> 255469 bytes tex/context/base/strc-mat.mkiv | 2 +- tex/context/base/syst-aux.mkiv | 2 +- tex/context/base/syst-ini.mkiv | 1 + tex/context/base/tabl-xtb.lua | 8 ++-- tex/context/base/tabl-xtb.mkvi | 22 +++++++--- tex/context/base/task-ini.lua | 2 +- tex/context/base/typo-dha.lua | 29 ++++++++++--- tex/context/base/typo-dua.lua | 13 +++--- tex/context/base/typo-dub.lua | 45 ++++++++++----------- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 25 files changed, 145 insertions(+), 73 deletions(-) (limited to 'tex') diff --git a/tex/context/base/attr-col.lua b/tex/context/base/attr-col.lua index b5fac9c2d..6b11333a7 100644 --- a/tex/context/base/attr-col.lua +++ b/tex/context/base/attr-col.lua @@ -583,5 +583,5 @@ implement { name = "enabletransparency", onlyonce = true, actions = transparenci implement { name = "enablecolorintents", onlyonce = true, actions = colorintents.enable } --------- { name = "registercolor", actions = { colors .register, context }, arguments = "string" } ---------- { name = "registertransparency", actions = { transparencies.register, context }, arguments = { ... } } -implement { name = "registercolorintent", actions = { colorintents .register, context }, arguments = { ... } } +--------- { name = "registertransparency", actions = { transparencies.register, context }, arguments = "string" } +implement { name = "registercolorintent", actions = { colorintents .register, context }, arguments = "string" } diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index d8ad729c5..e3ad1e54b 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2015.08.05 16:35} +\newcontextversion{2015.08.10 13:49} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 929e9158d..d39ae1fe3 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index b749bbcbf..6613a54fa 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -39,7 +39,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2015.08.05 16:35} +\edef\contextversion{2015.08.10 13:49} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/font-ots.lua b/tex/context/base/font-ots.lua index 4b5c04dc2..1f6153e63 100644 --- a/tex/context/base/font-ots.lua +++ b/tex/context/base/font-ots.lua @@ -189,7 +189,7 @@ local localpar_code = whatcodes.localpar local discretionary_code = disccodes.discretionary local regular_code = disccodes.regular -local automatic_code = disccodes.automatic +----- automatic_code = disccodes.automatic local ligature_code = glyphcodes.ligature @@ -620,7 +620,8 @@ local function toligature(head,start,stop,char,dataset,sequence,markflag,discfou setfield(discfound,"subtype",discretionary_code) base = prev -- restart end - elseif discretionary_code == regular_code then + -- elseif discretionary_code == regular_code then -- ?? + elseif subtype == regular_code then -- local prev = getfield(base,"prev") -- local next = getfield(base,"next") local copied = copy_node_list(comp) diff --git a/tex/context/base/font-pre.mkiv b/tex/context/base/font-pre.mkiv index afc427183..c7625c932 100644 --- a/tex/context/base/font-pre.mkiv +++ b/tex/context/base/font-pre.mkiv @@ -668,9 +668,11 @@ %D don't want huge switches to the main bodyfont and style, so %D here too we use a direct method. -\let\infofont\relax % satisfy dep checker +\let\infofont \relax % satisfy dep checker +\let\infofontbold\relax % satisfy dep checker -\definefont[infofont][dejavusansmono at 6pt] % todo \the\everybodyfont +\definefont[infofont] [dejavusansmono at 6pt] % todo \the\everybodyfont +\definefont[infofontbold][dejavusansmonobold at 6pt] % todo \the\everybodyfont %D Optimization (later we overload in math): diff --git a/tex/context/base/grph-inc.lua b/tex/context/base/grph-inc.lua index 8a064c8e9..db8be818e 100644 --- a/tex/context/base/grph-inc.lua +++ b/tex/context/base/grph-inc.lua @@ -408,7 +408,7 @@ function figures.registerresource(t) return n end -local function register(tag,target,what) +local function register(tag,what,target) local data = figures_formats[target] -- resolver etc if not data then data = { } @@ -426,8 +426,8 @@ local function register(tag,target,what) setlookups() end -function figures.registersuffix (suffix, target) register('list', target,suffix ) end -function figures.registerpattern(pattern,target) register('pattern',target,pattern) end +function figures.registersuffix (suffix, target) register('list',suffix,target) end +function figures.registerpattern(pattern,target) register('pattern',pattern,target) end implement { name = "registerfiguresuffix", actions = register, arguments = { "'list'", "string", "string" } } implement { name = "registerfigurepattern", actions = register, arguments = { "'pattern'", "string", "string" } } diff --git a/tex/context/base/lang-dis.lua b/tex/context/base/lang-dis.lua index db19a0fc5..65863a20d 100644 --- a/tex/context/base/lang-dis.lua +++ b/tex/context/base/lang-dis.lua @@ -60,7 +60,7 @@ local expanders = { if post and getid(post) == glyph_code and getchar(post) <= 0 then setfield(d,"post",nil) end --- setfield(d,"subtype",discretionary_code) -- to be checked +setfield(d,"subtype",discretionary_code) -- to be checked return template end, [disccodes.automatic] = function(d,template) @@ -96,6 +96,8 @@ local expanders = { else -- print("lone regular discretionary ignored") end + else +setfield(d,"subtype",discretionary_code) end return template end, diff --git a/tex/context/base/mlib-pps.lua b/tex/context/base/mlib-pps.lua index 759149073..a14d6c409 100644 --- a/tex/context/base/mlib-pps.lua +++ b/tex/context/base/mlib-pps.lua @@ -960,7 +960,11 @@ local ctx_MPLIBsetNtext = context.MPLIBsetNtext local ctx_MPLIBsetCtext = context.MPLIBsetCtext local ctx_MPLIBsettext = context.MPLIBsettext -local function tx_analyze(object,prescript) -- todo: hash content and reuse them +-- we reuse content when possible +-- we always create at least one instance (for dimensions) +-- we make sure we don't do that when we use one (else counter issues with e.g. \definelabel) + +local function tx_analyze(object,prescript) local data = top.texdata[metapost.properties.number] local tx_stage = prescript.tx_stage if tx_stage == "trial" then @@ -979,7 +983,17 @@ local function tx_analyze(object,prescript) -- todo: hash content and reuse them local t = tonumber(prescript.tr_transparency) local h = fmt(tx_number,a or "-",t or "-",c or "-") local n = data.texhash[h] -- todo: hashed variant with s (nicer for similar labels) - if not n then + if n then + data.texslots[tx_trial] = n + if trace_textexts then + report_textexts("stage %a, usage %a, number %a, %s %a, hash %a, text %a",tx_stage,tx_trial,tx_number,"old",n,h,s) + end + elseif prescript.tx_global == "yes" and data.texorder[tx_number] then + -- we already have one flush and don't want it redone .. this needs checking + if trace_textexts then + report_textexts("stage %a, usage %a, number %a, %s %a, hash %a, text %a",tx_stage,tx_trial,tx_number,"ignored",tx_last,h,s) + end + else local tx_last = top.texlast + 1 top.texlast = tx_last -- report_textexts("tex string: %s",s) @@ -1008,15 +1022,11 @@ local function tx_analyze(object,prescript) -- todo: hash content and reuse them end top.multipass = true data.texhash [h] = tx_last + -- data.texhash [tx_number] = tx_last data.texslots[tx_trial] = tx_last data.texorder[tx_number] = tx_last if trace_textexts then - report_textexts("stage %a, usage %a, number %a, new %a, hash %a, text %a",tx_stage,tx_trial,tx_number,tx_last,h,s) - end - else - data.texslots[tx_trial] = n - if trace_textexts then - report_textexts("stage %a, usage %a, number %a, old %a, hash %a, text %a",tx_stage,tx_trial,tx_number,n,h,s) + report_textexts("stage %a, usage %a, number %a, %s %a, hash %a, text %a",tx_stage,tx_trial,tx_number,"new",tx_last,h,s) end end elseif tx_stage == "extra" then diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua index 90c45b493..a94f4a825 100644 --- a/tex/context/base/mult-low.lua +++ b/tex/context/base/mult-low.lua @@ -390,6 +390,7 @@ return { "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction","stopctxfunction","ctxfunction", "startctxfunctiondefinition","stopctxfunctiondefinition", "installctxfunction", + "cldprocessfile", "cldloadfile", "cldcontext", "cldcommand", -- "carryoverpar", -- diff --git a/tex/context/base/node-fnt.lua b/tex/context/base/node-fnt.lua index 336164c48..93b467f52 100644 --- a/tex/context/base/node-fnt.lua +++ b/tex/context/base/node-fnt.lua @@ -13,11 +13,11 @@ local concat, keys = table.concat, table.keys local nodes, node, fonts = nodes, node, fonts -local trace_characters = false trackers .register("nodes.characters", function(v) trace_characters = v end) -local trace_fontrun = false trackers .register("nodes.fontrun", function(v) trace_fontrun = v end) +local trace_characters = false trackers .register("nodes.characters", function(v) trace_characters = v end) +local trace_fontrun = false trackers .register("nodes.fontrun", function(v) trace_fontrun = v end) -local force_discrun = true directives.register("nodes.discrun", function(v) force_discrun = v end) -local force_basepass = true directives.register("nodes.basepass", function(v) force_basepass = v end) +local force_discrun = true directives.register("nodes.discrun", function(v) force_discrun = v end) +local force_basepass = true directives.register("nodes.basepass", function(v) force_basepass = v end) local report_fonts = logs.reporter("fonts","processing") @@ -126,6 +126,18 @@ fonts.hashes.processes = fontprocesses local ligaturing = node.ligaturing local kerning = node.kerning +local expanders + +function fonts.setdiscexpansion(v) + if v == nil or v == true then + expanders = languages and languages.expanders + elseif type(v) == "table" then + expanders = v + else + expanders = false + end +end + function handlers.characters(head) -- either next or not, but definitely no already processed list starttiming(nodes) @@ -239,6 +251,8 @@ function handlers.characters(head) -- could be an optional pass : seldom needed, only for documentation as a discretionary -- with pre/post/replace will normally not occur on it's own + local e = 0 + if force_discrun then -- basefont is not supported in disc only runs ... it would mean a lot of @@ -286,6 +300,14 @@ function handlers.characters(head) end break end + elseif expanders then + local subtype = getsubtype(d) + if subtype == discretionary_code then + -- already done when replace + else + expanders[subtype](d) + e = e + 1 + end end end @@ -296,6 +318,9 @@ function handlers.characters(head) report_fonts("statics : %s",u > 0 and concat(keys(usedfonts)," ") or "none") report_fonts("dynamics: %s",a > 0 and concat(keys(attrfonts)," ") or "none") report_fonts("built-in: %s",b > 0 and b or "none") + if expanders then + report_fonts("expanded: %s",e > 0 and e or "none") + end report_fonts() end -- in context we always have at least 2 processors diff --git a/tex/context/base/page-ini.mkiv b/tex/context/base/page-ini.mkiv index 15783a99b..609757488 100644 --- a/tex/context/base/page-ini.mkiv +++ b/tex/context/base/page-ini.mkiv @@ -227,6 +227,7 @@ \the\beforeeverypage \normalexpanded{\global\beforepage\emptytoks\the\beforepage}% \inpagebodytrue + \pagebodymode\plusone % todo: \plustwo when spread \page_boxes_constructed_page_body#1#2% \normalexpanded{\global\afterpage \emptytoks\the\afterpage }% \the\aftereverypage diff --git a/tex/context/base/page-lin.lua b/tex/context/base/page-lin.lua index 8cbc350f9..d129e6694 100644 --- a/tex/context/base/page-lin.lua +++ b/tex/context/base/page-lin.lua @@ -266,7 +266,7 @@ local function identify(list) end end -function boxed.stage_zero(n) +function boxed.stage_zero(n) -- not used return identify(getlist(getbox(n))) end diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 1f5cee307..c12e9102d 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index adce78aad..b98019d2b 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-mat.mkiv b/tex/context/base/strc-mat.mkiv index 225531fa8..7d1cbf767 100644 --- a/tex/context/base/strc-mat.mkiv +++ b/tex/context/base/strc-mat.mkiv @@ -420,7 +420,7 @@ % subcounter \ifconditional\c_strc_formulas_inside_formulas_sub \ifcase\c_strc_formulas_sub_number_mode - % nothing + \strc_formulas_handle_sub_numbering % was nothing \or \strc_formulas_handle_sub_numbering \or diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv index bd9b1630e..8a9782cf1 100644 --- a/tex/context/base/syst-aux.mkiv +++ b/tex/context/base/syst-aux.mkiv @@ -594,7 +594,7 @@ %D \ifundefined\NameB ... \else ... \fi %D \stoptyping -\suppressifcsnameerror\plusone +% \suppressifcsnameerror\plusone % already set \def\doifelseundefined#1% {\ifcsname#1\endcsname diff --git a/tex/context/base/syst-ini.mkiv b/tex/context/base/syst-ini.mkiv index dc5fddb63..67cc389a2 100644 --- a/tex/context/base/syst-ini.mkiv +++ b/tex/context/base/syst-ini.mkiv @@ -1094,6 +1094,7 @@ \suppresslongerror \plusone \suppressoutererror \plusone \suppressmathparerror \plusone +\suppressifcsnameerror\plusone \ifdefined\matheqnogapstep % for now \matheqnogapstep \zerocount diff --git a/tex/context/base/tabl-xtb.lua b/tex/context/base/tabl-xtb.lua index 4bf8e3107..29ee06259 100644 --- a/tex/context/base/tabl-xtb.lua +++ b/tex/context/base/tabl-xtb.lua @@ -573,11 +573,13 @@ function xtables.reflow_width() widths[c] = fixedwidth width = width + fixedwidth else - width = width + widths[c] - if width > maxwidth then + local wc = widths[c] + width = width + wc + -- if width > maxwidth then + if wc > maxwidth then -- per 2015-08-09 autowidths[c] = true nofwide = nofwide + 1 - widetotal = widetotal + widths[c] + widetotal = widetotal + wc end end if c < nofcolumns then diff --git a/tex/context/base/tabl-xtb.mkvi b/tex/context/base/tabl-xtb.mkvi index 73ba91045..06a5318e1 100644 --- a/tex/context/base/tabl-xtb.mkvi +++ b/tex/context/base/tabl-xtb.mkvi @@ -718,6 +718,19 @@ \letvalue{\??xtablecheck\currentxtable}\relax % faster than checking parent \to \everysetupxtable +% \definefontfamily[newtimes][serif][TeX Gyre Termes] +% \setupxtable[newtimes][foregroundstyle=\newtimes] +% \startxcell[newtimes] ...\stopxcell +% \startxcell[foregroundstyle=\newtimes] ...\stopxcell + +% % \ifcsname\namedxtablehash{#tag}\s!parent\endcsname +% % \ifcsname\??xtablecheck#tag\endcsname +% \ifcsname\??xtablecheck\detokenize\expandafter{\normalexpanded{#tag}}\endcsname % two times slower on keywords +% \expandafter\whatever % but more tolerant for tricky key=value +% \else +% \expandafter\whatever +% \fi[#tag] + % groups \unexpanded\def\startxgroup @@ -728,8 +741,7 @@ {\endgroup} \unexpanded\def\tabl_x_start_group_delayed_one[#tag]% -% {\ifcsname\namedxtablehash{#tag}\s!parent\endcsname - {\ifcsname\??xtablecheck#tag\endcsname + {\ifcsname\??xtablecheck\detokenize\expandafter{\normalexpanded{#tag}}\endcsname \expandafter\tabl_x_start_group_delayed_two \else \expandafter\setupcurrentxtable @@ -754,8 +766,7 @@ \doifelsenextoptionalcs\tabl_x_start_cell_delayed_one\tabl_x_start_cell_nop} \unexpanded\def\tabl_x_start_cell_delayed_one[#tag]% -% {\ifcsname\namedxtablehash{#tag}\s!parent\endcsname - {\ifcsname\??xtablecheck#tag\endcsname + {\ifcsname\??xtablecheck\detokenize\expandafter{\normalexpanded{#tag}}\endcsname \expandafter\tabl_x_start_cell_delayed_two \else \expandafter\tabl_x_start_cell_yes @@ -779,8 +790,7 @@ \doifelsenextoptionalcs\tabl_x_start_row_delayed_one\tabl_x_start_row_nop} \unexpanded\def\tabl_x_start_row_delayed_one[#tag]% -% {\ifcsname\namedxtablehash{#tag}\s!parent\endcsname - {\ifcsname\??xtablecheck#tag\endcsname + {\ifcsname\??xtablecheck\detokenize\expandafter{\normalexpanded{#tag}}\endcsname \expandafter\tabl_x_start_row_delayed_two \else \expandafter\tabl_x_start_row_yes diff --git a/tex/context/base/task-ini.lua b/tex/context/base/task-ini.lua index 958867e94..986044c6e 100644 --- a/tex/context/base/task-ini.lua +++ b/tex/context/base/task-ini.lua @@ -199,7 +199,7 @@ disableaction("math", "noads.handlers.classes") disableaction("math", "noads.handlers.autofences") disableaction("math", "typesetters.directions.processmath") -disableaction("mvlbuilders", "typesetters.margins.globalhandler") +disableaction("mvlbuilders", "typesetters.margins.globalhandler") disableaction("mvlbuilders", "nodes.handlers.migrate") disableaction("mvlbuilders", "typesetters.checkers.handler") disableaction("mvlbuilders", "builders.profiling.pagehandler") diff --git a/tex/context/base/typo-dha.lua b/tex/context/base/typo-dha.lua index 8db35792f..e52751028 100644 --- a/tex/context/base/typo-dha.lua +++ b/tex/context/base/typo-dha.lua @@ -31,14 +31,11 @@ if not modules then modules = { } end modules ['typo-dha'] = { -- elseif d == "ws" then -- Whitespace -- elseif d == "on" then -- Other Neutrals --- todo : delayed inserts here --- todo : get rid of local functions here -- beware: math adds whatsits afterwards so that will mess things up -- todo : use new dir functions -- todo : make faster -- todo : move dir info into nodes -- todo : swappable tables and floats i.e. start-end overloads (probably loop in builders) --- todo : check if we still have crashes in luatex when non-matched (used to be the case) -- I removed the original tracing code and now use the colorful one. If I ever want to change -- something I will just inject prints for tracing. @@ -239,6 +236,8 @@ local function process(start) setprop(current,"direction","l") mirror = false end + else + setprop(current,"direction",true) end if trace_directions then setcolor(current,direction,false,mirror) @@ -268,7 +267,7 @@ local function process(start) if trace_directions then setcolor(current,"l") -- was r end - setprop(current,"direction","l") -- was r + setprop(current,"direction","n") -- was r elseif direction == "lro" then -- Left-to-Right Override -> right becomes left top = top + 1 stack[top] = { override, embedded } @@ -303,6 +302,8 @@ local function process(start) elseif trace_directions then setcolor(current) setprop(current,"direction",true) + else + setprop(current,"direction",true) end end else @@ -378,7 +379,25 @@ local function process(start) current = getnext(end_of_math(getnext(current))) else local cp = getprop(current,"direction") - if cp == "l" then + if cp == "n" then + local swap = state == "r" + if swap then + head = insert_node_before(head,current,startdir("TLT")) + end + setprop(current,"direction",true) + while true do + local n = getnext(current) + if n and getprop(n,"direction") == "n" then + current = n + setprop(current,"direction",true) + else + break + end + end + if swap then + head, current = insert_node_after(head,current,stopdir("TLT")) + end + elseif cp == "l" then if state ~= "l" then if state == "r" then head = insert_node_before(head,last or current,stopdir("TRT")) diff --git a/tex/context/base/typo-dua.lua b/tex/context/base/typo-dua.lua index 8a6515322..635ea6146 100644 --- a/tex/context/base/typo-dua.lua +++ b/tex/context/base/typo-dua.lua @@ -737,7 +737,7 @@ local function apply_to_list(list,size,head,pardir) local entry = list[index] local begindir = entry.begindir local enddir = entry.enddir -setprop(current,"directions",true) + setprop(current,"directions",true) if id == glyph_code then local mirror = entry.mirror if mirror then @@ -745,7 +745,6 @@ setprop(current,"directions",true) end if trace_directions then local direction = entry.direction --- setcolor(current,direction,direction ~= entry.original,mirror) setcolor(current,direction,false,mirror) end elseif id == hlist_code or id == vlist_code then @@ -754,7 +753,7 @@ setprop(current,"directions",true) if enddir and getsubtype(current) == parfillskip_code then -- insert the last enddir before \parfillskip glue local d = new_textdir(enddir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head = insert_node_before(head,current,d) enddir = false @@ -764,7 +763,7 @@ setprop(d,"directions",true) if begindir and getsubtype(current) == localpar_code then -- local_par should always be the 1st node local d = new_textdir(begindir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head, current = insert_node_after(head,current,d) begindir = nil @@ -773,7 +772,7 @@ setprop(d,"directions",true) end if begindir then local d = new_textdir(begindir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head = insert_node_before(head,current,d) done = true @@ -782,12 +781,12 @@ setprop(d,"directions",true) if skip and skip > 0 then for i=1,skip do current = getnext(current) -setprop(current,"directions",true) + setprop(current,"directions",true) end end if enddir then local d = new_textdir(enddir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head, current = insert_node_after(head,current,d) done = true diff --git a/tex/context/base/typo-dub.lua b/tex/context/base/typo-dub.lua index fb7e94f7e..0f23f0b20 100644 --- a/tex/context/base/typo-dub.lua +++ b/tex/context/base/typo-dub.lua @@ -841,9 +841,9 @@ local function apply_to_list(list,size,head,pardir) local index = 1 local current = head local done = false -if trace_list then - report_directions("start run") -end + if trace_list then + report_directions("start run") + end while current do if index > size then report_directions("fatal error, size mismatch") @@ -853,7 +853,7 @@ end local entry = list[index] local begindir = entry.begindir local enddir = entry.enddir -setprop(current,"directions",true) + setprop(current,"directions",true) if id == glyph_code then local mirror = entry.mirror if mirror then @@ -861,16 +861,16 @@ setprop(current,"directions",true) end if trace_directions then local direction = entry.direction -if trace_list then - local original = entry.original - local char = entry.char - local level = entry.level - if direction == original then - report_directions("%2i : %C : %s",level,char,direction) - else - report_directions("%2i : %C : %s -> %s",level,char,original,direction) - end -end + if trace_list then + local original = entry.original + local char = entry.char + local level = entry.level + if direction == original then + report_directions("%2i : %C : %s",level,char,direction) + else + report_directions("%2i : %C : %s -> %s",level,char,original,direction) + end + end setcolor(current,direction,false,mirror) end elseif id == hlist_code or id == vlist_code then @@ -879,7 +879,7 @@ end if enddir and getsubtype(current) == parfillskip_code then -- insert the last enddir before \parfillskip glue local d = new_textdir(enddir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head = insert_node_before(head,current,d) enddir = false @@ -889,18 +889,17 @@ setprop(d,"directions",true) if begindir and getsubtype(current) == localpar_code then -- local_par should always be the 1st node local d = new_textdir(begindir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head, current = insert_node_after(head,current,d) begindir = nil done = true end else --- print(nodecodes[id]) end if begindir then local d = new_textdir(begindir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head = insert_node_before(head,current,d) done = true @@ -909,12 +908,12 @@ setprop(d,"directions",true) if skip and skip > 0 then for i=1,skip do current = getnext(current) -setprop(current,"directions",true) + setprop(current,"directions",true) end end if enddir then local d = new_textdir(enddir) -setprop(d,"directions",true) + setprop(d,"directions",true) -- setfield(d,"attr",getfield(current,"attr")) head, current = insert_node_after(head,current,d) done = true @@ -930,9 +929,9 @@ setprop(d,"directions",true) end index = index + 1 end -if trace_list then - report_directions("stop run") -end + if trace_list then + report_directions("stop run") + end return head, done end diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 940971634..b8bbc208a 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 08/05/15 16:35:59 +-- merge date : 08/10/15 13:49:38 do -- begin closure to overcome local limits and interference -- cgit v1.2.3