summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-ini.mkiv4
-rw-r--r--tex/context/base/font-otc.lua23
-rw-r--r--tex/context/base/font-otf.lua5
-rw-r--r--tex/context/base/page-imp.mkiv23
-rw-r--r--tex/context/base/status-files.pdfbin23561 -> 23559 bytes
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua7
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
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files 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)