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-version.pdfbin4074 -> 4072 bytes
-rw-r--r--tex/context/base/context-version.pngbin105817 -> 105791 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-otn.lua166
-rw-r--r--tex/context/base/pack-fen.mkiv2
-rw-r--r--tex/context/base/status-files.pdfbin24314 -> 24291 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin178941 -> 178937 bytes
-rw-r--r--tex/context/base/strc-not.mkvi38
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua168
12 files changed, 38 insertions, 344 deletions
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 055b2f5e5..ecf53b1ee 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{2012.05.22 16:12}
+\newcontextversion{2012.05.23 10:30}
%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 5b49b0f7e..69e335d38 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{2012.05.22 16:12}
+\newcontextversion{2012.05.23 10:30}
%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 07c6ef6c1..c21b50387 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index c2460b132..f87995084 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index ea32dc048..20b673e45 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{2012.05.22 16:12}
+\edef\contextversion{2012.05.23 10:30}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 95f8ae0c9..75a21fd65 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -23,7 +23,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.05.22 16:12}
+\edef\contextversion{2012.05.23 10:30}
%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 8e6759747..7a5708583 100644
--- a/tex/context/base/font-otn.lua
+++ b/tex/context/base/font-otn.lua
@@ -2426,172 +2426,6 @@ local function split(replacement,original)
return result
end
--- not shared as we hook into lookups now
-
---~ local function uncover_1(covers,result) -- multiple covers
---~ local nofresults = #result
---~ for n=1,#covers do
---~ nofresults = nofresults + 1
---~ local u = { }
---~ local c = covers[n]
---~ for i=1,#c do
---~ u[c[i]] = true
---~ end
---~ result[nofresults] = u
---~ end
---~ end
-
---~ local function uncover_2(covers,result) -- single covers (turned into multiple with n=1)
---~ local nofresults = #result
---~ for n=1,#covers do
---~ nofresults = nofresults + 1
---~ result[nofresults] = { [covers[n]] = true }
---~ end
---~ end
-
---~ local function uncover_1(covers,result) -- multiple covers
---~ local nofresults = #result
---~ for n=1,#covers do
---~ nofresults = nofresults + 1
---~ result[nofresults] = covers[n]
---~ end
---~ end
-
---~ local function prepare_contextchains(tfmdata)
---~ local rawdata = tfmdata.shared.rawdata
---~ local resources = rawdata.resources
---~ local lookuphash = resources.lookuphash
---~ local lookups = rawdata.lookups
---~ if lookups then
---~ for lookupname, lookupdata in next, rawdata.lookups do
---~ local lookuptype = lookupdata.type
---~ if not lookuptype then
---~ report_prepare("missing lookuptype for %s",lookupname)
---~ else -- => lookuphash[lookupname][unicode]
---~ local rules = lookupdata.rules
---~ if rules then
---~ local fmt = lookupdata.format
---~ -- if fmt == "coverage" then
---~ if fmt == "coverage" or fmt == "glyphs" then
---~ if lookuptype ~= "chainsub" and lookuptype ~= "chainpos" then
---~ -- todo: dejavu-serif has one (but i need to see what use it has)
---~ report_prepare("unsupported coverage %s for %s",lookuptype,lookupname)
---~ else
---~ local contexts = lookuphash[lookupname]
---~ if not contexts then
---~ contexts = { }
---~ lookuphash[lookupname] = contexts
---~ end
---~ local t, nt = { }, 0
---~ for nofrules=1,#rules do -- does #rules>1 happen often?
---~ local rule = rules[nofrules]
---~ local current = rule.current
---~ local before = rule.before
---~ local after = rule.after
---~ local sequence = { }
---~ if before then
---~ uncover_1(before,sequence)
---~ end
---~ local start = #sequence + 1
---~ uncover_1(current,sequence)
---~ local stop = #sequence
---~ if after then
---~ uncover_1(after,sequence)
---~ end
---~ if sequence[1] then
---~ nt = nt + 1
---~ t[nt] = { nofrules, lookuptype, sequence, start, stop, rule.lookups }
---~ for unic, _ in next, sequence[start] do
---~ local cu = contexts[unic]
---~ if not cu then
---~ contexts[unic] = t
---~ end
---~ end
---~ end
---~ end
---~ end
---~ elseif fmt == "reversecoverage" then -- we could combine both branches (only dufference is replacements)
---~ if lookuptype ~= "reversesub" then
---~ report_prepare("unsupported reverse coverage %s for %s",lookuptype,lookupname)
---~ else
---~ local contexts = lookuphash[lookupname]
---~ if not contexts then
---~ contexts = { }
---~ lookuphash[lookupname] = contexts
---~ end
---~ local t, nt = { }, 0
---~ for nofrules=1,#rules do
---~ local rule = rules[nofrules]
---~ local current = rule.current
---~ local before = rule.before
---~ local after = rule.after
---~ local replacements = rule.replacements
---~ local sequence = { }
---~ if before then
---~ uncover_1(before,sequence)
---~ end
---~ local start = #sequence + 1
---~ uncover_1(current,sequence)
---~ local stop = #sequence
---~ if after then
---~ uncover_1(after,sequence)
---~ end
---~ if sequence[1] then
---~ nt = nt + 1
---~ t[nt] = { nofrules, lookuptype, sequence, start, stop, rule.lookups, replacements }
---~ for unic, _ in next, sequence[start] do
---~ local cu = contexts[unic]
---~ if not cu then
---~ contexts[unic] = t
---~ end
---~ end
---~ end
---~ end
---~ end
---~ -- elseif fmt == "glyphs" then --maybe just make then before = { fore } and share with coverage
---~ -- if lookuptype ~= "chainsub" and lookuptype ~= "chainpos" then
---~ -- report_prepare("unsupported coverage %s for %s",lookuptype,lookupname)
---~ -- else
---~ -- local contexts = lookuphash[lookupname]
---~ -- if not contexts then
---~ -- contexts = { }
---~ -- lookuphash[lookupname] = contexts
---~ -- end
---~ -- local t, nt = { }, 0
---~ -- for nofrules=1,#rules do -- we can make glyphs a special case (less tables)
---~ -- local rule = rules[nofrules]
---~ -- local current = rule.names
---~ -- local before = rule.fore
---~ -- local after = rule.back
---~ -- local sequence = { }
---~ -- if before then
---~ -- uncover_1(before,sequence)
---~ -- end
---~ -- local start = #sequence + 1
---~ -- uncover_1(current,sequence)
---~ -- local stop = #sequence
---~ -- if after then
---~ -- uncover_1(after,sequence)
---~ -- end
---~ -- if sequence then
---~ -- nt = nt + 1
---~ -- t[nt] = { nofrules, lookuptype, sequence, start, stop, rule.lookups }
---~ -- for unic, _ in next, sequence[start] do
---~ -- local cu = contexts[unic]
---~ -- if not cu then
---~ -- contexts[unic] = t
---~ -- end
---~ -- end
---~ -- end
---~ -- end
---~ -- end
---~ end
---~ end
---~ end
---~ end
---~ end
---~ end
-
local valid = {
coverage = { chainsub = true, chainpos = true, contextsub = true },
reversecoverage = { reversesub = true },
diff --git a/tex/context/base/pack-fen.mkiv b/tex/context/base/pack-fen.mkiv
index 575c46849..4253eeaa7 100644
--- a/tex/context/base/pack-fen.mkiv
+++ b/tex/context/base/pack-fen.mkiv
@@ -45,7 +45,7 @@
\ifdefined \pack_framed_overlay_initialize_indeed
- \let\installedframedimensions\pack_framed_overlay_initialize_indeed
+ \let\setinstalledframedimensions\pack_framed_overlay_initialize_indeed
\else
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index e3fce3daa..a573b2ea5 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 09a6e0843..68f152ca3 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/strc-not.mkvi b/tex/context/base/strc-not.mkvi
index 20a664420..55bcf6d36 100644
--- a/tex/context/base/strc-not.mkvi
+++ b/tex/context/base/strc-not.mkvi
@@ -234,7 +234,9 @@
\unexpanded\def\strc_notations_command#1%
{\begingroup
+ \edef\currentnote{#1}%
\strc_constructions_initialize{#1}%
+ \strc_notes_synchronize
\strc_counters_increment_sub\currentconstructionnumber\currentconstructionlevel
\doifnextoptionalelse\strc_notations_command_yes\strc_notations_command_nop}
@@ -261,7 +263,9 @@
\unexpanded\def\strc_notations_start#1#2%
{\begingroup
+ \edef\currentnote{#1}%
\strc_constructions_initialize{#1}%
+ \strc_notes_synchronize
\strc_counters_increment_sub\currentconstructionnumber\currentconstructionlevel
\normalexpanded % not that efficient but also not that frequently used
{\def\noexpand\strc_pickup_yes[##1]##2\csname\e!stop#2\endcsname{\strc_notations_command_yes[##1]{##2}}%
@@ -861,6 +865,7 @@
\installcorenamespace{notelocationvariant}
\installcorenamespace{notepositionvariant}
+\installcorenamespace{notedelayed}
\installcorenamespace{notelocation}
\newconditional\c_strc_notes_delayed
@@ -874,14 +879,32 @@
\setvalue{\??notelocation\v!high }{\letvalue{\??notepositionvariant\currentnote}\strc_notes_set_position_high}
\setvalue{\??notelocation\v!bottom }{\letvalue{\??notepositionvariant\currentnote}\strc_notes_set_position_bottom}
-\def\strc_notes_set_location
- {\letvalue{\??notelocationvariant\currentnote}\strc_notes_set_position_page
+\letvalue{\??notedelayed\v!page }\setfalse
+\letvalue{\??notedelayed\v!columns }\setfalse
+\letvalue{\??notedelayed\v!lastcolumn }\setfalse
+\letvalue{\??notedelayed\v!firstcolumn }\setfalse
+\letvalue{\??notedelayed\v!none }\settrue
+\letvalue{\??notedelayed\v!text }\settrue
+
+\unexpanded\def\strc_notes_set_delayed
+ {\ifcsname\??notedelayed\currentnote\endcsname
+ \csname\??notedelayed\currentnote\endcsname\c_strc_notes_delayed
+ \else
+ \setfalse\c_strc_notes_delayed
+ \fi}
+
+\unexpanded\def\strc_notes_set_location
+ {\letvalue{\??notelocationvariant\currentnote}\strc_notes_set_location_page
\letvalue{\??notepositionvariant\currentnote}\strc_notes_set_position_bottom
+ \setfalse\c_strc_notes_delayed
\normalexpanded{\rawprocesscommalist[\noteparameter\c!location]\strc_notes_set_location_step}}
\unexpanded\def\strc_notes_set_location_step#1%
{\ifcsname\??notelocation#1\endcsname
\csname\??notelocation#1\endcsname
+ \fi
+ \ifcsname\??notedelayed#1\endcsname
+ \csname\??notedelayed#1\endcsname\c_strc_notes_delayed
\fi}
\appendtoks
@@ -1085,6 +1108,7 @@
{\begingroup
\edef\currentnote{#1}%
\strc_constructions_initialize{#1}%
+ \strc_notes_synchronize
\the\everybeforenoteinsert
\insert\currentnoteins\bgroup
\the\everyinsidenoteinsert\relax
@@ -1105,9 +1129,10 @@
\doif{\noteparameter\c!paragraph}\v!yes\strc_notes_between_paragraphs}
\unexpanded\def\handlenoteitself#1#2% tg, id
- {\edef\currentnote{#1}%
- \edef\currentnotenumber{#2}%
- \strc_constructions_initialize{#1}% not needed when called in handlenoteinsert
+ {\edef\currentnotenumber{#2}%
+ \edef\currentnote{#1}%
+ \strc_constructions_initialize{#1}%
+ \strc_notes_synchronize
\edef\currentconstructionlistentry{\ctxlua{tex.write(structures.notes.listindex("#1",#2))}}% index in list cache
% as we can have collected notes (e.g. in tables) we need to recover
% \currentdescriptionattribute and \currentdescriptionsynchronize
@@ -1185,7 +1210,8 @@
{\strc_notes_process\strc_notes_place_inserts}
\def\strc_notes_place_inserts
- {\ifconditional\c_strc_notes_delayed \else
+ {\strc_notes_set_delayed % \strc_notes_synchronize % we need to know if it's delayed
+ \ifconditional\c_strc_notes_delayed \else
\ifdim\ht\currentnoteins>\zeropoint % or a faster delayed test
\strc_notes_place_inserts_indeed
\fi
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 47863dd99..94c926440 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 : 05/22/12 16:12:31
+-- merge date : 05/23/12 10:30:18
do -- begin closure to overcome local limits and interference
@@ -11000,172 +11000,6 @@ local function split(replacement,original)
return result
end
--- not shared as we hook into lookups now
-
---~ local function uncover_1(covers,result) -- multiple covers
---~ local nofresults = #result
---~ for n=1,#covers do
---~ nofresults = nofresults + 1
---~ local u = { }
---~ local c = covers[n]
---~ for i=1,#c do
---~ u[c[i]] = true
---~ end
---~ result[nofresults] = u
---~ end
---~ end
-
---~ local function uncover_2(covers,result) -- single covers (turned into multiple with n=1)
---~ local nofresults = #result
---~ for n=1,#covers do
---~ nofresults = nofresults + 1
---~ result[nofresults] = { [covers[n]] = true }
---~ end
---~ end
-
---~ local function uncover_1(covers,result) -- multiple covers
---~ local nofresults = #result
---~ for n=1,#covers do
---~ nofresults = nofresults + 1
---~ result[nofresults] = covers[n]
---~ end
---~ end
-
---~ local function prepare_contextchains(tfmdata)
---~ local rawdata = tfmdata.shared.rawdata
---~ local resources = rawdata.resources
---~ local lookuphash = resources.lookuphash
---~ local lookups = rawdata.lookups
---~ if lookups then
---~ for lookupname, lookupdata in next, rawdata.lookups do
---~ local lookuptype = lookupdata.type
---~ if not lookuptype then
---~ report_prepare("missing lookuptype for %s",lookupname)
---~ else -- => lookuphash[lookupname][unicode]
---~ local rules = lookupdata.rules
---~ if rules then
---~ local fmt = lookupdata.format
---~ -- if fmt == "coverage" then
---~ if fmt == "coverage" or fmt == "glyphs" then
---~ if lookuptype ~= "chainsub" and lookuptype ~= "chainpos" then
---~ -- todo: dejavu-serif has one (but i need to see what use it has)
---~ report_prepare("unsupported coverage %s for %s",lookuptype,lookupname)
---~ else
---~ local contexts = lookuphash[lookupname]
---~ if not contexts then
---~ contexts = { }
---~ lookuphash[lookupname] = contexts
---~ end
---~ local t, nt = { }, 0
---~ for nofrules=1,#rules do -- does #rules>1 happen often?
---~ local rule = rules[nofrules]
---~ local current = rule.current
---~ local before = rule.before
---~ local after = rule.after
---~ local sequence = { }
---~ if before then
---~ uncover_1(before,sequence)
---~ end
---~ local start = #sequence + 1
---~ uncover_1(current,sequence)
---~ local stop = #sequence
---~ if after then
---~ uncover_1(after,sequence)
---~ end
---~ if sequence[1] then
---~ nt = nt + 1
---~ t[nt] = { nofrules, lookuptype, sequence, start, stop, rule.lookups }
---~ for unic, _ in next, sequence[start] do
---~ local cu = contexts[unic]
---~ if not cu then
---~ contexts[unic] = t
---~ end
---~ end
---~ end
---~ end
---~ end
---~ elseif fmt == "reversecoverage" then -- we could combine both branches (only dufference is replacements)
---~ if lookuptype ~= "reversesub" then
---~ report_prepare("unsupported reverse coverage %s for %s",lookuptype,lookupname)
---~ else
---~ local contexts = lookuphash[lookupname]
---~ if not contexts then
---~ contexts = { }
---~ lookuphash[lookupname] = contexts
---~ end
---~ local t, nt = { }, 0
---~ for nofrules=1,#rules do
---~ local rule = rules[nofrules]
---~ local current = rule.current
---~ local before = rule.before
---~ local after = rule.after
---~ local replacements = rule.replacements
---~ local sequence = { }
---~ if before then
---~ uncover_1(before,sequence)
---~ end
---~ local start = #sequence + 1
---~ uncover_1(current,sequence)
---~ local stop = #sequence
---~ if after then
---~ uncover_1(after,sequence)
---~ end
---~ if sequence[1] then
---~ nt = nt + 1
---~ t[nt] = { nofrules, lookuptype, sequence, start, stop, rule.lookups, replacements }
---~ for unic, _ in next, sequence[start] do
---~ local cu = contexts[unic]
---~ if not cu then
---~ contexts[unic] = t
---~ end
---~ end
---~ end
---~ end
---~ end
---~ -- elseif fmt == "glyphs" then --maybe just make then before = { fore } and share with coverage
---~ -- if lookuptype ~= "chainsub" and lookuptype ~= "chainpos" then
---~ -- report_prepare("unsupported coverage %s for %s",lookuptype,lookupname)
---~ -- else
---~ -- local contexts = lookuphash[lookupname]
---~ -- if not contexts then
---~ -- contexts = { }
---~ -- lookuphash[lookupname] = contexts
---~ -- end
---~ -- local t, nt = { }, 0
---~ -- for nofrules=1,#rules do -- we can make glyphs a special case (less tables)
---~ -- local rule = rules[nofrules]
---~ -- local current = rule.names
---~ -- local before = rule.fore
---~ -- local after = rule.back
---~ -- local sequence = { }
---~ -- if before then
---~ -- uncover_1(before,sequence)
---~ -- end
---~ -- local start = #sequence + 1
---~ -- uncover_1(current,sequence)
---~ -- local stop = #sequence
---~ -- if after then
---~ -- uncover_1(after,sequence)
---~ -- end
---~ -- if sequence then
---~ -- nt = nt + 1
---~ -- t[nt] = { nofrules, lookuptype, sequence, start, stop, rule.lookups }
---~ -- for unic, _ in next, sequence[start] do
---~ -- local cu = contexts[unic]
---~ -- if not cu then
---~ -- contexts[unic] = t
---~ -- end
---~ -- end
---~ -- end
---~ -- end
---~ -- end
---~ end
---~ end
---~ end
---~ end
---~ end
---~ end
-
local valid = {
coverage = { chainsub = true, chainpos = true, contextsub = true },
reversecoverage = { reversesub = true },