summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2021-02-05 18:08:41 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2021-02-05 18:08:41 +0100
commit5a7dd5d18ced4a73b05467f208d4c4b0d1afebc0 (patch)
tree7138a651a94fb013e584b080c50c4681321617cc /tex/context/base/mkiv
parentab4fc27d8b1541b491621e07ab1f40f30aaf50ae (diff)
downloadcontext-5a7dd5d18ced4a73b05467f208d4c4b0d1afebc0.tar.gz
2021-02-05 17:44:00
Diffstat (limited to 'tex/context/base/mkiv')
-rw-r--r--tex/context/base/mkiv/buff-imp-nested.mkiv4
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/core-uti.lua2
-rw-r--r--tex/context/base/mkiv/good-ctx.lua24
-rw-r--r--tex/context/base/mkiv/meta-ini.mkiv7
-rw-r--r--tex/context/base/mkiv/mult-def.lua3
-rw-r--r--tex/context/base/mkiv/page-lay.mkiv4
-rw-r--r--tex/context/base/mkiv/spac-hor.mkiv17
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26124 -> 26132 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin255649 -> 255713 bytes
-rw-r--r--tex/context/base/mkiv/strc-reg.lua25
-rw-r--r--tex/context/base/mkiv/symb-imp-nav.mkiv17
13 files changed, 74 insertions, 33 deletions
diff --git a/tex/context/base/mkiv/buff-imp-nested.mkiv b/tex/context/base/mkiv/buff-imp-nested.mkiv
index f6a25b5f8..9a6a884f0 100644
--- a/tex/context/base/mkiv/buff-imp-nested.mkiv
+++ b/tex/context/base/mkiv/buff-imp-nested.mkiv
@@ -15,7 +15,7 @@
\unprotect
-\unexpanded\def\donestedtypingstart{\bgroup\swaptypeface{}}
-\unexpanded\def\donestedtypingstop {\egroup{}}
+\permanent\protected\def\donestedtypingstart{\bgroup\swaptypeface{}}
+\permanent\protected\def\donestedtypingstop {\egroup{}}
\protect \endinput
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 83ccdfaef..dfe225db7 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.02.01 13:17}
+\newcontextversion{2021.02.05 17:41}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 66788f837..7ce8e0ca0 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -45,7 +45,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2021.02.01 13:17}
+\edef\contextversion{2021.02.05 17:41}
%D Kind of special:
diff --git a/tex/context/base/mkiv/core-uti.lua b/tex/context/base/mkiv/core-uti.lua
index 60cf3d6a9..887ef9a75 100644
--- a/tex/context/base/mkiv/core-uti.lua
+++ b/tex/context/base/mkiv/core-uti.lua
@@ -43,7 +43,7 @@ local report_passes = logs.reporter("job","passes")
job = job or { }
local job = job
-job.version = 1.31
+job.version = 1.32
job.packversion = 1.02
-- some day we will implement loading of other jobs and then we need
diff --git a/tex/context/base/mkiv/good-ctx.lua b/tex/context/base/mkiv/good-ctx.lua
index 7a25baf93..80672676c 100644
--- a/tex/context/base/mkiv/good-ctx.lua
+++ b/tex/context/base/mkiv/good-ctx.lua
@@ -32,6 +32,7 @@ local fontgoodies = fonts.goodies or { }
local nuts = nodes.nuts
local tonut = nuts.tonut
local getattr = nuts.getattr
+local getprop = nuts.getprop
local nextglyph = nuts.traversers.glyph
-- colorschemes
@@ -61,8 +62,10 @@ local function setcolorscheme(tfmdata,scheme)
local characters = tfmdata.characters
for i=1,#what do
local w = what[i]
- for j=1,#w do
- local name = w[j]
+ local force = w.force
+ local list = w.list or w
+ for j=1,#list do
+ local name = list[j]
local kind = type(name)
if name == "*" then
-- inefficient but only used for tracing anyway
@@ -81,10 +84,16 @@ local function setcolorscheme(tfmdata,scheme)
-- limited usage: we only deal with non reassigned
-- maybe some day I'll also support the ones with a
-- tounicode in this range
- for unicode=start,stop do
- if characters[unicode] then
+ if force then
+ for unicode=start,stop do
reverse[unicode] = i
end
+ else
+ for unicode=start,stop do
+ if characters[unicode] then
+ reverse[unicode] = i
+ end
+ end
end
end
else
@@ -150,6 +159,13 @@ function colorschemes.coloring(head)
if f ~= lastfont then
lastfont = f
lastscheme = fontproperties[f].colorscheme
+ if not lastscheme then
+ local p = getprop(n, "original")
+ if p then
+ lastfont = p.font
+ lastscheme = fontproperties[lastfont].colorscheme
+ end
+ end
end
if a ~= lastattr then
lastattr = a
diff --git a/tex/context/base/mkiv/meta-ini.mkiv b/tex/context/base/mkiv/meta-ini.mkiv
index 52aafac62..9305a0495 100644
--- a/tex/context/base/mkiv/meta-ini.mkiv
+++ b/tex/context/base/mkiv/meta-ini.mkiv
@@ -883,11 +883,8 @@
{\meta_prepare_instance_variable{#1}%
\edef\overlaystamp{\overlaystamp:\MPvariable{#1}}}
-\unexpanded\def\getMPdata {\clf_getMPdata}
- \let\rawMPdata \clf_getMPdata
-
-\unexpanded\def\getMPstored{\clf_getMPstored}
- \let\rawMPstored \clf_getMPstored
+\unexpanded\def\getMPdata{\clf_getMPdata}
+ \let\rawMPdata \clf_getMPdata
%D We need this trick because we need to make sure that the tex scanner sees
%D newlines and does not quit. Also, we do need to flush the buffer under a normal
diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua
index 450238c16..0f2ef419c 100644
--- a/tex/context/base/mkiv/mult-def.lua
+++ b/tex/context/base/mkiv/mult-def.lua
@@ -8564,6 +8564,9 @@ return {
["fr"]="entrees",
["nl"]="ingangen",
},
+ ["processors"]={
+ ["en"]="processors",
+ },
["equalheight"]={
["cs"]="equalheight",
["de"]="equalheight",
diff --git a/tex/context/base/mkiv/page-lay.mkiv b/tex/context/base/mkiv/page-lay.mkiv
index bec9dc7ce..6f41f3bd8 100644
--- a/tex/context/base/mkiv/page-lay.mkiv
+++ b/tex/context/base/mkiv/page-lay.mkiv
@@ -551,8 +551,8 @@
\doglobal\swapdimens\paperwidth\paperheight
\fi
\ifinpagebody % local freeze
- \normalexpanded{\setlayouttargetparemeter\c!height{\the\paperheight}}%
- \normalexpanded{\setlayouttargetparemeter\c!width {\the\paperwidth }}%
+ \normalexpanded{\setlayouttargetparameter\c!height{\the\paperheight}}%
+ \normalexpanded{\setlayouttargetparameter\c!width {\the\paperwidth }}%
\fi
%
\page_paper_set_offsets
diff --git a/tex/context/base/mkiv/spac-hor.mkiv b/tex/context/base/mkiv/spac-hor.mkiv
index 5c7163822..16a1a0d4e 100644
--- a/tex/context/base/mkiv/spac-hor.mkiv
+++ b/tex/context/base/mkiv/spac-hor.mkiv
@@ -478,11 +478,20 @@
%D from now on we treat it as a normal space and not as a space with \type
%D {sfcode} 1000.
+% \unexpanded\def\specialspaceprimitive
+% {\begingroup
+% % so, no fancy extra spacing after: foo i.e.\ bar
+% \nonfrenchspacing\normalspaceprimitive
+% \endgroup}
+
\unexpanded\def\specialspaceprimitive
- {\begingroup
- % so, no fancy extra spacing after: foo i.e.\ bar
- \nonfrenchspacing\normalspaceprimitive
- \endgroup}
+ {% is a current state, set explicitly or when a character is appended
+ \ifhmode
+ \spacefactor\plusthousand
+ \else
+ \dontleavehmode
+ \fi
+ \normalspaceprimitive}
\unexpanded\def\normalnotobeyedspace
{\mathortext\normalspaceprimitive\specialspaceprimitive} % no \dontleavehmode\space (else no frenchspacing)
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 4fa124525..35efbfdcb 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 022a29167..b5fcc04ae 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-reg.lua b/tex/context/base/mkiv/strc-reg.lua
index 6873f89eb..6e26f6f37 100644
--- a/tex/context/base/mkiv/strc-reg.lua
+++ b/tex/context/base/mkiv/strc-reg.lua
@@ -460,6 +460,7 @@ local function preprocessentries(rawdata)
local processors = rawdata.processors
local et = entries.entries
local kt = entries.keys
+ local pt = entries.processors
local entryproc = processors and processors.entry
local pageproc = processors and processors.page
local coding = rawdata.metadata.coding
@@ -483,16 +484,20 @@ local function preprocessentries(rawdata)
end
kt = lpegmatch(coding == "xml" and entrysplitter_xml or entrysplitter_tex,k)
end
+ if not pt then
+ pt = { }
+ end
--
entries = { }
local ok = false
for k=#et,1,-1 do
local etk = et[k]
local ktk = kt[k]
+ local ptk = pt[k]
if not ok and etk == "" then
entries[k] = nil
else
- entries[k] = { etk or "", ktk ~= "" and ktk or nil }
+ entries[k] = { etk or "", ktk ~= "" and ktk or false, ptk ~= "" and ptk or false }
ok = true
end
end
@@ -677,31 +682,33 @@ implement {
{ "catcodes", "integer" },
{ "own" },
{ "xmlroot" },
- { "xmlsetup" }
+ { "xmlsetup" },
}
},
{ "entries", {
{ "entries", "list" },
{ "keys", "list" },
+ { "processors", "list" },
{ "entry" },
- { "key" }
+ { "key" },
+ { "processor" },
}
},
{ "references", {
{ "internal", "integer" },
{ "section", "integer" },
{ "view" },
- { "label" }
+ { "label" },
}
},
{ "seeword", {
- { "text" }
+ { "text" },
}
},
{ "processors", {
{ "entry" },
{ "key" },
- { "page" }
+ { "page" },
}
},
{ "userdata" },
@@ -1258,6 +1265,7 @@ function registers.flush(data,options,prefixspec,pagespec)
while d < #data do
d = d + 1
local entry = data[d]
+-- inspect(entry)
local metadata = entry.metadata
local kind = metadata.kind
local list = entry.list
@@ -1266,8 +1274,9 @@ function registers.flush(data,options,prefixspec,pagespec)
e[i] = false
end
for i=1,maxlevel do
+ local li = list[i]
if list[i] then
- e[i] = list[i][1]
+ e[i] = li[1]
end
if e[i] == done[i] then
-- skip
@@ -1309,7 +1318,7 @@ function registers.flush(data,options,prefixspec,pagespec)
local processors = entry.processors
local internal = references.internal or 0
local seeparent = references.seeparent or ""
- local processor = processors and processors[1] or ""
+ local processor = (li and li[3]) or (processors and processors[1]) or ""
-- so, we need to keep e as is (local), or we need local title = e[i] ... which might be
-- more of a problem
ctx_startregisterentry(0) -- will become a counter
diff --git a/tex/context/base/mkiv/symb-imp-nav.mkiv b/tex/context/base/mkiv/symb-imp-nav.mkiv
index 6e2f2c1f0..ce5b1d76a 100644
--- a/tex/context/base/mkiv/symb-imp-nav.mkiv
+++ b/tex/context/base/mkiv/symb-imp-nav.mkiv
@@ -24,7 +24,7 @@
\definefontsynonym [ContextNavigation] [contnav]
-\def\ContextNavigationGlyph{\getnamedglyphdirect{ContextNavigation}} % #1
+\permanent\protected\def\ContextNavigationGlyph{\getnamedglyphdirect{ContextNavigation}} % #1
\startsymbolset [navigation 1]
@@ -122,8 +122,15 @@
\stopsymbolset
-%D \showsymbolset[navigation 1]
-%D \showsymbolset[navigation 2]
-%D \showsymbolset[navigation 3]
+\protect
-\protect \endinput
+\continueifinputfile{symb-imp-nav.mkiv}
+
+\starttext
+ \showsymbolset[navigation 1]\page
+ \showsymbolset[navigation 2]\page
+ \showsymbolset[navigation 3]\page
+ \ContextNavigationGlyph{char03}\quad
+ \ContextNavigationGlyph{char67}\quad
+ \ContextNavigationGlyph{charcb}
+\stoptext