From d67c88b277ff5d781397fb99ef9470f51b8eeced Mon Sep 17 00:00:00 2001 From: Marius Date: Sat, 8 Oct 2011 13:00:15 +0300 Subject: beta 2011.10.08 11:42 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4103 -> 4096 bytes tex/context/base/context-version.png | Bin 105670 -> 105901 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-otn.lua | 9 +++++++-- tex/context/base/node-fnt.lua | 9 ++++++++- tex/context/base/status-files.pdf | Bin 23995 -> 23992 bytes tex/context/base/status-lua.pdf | Bin 163154 -> 163154 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 11 ++++++++--- tex/generic/context/luatex/luatex-test.tex | 2 ++ 12 files changed, 29 insertions(+), 10 deletions(-) diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index fb1be5f30..92b424e29 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.10.08 10:33} +\newcontextversion{2011.10.08 11:42} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 2eb0cbf9b..30e4d1da5 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{2011.10.08 10:33} +\newcontextversion{2011.10.08 11:42} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 8a7989509..be97edf8e 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-version.png b/tex/context/base/context-version.png index 625a1b0a9..f004e888a 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index f9bc83736..b1a490767 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.10.08 10:33} +\edef\contextversion{2011.10.08 11:42} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 560a1d8ff..6bfecdbc8 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.10.08 10:33} +\edef\contextversion{2011.10.08 11:42} %D For those who want to use this: diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index fb2618ff1..914a7dee9 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -2001,6 +2001,11 @@ local function featuresprocessor(head,font,attr) local dirstack = { } -- could move outside function + -- We could work on sub start-stop ranges instead but I wonder if there is that + -- much speed gain (experiments showed that it made not much sense) and we need + -- to keep track of directions anyway. Also at some point I want to play with + -- font interactions and then we do need the full sweeps. + for s=1,#sequences do local dataset = datasets[s] if dataset then @@ -2094,7 +2099,7 @@ local function featuresprocessor(head,font,attr) else start = start.next end - elseif id == whatsit_code then + elseif id == whatsit_code then -- will be function local subtype = start.subtype if subtype == dir_code then local dir = start.dir @@ -2140,7 +2145,7 @@ local function featuresprocessor(head,font,attr) local id = start.id if id == glyph_code then if start.subtype<256 and start.font == font then - local a has_attribute(start,0) + local a = has_attribute(start,0) if a then a = (a == attr) and (not attribute or has_attribute(start,state,attribute)) else diff --git a/tex/context/base/node-fnt.lua b/tex/context/base/node-fnt.lua index 036ff8fa1..66cd9916f 100644 --- a/tex/context/base/node-fnt.lua +++ b/tex/context/base/node-fnt.lua @@ -96,7 +96,9 @@ function handlers.characters(head) end end for n in traverse_id(glyph_code,head) do - local font, attr = n.font, has_attribute(n,0) or 0 -- zero attribute is reserved for fonts in context +-- if n.subtype<256 then + local font = n.font + local attr = has_attribute(n,0) or 0 -- zero attribute is reserved for fonts in context if font ~= prevfont or attr ~= prevattr then if attr > 0 then local used = attrfonts[font] @@ -111,6 +113,8 @@ function handlers.characters(head) if d then used[attr] = d a = a + 1 + else + -- can't happen ... otherwise best use nil/false distinction end end end @@ -121,12 +125,15 @@ function handlers.characters(head) if fp then usedfonts[font] = fp u = u + 1 + else + -- can't happen ... otherwise best use nil/false distinction end end end prevfont = font prevattr = attr end +-- end end if trace_fontrun then report_fonts() diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 26d98785b..ad5015f08 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 199670940..6ecca0352 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 0a596ab7e..7156e0a00 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 : 10/08/11 10:33:58 +-- merge date : 10/08/11 11:42:24 do -- begin closure to overcome local limits and interference @@ -10196,6 +10196,11 @@ local function featuresprocessor(head,font,attr) local dirstack = { } -- could move outside function + -- We could work on sub start-stop ranges instead but I wonder if there is that + -- much speed gain (experiments showed that it made not much sense) and we need + -- to keep track of directions anyway. Also at some point I want to play with + -- font interactions and then we do need the full sweeps. + for s=1,#sequences do local dataset = datasets[s] if dataset then @@ -10289,7 +10294,7 @@ local function featuresprocessor(head,font,attr) else start = start.next end - elseif id == whatsit_code then + elseif id == whatsit_code then -- will be function local subtype = start.subtype if subtype == dir_code then local dir = start.dir @@ -10335,7 +10340,7 @@ local function featuresprocessor(head,font,attr) local id = start.id if id == glyph_code then if start.subtype<256 and start.font == font then - local a has_attribute(start,0) + local a = has_attribute(start,0) if a then a = (a == attr) and (not attribute or has_attribute(start,state,attribute)) else diff --git a/tex/generic/context/luatex/luatex-test.tex b/tex/generic/context/luatex/luatex-test.tex index 830d30a91..3020b5594 100644 --- a/tex/generic/context/luatex/luatex-test.tex +++ b/tex/generic/context/luatex/luatex-test.tex @@ -12,6 +12,8 @@ \pdfoutput=1 +% \directlua{generic_context.caches.compilemethod = "both" } % none luac dump both + \font\testa=file:lmroman10-regular at 12pt \testa \input tufte \par \font\testb=file:lmroman12-regular:+liga; at 24pt \testb effe flink fietsen \par \font\testc=file:lmroman12-regular:mode=node;+liga; at 24pt \testc effe flink fietsen \par -- cgit v1.2.3