From 21cd65249c044ecc147f90f390f30d36a4b98dad Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 28 Mar 2011 02:20:14 +0300 Subject: beta 2011.03.28 01:03 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-ini.mkiv | 4 ++-- tex/context/base/font-otc.lua | 23 +++++++++++++++-------- tex/context/base/font-otf.lua | 5 ++++- tex/context/base/page-imp.mkiv | 23 +++++++++++++---------- tex/context/base/status-files.pdf | Bin 23561 -> 23559 bytes tex/generic/context/luatex-fonts-merged.lua | 7 +++++-- 10 files changed, 43 insertions(+), 27 deletions(-) diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 8db6bea2d..da77b2d41 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.03.27 14:48} +\newcontextversion{2011.03.28 01:03} %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 2df57e5e7..9d1974169 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.03.27 14:48} +\newcontextversion{2011.03.28 01:03} %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.mkii b/tex/context/base/context.mkii index beaf55152..51872541a 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.03.27 14:48} +\edef\contextversion{2011.03.28 01:03} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 96f9b374e..e0b699271 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.03.27 14:48} +\edef\contextversion{2011.03.28 01:03} %D For those who want to use this: diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 442ac4861..21b971a9b 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -3885,8 +3885,8 @@ \currentsymbolfont \global\expandafter\let\csname\??ss->\askedsymbolfont\endcsname\lastrawfontcall} -\unexpanded\def\getnamedglyphstyled#1#2{{\setstyledsymbolicfont{#1}\ctxlua{fonts.char("#2")}}} -\unexpanded\def\getnamedglyphdirect#1#2{{\setdirectsymbolicfont{#1}\ctxlua{fonts.char("#2")}}} +\unexpanded\def\getnamedglyphstyled#1#2{{\setstyledsymbolicfont{#1}\ctxcommand{fontchar("#2")}}} +\unexpanded\def\getnamedglyphdirect#1#2{{\setdirectsymbolicfont{#1}\ctxcommand{fontchar("#2")}}} \unexpanded\def\getglyphstyled #1#2{{\setstyledsymbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} \unexpanded\def\getglyphdirect #1#2{{\setdirectsymbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} \unexpanded\def\getscaledglyph #1#2#3{{\setscaledstyledsymbolicfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}} diff --git a/tex/context/base/font-otc.lua b/tex/context/base/font-otc.lua index 50433e3cc..5fdcf203b 100644 --- a/tex/context/base/font-otc.lua +++ b/tex/context/base/font-otc.lua @@ -110,6 +110,9 @@ local extra_features = { -- maybe just 1..n so that we prescribe order }, } +otf.extrafeatures = extra_features +otf.extralists = extra_lists + local function enhancedata(data,filename,raw) local descriptions = data.descriptions local resources = data.resources @@ -137,30 +140,34 @@ local function enhancedata(data,filename,raw) local added = false if featuretype == "gsub_ligature" then lookuptypes[full] = "ligature" - for name, ligature in next, list do - local unicode = unicodes[name] + for code, ligature in next, list do + local unicode = tonumber(code) or unicodes[code] local description = descriptions[unicode] if description then local slookups = description.slookups + if type(ligature) == "string" then + ligature = { lpegmatch(splitter,ligature) } + end if slookups then - slookups[full] = { lpegmatch(splitter,ligature) } + slookups[full] = ligature else - description.slookups = { [full] = { lpegmatch(splitter,ligature) } } + description.slookups = { [full] = ligature } end done, added = done + 1, true end end elseif featuretype == "gsub_single" then lookuptypes[full] = "substitution" - for name, replacement in next, list do - local unicode = unicodes[name] + for code, replacement in next, list do + local unicode = tonumber(code) or unicodes[code] local description = descriptions[unicode] if description then local slookups = description.slookups + replacement = tonumber(replacement) or unicodes[replacement] if slookups then - slookups[full] = unicodes[replacement] + slookups[full] = replacement else - description.slookups = { [full] = unicodes[replacement] } + description.slookups = { [full] = replacement } end done, added = done + 1, true end diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua index 7a0d061b3..6c36bf104 100644 --- a/tex/context/base/font-otf.lua +++ b/tex/context/base/font-otf.lua @@ -665,9 +665,12 @@ actions["prepare glyphs"] = function(data,filename,raw) for index=0,raw.glyphmax-1 do local glyph = rawglyphs[index] +--~ report_otf("1: 0x%04X: %s",index,tostring(glyph)) io.flush() if glyph then local unicode = glyph.unicode +--~ report_otf("2: 0x%04X: %s",index,tostring(unicode)) io.flush() local name = glyph.name +--~ report_otf("3: 0x%04X: %s",index,tostring(name)) io.flush() if not unicode or unicode == -1 or unicode >= criterium then unicode = private unicodes[name] = private @@ -1757,7 +1760,7 @@ local function otftotfm(specification) local filename = specification.filename local format = specification.format local features = specification.features.normal - local rawdata = otf.load(filename,format,sub,features and features.featurefile) + local rawdata = otf.load(filename,format,sub,features and features.featurefile) if rawdata and next(rawdata) then rawdata.lookuphash = { } tfmdata = copytotfm(rawdata,cache_id) diff --git a/tex/context/base/page-imp.mkiv b/tex/context/base/page-imp.mkiv index e01202c81..b6fa75c8b 100644 --- a/tex/context/base/page-imp.mkiv +++ b/tex/context/base/page-imp.mkiv @@ -435,6 +435,9 @@ \def\reportarrangedpage#1% {\showmessage\m!system{23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,\number#1}} +\def\advancearrangedpageN + {\global\advance\arrangedpageN\plusone} + % TOP % 32/16/8/4/SIDE @@ -449,7 +452,7 @@ \fi} \def\pusharrangedpageTHIRTYTWO#1% taco's challenge - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}033\arrangedpageA % 1 @@ -488,7 +491,7 @@ \fi} \def\pusharrangedpageSIXTEEN#1% changed to match the official way of doing - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}031\arrangedpageA % 1 @@ -511,7 +514,7 @@ \fi} \def\pusharrangedpageEIGHT#1% changed to match the official way of doing - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1 @@ -529,7 +532,7 @@ \def\pusharrangedpageFOURB{\pusharrangedpageFOURdo10} \def\pusharrangedpageFOURdo#1#2#3% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#3}010\arrangedpageA % 1 @@ -540,7 +543,7 @@ \fi} \def\pusharrangedpageSIDETOP#1% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1 @@ -625,7 +628,7 @@ \fi} \def\pusharrangedpageTWO#1% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \global\setbox\arrangedpageB\vbox {\offinterlineskip @@ -649,7 +652,7 @@ \fi} \def\pusharrangedpageTWOTOPSIDE#1% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1 @@ -692,7 +695,7 @@ % to arrange 16 pages on 4 sheets to form one booklet \def\pusharrangedpageSIXTEENFOUR#1% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 @@ -717,7 +720,7 @@ % to arrange 16 pages on 2 sheets to form one booklet \def\pusharrangedpageSIXTEENTWO#1% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifcase\arrangedpageN \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1 @@ -1111,7 +1114,7 @@ % \starttext \dorecurse{30}{test \recurselevel \page} \stoptext \def\pusharrangedpageXY#1% - {\global\advance\arrangedpageN\plusone + {\advancearrangedpageN \global\advance\arrangedpageM\plusone \reportarrangedpage\arrangedpageN \global\setbox\arrangedpageB\hbox \ifdim\@@ppwidth>\zeropoint to \@@ppwidth \fi diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index eb8291462..35d6ab3a1 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index 2653514fd..c1a9ae835 100644 --- a/tex/generic/context/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 03/27/11 14:48:17 +-- merge date : 03/28/11 01:03:40 do -- begin closure to overcome local limits and interference @@ -5395,9 +5395,12 @@ actions["prepare glyphs"] = function(data,filename,raw) for index=0,raw.glyphmax-1 do local glyph = rawglyphs[index] +--~ report_otf("1: 0x%04X: %s",index,tostring(glyph)) io.flush() if glyph then local unicode = glyph.unicode +--~ report_otf("2: 0x%04X: %s",index,tostring(unicode)) io.flush() local name = glyph.name +--~ report_otf("3: 0x%04X: %s",index,tostring(name)) io.flush() if not unicode or unicode == -1 or unicode >= criterium then unicode = private unicodes[name] = private @@ -6487,7 +6490,7 @@ local function otftotfm(specification) local filename = specification.filename local format = specification.format local features = specification.features.normal - local rawdata = otf.load(filename,format,sub,features and features.featurefile) + local rawdata = otf.load(filename,format,sub,features and features.featurefile) if rawdata and next(rawdata) then rawdata.lookuphash = { } tfmdata = copytotfm(rawdata,cache_id) -- cgit v1.2.3