summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2021-09-14 22:27:31 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2021-09-14 22:27:31 +0200
commit51bc89e03d05e3329b2ef74de2720937f92aa81f (patch)
tree6fed26b867ff310050fb862aa658e13dfb35e5dc /tex/context/base/mkiv
parenta8c525cd14d77b94662021671ef8eb62d5a7fe50 (diff)
downloadcontext-51bc89e03d05e3329b2ef74de2720937f92aa81f.tar.gz
2021-09-14 21:41:00
Diffstat (limited to 'tex/context/base/mkiv')
-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/font-osd.lua71
-rw-r--r--tex/context/base/mkiv/mult-prm.lua5
-rw-r--r--tex/context/base/mkiv/scrn-wid.lua3
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24888 -> 24900 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin251989 -> 251987 bytes
7 files changed, 49 insertions, 34 deletions
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 68a07fb83..229232ea2 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.09.13 09:37}
+\newcontextversion{2021.09.14 21:39}
%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 159c8ebc7..a8f8ac3ad 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.09.13 09:37}
+\edef\contextversion{2021.09.14 21:39}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-osd.lua b/tex/context/base/mkiv/font-osd.lua
index b4e753182..a4d408e13 100644
--- a/tex/context/base/mkiv/font-osd.lua
+++ b/tex/context/base/mkiv/font-osd.lua
@@ -881,38 +881,44 @@ local function initialize_one(font,attr) -- we need a proper hook into the datas
end
+-- HH: somehow we can get a non context here so for now we check for .n
+
local function contextchain(contexts, n)
local char = getchar(n)
- for k=1,#contexts do
- local ck = contexts[k]
- local seq = ck[3]
- local f = ck[4]
- local l = ck[5]
- if (l - f) == 1 and seq[f+1][char] then
- local ok = true
- local c = n
- for i=l+1,#seq do
- c = getnext(c)
- if not c or not seq[i][ischar(c)] then
- ok = false
- break
- end
- end
- if ok then
- c = getprev(n)
- for i=1,f-1 do
- c = getprev(c)
- if not c or not seq[f-i][ischar(c)] then
+ if not contexts.n then
+ return contexts[char]
+ else
+ for k=1,#contexts do
+ local ck = contexts[k]
+ local seq = ck[3]
+ local f = ck[4]
+ local l = ck[5]
+ if (l - f) == 1 and seq[f+1][char] then
+ local ok = true
+ local c = n
+ for i=l+1,#seq do
+ c = getnext(c)
+ if not c or not seq[i][ischar(c)] then
ok = false
+ break
end
end
- end
- if ok then
- return true
+ if ok then
+ c = getprev(n)
+ for i=1,f-1 do
+ c = getprev(c)
+ if not c or not seq[f-i][ischar(c)] then
+ ok = false
+ end
+ end
+ end
+ if ok then
+ return true
+ end
end
end
+ return false
end
- return false
end
local function order_matras(c)
@@ -1765,7 +1771,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then --above-base: rphf Consonant + Halant
+ -- if found[getchar(next)] or contextchain(found, next) then --above-base: rphf Consonant + Halant
+ if contextchain(found, next) then --above-base: rphf Consonant + Halant
local afternext = next ~= stop and getnext(next)
if afternext and zw_char[getchar(afternext)] then -- ZWJ and ZWNJ prevent creation of reph
current = afternext -- getnext(next)
@@ -1789,7 +1796,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then -- pre-base: pref Halant + Consonant
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
+ -- if found[getchar(next)] or contextchain(found, next) then
+ if contextchain(found, next) then
if (not getstate(current) and not getstate(next)) then --KE: state can also be init...
setstate(current,s_pref)
setstate(next,s_pref)
@@ -1809,7 +1817,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
+ -- if found[getchar(next)] or contextchain(found, next) then
+ if contextchain(found, next) then
if next ~= stop and getchar(getnext(next)) == c_zwnj then -- zwnj prevent creation of half
current = next
elseif (not getstate(current)) then --KE: state can also be init...
@@ -1833,7 +1842,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
+ -- if found[getchar(next)] or contextchain(found, next) then
+ if contextchain(found, next) then
if (not getstate(current) and not getstate(next)) then --KE: state can also be init...
setstate(current,s_blwf)
setstate(next,s_blwf)
@@ -1854,7 +1864,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
+ -- if found[getchar(next)] or contextchain(found, next) then
+ if contextchain(found, next) then
if (not getstate(current) and not getstate(next)) then -- KE: state can also be init...
setstate(current,s_pstf)
setstate(next,s_pstf)
@@ -1953,7 +1964,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
return head, stop, nbspaces
else
if getstate(base) then -- state can also be init
- setstate(base,unsetvalue)
+ setstate(base,unsetvalue) -- THIS RESETS THE HALF STATE
end
basepos = base
end
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 288067563..ab89b665a 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -398,8 +398,10 @@ return {
"insertheight",
"insertheights",
"insertlimit",
+ "insertmaxdepth",
"insertmode",
"insertmultiplier",
+ "insertpenalty",
"insertprogress",
"insertstorage",
"insertstoring",
@@ -474,6 +476,8 @@ return {
"outputbox",
"overloaded",
"overloadmode",
+ "pageboundary",
+ "pagevsize",
"parametercount",
"parametermark",
"parattribute",
@@ -867,7 +871,6 @@ return {
"pageshrink",
"pagestretch",
"pagetotal",
- "pagevsize",
"par",
"parfillleftskip",
"parfillskip",
diff --git a/tex/context/base/mkiv/scrn-wid.lua b/tex/context/base/mkiv/scrn-wid.lua
index e8688e4b2..e92be778f 100644
--- a/tex/context/base/mkiv/scrn-wid.lua
+++ b/tex/context/base/mkiv/scrn-wid.lua
@@ -300,7 +300,6 @@ implement {
actions = renderings.register,
arguments = {
{
- { "type" },
{ "label" },
{ "mime" },
{ "filename" },
@@ -323,6 +322,8 @@ implement {
{ "height", "dimen" },
{ "option" },
{ "page", "integer" },
+ { "openpage" },
+ { "closepage" },
}
}
}
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 2eaad3b9c..bd0ed1cb8 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 05e942bc1..e13549417 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ