diff options
author | Hans Hagen <pragma@wxs.nl> | 2021-02-05 18:08:41 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2021-02-05 18:08:41 +0100 |
commit | 5a7dd5d18ced4a73b05467f208d4c4b0d1afebc0 (patch) | |
tree | 7138a651a94fb013e584b080c50c4681321617cc /tex/context/base/mkiv | |
parent | ab4fc27d8b1541b491621e07ab1f40f30aaf50ae (diff) | |
download | context-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.mkiv | 4 | ||||
-rw-r--r-- | tex/context/base/mkiv/cont-new.mkiv | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/context.mkiv | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/core-uti.lua | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/good-ctx.lua | 24 | ||||
-rw-r--r-- | tex/context/base/mkiv/meta-ini.mkiv | 7 | ||||
-rw-r--r-- | tex/context/base/mkiv/mult-def.lua | 3 | ||||
-rw-r--r-- | tex/context/base/mkiv/page-lay.mkiv | 4 | ||||
-rw-r--r-- | tex/context/base/mkiv/spac-hor.mkiv | 17 | ||||
-rw-r--r-- | tex/context/base/mkiv/status-files.pdf | bin | 26124 -> 26132 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/status-lua.pdf | bin | 255649 -> 255713 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/strc-reg.lua | 25 | ||||
-rw-r--r-- | tex/context/base/mkiv/symb-imp-nav.mkiv | 17 |
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 Binary files differindex 4fa124525..35efbfdcb 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex 022a29167..b5fcc04ae 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf 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 |