summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2019-08-09 21:12:52 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2019-08-09 21:12:52 +0200
commit76a1861b8ff7c2befbc41270833a4a0919c93c30 (patch)
tree0053915db1de56ac3da2a1415b5447bf66acd81f /tex
parente92fac1b64f7969cadd8ae60f336c43624250d42 (diff)
downloadcontext-76a1861b8ff7c2befbc41270833a4a0919c93c30.tar.gz
2019-08-09 18:36:00
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-cs.mkii12
-rw-r--r--tex/context/base/mkii/mult-nl.mkii8
-rw-r--r--tex/context/base/mkiv/anch-bar.mkiv4
-rw-r--r--tex/context/base/mkiv/attr-ini.mkiv2
-rw-r--r--tex/context/base/mkiv/back-exp.lua50
-rw-r--r--tex/context/base/mkiv/colo-ini.mkiv2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv6
-rw-r--r--tex/context/base/mkiv/context.mkxl6
-rw-r--r--tex/context/base/mkiv/core-def.mkiv3
-rw-r--r--tex/context/base/mkiv/core-env.mkiv6
-rw-r--r--tex/context/base/mkiv/font-cff.lua67
-rw-r--r--tex/context/base/mkiv/font-con.lua6
-rw-r--r--tex/context/base/mkiv/font-emp.mklx6
-rw-r--r--tex/context/base/mkiv/font-emp.mkvi4
-rw-r--r--tex/context/base/mkiv/font-onr.lua3
-rw-r--r--tex/context/base/mkiv/font-run.mkiv2
-rw-r--r--tex/context/base/mkiv/font-shp.lua2
-rw-r--r--tex/context/base/mkiv/font-tfm.lua41
-rw-r--r--tex/context/base/mkiv/font-tpk.lua12
-rw-r--r--tex/context/base/mkiv/font-tra.mkiv2
-rw-r--r--tex/context/base/mkiv/font-ttf.lua10
-rw-r--r--tex/context/base/mkiv/grph-inc.mkiv4
-rw-r--r--tex/context/base/mkiv/l-lua.lua6
-rw-r--r--tex/context/base/mkiv/lpdf-emb.lua44
-rw-r--r--tex/context/base/mkiv/lpdf-lmt.lua12
-rw-r--r--tex/context/base/mkiv/math-ali.mkiv22
-rw-r--r--tex/context/base/mkiv/math-ini.mkiv4
-rw-r--r--tex/context/base/mkiv/math-tag.lua8
-rw-r--r--tex/context/base/mkiv/mlib-ctx.mkxl1
-rw-r--r--tex/context/base/mkiv/mlib-lmt.lua48
-rw-r--r--tex/context/base/mkiv/mlib-scn.lua74
-rw-r--r--tex/context/base/mkiv/mult-aux.mkiv2
-rw-r--r--tex/context/base/mkiv/mult-aux.mkxl2
-rw-r--r--tex/context/base/mkiv/mult-ini.mkiv41
-rw-r--r--tex/context/base/mkiv/mult-low.lua4
-rw-r--r--tex/context/base/mkiv/pack-bck.mkvi2
-rw-r--r--tex/context/base/mkiv/pack-box.mkiv16
-rw-r--r--tex/context/base/mkiv/pack-mrl.mkiv2
-rw-r--r--tex/context/base/mkiv/page-box.mkvi4
-rw-r--r--tex/context/base/mkiv/page-lay.mkiv44
-rw-r--r--tex/context/base/mkiv/page-txt.mklx10
-rw-r--r--tex/context/base/mkiv/scrn-bar.mkvi4
-rw-r--r--tex/context/base/mkiv/scrn-but.mkvi4
-rw-r--r--tex/context/base/mkiv/spac-ali.mkiv2
-rw-r--r--tex/context/base/mkiv/spac-flr.mkiv6
-rw-r--r--tex/context/base/mkiv/spac-hor.mkiv12
-rw-r--r--tex/context/base/mkiv/spac-ver.mkiv6
-rw-r--r--tex/context/base/mkiv/spac-ver.mkxl6
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26624 -> 26656 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin267835 -> 268697 bytes
-rw-r--r--tex/context/base/mkiv/strc-flt.mkvi6
-rw-r--r--tex/context/base/mkiv/strc-itm.mklx4
-rw-r--r--tex/context/base/mkiv/strc-itm.mkvi4
-rw-r--r--tex/context/base/mkiv/strc-lst.mkvi6
-rw-r--r--tex/context/base/mkiv/strc-not.mkvi2
-rw-r--r--tex/context/base/mkiv/strc-ren.mkiv18
-rw-r--r--tex/context/base/mkiv/supp-box.mkiv8
-rw-r--r--tex/context/base/mkiv/supp-box.mkxl8
-rw-r--r--tex/context/base/mkiv/supp-mat.mkiv4
-rw-r--r--tex/context/base/mkiv/syst-aux.mkiv8
-rw-r--r--tex/context/base/mkiv/syst-aux.mkxl20
-rw-r--r--tex/context/base/mkiv/syst-ini.mkiv3
-rw-r--r--tex/context/base/mkiv/syst-ini.mkxl3
-rw-r--r--tex/context/base/mkiv/tabl-frm.mkiv52
-rw-r--r--tex/context/base/mkiv/tabl-ntb.mkiv6
-rw-r--r--tex/context/base/mkiv/tabl-ntb.mkxl6
-rw-r--r--tex/context/base/mkiv/trac-deb.lua5
-rw-r--r--tex/context/base/mkiv/util-sql-imp-ffi.lua2
-rw-r--r--tex/context/fonts/mkiv/type-imp-cow.mkiv8
-rw-r--r--tex/context/interface/mkii/keys-cs.xml12
-rw-r--r--tex/context/interface/mkii/keys-nl.xml8
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin890128 -> 889980 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin61165 -> 61165 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua42
77 files changed, 477 insertions, 408 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index d9c9ca7c4..2ef972527 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2019.08.05 10:34}
+\newcontextversion{2019.08.09 18:29}
%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/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 9e1710245..9c89d78e7 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.08.05 10:34}
+\edef\contextversion{2019.08.09 18:29}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-cs.mkii b/tex/context/base/mkii/mult-cs.mkii
index 23345c05c..fe02205ee 100644
--- a/tex/context/base/mkii/mult-cs.mkii
+++ b/tex/context/base/mkii/mult-cs.mkii
@@ -147,6 +147,7 @@
\setinterfacevariable{comment}{komentar}
\setinterfacevariable{component}{komponenta}
\setinterfacevariable{compressseparator}{compressseparator}
+\setinterfacevariable{compressstopper}{compressstopper}
\setinterfacevariable{concept}{koncept}
\setinterfacevariable{construction}{construction}
\setinterfacevariable{content}{obsah}
@@ -477,6 +478,7 @@
\setinterfacevariable{sectionnumber}{cislooddilu}
\setinterfacevariable{see}{viz}
\setinterfacevariable{selectfont}{selectfont}
+\setinterfacevariable{separator}{separator}
\setinterfacevariable{september}{zari}
\setinterfacevariable{serif}{serif}
\setinterfacevariable{serifbold}{serifbold}
@@ -635,6 +637,7 @@
\setinterfaceconstant{aligntitle}{zarovnejtitul}
\setinterfaceconstant{alternative}{alternativa}
\setinterfaceconstant{anchor}{anchor}
+\setinterfaceconstant{anchoring}{anchoring}
\setinterfaceconstant{andtext}{andtext}
\setinterfaceconstant{apa}{apa}
\setinterfaceconstant{arguments}{arguments}
@@ -732,7 +735,9 @@
\setinterfaceconstant{compoundhyphen}{compoundhyphen}
\setinterfaceconstant{compress}{compress}
\setinterfaceconstant{compressdistance}{compressdistance}
+\setinterfaceconstant{compressmethod}{compressmethod}
\setinterfaceconstant{compressseparator}{compressseparator}
+\setinterfaceconstant{compressstopper}{compressstopper}
\setinterfaceconstant{concerns}{concerns}
\setinterfaceconstant{connector}{connector}
\setinterfaceconstant{continue}{pokracovat}
@@ -862,6 +867,7 @@
\setinterfaceconstant{hfil}{hfil}
\setinterfaceconstant{hidenumber}{hidenumber}
\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horizontal}{horizontalne}
\setinterfaceconstant{horoffset}{horoffset}
\setinterfaceconstant{hyphen}{hyphen}
\setinterfaceconstant{hyphens}{hyphens}
@@ -962,9 +968,12 @@
\setinterfaceconstant{menu}{menu}
\setinterfaceconstant{method}{metoda}
\setinterfaceconstant{middle}{stredni}
+\setinterfaceconstant{middlecolor}{middlecolor}
\setinterfaceconstant{middlecommand}{middlecommand}
\setinterfaceconstant{middlespeech}{middlespeech}
+\setinterfaceconstant{middlestyle}{middlestyle}
\setinterfaceconstant{middletext}{strednitext}
+\setinterfaceconstant{middlewidth}{middlewidth}
\setinterfaceconstant{midsentence}{midsentence}
\setinterfaceconstant{min}{min}
\setinterfaceconstant{mindepth}{mindepth}
@@ -1282,6 +1291,7 @@
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{offsethlavicky}
+\setinterfaceconstant{vertical}{vertikalne}
\setinterfaceconstant{vfactor}{vfaktor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
@@ -1292,6 +1302,7 @@
\setinterfaceconstant{white}{bily}
\setinterfaceconstant{width}{sirka}
\setinterfaceconstant{words}{words}
+\setinterfaceconstant{xanchor}{xanchor}
\setinterfaceconstant{xfactor}{xfaktor}
\setinterfaceconstant{xhtml}{xhtml}
\setinterfaceconstant{xmax}{xmax}
@@ -1299,6 +1310,7 @@
\setinterfaceconstant{xoffset}{xoffset}
\setinterfaceconstant{xscale}{xmeritko}
\setinterfaceconstant{xstep}{xkrok}
+\setinterfaceconstant{yanchor}{yanchor}
\setinterfaceconstant{yfactor}{yfaktor}
\setinterfaceconstant{ymax}{ymax}
\setinterfaceconstant{yoffset}{yoffset}
diff --git a/tex/context/base/mkii/mult-nl.mkii b/tex/context/base/mkii/mult-nl.mkii
index 0043934b3..aebf9a898 100644
--- a/tex/context/base/mkii/mult-nl.mkii
+++ b/tex/context/base/mkii/mult-nl.mkii
@@ -637,6 +637,7 @@
\setinterfaceconstant{aligntitle}{titeluitlijnen}
\setinterfaceconstant{alternative}{variant}
\setinterfaceconstant{anchor}{anker}
+\setinterfaceconstant{anchoring}{verankering}
\setinterfaceconstant{andtext}{andtext}
\setinterfaceconstant{apa}{apa}
\setinterfaceconstant{arguments}{argumenten}
@@ -866,6 +867,7 @@
\setinterfaceconstant{hfil}{hfil}
\setinterfaceconstant{hidenumber}{hidenumber}
\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horizontal}{horizontaal}
\setinterfaceconstant{horoffset}{rugoffset}
\setinterfaceconstant{hyphen}{hyphen}
\setinterfaceconstant{hyphens}{hyphens}
@@ -966,9 +968,12 @@
\setinterfaceconstant{menu}{menu}
\setinterfaceconstant{method}{methode}
\setinterfaceconstant{middle}{midden}
+\setinterfaceconstant{middlecolor}{middenkleur}
\setinterfaceconstant{middlecommand}{middencommando}
\setinterfaceconstant{middlespeech}{middenuitspraak}
+\setinterfaceconstant{middlestyle}{middenletter}
\setinterfaceconstant{middletext}{middentekst}
+\setinterfaceconstant{middlewidth}{middenbreedte}
\setinterfaceconstant{midsentence}{middenzin}
\setinterfaceconstant{min}{min}
\setinterfaceconstant{mindepth}{mindiepte}
@@ -1286,6 +1291,7 @@
\setinterfaceconstant{vcompact}{vcomprimeer}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{kopoffset}
+\setinterfaceconstant{vertical}{vertikaal}
\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
@@ -1296,6 +1302,7 @@
\setinterfaceconstant{white}{wit}
\setinterfaceconstant{width}{breedte}
\setinterfaceconstant{words}{words}
+\setinterfaceconstant{xanchor}{xanker}
\setinterfaceconstant{xfactor}{xfactor}
\setinterfaceconstant{xhtml}{xhtml}
\setinterfaceconstant{xmax}{xmax}
@@ -1303,6 +1310,7 @@
\setinterfaceconstant{xoffset}{xoffset}
\setinterfaceconstant{xscale}{xschaal}
\setinterfaceconstant{xstep}{xstap}
+\setinterfaceconstant{yanchor}{yanker}
\setinterfaceconstant{yfactor}{yfactor}
\setinterfaceconstant{ymax}{ymax}
\setinterfaceconstant{yoffset}{yoffset}
diff --git a/tex/context/base/mkiv/anch-bar.mkiv b/tex/context/base/mkiv/anch-bar.mkiv
index f8581da32..49e9e2946 100644
--- a/tex/context/base/mkiv/anch-bar.mkiv
+++ b/tex/context/base/mkiv/anch-bar.mkiv
@@ -102,7 +102,7 @@
\edef\m_level{\sidebarparameter\c!level}%
\ifx\m_level\empty
\ifnum\c_anch_sidebars_level=\plusone
- \ifdim\scratchdimen=\zeropoint
+ \ifzeropt\scratchdimen
\advance\d_anch_sidebars_distance\scratchdistance\relax
\else
\d_anch_sidebars_distance\scratchdimen
@@ -112,7 +112,7 @@
\fi
\else
\ifnum\m_level=\plusone
- \ifdim\scratchdimen=\zeropoint
+ \ifzeropt\scratchdimen
\advance\d_anch_sidebars_distance\scratchdistance\relax
\else
\d_anch_sidebars_distance\scratchdimen
diff --git a/tex/context/base/mkiv/attr-ini.mkiv b/tex/context/base/mkiv/attr-ini.mkiv
index 29f384b97..22e3ba259 100644
--- a/tex/context/base/mkiv/attr-ini.mkiv
+++ b/tex/context/base/mkiv/attr-ini.mkiv
@@ -57,7 +57,7 @@
\def\attr_basics_define {\attr_basics_define_indeed\s!public}
\def\attr_basics_define_system{\attr_basics_define_indeed\s!private}
- % here public means 'visible' so it's not to be confused with 'public' at the lua end
+% here public means 'visible' so it's not to be confused with 'public' at the lua end
\def\attr_basics_define_indeed#1[#2][#3]%
{\ifcsname\??attributecount#2\endcsname\else
diff --git a/tex/context/base/mkiv/back-exp.lua b/tex/context/base/mkiv/back-exp.lua
index 9b15028bd..b7d5f6b2c 100644
--- a/tex/context/base/mkiv/back-exp.lua
+++ b/tex/context/base/mkiv/back-exp.lua
@@ -1234,28 +1234,38 @@ do
local ndata = #data
local roottg = root.tg
if roottg == "msubsup" then
+ -- kind of tricky: we have a diufferent order in display mode
local nucleus, superscript, subscript
- for i=1,ndata do
- local di = data[i]
- if not di then
- -- weird
- elseif di.content then
- -- text
- elseif not nucleus then
- nucleus = i
- elseif not superscript then
- superscript = i
- elseif not subscript then
- subscript = i
- else
- -- error
+ if ndata > 3 then
+ -- error
+ else
+ for i=1,ndata do
+ local di = data[i]
+ if not di then
+ -- weird
+ elseif di.content then
+ -- text
+ else
+ local s = specifications[di.fulltag]
+ if s.subscript then
+ subscript = i
+ elseif s.superscript then
+ superscript = i
+ else
+ nucleus = i
+ end
+ end
+ end
+ if superscript or subscript then
+ -- we probably always have 3 anyway ... needs checking
+ local nuc = nucleus and data[nucleus]
+ local sub = subscript and data[subscript]
+ local sup = superscript and data[superscript]
+ local n = 0 -- play safe
+ if nuc then n = n + 1 ; data[n] = nuc end
+ if sub then n = n + 1 ; data[n] = sub end
+ if sup then n = n + 1 ; data[n] = sup end
end
- end
- if superscript and subscript then
- local sup, sub = data[superscript], data[subscript]
- data[superscript], data[subscript] = sub, sup
- -- sub.__o__, sup.__o__ = subscript, superscript
- sub.__i__, sup.__i__ = superscript, subscript
end
-- elseif roottg == "msup" or roottg == "msub" then
-- -- m$^2$
diff --git a/tex/context/base/mkiv/colo-ini.mkiv b/tex/context/base/mkiv/colo-ini.mkiv
index 7e78f0e01..7b649c174 100644
--- a/tex/context/base/mkiv/colo-ini.mkiv
+++ b/tex/context/base/mkiv/colo-ini.mkiv
@@ -221,7 +221,7 @@
\unexpanded\def\directcolored[#1]%
{\colo_basics_defined_and_activated{#1}}
-\unexpanded\def\fastcolor [#1]#2%
+\unexpanded\def\fastcolor[#1]#2%
{\begingroup % is this command still needed?
\edef\currentcolorname{#1}%
\ifx\currentcolorprefix\empty
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index f35151c93..487aab5d7 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{2019.08.05 10:34}
+\newcontextversion{2019.08.09 18:29}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index a6d3c7f7b..4b0e9897e 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{2019.08.05 10:34}
+\edef\contextversion{2019.08.09 18:29}
\edef\contextkind {beta}
%D Kind of special:
@@ -599,10 +599,6 @@
\loadmarkfile{cont-run} % the main runner (used in cont-yes.mkiv)
-\appendtoks
- \setupoutput[pdf]
-\to \everyjob
-
\setupcurrentlanguage[\defaultlanguagetag]
\prependtoks
diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl
index 07a53fc2c..e1fbe1e04 100644
--- a/tex/context/base/mkiv/context.mkxl
+++ b/tex/context/base/mkiv/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.08.05 10:34}
+\edef\contextversion{2019.08.09 18:29}
\edef\contextkind {beta}
%D Kind of special:
@@ -595,10 +595,6 @@
\loadmarkfile{cont-run} % the main runner (used in cont-yes.mkiv)
-\appendtoks
- \setupoutput[pdf]
-\to \everyjob
-
\setupcurrentlanguage[\defaultlanguagetag]
\prependtoks
diff --git a/tex/context/base/mkiv/core-def.mkiv b/tex/context/base/mkiv/core-def.mkiv
index 95f7f2577..d10527d7b 100644
--- a/tex/context/base/mkiv/core-def.mkiv
+++ b/tex/context/base/mkiv/core-def.mkiv
@@ -107,6 +107,9 @@
\initializenewlinechar
\calculatecurrenttime
\syst_files_load
+ % for the moment here (before doc env)
+ \setupoutput[pdf]%
+ %
\clf_setdocumentcommandline
\clf_setdocumentctxfile
\clf_setdocumentfilenames
diff --git a/tex/context/base/mkiv/core-env.mkiv b/tex/context/base/mkiv/core-env.mkiv
index 27ae8c008..09de435e7 100644
--- a/tex/context/base/mkiv/core-env.mkiv
+++ b/tex/context/base/mkiv/core-env.mkiv
@@ -663,16 +663,14 @@
{\dotripleargument\syst_variables_set[\globalgetrawparameters]}
\def\syst_variables_set[#1][#2][#3]% tricky, test on s-pre-60
- {\errorisfataltrue
- \doifelse{#2}\currentvariableclass
+ {\doifelse{#2}\currentvariableclass
{#1[\??variables#2:][#3]}%
{\pushmacro\currentvariableclass
\def\currentvariableclass{#2}%
\getvariable{#2}\s!reset
#1[\??variables#2:][#3]%
\getvariable{#2}\s!set
- \popmacro\currentvariableclass}%
- \errorisfatalfalse}
+ \popmacro\currentvariableclass}}
\unexpanded\def\setvariable #1#2#3{\expandafter\def \csname\??variables#1:#2\endcsname{#3}}
\unexpanded\def\setevariable#1#2#3{\expandafter\edef\csname\??variables#1:#2\endcsname{#3}}
diff --git a/tex/context/base/mkiv/font-cff.lua b/tex/context/base/mkiv/font-cff.lua
index 86ae448cc..a19acc1a1 100644
--- a/tex/context/base/mkiv/font-cff.lua
+++ b/tex/context/base/mkiv/font-cff.lua
@@ -1012,43 +1012,6 @@ do
top = 0
end
--- local function xxcurveto(swap)
--- local last = top % 4 ~= 0 and stack[top]
--- if last then
--- top = top - 1
--- end
--- for i=1,top,4 do
--- local ax, ay, bx, by
--- if swap then
--- ax = x + stack[i]
--- ay = y
--- bx = ax + stack[i+1]
--- by = ay + stack[i+2]
--- y = by + stack[i+3]
--- if last and i+3 == top then
--- x = bx + last
--- else
--- x = bx
--- end
--- swap = false
--- else
--- ax = x
--- ay = y + stack[i]
--- bx = ax + stack[i+1]
--- by = ay + stack[i+2]
--- x = bx + stack[i+3]
--- if last and i+3 == top then
--- y = by + last
--- else
--- y = by
--- end
--- swap = true
--- end
--- xycurveto(ax,ay,bx,by,x,y)
--- end
--- top = 0
--- end
-
local function xxcurveto(swap)
local last = top % 4 ~= 0 and stack[top]
if last then
@@ -1086,7 +1049,6 @@ do
top = 0
end
-
local function hvcurveto()
if trace_charstrings then
showstate("hvcurveto")
@@ -1663,7 +1625,7 @@ do
local function call(scope,list,bias) -- ,process)
depth = depth + 1
if top == 0 then
- showstate(formatters["unknown %s call"](scope))
+ showstate(formatters["unknown %s call %s"](scope,"?"))
top = 0
else
local index = stack[top] + bias
@@ -1675,7 +1637,7 @@ do
if tab then
process(tab)
else
- showstate(formatters["unknown %s call %i"](scope,index))
+ showstate(formatters["unknown %s call %s"](scope,index))
top = 0
end
end
@@ -1796,7 +1758,7 @@ do
i = i + 1
local t = tab[i]
if justpass then
- if t >= 34 or t <= 37 then -- flexes
+ if t >= 34 and t <= 37 then -- flexes
for i=1,top do
r = r + 1 ; result[r] = encode[stack[i]]
end
@@ -1941,21 +1903,16 @@ end
-- end
-- end
- local function setbias(globals,locals)
--- if version == 1 then -- charstring version, not cff
--- return
--- 0,
--- 0
--- return
--- 1,
--- 1
--- else
+ local function setbias(globals,locals,nobias)
+ if nobias then
+ return 0, 0
+ else
local g = #globals
local l = #locals
return
((g < 1240 and 107) or (g < 33900 and 1131) or 32768) + 1,
((l < 1240 and 107) or (l < 33900 and 1131) or 32768) + 1
--- end
+ end
end
local function processshape(tab,index)
@@ -2086,7 +2043,7 @@ end
return privatedata.nominalwidthx or 0, privatedata.defaultwidthx or 0
end
- parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams)
+ parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams,nobias)
local dictionary = data.dictionaries[1]
local charstrings = dictionary.charstrings
@@ -2100,7 +2057,7 @@ end
vsindex = dictionary.vsindex or 0
glyphs = glphs or { }
- globalbias, localbias = setbias(globals,locals)
+ globalbias, localbias = setbias(globals,locals,nobias)
nominalwidth, defaultwidth = setwidths(dictionary.private)
if charstrings then
@@ -2127,9 +2084,9 @@ end
vsindex = dictionary.vsindex or 0
glyphs = glphs or { }
- justpass = streams == true
+ justpass = streams == true
- globalbias, localbias = setbias(globals,locals)
+ globalbias, localbias = setbias(globals,locals,nobias)
nominalwidth, defaultwidth = setwidths(dictionary.private)
processshape(tab,index-1)
diff --git a/tex/context/base/mkiv/font-con.lua b/tex/context/base/mkiv/font-con.lua
index 9def52ef0..9c1e825fa 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -982,15 +982,15 @@ function constructors.finalize(tfmdata)
end
--
if not parameters.slantfactor then
- parameters.slantfactor = tfmdata.slant or 0
+ parameters.slantfactor = (tfmdata.slant or 0)/1000
end
--
if not parameters.extendfactor then
- parameters.extendfactor = tfmdata.extend or 0
+ parameters.extendfactor = (tfmdata.extend or 1000)/1000
end
--
if not parameters.squeezefactor then
- parameters.squeezefactor = tfmdata.squeeze or 0
+ parameters.squeezefactor = (tfmdata.squeeze or 1000)/1000
end
--
local designsize = parameters.designsize
diff --git a/tex/context/base/mkiv/font-emp.mklx b/tex/context/base/mkiv/font-emp.mklx
index 7eaf0a24f..2bd6f3cf9 100644
--- a/tex/context/base/mkiv/font-emp.mklx
+++ b/tex/context/base/mkiv/font-emp.mklx
@@ -164,7 +164,7 @@
\futurelet\nexttoken\font_emphasis_test}
\def\font_emphasis_test
- {\ifcat\noexpand\nexttoken,% still ok?
+ {\ifcat\noexpand\nexttoken,% we can do better in luatex ... some day ...
\expandafter\font_emphasis_a
\else
\expandafter\font_emphasis_b
@@ -175,7 +175,7 @@
\def\font_emphasis_correction
{\setbox\scratchbox\hbox{\nexttoken}% tricky as next can be a macro
- \ifdim\ht\scratchbox=\zeropoint % probably a space
+ \ifzeropt\ht\scratchbox % probably a space
\expandafter\font_emphasis_b
\orelse\ifdim\ht\scratchbox<.3\exheight
\expandafter\expandafter\expandafter\endgroup
@@ -185,7 +185,7 @@
\def\font_emphasis_b
{\scratchskip\lastskip
- \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip
+ \ifzeropt\scratchskip
\italiccorrection\relax
\else
\unskip\italiccorrection\hskip\scratchskip
diff --git a/tex/context/base/mkiv/font-emp.mkvi b/tex/context/base/mkiv/font-emp.mkvi
index 5dacd175b..38305abef 100644
--- a/tex/context/base/mkiv/font-emp.mkvi
+++ b/tex/context/base/mkiv/font-emp.mkvi
@@ -173,7 +173,7 @@
\def\font_emphasis_correction
{\setbox\scratchbox\hbox{\nexttoken}% tricky as next can be a macro
- \ifdim\ht\scratchbox=\zeropoint % probably a space
+ \ifzeropt\ht\scratchbox % probably a space
\expandafter\font_emphasis_b
\else\ifdim\ht\scratchbox<.3\exheight
\expandafter\expandafter\expandafter\endgroup
@@ -183,7 +183,7 @@
\def\font_emphasis_b
{\scratchskip\lastskip
- \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip
+ \ifzeropt\scratchskip
\italiccorrection\relax
\else
\unskip\italiccorrection\hskip\scratchskip
diff --git a/tex/context/base/mkiv/font-onr.lua b/tex/context/base/mkiv/font-onr.lua
index 8523d8729..188aaf644 100644
--- a/tex/context/base/mkiv/font-onr.lua
+++ b/tex/context/base/mkiv/font-onr.lua
@@ -235,7 +235,6 @@ do
binary = decrypt(binary,55665,4)
local names = { }
-
local encoding = lpegmatch(p_filterencoding,ascii)
local metadata = lpegmatch(p_filtermetadata,ascii,1,{})
local glyphs = { }
@@ -255,7 +254,7 @@ do
},
}
-- only cff 1 in type 1 fonts
- fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams)
+ fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams,true)
else
lpegmatch(p_filternames,binary,1,filename)
end
diff --git a/tex/context/base/mkiv/font-run.mkiv b/tex/context/base/mkiv/font-run.mkiv
index 610f2e62c..2f6cd32df 100644
--- a/tex/context/base/mkiv/font-run.mkiv
+++ b/tex/context/base/mkiv/font-run.mkiv
@@ -158,7 +158,7 @@
{\vss
\hpack to \scratchdimenone
{\dummy
- \ifdim\interwordspace=\zeropoint
+ \ifzeropt\interwordspace
\setbox##1\hpack
{\raise.5\dp##1\hpack
{\lower.5\ht##1\copy##1}}%
diff --git a/tex/context/base/mkiv/font-shp.lua b/tex/context/base/mkiv/font-shp.lua
index ba4853ec3..40a3e7018 100644
--- a/tex/context/base/mkiv/font-shp.lua
+++ b/tex/context/base/mkiv/font-shp.lua
@@ -17,7 +17,7 @@ local pfb = fonts.handlers.pfb
local hashes = fonts.hashes
local identifiers = hashes.identifiers
-local version = 0.008
+local version = 0.009
local shapescache = containers.define("fonts", "shapes", version, true)
local streamscache = containers.define("fonts", "streams", version, true)
diff --git a/tex/context/base/mkiv/font-tfm.lua b/tex/context/base/mkiv/font-tfm.lua
index 5fdae5990..e2f0d22f2 100644
--- a/tex/context/base/mkiv/font-tfm.lua
+++ b/tex/context/base/mkiv/font-tfm.lua
@@ -139,6 +139,16 @@ local function read_from_tfm(specification)
-- If reencode returns a new table, we assume that we're doing something
-- special. An 'auto' reencode picks up its vector from the pfb file.
+ if lpdf and lpdf.getmapentry and not features.reencode then
+ -- This can happen multiple times but not that often so we don't
+ -- optimize this.
+ local encoding, pfbfile, encfile = lpdf.getmapentry(filename)
+ if encoding and pfbfile then
+ features.reencode = encfile
+ features.pfbfile = pfbfile
+ end
+ end
+
local newtfmdata = (depth[filename] == 1) and tfm.reencode(tfmdata,specification)
if newtfmdata then
tfmdata = newtfmdata
@@ -160,6 +170,10 @@ local function read_from_tfm(specification)
properties.format = tfmdata.format or fonts.formats.tfm -- better than nothing
properties.usedbitmap = tfmdata.usedbitmap
--
+if lpdf and lpdf.getmapentry and newtfmdata then
+ properties.filename = features.pfbfile
+end
+ --
tfmdata.properties = properties
tfmdata.resources = resources
tfmdata.parameters = parameters
@@ -243,6 +257,7 @@ local function read_from_tfm(specification)
if size < 0 then
size = idiv(65536 * -size,100)
end
+
parameters.factor = 1 -- already scaled
parameters.units = 1000 -- just in case
parameters.size = size
@@ -374,7 +389,7 @@ do
return
end
- local pfbfile = outfiles[tfmfile]
+ local pfbfile = pfbfile or outfiles[tfmfile]
if pfbfile == nil then
if bitmap then
@@ -395,7 +410,6 @@ do
local encoding = false
local vector = false
-
if type(pfbfile) == "string" then
local pfb = constructors.handlers.pfb
if pfb and pfb.loadvector then
@@ -427,17 +441,18 @@ do
local indices = { }
local parentfont = { "font", 1 }
local private = tfmdata.privateoffset or constructors.privateoffset
- local reported = encdone[tfmfile][encfile]
-
+ local reported = encdone[tfmfile][encfile] -- bah, encdone for tfm or pfb ?
-- create characters table
+ -- vector : pfbindex -> name
+ -- encoding : tfmindex -> name
+
local backmap = vector and table.swapped(vector)
local done = { } -- prevent duplicate
-
- for index, name in sortedhash(encoding) do -- predictable order
- local unicode = unicoding[name]
- local original = originals[index]
+ for tfmindex, name in sortedhash(encoding) do -- predictable order
+ local original = originals[tfmindex]
if original then
+ local unicode = unicoding[name]
if unicode then
original.unicode = unicode
else
@@ -448,17 +463,17 @@ do
end
end
characters[unicode] = original
- indices[index] = unicode
+ indices[tfmindex] = unicode
original.name = name -- so one can lookup weird names
if backmap then
- original.index = backmap[name]
+ original.index = backmap[name] -- the pfb index
else -- probably bitmap
- original.commands = { parentfont, charcommand[index] } -- or "slot"
- original.oindex = index
+ original.commands = { parentfont, charcommand[tfmindex] } -- or "slot"
+ original.oindex = tfmindex
end
done[name] = true
elseif not done[name] then
- report_tfm("bad index %a in font %a with name %a",index,tfmfile,name)
+ report_tfm("bad index %a in font %a with name %a",tfmindex,tfmfile,name)
end
end
diff --git a/tex/context/base/mkiv/font-tpk.lua b/tex/context/base/mkiv/font-tpk.lua
index 4c3e7c42e..2a0810a6b 100644
--- a/tex/context/base/mkiv/font-tpk.lua
+++ b/tex/context/base/mkiv/font-tpk.lua
@@ -454,7 +454,17 @@ do
local header = 0
local max = 0
local size = streamsize(s)
- local glyphs = table.setmetatableindex(function(t,k) local v = { } t[k] = v return v end)
+ local glyphs = table.setmetatableindex(function(t,k)
+ local v = {
+ -- we default because boundary chars have no dimension s
+ width = 0,
+ height = 0,
+ depth = 0,
+ italic = 0,
+ }
+ t[k] = v
+ return v
+ end)
local parameters = { }
local direction = 0
--
diff --git a/tex/context/base/mkiv/font-tra.mkiv b/tex/context/base/mkiv/font-tra.mkiv
index 205ca5ca0..89a50c5ae 100644
--- a/tex/context/base/mkiv/font-tra.mkiv
+++ b/tex/context/base/mkiv/font-tra.mkiv
@@ -126,7 +126,7 @@
{\otfstepspace
\doif{#3}{mark}{\underbar}{U+\hexnumber{#2}}:%
\setbox\scratchbox\hbox{\ctxlua{nodes.tracers.fontchar(#1,#2)}}%
- \ifdim\wd\scratchbox=\zeropoint
+ \ifzeropt\wd\scratchbox
\scratchwidth.125\onepoint
\scratchdistance\dimexpr(\emwidth/2-\scratchwidth)\relax
\kern\scratchdistance
diff --git a/tex/context/base/mkiv/font-ttf.lua b/tex/context/base/mkiv/font-ttf.lua
index d2fe0917c..651ede17e 100644
--- a/tex/context/base/mkiv/font-ttf.lua
+++ b/tex/context/base/mkiv/font-ttf.lua
@@ -733,7 +733,15 @@ local function repackpoints(glyphs,shapes)
currentx = px
currenty = py
if lastflag == fl then
- nofflags = nofflags + 1
+ if nofflags == 255 then
+ -- This happens in koeieletters!
+ lastflag = lastflag + 0x08
+ r = r + 1 result[r] = char(lastflag,nofflags-1)
+ nofflags = 1
+ lastflag = fl
+ else
+ nofflags = nofflags + 1
+ end
else -- if > 255
if nofflags == 1 then
-- r = r + 1 result[r] = char(lastflag)
diff --git a/tex/context/base/mkiv/grph-inc.mkiv b/tex/context/base/mkiv/grph-inc.mkiv
index 3564347f3..30846c90f 100644
--- a/tex/context/base/mkiv/grph-inc.mkiv
+++ b/tex/context/base/mkiv/grph-inc.mkiv
@@ -374,10 +374,10 @@
userpassword {\externalfigureparameter\c!userpassword}%
ownerpassword{\externalfigureparameter\c!ownerpassword}%
\ifx\p_width\empty \else
- width \dimexpr\p_width\relax
+ width \dimexpr\p_width\relax
\fi
\ifx\p_height\empty \else
- height \dimexpr\p_height\relax
+ height \dimexpr\p_height\relax
\fi
}%\relax
\clf_figure_identify
diff --git a/tex/context/base/mkiv/l-lua.lua b/tex/context/base/mkiv/l-lua.lua
index 5570e83dc..6e9606e84 100644
--- a/tex/context/base/mkiv/l-lua.lua
+++ b/tex/context/base/mkiv/l-lua.lua
@@ -212,7 +212,7 @@ FFISUPPORTED = type(ffi) == "table" and ffi.os ~= "" and ffi.arch ~= "" and ffi.
if not FFISUPPORTED then
- -- Maybe we should check for LUATEXENGINE but that's also a bti tricky as we still
+ -- Maybe we should check for LUATEXENGINE but that's also a bit tricky as we still
-- can have a weird ffi library laying around. Checking for presence of 'jit' is
-- also not robust. So for now we hope for the best.
@@ -253,3 +253,7 @@ if LUAVERSION > 5.3 then
-- collectgarbage("collect")
-- collectgarbage("generational") -- crashes on unix
end
+
+if status and os.setenv then
+ os.setenv("engine",string.lower(status.luatex_engine or "unknown"))
+end
diff --git a/tex/context/base/mkiv/lpdf-emb.lua b/tex/context/base/mkiv/lpdf-emb.lua
index 2ab852a60..acb8a3082 100644
--- a/tex/context/base/mkiv/lpdf-emb.lua
+++ b/tex/context/base/mkiv/lpdf-emb.lua
@@ -41,9 +41,12 @@ local pdfflushstreamobject = lpdf.flushstreamobject
local fontstreams = fonts.hashes.streams
local report_fonts = logs.reporter("backend","fonts")
+
local trace_fonts = false
local trace_details = false
+local dimenfactors = number.dimenfactors
+
trackers.register("backend.pdf.fonts",function(v) trace_fonts = v end)
local readers = fonts.handlers.otf.readers
@@ -54,6 +57,7 @@ local readstring = utilities.files.readstring
local openfile = utilities.files.open
local closefile = utilities.files.close
+
-- needs checking: signed vs unsigned
local tocardinal1 = char
@@ -292,6 +296,9 @@ local loadmapfile, loadmapline, getmapentry do
local mappings = { }
loadmapline = function(n)
+ if trace_fonts then
+ report_fonts("mapline: %s",n)
+ end
local name, fullname, encfile, pfbfile = match(n,"(%S+)%s+(%S+).-<(.-%.enc).-<(.-%.pfb)")
if name then
mappings[name] = { fullname, encfile, pfbfile }
@@ -328,6 +335,8 @@ local loadmapfile, loadmapline, getmapentry do
end
end
+ lpdf.getmapentry = getmapentry
+
end
-- The three writers: opentype, truetype and type1.
@@ -1340,6 +1349,23 @@ do
local metadata = details.rawdata.metadata
local indices = details.indices
local metabbox = { fontheader.xmin, fontheader.ymin, fontheader.xmax, fontheader.ymax }
+ local correction = 1
+
+ -- (*) We share code with type1 and when we have old school tfm with
+ -- pfb but without descriptions we're kind of toast.
+
+ if not descriptions or not next(descriptions) then
+ -- This is good enough, we only need indices and widths.
+ descriptions = details.fontdata.characters
+ -- This is a hack, we have no basepoints.
+ correction = details.fontdata.parameters.size / 1000
+ -- And this needs checking.
+ correction = correction * dimenfactors.bp / dimenfactors.pt
+ metadata = { }
+ end
+
+ --
+
local indices,
minindex,
maxindex = collectindices(descriptions,indices)
@@ -1385,8 +1411,9 @@ do
fontfile = closefontfile(fontfile)
--
local units = fontheader.units or metadata.units
+
local basefont = pdfconstant(basefontname)
- local widths = widtharray(details,indices,maxindex,units)
+ local widths = widtharray(details,indices,maxindex,units * correction)
local object = details.objectnumber
local tounicode = tounicodedictionary(details,indices,maxindex,basefontname)
local tocidset = tocidsetdictionary(indices,minindex,maxindex)
@@ -1458,6 +1485,10 @@ do
end
mainwriters["type1"] = function(details)
+ -- We abuse the cff includer which is ok but for special cases like
+ -- tfm -> pfb we don't have the right descriptions and scale so this
+ -- is why we cheat elsewhere. Maybe I should just drop that kind of
+ -- support and assume afm files to be present. See (*) above.
local s = details.streams
local m = details.rawdata.metadata
if m then
@@ -1714,8 +1745,8 @@ function lpdf.flushfonts()
-- this is no not yet ok for tfm / type 1
for hash, details in sortedhash(mainfonts) do
+ local filename = details.filename
if next(details.indices) then
- local filename = details.filename
if trace_fonts then
report_fonts("embedding %a hashed as %a",filename,hash)
end
@@ -1737,6 +1768,9 @@ function lpdf.flushfonts()
-- This will move to the tpk module where we will also deal
-- with bitmaps then.
local encoding, pfbfile, encfile = getmapentry(filename)
+if trace_fonts then
+ report_fonts("file %a resolved to encoding %a and file %a",filename,encoding,pfbfile)
+end
if encoding and pfbfile then
filename = pfbfile
format = "type1"
@@ -1752,7 +1786,7 @@ function lpdf.flushfonts()
local vector = encoding.vector
local indices = details.indices
local remapped = { }
- local factor = number.dimenfactors.bp * size / 65536
+ local factor = dimenfactors.bp * size / 65536
for k, v in next, indices do
local name = vector[k]
local index = reverse[name] or 0
@@ -1792,7 +1826,7 @@ function lpdf.flushfonts()
local vector = encoding.vector
local indices = details.indices
local remapped = { }
- local factor = number.dimenfactors.bp * size / 65536
+ local factor = dimenfactors.bp * size / 65536
for k, v in next, indices do
local name = vector[k]
local index = reverse[name] or 0
@@ -1834,6 +1868,8 @@ function lpdf.flushfonts()
report_fonts("no %a writer for %a",format,filename)
end
end
+ else
+ report_fonts("no indices for %a",filename)
end
mainfonts[details.hash] = false -- done
end
diff --git a/tex/context/base/mkiv/lpdf-lmt.lua b/tex/context/base/mkiv/lpdf-lmt.lua
index bab3d682b..d3dfecd7b 100644
--- a/tex/context/base/mkiv/lpdf-lmt.lua
+++ b/tex/context/base/mkiv/lpdf-lmt.lua
@@ -380,9 +380,9 @@ local flushcharacter do
-- for it so
local function setup_fontparameters(font,factor,f,e)
- local slant = (fontparameters.slantfactor or 0) / 1000
- local extend = (fontparameters.extendfactor or 1000) / 1000
- local squeeze = (fontparameters.squeezefactor or 1000) / 1000
+ local slant = fontparameters.slantfactor or 0
+ local extend = fontparameters.extendfactor or 1
+ local squeeze = fontparameters.squeezefactor or 1
local expand = 1 + factor / 1000000
local format = fontproperties.format
if e then
@@ -416,9 +416,9 @@ local flushcharacter do
--
-- local function setup_fontparameters(font,factor,f,e)
-- if font ~= lastfont then
- -- lastslant = (fontparameters.slantfactor or 0) / 1000
- -- lastextend = (fontparameters.extendfactor or 1000) / 1000
- -- lastsqueeze = (fontparameters.squeezefactor or 1000) / 1000
+ -- lastslant = fontparameters.slantfactor 0
+ -- lastextend = fontparameters.extendfactor 1
+ -- lastsqueeze = fontparameters.squeezefactor 1
-- lastformat = fontproperties.format
-- lastsize = fontparameters.size * bpfactor
-- if format == "opentype" or format == "type1" then
diff --git a/tex/context/base/mkiv/math-ali.mkiv b/tex/context/base/mkiv/math-ali.mkiv
index 123fcda90..400326d26 100644
--- a/tex/context/base/mkiv/math-ali.mkiv
+++ b/tex/context/base/mkiv/math-ali.mkiv
@@ -1469,7 +1469,7 @@
\ifcase\mathraggedstatus\or\or\hfill\or\hfill\fi
\else
\ifconditional\c_strc_math_indent
- \ifdim\d_strc_math_indent=\zeropoint\else
+ \ifzeropt\d_strc_math_indent\else
\hangafter\plusone
\hangindent\d_strc_math_indent
\fi
@@ -1876,22 +1876,22 @@
% 4=disable 6=only when no spaces
\mathsurroundskip\mathematicsparameter\c!textdistance\relax
\ifzeropt\mathsurroundskip
- \ifdim\gluestretch\mathsurroundskip=\zeropoint
- \ifdim\glueshrink\mathsurroundskip=\zeropoint
- \mathsurroundmode\plussix
+ \ifzeropt\gluestretch\mathsurroundskip
+ \ifzeropt\glueshrink\mathsurroundskip
+ \mathsurroundmode\plussix
\else
- \mathsurroundskip\zeropoint
- \mathsurroundmode\plusfour
+ \mathsurroundskip\zeropoint
+ \mathsurroundmode\plusfour
\fi
- \else
+ \else
\mathsurroundmode\plussix
- \fi
+ \fi
\else
- \mathsurroundmode\plussix
+ \mathsurroundmode\plussix
\fi
\else
- \mathsurroundmode\plusfour
- \mathsurroundskip\zeropoint
+ \mathsurroundmode\plusfour
+ \mathsurroundskip\zeropoint
\fi
\to \everymathematics
diff --git a/tex/context/base/mkiv/math-ini.mkiv b/tex/context/base/mkiv/math-ini.mkiv
index 24da3441e..7259fca3f 100644
--- a/tex/context/base/mkiv/math-ini.mkiv
+++ b/tex/context/base/mkiv/math-ini.mkiv
@@ -2782,7 +2782,7 @@
\def\checkeddisplaywidth % hsize if zero
{\dimexpr
- \ifdim\displaywidth=\zeropoint
+ \ifzeropt\displaywidth
\hsize
\else
\displaywidth
@@ -2791,7 +2791,7 @@
\def\maximizeddisplaywidth % larger than zero but within hsize
{\dimexpr
- \ifdim\displaywidth=\zeropoint
+ \ifzeropt\displaywidth
\hsize
\else\ifdim\displaywidth>\hsize
\hsize
diff --git a/tex/context/base/mkiv/math-tag.lua b/tex/context/base/mkiv/math-tag.lua
index ee59e5f75..b758c1ff5 100644
--- a/tex/context/base/mkiv/math-tag.lua
+++ b/tex/context/base/mkiv/math-tag.lua
@@ -116,10 +116,10 @@ local function processsubsup(start)
-- start_tagged("mrow")
process(nucleus)
-- stop_tagged()
- start_tagged("mrow")
+ start_tagged("mrow", { subscript = true })
process(sub)
stop_tagged()
- start_tagged("mrow")
+ start_tagged("mrow", { superscript = true })
process(sup)
stop_tagged()
stop_tagged()
@@ -204,7 +204,6 @@ process = function(start) -- we cannot use the processor as we have no finalizer
local mtexttag = nil
while start do
local id = getid(start)
--- print("!!!!!!!!!!",nodecodes[id])
-- showtag(start,id,true)
if id == glyph_code or id == disc_code then
if not mtexttag then
@@ -583,9 +582,10 @@ end
function noads.handlers.tags(head,style,penalties)
start_tagged("math", { mode = (getattr(head,a_mathmode) == 1) and "display" or "inline" })
--- start_tagged("mrow")
setattr(head,a_tagged,start_tagged("mrow"))
+-- showtag(head,getid(head),true)
process(head)
+-- showtag(head,getid(head),false)
stop_tagged()
stop_tagged()
end
diff --git a/tex/context/base/mkiv/mlib-ctx.mkxl b/tex/context/base/mkiv/mlib-ctx.mkxl
index 56b8587a8..c66e6f968 100644
--- a/tex/context/base/mkiv/mlib-ctx.mkxl
+++ b/tex/context/base/mkiv/mlib-ctx.mkxl
@@ -20,6 +20,7 @@
\registerctxluafile{mlib-mat}{}
\registerctxluafile{mlib-lmp}{}
\registerctxluafile{mlib-int}{}
+\registerctxluafile{mlib-lmt}{}
\unprotect
diff --git a/tex/context/base/mkiv/mlib-lmt.lua b/tex/context/base/mkiv/mlib-lmt.lua
new file mode 100644
index 000000000..774ddc8e5
--- /dev/null
+++ b/tex/context/base/mkiv/mlib-lmt.lua
@@ -0,0 +1,48 @@
+if not modules then modules = { } end modules ['mlib-lmt'] = {
+ version = 1.001,
+ comment = "companion to mlib-ctx.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+local mppath = mp.path
+
+function mp.lmt_function_x(xmin,xmax,xstep,code,shape) -- experimental
+ local code = "return function(x) return " .. code .. " end"
+ local action = load(code)
+ local points = { }
+ local nofpoints = 0
+ if action then
+ action = action()
+ end
+ if shape == "steps" then
+ local halfx = xstep / 2
+ local lastx = xmin
+ local lasty = action(xmin)
+ for xi = xmin, xmax, xstep do
+ local yi = action(xi)
+ local xx = lastx + halfx
+ nofpoints = nofpoints + 1 ; points[nofpoints] = { xx, lasty }
+ nofpoints = nofpoints + 1 ; points[nofpoints] = { xx, yi }
+ lastx = xi
+ lasty = yi
+ end
+ if points[nofpoints][1] ~= xmax then
+ local yi = action(xmax)
+ local xx = lastx + halfx
+ nofpoints = nofpoints + 1 ; points[nofpoints] = { xx, lasty }
+ nofpoints = nofpoints + 1 ; points[nofpoints] = { xx, yi }
+ lastx = xi
+ lasty = yi
+ end
+ else
+ for xi = xmin, xmax, xstep do
+ nofpoints = nofpoints + 1 ; points[nofpoints] = { xi, action(xi) }
+ end
+ if points[nofpoints][1] ~= xmax then
+ nofpoints = nofpoints + 1 ; points[nofpoints] = { xmax, action(xmax) }
+ end
+ end
+ mppath(points,shape == "curve" and ".." or "--",false)
+end
diff --git a/tex/context/base/mkiv/mlib-scn.lua b/tex/context/base/mkiv/mlib-scn.lua
index 97768f7a7..b1f93d5cc 100644
--- a/tex/context/base/mkiv/mlib-scn.lua
+++ b/tex/context/base/mkiv/mlib-scn.lua
@@ -27,7 +27,7 @@ if not modules then modules = { } end modules ['mlib-scn'] = {
-- popparameters;
local type, next = type, next
-local byte = string.byte
+local byte, gmatch = string.byte, string.gmatch
local insert, remove = table.insert, table.remove
local mplib = mplib
@@ -288,7 +288,7 @@ local function collectnames()
n = n + 1 l[n] = scanstring(1)
elseif t == nullary_code then
n = n + 1 l[n] = scanboolean(1)
- elseif t == leftdelimiter_code then
+ elseif t == leftdelimiter_code or t == tag_code then
t = scanexpression(true)
n = n + 1 l[n] = (typescanners[t] or scanexpression)()
else
@@ -373,25 +373,42 @@ end
local function getparameterdefault()
local list, n = collectnames()
local v = namespaces
- for i=1,n-1 do
- local l = list[i]
+ if n == 1 then
+ local l = list[1]
local vl = v[l]
if vl == nil then
- if type(l) == "number" then
- vl = v[1]
- if vl == nil then
+ -- maybe backtrack
+ local top = stack[#stack]
+ if top then
+ vl = top[l]
+ end
+ end
+ if vl == nil then
+ return mpnumeric(0)
+ else
+ return get(vl)
+ end
+ else
+ for i=1,n-1 do
+ local l = list[i]
+ local vl = v[l]
+ if vl == nil then
+ if type(l) == "number" then
+ vl = v[1]
+ if vl == nil then
+ return get(list[n])
+ end
+ else
return get(list[n])
end
- else
- return get(list[n])
end
+ v = vl
+ end
+ if v == nil then
+ return get(list[n])
+ else
+ return get(v)
end
- v = vl
- end
- if v == nil then
- return get(list[n])
- else
- return get(v)
end
end
@@ -463,6 +480,32 @@ local function getparametertext()
end
end
+local function getparameteroption()
+ local list, n = collectnames()
+ local last = list[n]
+ if type(last) == "string" then
+ n = n - 1
+ else
+ return false
+ end
+ local v = namespaces
+ for i=1,n do
+ v = v[list[i]]
+ if not v then
+ break
+ end
+ end
+ if type(v) == "string" and v ~= "" then
+ for s in gmatch(v,"[^ ,]+") do
+ if s == last then
+ return true
+ end
+ end
+ end
+ return false
+end
+
+
metapost.registerscript("getparameters", getparameters)
metapost.registerscript("applyparameters", applyparameters)
metapost.registerscript("presetparameters", presetparameters)
@@ -471,6 +514,7 @@ metapost.registerscript("getparameterdefault", getparameterdefault)
metapost.registerscript("getparametercount", getparametercount)
metapost.registerscript("getparameterpath", getparameterpath)
metapost.registerscript("getparametertext", getparametertext)
+metapost.registerscript("getparameteroption", getparameteroption)
metapost.registerscript("pushparameters", pushparameters)
metapost.registerscript("popparameters", popparameters)
diff --git a/tex/context/base/mkiv/mult-aux.mkiv b/tex/context/base/mkiv/mult-aux.mkiv
index f72e87608..929943d7f 100644
--- a/tex/context/base/mkiv/mult-aux.mkiv
+++ b/tex/context/base/mkiv/mult-aux.mkiv
@@ -890,7 +890,7 @@
\fi}
\def\mult_interfaces_get_parameters_error_indeed#1#2%
- {\clf_showassignerror{#1}{#2}\inputlineno} % no longer \waitonfatalerror
+ {\clf_showassignerror{#1}{#2}\inputlineno}
% We install two core namespaces here, as we want nice error messages. Maybe
% we will reserve the first 9.
diff --git a/tex/context/base/mkiv/mult-aux.mkxl b/tex/context/base/mkiv/mult-aux.mkxl
index ebe3d0f2a..efa44d4dc 100644
--- a/tex/context/base/mkiv/mult-aux.mkxl
+++ b/tex/context/base/mkiv/mult-aux.mkxl
@@ -790,7 +790,7 @@
\fi}
\def\mult_interfaces_get_parameters_error_indeed#1#2%
- {\clf_showassignerror{#1}{#2}\inputlineno} % no longer \waitonfatalerror
+ {\clf_showassignerror{#1}{#2}\inputlineno}
% We install two core namespaces here, as we want nice error messages. Maybe
% we will reserve the first 9.
diff --git a/tex/context/base/mkiv/mult-ini.mkiv b/tex/context/base/mkiv/mult-ini.mkiv
index aa19b4207..76a5bc09b 100644
--- a/tex/context/base/mkiv/mult-ini.mkiv
+++ b/tex/context/base/mkiv/mult-ini.mkiv
@@ -377,40 +377,9 @@
\let\getsetupstring\clf_getsetupstring
\let\rawsetupstring\clf_rawsetupstring
-%D \macros
-%D {ifshowwarnings, ifshowmessages}
-%D
-%D Sometimes displaying message can slow down processing considerably. We therefore
-%D introduce warnings. Users can turn of warnings and messages by saying:
-%D
-%D \starttyping
-%D \showwarningstrue
-%D \showmessagestrue
-%D \stoptyping
-%D
-%D Turning off messages also turns off warnings, which is quote logical because they
-%D are less important.
-
-% not yet mkiv
+%D For old times sake:
-\newif\ifshowwarnings \showwarningstrue
-\newif\ifshowmessages \showmessagestrue
-
-\let\normalshowmessage\showmessage
-
-\unexpanded\def\showwarning
- {\ifshowwarnings
- \expandafter\showmessage
- \else
- \expandafter\gobblethreearguments
- \fi}
-
-\unexpanded\def\showmessage
- {\ifshowmessages
- \expandafter\normalshowmessage
- \else
- \expandafter\gobblethreearguments
- \fi}
+\let\showwarning\showmessage
%D \macros
%D {dosetvalue,dosetevalue,dosetgvalue,dosetxvalue,docopyvalue,doresetvalue} % dogetvalue
@@ -458,9 +427,9 @@
%D We can now redefine some messages that will be introduced in the multi||lingual
%D system module.
-\unexpanded\def\showassignerror #1#2{\showmessage\m!check1{#1,#2}\waitonfatalerror}
-\unexpanded\def\showargumenterror#1#2{\showmessage\m!check2{#1,#2}\waitonfatalerror}
-\unexpanded\def\showdefinederror #1#2{\showmessage\m!check3{#1,#2}\waitonfatalerror}
+\unexpanded\def\showassignerror #1#2{\showmessage\m!check1{#1,#2}}
+\unexpanded\def\showargumenterror#1#2{\showmessage\m!check2{#1,#2}}
+\unexpanded\def\showdefinederror #1#2{\showmessage\m!check3{#1,#2}}
%D \CONTEXT\ is a parameter driven package. This means that users instruct the
%D system by means of variables, values and keywords. These instructions take the
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index 02b5ae854..bee0e76e8 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -41,7 +41,7 @@ return {
"bgroup", "egroup",
"endline",
--
- "conditionaltrue", "conditionalfalse", "quitcondition",
+ "conditionaltrue", "conditionalfalse",
--
"attributeunsetvalue",
--
@@ -294,6 +294,8 @@ return {
"validassignment", "novalidassignment",
"doiftext", "doifelsetext", "doiftextelse", "doifnottext",
--
+ "quitcondition", "truecondition", "falsecondition",
+ --
"tracingall", "tracingnone", "loggingall",
--
"removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to",
diff --git a/tex/context/base/mkiv/pack-bck.mkvi b/tex/context/base/mkiv/pack-bck.mkvi
index 9f9d843ce..a87bc6994 100644
--- a/tex/context/base/mkiv/pack-bck.mkvi
+++ b/tex/context/base/mkiv/pack-bck.mkvi
@@ -120,7 +120,7 @@
\splitmaxdepth\boxmaxdepth
\splittopskip\topskip
\doloop
- {\ifdim\pagetotal=\zeropoint % empty page
+ {\ifzeropt\pagetotal % empty page
\scratchdimen\textheight
\backgroundsplitmode\plusone % split to max height
\else
diff --git a/tex/context/base/mkiv/pack-box.mkiv b/tex/context/base/mkiv/pack-box.mkiv
index bf6d4662d..422f090f0 100644
--- a/tex/context/base/mkiv/pack-box.mkiv
+++ b/tex/context/base/mkiv/pack-box.mkiv
@@ -913,15 +913,15 @@
\scratchtopoffset \offsetboxparameter\c!topoffset
\scratchbottomoffset\offsetboxparameter\c!bottomoffset
\relax % really needed
- \ifdim\scratchleftoffset =\zeropoint\else\donetrue\fi
- \ifdim\scratchrightoffset =\zeropoint\else\donetrue\fi
- \ifdim\scratchtopoffset =\zeropoint\else\donetrue\fi
- \ifdim\scratchbottomoffset=\zeropoint\else\donetrue\fi
+ \ifzeropt\scratchleftoffset \else\donetrue\fi
+ \ifzeropt\scratchrightoffset \else\donetrue\fi
+ \ifzeropt\scratchtopoffset \else\donetrue\fi
+ \ifzeropt\scratchbottomoffset\else\donetrue\fi
\ifdone
\edef\p_method{\offsetboxparameter\c!method}%
\ifx\p_method\v!fixed % new
- \ifdim\scratchleftoffset=\zeropoint
- \ifdim\scratchrightoffset=\zeropoint \else
+ \ifzeropt\scratchleftoffset
+ \ifzeropt\scratchrightoffset \else
\scratchxposition-\scratchrightoffset
\scratchrightoffset\zeropoint
\fi
@@ -929,8 +929,8 @@
\scratchxposition\scratchleftoffset
\scratchleftoffset\zeropoint
\fi
- \ifdim\scratchtopoffset=\zeropoint
- \ifdim\scratchbottomoffset=\zeropoint \else
+ \ifzeropt\scratchtopoffset
+ \ifzeropt\scratchbottomoffset \else
\scratchyposition-\scratchbottomoffset
\scratchbottomoffset\zeropoint
\fi
diff --git a/tex/context/base/mkiv/pack-mrl.mkiv b/tex/context/base/mkiv/pack-mrl.mkiv
index cd04781c7..6b76a4b74 100644
--- a/tex/context/base/mkiv/pack-mrl.mkiv
+++ b/tex/context/base/mkiv/pack-mrl.mkiv
@@ -281,7 +281,7 @@
\edef\p_background{\directthinrulesparameter\c!background}%
\edef\p_frame {\directthinrulesparameter\c!frame}%
\linewidth\dimexpr\directthinrulesparameter\c!rulethickness/\plustwo\relax
- \ifdim\linewidth=\zeropoint
+ \ifzeropt\linewidth
\c_pack_thinrules_type\zerocount
\else\ifx\p_frame\v!on
\c_pack_thinrules_type\expandnamespaceparameter\??thinrulealternatives\directthinrulesparameter\c!alternative\v!b\relax
diff --git a/tex/context/base/mkiv/page-box.mkvi b/tex/context/base/mkiv/page-box.mkvi
index 10d591631..4804e8370 100644
--- a/tex/context/base/mkiv/page-box.mkvi
+++ b/tex/context/base/mkiv/page-box.mkvi
@@ -63,8 +63,8 @@
\v_page_target_bottom}}
\def\page_boxes_apply_offset % #box
- {\ifdim\topoffset=\zeropoint
- \ifdim\backoffset=\zeropoint
+ {\ifzeropt\topoffset
+ \ifzeropt\backoffset
\doubleexpandafter\gobbleoneargument
\else
\doubleexpandafter\page_boxes_apply_offset_indeed
diff --git a/tex/context/base/mkiv/page-lay.mkiv b/tex/context/base/mkiv/page-lay.mkiv
index bde86e8b1..2b801b957 100644
--- a/tex/context/base/mkiv/page-lay.mkiv
+++ b/tex/context/base/mkiv/page-lay.mkiv
@@ -363,21 +363,6 @@
\unexpanded\def\definepapersize
{\dotripleempty\page_paper_define_size}
-% \def\page_paper_define_size[#1][#2][#3]%
-% {\edef\currentlayouttarget{#1}%
-% \ifx\currentlayouttarget\empty
-% % invalid target
-% \else
-% \doifelseassignment{#2}
-% {\definelayouttarget[#1][#2]}
-% {\setevalue{\??layoutpaper#1}{#2}%
-% \ifthirdargument
-% \setevalue{\??layoutprint#1}{#3}%
-% \else
-% \setevalue{\??layoutprint#1}{#2}%
-% \fi}%
-% \fi}
-
\def\page_paper_define_size[#1][#2][#3]%
{\edef\currentlayouttarget{#1}%
\ifx\currentlayouttarget\empty
@@ -413,17 +398,6 @@
\unexpanded\def\setuppapersize
{\dodoubleempty\page_paper_setup_size}
-% \unexpanded\def\page_paper_setup_size[#1][#2]%
-% {\iffirstargument
-% \doifelseassignment{#1}
-% {\page_paper_setup_size_settings[#1]}
-% {\doifelseassignment{#2}
-% {\page_paper_setup_size_settings_by_name[#1][#2]}
-% {\page_paper_setup_size_change_size[#1][#2]}}%
-% \else
-% \page_paper_restore
-% \fi}
-
\unexpanded\def\page_paper_setup_size[#1][#2]%
{\iffirstargument
\ifcondition\validassignment{#1}%
@@ -640,10 +614,6 @@
\fi
-\ifdefined\setups \else
- \unexpanded\def\setups[#1]{\setdefaultpenalties} % still needed?
-\fi
-
\ifdefined\synchronizegridsnapping \else
\let\synchronizegridsnapping\relax
\fi
@@ -672,12 +642,12 @@
\global\cutspace\layoutparameter\c!cutspace\relax
\edef\p_page_layouts_width{\layoutparameter\c!width}%
\ifx\p_page_layouts_width\v!middle
- \ifdim\cutspace=\zeropoint
+ \ifzeropt\cutspace
\global\cutspace\backspace
\fi
\global\makeupwidth\dimexpr\paperwidth-\backspace-\cutspace\relax
\else\ifx\p_page_layouts_width\v!fit
- \ifdim\cutspace=\zeropoint
+ \ifzeropt\cutspace
\global\cutspace\backspace
\fi
\global\makeupwidth\dimexpr\paperwidth-\cutspace\relax
@@ -693,7 +663,7 @@
-\scratchdimen\relax
\else
\global\makeupwidth\p_page_layouts_width\relax
- \ifdim\cutspace=\zeropoint
+ \ifzeropt\cutspace
\global\cutspace\dimexpr\paperwidth-\makeupwidth-\backspace\relax
% \else
% A kind of inconsistent specification, but used
@@ -703,7 +673,7 @@
\fi
\fi\fi
\scratchdimen\layoutparameter\c!bottomspace\relax
- %\ifdim\scratchdimen=\zeropoint
+ %\ifzeropt\scratchdimen
% \scratchdimen\topspace
%\fi
\global\bottomspace\layoutparameter\c!bottomspace\relax
@@ -711,12 +681,12 @@
\ifcase\layoutlines
\edef\p_page_layouts_height{\layoutparameter\c!height}%
\ifx\p_page_layouts_height\v!middle
- \ifdim\bottomspace=\zeropoint
+ \ifzeropt\bottomspace
\global\bottomspace\topspace
\fi
\global\makeupheight\dimexpr\paperheight-\topspace-\bottomspace\relax
\else\ifx\p_page_layouts_height\v!fit
- \ifdim\bottomspace=\zeropoint
+ \ifzeropt\bottomspace
\global\bottomspace\topspace
\fi
\global\makeupheight\dimexpr\paperheight-\bottomspace\relax
@@ -727,7 +697,7 @@
\global\advance\makeupheight\dimexpr-\bottomdistance-\bottomheight-\scratchdimen\relax
\else
\global\makeupheight\layoutparameter\c!height\relax
- \ifdim\bottomspace=\zeropoint
+ \ifzeropt\bottomspace
\global\bottomspace\dimexpr\paperheight-\makeupheight-\topspace\relax
% \else
% inconsistent specification
diff --git a/tex/context/base/mkiv/page-txt.mklx b/tex/context/base/mkiv/page-txt.mklx
index 6029034e5..641e7dc19 100644
--- a/tex/context/base/mkiv/page-txt.mklx
+++ b/tex/context/base/mkiv/page-txt.mklx
@@ -723,15 +723,15 @@
\def\page_layouts_define_text[#tag][#vertical][#horizontal][#a][#b][#c][#d]%
{\ifseventhargument
- \setvalue{\namedlayoutelementhash{#vertical:#horizontal}#tag}{\page_layouts_setup_text_six {#vertical}{#horizontal}{#a}{#b}{#c}{#d}}%
+ \setvalue{\namedlayoutelementhash{#vertical:#horizontal}#tag}{\page_layouts_setup_text_six [#vertical][#horizontal][#a][#b][#c][#d]}%
\orelse\ifsixthargument
- \setvalue{\namedlayoutelementhash {#vertical}#tag}{\page_layouts_setup_text_five {#vertical}{#horizontal}{#a}{#b}{#c}}%
+ \setvalue{\namedlayoutelementhash {#vertical}#tag}{\page_layouts_setup_text_five [#vertical][#horizontal][#a][#b][#c][]}%
\orelse\iffifthargument
- \setvalue{\namedlayoutelementhash{#vertical:#horizontal}#tag}{\page_layouts_setup_text_four {#vertical}{#horizontal}{#a}{#b}}%
+ \setvalue{\namedlayoutelementhash{#vertical:#horizontal}#tag}{\page_layouts_setup_text_four [#vertical][#horizontal][#a][#b][][]}%
\orelse\iffourthargument
- \setvalue{\namedlayoutelementhash {#vertical}#tag}{\page_layouts_setup_text_three{#vertical}{#horizontal}{#a}}%
+ \setvalue{\namedlayoutelementhash {#vertical}#tag}{\page_layouts_setup_text_three[#vertical][#horizontal][#a][][][]}%
\else
- \setvalue{\namedlayoutelementhash {#vertical}#tag}{\page_layouts_setup_text_two {#vertical}{#horizontal}}%
+ \setvalue{\namedlayoutelementhash {#vertical}#tag}{\page_layouts_setup_text_two [#vertical][#horizontal][][][][]}%
\fi}
%D A few more page breakers:
diff --git a/tex/context/base/mkiv/scrn-bar.mkvi b/tex/context/base/mkiv/scrn-bar.mkvi
index 0c320cd03..c089eb945 100644
--- a/tex/context/base/mkiv/scrn-bar.mkvi
+++ b/tex/context/base/mkiv/scrn-bar.mkvi
@@ -129,7 +129,7 @@
\setupcurrentinteractionbar[#settings]%
\d_scrn_bar_width \interactionbarparameter\c!width\relax
\d_scrn_bar_distance\interactionbarparameter\c!distance\relax
- \ifdim\d_scrn_bar_width=\zeropoint
+ \ifzeropt\d_scrn_bar_width
\d_scrn_bar_width1.5\emwidth
\fi
\doifnothing{\interactionbarparameter\c!height}{\letinteractionbarparameter\c!height\v!broad}%
@@ -145,7 +145,7 @@
[ \v!page=>\advance\scratchcounterone\plusfour,
\v!subpage=>\advance\scratchcounterone\plusfour,
\s!unknown=>\advance\scratchcounterone\plusone]%
- \ifdim\d_scrn_bar_width=\zeropoint
+ \ifzeropt\d_scrn_bar_width
\scratchdimenone\dimexpr2\emwidth+\d_scrn_bar_distance\relax
\scratchdimentwo\dimexpr\scratchcounterone\scratchdimenone-\d_scrn_bar_distance\relax
\else
diff --git a/tex/context/base/mkiv/scrn-but.mkvi b/tex/context/base/mkiv/scrn-but.mkvi
index 87af29cfb..0c9b4cfb5 100644
--- a/tex/context/base/mkiv/scrn-but.mkvi
+++ b/tex/context/base/mkiv/scrn-but.mkvi
@@ -455,10 +455,10 @@
\dp\b_scrn_menu\zeropoint}
\def\scrn_menu_apply_used
- {\ifdim\d_scrn_menu_offset_left=\zeropoint \else
+ {\ifzeropt\d_scrn_menu_offset_left \else
\setbox\b_scrn_menu\hbox{\hskip-\d_scrn_menu_offset_left \box\b_scrn_menu}%
\fi
- \ifdim\d_scrn_menu_offset_bottom=\zeropoint \else
+ \ifzeropt\d_scrn_menu_offset_bottom \else
\setbox\b_scrn_menu\hbox{\lower \d_scrn_menu_offset_bottom \box\b_scrn_menu}%
\fi
\wd\b_scrn_menu\d_scrn_menu_asked_width
diff --git a/tex/context/base/mkiv/spac-ali.mkiv b/tex/context/base/mkiv/spac-ali.mkiv
index ae3bff87d..bc4077854 100644
--- a/tex/context/base/mkiv/spac-ali.mkiv
+++ b/tex/context/base/mkiv/spac-ali.mkiv
@@ -203,7 +203,7 @@
% oeps, hsize can be 0pt in which case we get a strange division
% was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
-\def\spac_align_set_raggedness_middle{\ifdim\hsize=\zeropoint\plussix\bodyfontsize\else.5\hsize\fi}
+\def\spac_align_set_raggedness_middle{\ifzeropt\hsize\plussix\bodyfontsize\else.5\hsize\fi}
\unexpanded\def\setraggedness#1% tricky .. we keep the global tolerance otherwise ... to be reconsidered
{\ifnum\tolerance<\c_spac_tolerance_minimum
diff --git a/tex/context/base/mkiv/spac-flr.mkiv b/tex/context/base/mkiv/spac-flr.mkiv
index bd50bfea6..4c3c0c042 100644
--- a/tex/context/base/mkiv/spac-flr.mkiv
+++ b/tex/context/base/mkiv/spac-flr.mkiv
@@ -47,14 +47,14 @@
\edef\currentfiller{#1}%
\usefillerstyleandcolor\c!style\c!color
\scratchdimen\fillerparameter\c!leftmargin\relax
- \ifdim\scratchdimen=\zeropoint\else
+ \ifzeropt\scratchdimen\else
\hskip\scratchdimen
\fi
\fillerparameter\c!left\relax
\expandnamespaceparameter\??filleralternative\fillerparameter\c!alternative\s!unknown\relax
\fillerparameter\c!right\relax
\scratchdimen\fillerparameter\c!rightmargin\relax
- \ifdim\scratchdimen=\zeropoint\else
+ \ifzeropt\scratchdimen\else
\hskip\scratchdimen
\fi
\endgroup
@@ -80,7 +80,7 @@
\begingroup
\edef\currentfiller{#1}%
\scratchdimen\dimexpr\fillerparameter\c!rightmargindistance\relax
- \ifdim\scratchdimen=\zeropoint\else
+ \ifzeropt\scratchdimen\else
\parfillskip \scratchdimen\s!plus \plusone\s!fil\relax
\fi
\spac_fillers_indeed[#1]%
diff --git a/tex/context/base/mkiv/spac-hor.mkiv b/tex/context/base/mkiv/spac-hor.mkiv
index e51e54f29..1a13b39af 100644
--- a/tex/context/base/mkiv/spac-hor.mkiv
+++ b/tex/context/base/mkiv/spac-hor.mkiv
@@ -43,7 +43,7 @@
\unexpanded\def\spac_indentation_setup_size
{\assigndimension\v_spac_indentation_current\d_spac_indentation_par{1\emwidth}{1.5\emwidth}{2\emwidth}%
- \ifdim\parindent=\zeropoint\else
+ \ifzeropt\parindent\else
\parindent\d_spac_indentation_par\relax % new per 2019-04-12 : just in case it has been set beforehand
\fi}
@@ -197,7 +197,7 @@
\parindent\zeropoint
\c_spac_indentation_toggle_state\zerocount}
-\installindentingmethod \v!toggle{\parindent\ifdim\parindent=\zeropoint
+\installindentingmethod \v!toggle{\parindent\ifzeropt\parindent
\d_spac_indentation_par
\else
\zeropoint
@@ -216,7 +216,7 @@
\installmacrostack\ifindentation
\def\spac_indentation_remove
- {\ifdim\parindent=\zeropoint \else
+ {\ifzeropt\parindent \else
\begingroup
\setbox\scratchbox\lastbox
\endgroup
@@ -273,7 +273,7 @@
\fi}
\def\spac_indentation_variant_force
- {\ifvmode \ifdim\parindent=\zeropoint \else
+ {\ifvmode \ifzeropt\parindent \else
% was : \hskip\parindent
% can be: \indent
% but we test:
@@ -845,7 +845,7 @@
\letvalue{\??skipadaptionright\v!no }\zeropoint
\letvalue{\??skipadaptionright\empty }\zeropoint
-% \setvalue{\??skipadaptionleft \v!standard}{\ifdim\d_spac_indentation_par=\zeropoint\narrowerparameter\c!left\else\d_spac_indentation_par\fi}
+% \setvalue{\??skipadaptionleft \v!standard}{\ifzeropt\d_spac_indentation_par\narrowerparameter\c!left\else\d_spac_indentation_par\fi}
% \setvalue{\??skipadaptionright\v!standard}{\narrowerparameter\c!right}
\letcsnamecsname\csname\??skipadaptionleft \v!standard\endcsname\csname\??skipadaptionleft \v!yes\endcsname
@@ -1259,7 +1259,7 @@
\advance\c_spac_ignore_spaces\minusone}
\def\spac_ignore_spaces_body
- {\ifdim\lastskip=\zeropoint
+ {\ifzeropt\lastskip
\exitloop
\else\ifdim\lastskip=\s_spac_ignore_spaces
\unskip
diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv
index bf9427199..326547a49 100644
--- a/tex/context/base/mkiv/spac-ver.mkiv
+++ b/tex/context/base/mkiv/spac-ver.mkiv
@@ -245,7 +245,7 @@
\newdimen\d_spac_prevcontent % set by lua
\unexpanded\def\removelastskip
- {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
+ {\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi}
\def\doifoutervmode
{\ifvmode
@@ -263,7 +263,7 @@
{\s_spac_lastskip\lastskip
\removelastskip
#1\relax
- \ifdim\s_spac_lastskip=\zeropoint
+ \ifzeropt\s_spac_lastskip
% avoid interference with footnotes
\else
\vskip\s_spac_lastskip
@@ -2233,7 +2233,7 @@
\def\bodyfontwhitespace
{\dimexpr
- \ifdim\parskip=\zeropoint
+ \ifzeropt\parskip
\zeropoint
\else\ifgridsnapping
\bodyfontlineheight
diff --git a/tex/context/base/mkiv/spac-ver.mkxl b/tex/context/base/mkiv/spac-ver.mkxl
index e939242cb..c56352077 100644
--- a/tex/context/base/mkiv/spac-ver.mkxl
+++ b/tex/context/base/mkiv/spac-ver.mkxl
@@ -253,7 +253,7 @@
\newdimen\d_spac_prevcontent % set by lua
\unexpanded\def\removelastskip
- {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
+ {\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi}
\def\doifoutervmode
{\ifvmode
@@ -271,7 +271,7 @@
{\s_spac_lastskip\lastskip
\removelastskip
#1\relax
- \ifdim\s_spac_lastskip=\zeropoint
+ \ifzeropt\s_spac_lastskip
% avoid interference with footnotes
\else
\vskip\s_spac_lastskip
@@ -2224,7 +2224,7 @@
\def\bodyfontwhitespace
{\dimexpr
- \ifdim\parskip=\zeropoint
+ \ifzeropt\parskip
\zeropoint
\orelse\ifgridsnapping
\bodyfontlineheight
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index b8ef17696..c975f3bab 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 59583eef9..62daabe8a 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-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi
index 5daf2b44d..5572a3c6f 100644
--- a/tex/context/base/mkiv/strc-flt.mkvi
+++ b/tex/context/base/mkiv/strc-flt.mkvi
@@ -498,7 +498,7 @@
% new, \placefigure{\xmlfirst{#1}{somecaption}}{} passes earlier empty check
% so here we misuse the scratch box; actually this means that the previous
% test can go away (some day, when i redo this module)
- \ifdim\wd\b_strc_floats_caption=\zeropoint
+ \ifzeropt\wd\b_strc_floats_caption
\global\emptyfloatcaptiontrue
\ifnofloatnumber
\global\nofloatcaptiontrue
@@ -1150,7 +1150,7 @@
\strc_floats_set_natural_dimensions\nextbox
\global\setbox\floatbox\vbox{\floatparameter\c!command{\box\nextbox}}% can be anything so no pack
\strc_floats_set_natural_dimensions\floatbox
- \ifdim\htdp\floatbox=\zeropoint
+ \ifzeropt\htdp\floatbox
\showmessage\m!floatblocks{11}\empty
\global\setbox\floatbox\vpack
{\dostarttagged\t!floatcontent\empty
@@ -1329,7 +1329,7 @@
\def\strc_floats_set_local_dimensions
{\global\d_page_sides_shift \zeropoint % duplicate
\global\d_page_sides_maximum\zeropoint\relax % duplicate
- \ifdim\d_page_sides_downshift=\zeropoint\else
+ \ifzeropt\d_page_sides_downshift\else
\global\setbox\floatbox\vpack
{\vskip\d_page_sides_downshift
\nointerlineskip
diff --git a/tex/context/base/mkiv/strc-itm.mklx b/tex/context/base/mkiv/strc-itm.mklx
index fcf67c7f5..eeeb5ce00 100644
--- a/tex/context/base/mkiv/strc-itm.mklx
+++ b/tex/context/base/mkiv/strc-itm.mklx
@@ -784,7 +784,7 @@
\d_strc_itemgroups_list_width\d_strc_itemgroups_max_width
\orelse\ifnum\itemgroupparameter\c!factor>\zerocount
\d_strc_itemgroups_list_width\itemgroupparameter\c!step\relax
- \ifdim\d_strc_itemgroups_list_width=\zeropoint \d_strc_itemgroups_list_width=.5em\fi
+ \ifzeropt\d_strc_itemgroups_list_width \d_strc_itemgroups_list_width=.5em\fi
\multiply\d_strc_itemgroups_list_width \itemgroupparameter\c!factor
\advance\d_strc_itemgroups_list_width\itemgroupparameter\c!width\relax
\else
@@ -1498,7 +1498,7 @@
\ifdim\d_strc_itemgroups_asked_width<\zeropoint\relax
\strc_itemgroups_handle_lapped_item_negative
\else
- \ifdim\d_strc_itemgroups_asked_width=\zeropoint\relax
+ \ifzeropt\d_strc_itemgroups_asked_width
\strc_itemgroups_calculate_list_width\plusone
\else
\strc_itemgroups_calculate_list_width\c_strc_itemgroups_nesting
diff --git a/tex/context/base/mkiv/strc-itm.mkvi b/tex/context/base/mkiv/strc-itm.mkvi
index 892e33104..bc140d65b 100644
--- a/tex/context/base/mkiv/strc-itm.mkvi
+++ b/tex/context/base/mkiv/strc-itm.mkvi
@@ -786,7 +786,7 @@
\d_strc_itemgroups_list_width\d_strc_itemgroups_max_width
\else\ifnum\itemgroupparameter\c!factor>\zerocount
\d_strc_itemgroups_list_width\itemgroupparameter\c!step\relax
- \ifdim\d_strc_itemgroups_list_width=\zeropoint \d_strc_itemgroups_list_width=.5em\fi
+ \ifzeropt\d_strc_itemgroups_list_width \d_strc_itemgroups_list_width=.5em\fi
\multiply\d_strc_itemgroups_list_width \itemgroupparameter\c!factor
\advance\d_strc_itemgroups_list_width\itemgroupparameter\c!width\relax
\else
@@ -1518,7 +1518,7 @@
\ifdim\d_strc_itemgroups_asked_width<\zeropoint\relax
\strc_itemgroups_handle_lapped_item_negative
\else
- \ifdim\d_strc_itemgroups_asked_width=\zeropoint\relax
+ \ifzeropt\d_strc_itemgroups_asked_width
\strc_itemgroups_calculate_list_width\plusone
\else
\strc_itemgroups_calculate_list_width\c_strc_itemgroups_nesting
diff --git a/tex/context/base/mkiv/strc-lst.mkvi b/tex/context/base/mkiv/strc-lst.mkvi
index 7bc859b67..d29b1f6fd 100644
--- a/tex/context/base/mkiv/strc-lst.mkvi
+++ b/tex/context/base/mkiv/strc-lst.mkvi
@@ -1117,7 +1117,7 @@
\hangindent\dimexpr\wd\b_strc_lists_number+\scratchdistance\relax
\hangafter\ifx\p_hang\v!no\zerocount\else\plusone\fi
\scratchdimen\listalternativeparameter\c!distance\relax
- \ifdim\wd\b_strc_lists_page=\zeropoint \else\ifdim\scratchdimen>\zeropoint\relax
+ \ifzeropt\wd\b_strc_lists_page \else \ifdim\scratchdimen>\zeropoint\relax
\rightskip\scratchdimen\!!plus\listalternativeparameter\c!stretch\relax
\parfillskip-\rightskip
\fi \fi
@@ -1144,7 +1144,7 @@
\strc_lists_limitated_text\currentlistentrytitle
\endstrut
\endgroup
- \ifdim\wd\b_strc_lists_page=\zeropoint\else
+ \ifzeropt\wd\b_strc_lists_page\else
\nobreak
\currentlistfiller
\box\b_strc_lists_page
@@ -1381,7 +1381,7 @@
\leftskip\scratchoffset
\else
\scratchwidth\p_width
- \ifdim\scratchoffset=\zeropoint
+ \ifzeropt\scratchoffset
\leftskip\dimexpr\scratchwidth+\scratchdistance\relax
\else
\leftskip\scratchoffset
diff --git a/tex/context/base/mkiv/strc-not.mkvi b/tex/context/base/mkiv/strc-not.mkvi
index 3ce01ef34..7d8062eef 100644
--- a/tex/context/base/mkiv/strc-not.mkvi
+++ b/tex/context/base/mkiv/strc-not.mkvi
@@ -1458,7 +1458,7 @@
\c!strut=\v!no,
\c!offset=\v!overlay]%
\inheritednoteframed
- {\ifdim\dp\scratchbox=\zeropoint % this hack is needed because \vadjust
+ {\ifzeropt\dp\scratchbox % this hack is needed because \vadjust
\hpack{\lower\strutdp\box\scratchbox}% % in margin number placement
\else % hides the (always) present depth
\box\scratchbox
diff --git a/tex/context/base/mkiv/strc-ren.mkiv b/tex/context/base/mkiv/strc-ren.mkiv
index 5cdf5f4a7..0c9dc3ad5 100644
--- a/tex/context/base/mkiv/strc-ren.mkiv
+++ b/tex/context/base/mkiv/strc-ren.mkiv
@@ -599,24 +599,24 @@
\vbox {
\headsetupspacing
\ifconditional\headshownumber
- \ifdim\headwidth=\zeropoint \else
- \ifdim\headnumberwidth=\zeropoint
- \ifdim\headtextwidth=\zeropoint \else
+ \ifzeropt\headwidth \else
+ \ifzeropt\headnumberwidth
+ \ifzeropt\headtextwidth \else
\headnumberwidth\dimexpr\headwidth-\headtextwidth\relax
\fi
\else
- \ifdim\headtextwidth=\zeropoint
+ \ifzeropt\headtextwidth
\headtextwidth\dimexpr\headwidth-\headnumberwidth\relax
\fi
\fi
\hsize\headwidth
\fi
- \ifdim\headnumberwidth=\zeropoint\else
+ \ifzeropt\headnumberwidth \else
\headnumberdistance\zeropoint
\fi
- \setbox\scratchbox\hbox \ifdim\headnumberwidth=\zeropoint\else to \headnumberwidth\fi{\headnumbercontent}
+ \setbox\scratchbox\hbox \ifzeropt\headnumberwidth\else to \headnumberwidth\fi{\headnumbercontent}
\scratchdimen\dimexpr\wd\scratchbox+\headnumberdistance\relax
- \ifdim\headtextwidth=\zeropoint\else
+ \ifzeropt\headtextwidth \else
\hsize\dimexpr\scratchdimen+\headtextwidth\relax
\fi
\hangindent\scratchdimen
@@ -625,8 +625,8 @@
\box\scratchbox
\hskip\headnumberdistance
\else
- \ifdim\headtextwidth=\zeropoint
- \ifdim\headwidth=\zeropoint \else
+ \ifzeropt\headtextwidth
+ \ifzeropt\headwidth \else
\hsize\headwidth
\fi
\else
diff --git a/tex/context/base/mkiv/supp-box.mkiv b/tex/context/base/mkiv/supp-box.mkiv
index bdd20b497..4ceade033 100644
--- a/tex/context/base/mkiv/supp-box.mkiv
+++ b/tex/context/base/mkiv/supp-box.mkiv
@@ -437,7 +437,7 @@
%D
%D \def\dogetnoflines#1#2%
%D {\noflinesheight#2\relax
-%D \ifzeropt\noflinesheight % \ifdim\noflinesheight=\zeropoint
+%D \ifzeropt\noflinesheight
%D \noflines\zerocount
%D \else
%D \divide\noflinesheight \openlineheight
@@ -880,7 +880,7 @@
\def\doreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
{\global\reshapingfailedfalse
- \ifzeropt\ht\oldshapebox % \ifdim\ht\oldshapebox=\zeropoint
+ \ifzeropt\ht\oldshapebox
\setbox\newshapebox\emptyvbox
\else
\setbox\newshapebox\vbox % can be \vpack
@@ -952,7 +952,7 @@
\unexpanded\def\flushshapebox
{\bgroup
- \ifzeropt\ht\newshapebox % \ifdim\ht\newshapebox=\zeropoint
+ \ifzeropt\ht\newshapebox
\else
% make \prevdepth legal
% \par before the next \vskip gives far worse results
@@ -1912,7 +1912,7 @@
\fi
\ht\hhbox\strutht
\dp\hhbox\strutdp
- \ifzeropt\hhboxindent\else % \ifdim\hhboxindent=\zeropoint\else
+ \ifzeropt\hhboxindent\else
\setbox\hhbox\hpack{\kern-\hhboxindent\box\hhbox}%
\hhboxindent\zeropoint
\fi
diff --git a/tex/context/base/mkiv/supp-box.mkxl b/tex/context/base/mkiv/supp-box.mkxl
index 42f17f03d..26b04d77c 100644
--- a/tex/context/base/mkiv/supp-box.mkxl
+++ b/tex/context/base/mkiv/supp-box.mkxl
@@ -399,7 +399,7 @@
%D
%D \def\dogetnoflines#1#2%
%D {\noflinesheight#2\relax
-%D \ifzeropt\noflinesheight % \ifdim\noflinesheight=\zeropoint
+%D \ifzeropt\noflinesheight
%D \noflines\zerocount
%D \else
%D \divide\noflinesheight \openlineheight
@@ -846,7 +846,7 @@
\def\doreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
{\global\reshapingfailedfalse
- \ifzeropt\ht\oldshapebox % \ifdim\ht\oldshapebox=\zeropoint
+ \ifzeropt\ht\oldshapebox
\setbox\newshapebox\emptyvbox
\else
\setbox\newshapebox\vbox % can be \vpack
@@ -918,7 +918,7 @@
\unexpanded\def\flushshapebox
{\bgroup
- \ifzeropt\ht\newshapebox % \ifdim\ht\newshapebox=\zeropoint
+ \ifzeropt\ht\newshapebox
\else
% make \prevdepth legal
% \par before the next \vskip gives far worse results
@@ -1860,7 +1860,7 @@
\fi
\ht\hhbox\strutht
\dp\hhbox\strutdp
- \ifzeropt\hhboxindent\else % \ifdim\hhboxindent=\zeropoint\else
+ \ifzeropt\hhboxindent\else
\setbox\hhbox\hpack{\kern-\hhboxindent\box\hhbox}%
\hhboxindent\zeropoint
\fi
diff --git a/tex/context/base/mkiv/supp-mat.mkiv b/tex/context/base/mkiv/supp-mat.mkiv
index f72a0ff89..f3b94f735 100644
--- a/tex/context/base/mkiv/supp-mat.mkiv
+++ b/tex/context/base/mkiv/supp-mat.mkiv
@@ -160,8 +160,8 @@
\unexpanded\def\dimension#1%
{\pushmacro\dodimensionsignal
\gdef\dodimensionsignal{\kern\dimensionsignal}%
- \ifdim\lastskip=\zeropoint\relax
- \ifdim\lastkern=\zeropoint\relax
+ \ifzeropt\lastskip
+ \ifzeropt\lastkern
\ifmmode
\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
\else
diff --git a/tex/context/base/mkiv/syst-aux.mkiv b/tex/context/base/mkiv/syst-aux.mkiv
index f6b094246..ed46481d5 100644
--- a/tex/context/base/mkiv/syst-aux.mkiv
+++ b/tex/context/base/mkiv/syst-aux.mkiv
@@ -1763,14 +1763,8 @@
%D will redefine this macro later on, when a more advanced message mechanism is
%D implemented.
-\newif\iferrorisfatal
-
-\unexpanded\def\waitonfatalerror
- {\iferrorisfatal\wait\fi}
-
\unexpanded\def\showassignerror#1#2%
- {\writestatus{setup}{missing or ungrouped '=' after '#1' in line #2}%
- \waitonfatalerror}
+ {\writestatus{setup}{missing or ungrouped '=' after '#1' in line #2}}
\unexpanded\def\doassignempty[#1][#2=#3]%
{\ifcsname#1#2\endcsname\else\dosetvalue{#1}{#2}{#3}\fi}
diff --git a/tex/context/base/mkiv/syst-aux.mkxl b/tex/context/base/mkiv/syst-aux.mkxl
index 725deb866..b2fc08487 100644
--- a/tex/context/base/mkiv/syst-aux.mkxl
+++ b/tex/context/base/mkiv/syst-aux.mkxl
@@ -1471,14 +1471,8 @@
%D will redefine this macro later on, when a more advanced message mechanism is
%D implemented.
-\newif\iferrorisfatal
-
-\unexpanded\def\waitonfatalerror
- {\iferrorisfatal\wait\fi}
-
\unexpanded\def\showassignerror#1#2%
- {\writestatus{setup}{missing or ungrouped '=' after '#1' in line #2}%
- \waitonfatalerror}
+ {\writestatus{setup}{missing or ungrouped '=' after '#1' in line #2}}
\unexpanded\def\doassignempty[#1][#2=#3]%
{\ifcsname#1#2\endcsname\else\dosetvalue{#1}{#2}{#3}\fi}
@@ -4831,13 +4825,13 @@
\newcount\c_syst_helpers_swapped
\let \m_syst_helpers_swapped\relax
-\unexpanded\def\swapdimens#1#2{\d_syst_helpers_swapped #1\relax#1#2\relax#2\d_syst_helpers_swapped}
-\unexpanded\def\swapcounts#1#2{\c_syst_helpers_swapped #1\relax#1#2\relax#2\c_syst_helpers_swapped}
-\unexpanded\def\swapmacros#1#2{\let\m_syst_helpers_swapped#1\let #1#2\let #2\m_syst_helpers_swapped}
+\unexpanded\def\swapdimens#1#2{\d_syst_helpers_swapped#1#1#2#2\d_syst_helpers_swapped}
+\unexpanded\def\swapcounts#1#2{\c_syst_helpers_swapped#1#1#2#2\c_syst_helpers_swapped}
+\unexpanded\def\swapmacros#1#2{\let\m_syst_helpers_swapped#1\let#1#2\let#2\m_syst_helpers_swapped}
-\unexpanded\def\globalswapdimens#1#2{\d_syst_helpers_swapped #1\global#1#2\global#2\d_syst_helpers_swapped}
-\unexpanded\def\globalswapcounts#1#2{\c_syst_helpers_swapped #1\global#1#2\global#2\c_syst_helpers_swapped}
-\unexpanded\def\globalswapmacros#1#2{\let\m_syst_helpers_swapped#1\glet #1#2\glet #2\m_syst_helpers_swapped}
+\unexpanded\def\globalswapdimens#1#2{\d_syst_helpers_swapped#1\global#1#2\global#2\d_syst_helpers_swapped}
+\unexpanded\def\globalswapcounts#1#2{\c_syst_helpers_swapped#1\global#1#2\global#2\c_syst_helpers_swapped}
+\unexpanded\def\globalswapmacros#1#2{\let\m_syst_helpers_swapped#1\glet#1#2\glet#2\m_syst_helpers_swapped}
%D \macros
%D {pushmacro,popmacro}
diff --git a/tex/context/base/mkiv/syst-ini.mkiv b/tex/context/base/mkiv/syst-ini.mkiv
index 013f1106f..529dc70a7 100644
--- a/tex/context/base/mkiv/syst-ini.mkiv
+++ b/tex/context/base/mkiv/syst-ini.mkiv
@@ -820,6 +820,9 @@
\let\then\relax % so that we can say: \ifnum1>2\then -)
+\def\truecondition {\iftrue}
+\def\falsecondition{\iffalse}
+
%D \macros
%D {newmacro,setnewmacro,newfraction}
%D
diff --git a/tex/context/base/mkiv/syst-ini.mkxl b/tex/context/base/mkiv/syst-ini.mkxl
index 8f89d9221..11f82dd34 100644
--- a/tex/context/base/mkiv/syst-ini.mkxl
+++ b/tex/context/base/mkiv/syst-ini.mkxl
@@ -793,6 +793,9 @@
\let\then\relax % so that we can say: \ifnum1>2\then -)
+\def\truecondition {\iftrue}
+\def\falsecondition{\iffalse}
+
% This one has to be unprotected otherwise we get a files-ends-to-soon but it's ok
% as conditions expand anyway.
diff --git a/tex/context/base/mkiv/tabl-frm.mkiv b/tex/context/base/mkiv/tabl-frm.mkiv
index c0f4b7cd1..14f3506b9 100644
--- a/tex/context/base/mkiv/tabl-frm.mkiv
+++ b/tex/context/base/mkiv/tabl-frm.mkiv
@@ -134,54 +134,6 @@
{\framedparameter\c!after
\endgroup}
-% \unexpanded\def\startframedrow
-% {\advance\c_tabl_framed_r\plusone
-% \c_tabl_framed_c\zerocount
-% \d_tabl_framed_h\zeropoint
-% \bgroup
-% \edef\currentframed{\number\c_tabl_framed_r}%
-% \edef\currentframed
-% {\??framedtablerow\currentframedtable
-% \ifcsname\??framedtablerow\currentframedtable:\currentframed\endcsname
-% :\currentframed
-% \else\ifcsname\??framedtablerow\currentframedtable:\v!each\endcsname
-% :\v!each
-% \fi\fi}%
-% \dosingleempty\pack_framed_start_framed_nop_indeed}
-%
-% \unexpanded\def\stopframedrow
-% {\dofastloopcs\c_tabl_framed_c\tabl_framed_flush_row
-% \stopframed
-% \nointerlineskip
-% \vskip\zeropoint\relax
-% \framedparameter\c!inbetween}
-%
-% \unexpanded\def\tabl_framed_flush_row
-% {\vpack to \d_tabl_framed_h{\flushbox\??framedtable{\number\fastloopindex}\vfill}%
-% \ifdim\d_tabl_framed_d=\zeropoint\else\kern\d_tabl_framed_d\fi}
-%
-% \unexpanded\def\startframedcell
-% {\advance\c_tabl_framed_c\plusone
-% \setbox\b_tabl_framed\hpack\bgroup
-% %\bgroup
-% \edef\currentframed{\number\c_tabl_framed_c}%
-% \edef\currentframed
-% {\??framedtablecolumn\currentframedtable
-% \ifcsname\??framedtablecolumn\currentframedtable:\currentframed\endcsname
-% :\currentframed
-% \else\ifcsname\??framedtablecolumn\currentframedtable:\v!each\endcsname
-% :\v!each
-% \fi\fi}%
-% \dosingleempty\pack_framed_start_framed_nop_indeed}
-%
-% \unexpanded\def\stopframedcell
-% {\stopframed
-% %\egroup
-% \ifdim\ht\b_tabl_framed>\d_tabl_framed_h
-% \d_tabl_framed_h\ht\b_tabl_framed
-% \fi
-% \savebox\??framedtable{\number\c_tabl_framed_c}{\box\b_tabl_framed}}
-
% a two pass variant that deals with the height .. so no catcode changes here
\unexpanded\def\startframedrow
@@ -208,7 +160,7 @@
\unexpanded\def\tabl_framed_flush_row
{\vpack to \d_tabl_framed_h{\flushbox\??framedtable{\number\fastloopindex}\vfill}%
- \ifdim\d_tabl_framed_d=\zeropoint\else\kern\d_tabl_framed_d\fi}
+ \ifzeropt\d_tabl_framed_d\else\kern\d_tabl_framed_d\fi}
\newcount\c_tabl_framed_pass
@@ -253,7 +205,7 @@
\unexpanded\def\tabl_framed_flush_row_two
{\vpack to \d_tabl_framed_h{\flushbox\??framedtable{\number\fastloopindex}\vfill}%
- \ifdim\d_tabl_framed_d=\zeropoint\else\kern\d_tabl_framed_d\fi}
+ \ifzeropt\d_tabl_framed_d\else\kern\d_tabl_framed_d\fi}
\unexpanded\def\startframedcell
diff --git a/tex/context/base/mkiv/tabl-ntb.mkiv b/tex/context/base/mkiv/tabl-ntb.mkiv
index 879cd33e3..113b7a364 100644
--- a/tex/context/base/mkiv/tabl-ntb.mkiv
+++ b/tex/context/base/mkiv/tabl-ntb.mkiv
@@ -1724,7 +1724,7 @@
\tabl_ntb_set_aut\recurselevel{\the\scratchdimen}%
\fi
\else
- \ifdim\scratchdimen=\zeropoint % auto set width
+ \ifzeropt\scratchdimen % auto set width
\tabl_ntb_set_wid\recurselevel{\the\!!dimena}%
\fi
\fi}%
@@ -1908,7 +1908,7 @@
\ifdim\wd\scratchbox<.75\hsize % fuzzy guess
\ifdim\ht\scratchbox>2\openlineheight % honor width since this
\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax % can be a figure or so
- \ifdim\scratchdimen=\zeropoint
+ \ifzeropt\scratchdimen
% side effect: when width is set to 0pt,
% we can force a span that fits the sum of spans widths
\tabl_ntb_set_aut\c_tabl_ntb_col{\the\scratchdimen}%
@@ -1986,7 +1986,7 @@
[\naturaltablelocalparameter\c!color] % as well as permits local colors to take precedence
{\letnaturaltablelocalparameter\c!color\empty
\setnaturaltablelocalparameter\c!width{\d_tabl_ntb_width}%
- \ifdim\d_tabl_ntb_height=\zeropoint\relax % case: nc=maxcolumns
+ \ifzeropt\d_tabl_ntb_height % case: nc=maxcolumns
\else
\setnaturaltablelocalparameter\c!height{\d_tabl_ntb_height}%
\fi
diff --git a/tex/context/base/mkiv/tabl-ntb.mkxl b/tex/context/base/mkiv/tabl-ntb.mkxl
index e80ff06d6..d7ba548d2 100644
--- a/tex/context/base/mkiv/tabl-ntb.mkxl
+++ b/tex/context/base/mkiv/tabl-ntb.mkxl
@@ -1722,7 +1722,7 @@
\tabl_ntb_set_aut\recurselevel{\the\scratchdimen}%
\fi
\else
- \ifdim\scratchdimen=\zeropoint % auto set width
+ \ifzeropt\scratchdimen % auto set width
\tabl_ntb_set_wid\recurselevel{\the\!!dimena}%
\fi
\fi}%
@@ -1906,7 +1906,7 @@
\ifdim\wd\scratchbox<.75\hsize % fuzzy guess
\ifdim\ht\scratchbox>2\openlineheight % honor width since this
\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax % can be a figure or so
- \ifdim\scratchdimen=\zeropoint
+ \ifzeropt\scratchdimen
% side effect: when width is set to 0pt,
% we can force a span that fits the sum of spans widths
\tabl_ntb_set_aut\c_tabl_ntb_col{\the\scratchdimen}%
@@ -1984,7 +1984,7 @@
[\naturaltablelocalparameter\c!color] % as well as permits local colors to take precedence
{\letnaturaltablelocalparameter\c!color\empty
\setnaturaltablelocalparameter\c!width{\d_tabl_ntb_width}%
- \ifdim\d_tabl_ntb_height=\zeropoint\relax % case: nc=maxcolumns
+ \ifzeropt\d_tabl_ntb_height % case: nc=maxcolumns
\else
\setnaturaltablelocalparameter\c!height{\d_tabl_ntb_height}%
\fi
diff --git a/tex/context/base/mkiv/trac-deb.lua b/tex/context/base/mkiv/trac-deb.lua
index 4d754ec68..b83e43ca7 100644
--- a/tex/context/base/mkiv/trac-deb.lua
+++ b/tex/context/base/mkiv/trac-deb.lua
@@ -171,7 +171,7 @@ end
-- todo: \starttext bla \blank[foo] bla \stoptext
local nop = function() end
-local resetmessages = status.resetmessages() or nop
+local resetmessages = status.resetmessages or nop
local function processerror(offset)
-- print("[[ last tex error: " .. tostring(status.lasterrorstring or "<unset>") .. " ]]")
@@ -181,7 +181,8 @@ local function processerror(offset)
-- print("[[ last context : " .. tostring(status.lasterrorcontext or "<unset>") .. " ]]")
local inputstack = resolvers.inputstack
- local filename = inputstack[#inputstack] or status.filename
+ local filename = inputstack[#inputstack-1] or status.filename -- weird, why -1
+ ----- filename = status.filename -- weird, why -1
local linenumber = tonumber(status.linenumber) or 0
local lastcontext = status.lasterrorcontext
local lasttexerror = status.lasterrorstring or "?"
diff --git a/tex/context/base/mkiv/util-sql-imp-ffi.lua b/tex/context/base/mkiv/util-sql-imp-ffi.lua
index 3731933f1..2b9f113af 100644
--- a/tex/context/base/mkiv/util-sql-imp-ffi.lua
+++ b/tex/context/base/mkiv/util-sql-imp-ffi.lua
@@ -153,7 +153,7 @@ ffi.cdef [[
); */
]]
-
+-- trackers.enable("*lib*")
local sql = utilities.sql
----- mysql = ffi.load(os.name == "windows" and "libmysql" or "libmysqlclient")
----- mysql = ffilib(os.name == "windows" and "libmysql" or "libmysqlclient")
diff --git a/tex/context/fonts/mkiv/type-imp-cow.mkiv b/tex/context/fonts/mkiv/type-imp-cow.mkiv
index f93e36428..5194c70d9 100644
--- a/tex/context/fonts/mkiv/type-imp-cow.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-cow.mkiv
@@ -45,8 +45,10 @@
\stoptypescript
\starttypescript [all] [cow,sheep]
- \definefontsynonym [Cows] [koeielett]
- \definefontsynonym [CowsContour] [koeielett-contour]
+ \definefontsynonym [Cows] [koeielett]% tfm
+ % \definefontsynonym [Cows] [koeieletters]% afm
+ \definefontsynonym [CowsContour] [koeielett-contour]% tfm
+ % \definefontsynonym [CowsContour] [koeieletters-contour]% afm
\definefontsynonym [CowsLogo] [koeielogos]
\definefontsynonym [CowsLogoContour] [koeielogos-contour]
\definefontsynonym [CowsMathRoman] [koeielett]
@@ -56,7 +58,7 @@
\stoptypescript
\starttypescript [all] [sheep]
- \definefontsynonym [Sheep] [koeielett]
+ \definefontsynonym [Sheep] [koeielettters]
\definefontsynonym [SheepContour] [koeielett-contour]
\definefontsynonym [SheepLogo] [koeielogos]
\definefontsynonym [SheepLogoContour] [koeielogos-contour]
diff --git a/tex/context/interface/mkii/keys-cs.xml b/tex/context/interface/mkii/keys-cs.xml
index bb4800900..358100151 100644
--- a/tex/context/interface/mkii/keys-cs.xml
+++ b/tex/context/interface/mkii/keys-cs.xml
@@ -150,6 +150,7 @@
<cd:variable name='comment' value='komentar'/>
<cd:variable name='component' value='komponenta'/>
<cd:variable name='compressseparator' value='compressseparator'/>
+ <cd:variable name='compressstopper' value='compressstopper'/>
<cd:variable name='concept' value='koncept'/>
<cd:variable name='construction' value='construction'/>
<cd:variable name='content' value='obsah'/>
@@ -480,6 +481,7 @@
<cd:variable name='sectionnumber' value='cislooddilu'/>
<cd:variable name='see' value='viz'/>
<cd:variable name='selectfont' value='selectfont'/>
+ <cd:variable name='separator' value='separator'/>
<cd:variable name='september' value='zari'/>
<cd:variable name='serif' value='serif'/>
<cd:variable name='serifbold' value='serifbold'/>
@@ -641,6 +643,7 @@
<cd:constant name='aligntitle' value='zarovnejtitul'/>
<cd:constant name='alternative' value='alternativa'/>
<cd:constant name='anchor' value='anchor'/>
+ <cd:constant name='anchoring' value='anchoring'/>
<cd:constant name='andtext' value='andtext'/>
<cd:constant name='apa' value='apa'/>
<cd:constant name='arguments' value='arguments'/>
@@ -738,7 +741,9 @@
<cd:constant name='compoundhyphen' value='compoundhyphen'/>
<cd:constant name='compress' value='compress'/>
<cd:constant name='compressdistance' value='compressdistance'/>
+ <cd:constant name='compressmethod' value='compressmethod'/>
<cd:constant name='compressseparator' value='compressseparator'/>
+ <cd:constant name='compressstopper' value='compressstopper'/>
<cd:constant name='concerns' value='concerns'/>
<cd:constant name='connector' value='connector'/>
<cd:constant name='continue' value='pokracovat'/>
@@ -868,6 +873,7 @@
<cd:constant name='hfil' value='hfil'/>
<cd:constant name='hidenumber' value='hidenumber'/>
<cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horizontal' value='horizontalne'/>
<cd:constant name='horoffset' value='horoffset'/>
<cd:constant name='hyphen' value='hyphen'/>
<cd:constant name='hyphens' value='hyphens'/>
@@ -968,9 +974,12 @@
<cd:constant name='menu' value='menu'/>
<cd:constant name='method' value='metoda'/>
<cd:constant name='middle' value='stredni'/>
+ <cd:constant name='middlecolor' value='middlecolor'/>
<cd:constant name='middlecommand' value='middlecommand'/>
<cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middlestyle' value='middlestyle'/>
<cd:constant name='middletext' value='strednitext'/>
+ <cd:constant name='middlewidth' value='middlewidth'/>
<cd:constant name='midsentence' value='midsentence'/>
<cd:constant name='min' value='min'/>
<cd:constant name='mindepth' value='mindepth'/>
@@ -1288,6 +1297,7 @@
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='offsethlavicky'/>
+ <cd:constant name='vertical' value='vertikalne'/>
<cd:constant name='vfactor' value='vfaktor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
@@ -1298,6 +1308,7 @@
<cd:constant name='white' value='bily'/>
<cd:constant name='width' value='sirka'/>
<cd:constant name='words' value='words'/>
+ <cd:constant name='xanchor' value='xanchor'/>
<cd:constant name='xfactor' value='xfaktor'/>
<cd:constant name='xhtml' value='xhtml'/>
<cd:constant name='xmax' value='xmax'/>
@@ -1305,6 +1316,7 @@
<cd:constant name='xoffset' value='xoffset'/>
<cd:constant name='xscale' value='xmeritko'/>
<cd:constant name='xstep' value='xkrok'/>
+ <cd:constant name='yanchor' value='yanchor'/>
<cd:constant name='yfactor' value='yfaktor'/>
<cd:constant name='ymax' value='ymax'/>
<cd:constant name='yoffset' value='yoffset'/>
diff --git a/tex/context/interface/mkii/keys-nl.xml b/tex/context/interface/mkii/keys-nl.xml
index 45a4f36d6..55e0ff335 100644
--- a/tex/context/interface/mkii/keys-nl.xml
+++ b/tex/context/interface/mkii/keys-nl.xml
@@ -643,6 +643,7 @@
<cd:constant name='aligntitle' value='titeluitlijnen'/>
<cd:constant name='alternative' value='variant'/>
<cd:constant name='anchor' value='anker'/>
+ <cd:constant name='anchoring' value='verankering'/>
<cd:constant name='andtext' value='andtext'/>
<cd:constant name='apa' value='apa'/>
<cd:constant name='arguments' value='argumenten'/>
@@ -872,6 +873,7 @@
<cd:constant name='hfil' value='hfil'/>
<cd:constant name='hidenumber' value='hidenumber'/>
<cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horizontal' value='horizontaal'/>
<cd:constant name='horoffset' value='rugoffset'/>
<cd:constant name='hyphen' value='hyphen'/>
<cd:constant name='hyphens' value='hyphens'/>
@@ -972,9 +974,12 @@
<cd:constant name='menu' value='menu'/>
<cd:constant name='method' value='methode'/>
<cd:constant name='middle' value='midden'/>
+ <cd:constant name='middlecolor' value='middenkleur'/>
<cd:constant name='middlecommand' value='middencommando'/>
<cd:constant name='middlespeech' value='middenuitspraak'/>
+ <cd:constant name='middlestyle' value='middenletter'/>
<cd:constant name='middletext' value='middentekst'/>
+ <cd:constant name='middlewidth' value='middenbreedte'/>
<cd:constant name='midsentence' value='middenzin'/>
<cd:constant name='min' value='min'/>
<cd:constant name='mindepth' value='mindiepte'/>
@@ -1292,6 +1297,7 @@
<cd:constant name='vcompact' value='vcomprimeer'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='kopoffset'/>
+ <cd:constant name='vertical' value='vertikaal'/>
<cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
@@ -1302,6 +1308,7 @@
<cd:constant name='white' value='wit'/>
<cd:constant name='width' value='breedte'/>
<cd:constant name='words' value='words'/>
+ <cd:constant name='xanchor' value='xanker'/>
<cd:constant name='xfactor' value='xfactor'/>
<cd:constant name='xhtml' value='xhtml'/>
<cd:constant name='xmax' value='xmax'/>
@@ -1309,6 +1316,7 @@
<cd:constant name='xoffset' value='xoffset'/>
<cd:constant name='xscale' value='xschaal'/>
<cd:constant name='xstep' value='xstap'/>
+ <cd:constant name='yanchor' value='yanker'/>
<cd:constant name='yfactor' value='yfactor'/>
<cd:constant name='ymax' value='ymax'/>
<cd:constant name='yoffset' value='yoffset'/>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 9e16246d2..746358a5f 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 1f38209d2..bdf620c1a 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index ce333b321..f3409eb5d 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 08/05/19 10:34:41
+-- merge date : 08/09/19 18:29:14
do -- begin closure to overcome local limits and interference
@@ -121,6 +121,9 @@ elseif not ffi.number then
end
if LUAVERSION>5.3 then
end
+if status and os.setenv then
+ os.setenv("engine",string.lower(status.luatex_engine or "unknown"))
+end
end -- closure
@@ -9449,13 +9452,13 @@ function constructors.finalize(tfmdata)
parameters.width=0
end
if not parameters.slantfactor then
- parameters.slantfactor=tfmdata.slant or 0
+ parameters.slantfactor=(tfmdata.slant or 0)/1000
end
if not parameters.extendfactor then
- parameters.extendfactor=tfmdata.extend or 0
+ parameters.extendfactor=(tfmdata.extend or 1000)/1000
end
if not parameters.squeezefactor then
- parameters.squeezefactor=tfmdata.squeeze or 0
+ parameters.squeezefactor=(tfmdata.squeeze or 1000)/1000
end
local designsize=parameters.designsize
if designsize then
@@ -15279,7 +15282,7 @@ do
local function call(scope,list,bias)
depth=depth+1
if top==0 then
- showstate(formatters["unknown %s call"](scope))
+ showstate(formatters["unknown %s call %s"](scope,"?"))
top=0
else
local index=stack[top]+bias
@@ -15291,7 +15294,7 @@ do
if tab then
process(tab)
else
- showstate(formatters["unknown %s call %i"](scope,index))
+ showstate(formatters["unknown %s call %s"](scope,index))
top=0
end
end
@@ -15361,7 +15364,7 @@ do
i=i+1
local t=tab[i]
if justpass then
- if t>=34 or t<=37 then
+ if t>=34 and t<=37 then
for i=1,top do
r=r+1;result[r]=encode[stack[i]]
end
@@ -15463,12 +15466,16 @@ end
end
end
end
- local function setbias(globals,locals)
+ local function setbias(globals,locals,nobias)
+ if nobias then
+ return 0,0
+ else
local g=#globals
local l=#locals
return
((g<1240 and 107) or (g<33900 and 1131) or 32768)+1,
((l<1240 and 107) or (l<33900 and 1131) or 32768)+1
+ end
end
local function processshape(tab,index)
if not tab then
@@ -15578,7 +15585,7 @@ end
end
return privatedata.nominalwidthx or 0,privatedata.defaultwidthx or 0
end
- parsecharstrings=function(fontdata,data,glphs,doshapes,tversion,streams)
+ parsecharstrings=function(fontdata,data,glphs,doshapes,tversion,streams,nobias)
local dictionary=data.dictionaries[1]
local charstrings=dictionary.charstrings
keepcurve=doshapes
@@ -15589,7 +15596,7 @@ end
charset=dictionary.charset
vsindex=dictionary.vsindex or 0
glyphs=glphs or {}
- globalbias,localbias=setbias(globals,locals)
+ globalbias,localbias=setbias(globals,locals,nobias)
nominalwidth,defaultwidth=setwidths(dictionary.private)
if charstrings then
startparsing(fontdata,data,streams)
@@ -15611,8 +15618,8 @@ end
charset=false
vsindex=dictionary.vsindex or 0
glyphs=glphs or {}
- justpass=streams==true
- globalbias,localbias=setbias(globals,locals)
+ justpass=streams==true
+ globalbias,localbias=setbias(globals,locals,nobias)
nominalwidth,defaultwidth=setwidths(dictionary.private)
processshape(tab,index-1)
end
@@ -16583,7 +16590,14 @@ local function repackpoints(glyphs,shapes)
currentx=px
currenty=py
if lastflag==fl then
- nofflags=nofflags+1
+ if nofflags==255 then
+ lastflag=lastflag+0x08
+ r=r+1 result[r]=char(lastflag,nofflags-1)
+ nofflags=1
+ lastflag=fl
+ else
+ nofflags=nofflags+1
+ end
else
if nofflags==1 then
r=r+1 result[r]=chars[lastflag]
@@ -33413,7 +33427,7 @@ do
}
},
}
- fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams)
+ fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams,true)
else
lpegmatch(p_filternames,binary,1,filename)
end