summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/bibl-tra.mkiv21
-rw-r--r--tex/context/base/buff-ver.mkiv2
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4141 -> 4141 bytes
-rw-r--r--tex/context/base/context-version.pngbin106132 -> 104912 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/math-def.mkiv3
-rw-r--r--tex/context/base/pack-rul.mkiv13
-rw-r--r--tex/context/base/page-bck.mkiv5
-rw-r--r--tex/context/base/page-plg.mkiv27
-rw-r--r--tex/context/base/page-sel.mkvi2
-rw-r--r--tex/context/base/page-sid.mkiv3
-rw-r--r--tex/context/base/spac-ver.mkiv12
-rw-r--r--tex/context/base/status-files.pdfbin24465 -> 24442 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin182717 -> 182714 bytes
-rw-r--r--tex/context/base/status-mkiv.lua8
-rw-r--r--tex/context/base/status-mkiv.tex2
-rw-r--r--tex/context/base/strc-con.mkvi25
-rw-r--r--tex/context/base/strc-des.mkvi15
-rw-r--r--tex/context/base/strc-enu.mkvi44
-rw-r--r--tex/context/base/strc-not.mkvi25
-rw-r--r--tex/context/base/strc-ren.mkiv196
-rw-r--r--tex/context/base/strc-sec.mkiv9
-rw-r--r--tex/context/base/syst-aux.mkiv19
-rw-r--r--tex/context/base/x-mathml.mkiv5
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
28 files changed, 205 insertions, 241 deletions
diff --git a/tex/context/base/bibl-tra.mkiv b/tex/context/base/bibl-tra.mkiv
index 7cef23d88..d4cb71166 100644
--- a/tex/context/base/bibl-tra.mkiv
+++ b/tex/context/base/bibl-tra.mkiv
@@ -1244,7 +1244,7 @@
%D \type{\ixbibauthoryearref} stores the data in the macros
%D \type{\currentbibauthor} and \type{\currentbibyear}.
-\def\ifbibinteractionelse
+\def\doifbibinteractionelse
{\iflocation
\edef\test{\bibalternative\c!interaction}%
\ifx\test\v!stop
@@ -1256,20 +1256,11 @@
\@EA\secondoftwoarguments
\fi}
-\def\ifbibinteractionelse
- {\iflocation
- \doifelse{\bibalternative\c!interaction}\v!stop
- {\@EA\secondoftwoarguments}
- {\@EA\firstoftwoarguments}%
- \else
- \@EA\secondoftwoarguments
- \fi}
-
\def\bibmaybeinteractive#1#2%
{\ifbibcitecompress
#2%
\else
- \ifbibinteractionelse{\gotobiblink{#2}[#1]}{#2}%
+ \doifbibinteractionelse{\gotobiblink{#2}[#1]}{#2}%
\fi}
\def\bibauthoryearref[#1]%
@@ -1360,7 +1351,7 @@
\gotobiblink{#1}[#1]}
\def\bibgotoDOI#1#2%
- {\ifbibinteractionelse
+ {\doifbibinteractionelse
{\useURL[bibfooDoi#1][#2]%
\useURL[bibfoo#1][http://dx.doi.org/#2]%
\goto{\url[bibfooDoi#1]}[url(bibfoo#1)]}
@@ -1383,7 +1374,7 @@
\bibalternative\v!right}
\def\bibgotoURL#1#2%
- {\ifbibinteractionelse
+ {\doifbibinteractionelse
{\useURL[bibfoo#1][#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
{\hyphenatedurl{#2}}}
@@ -1411,7 +1402,7 @@
\def\dobibpageref#1%
{\bibinsertrefsep
- \ifbibinteractionelse
+ \doifbibinteractionelse
{\atbiblink[#1]}
{{\referencingfalse\at[#1]}}}
@@ -1500,4 +1491,6 @@
% \appendtoks \preloadbiblist \to \everysetuppublications
% \appendtoks \preloadbiblist \to \everystarttext
+\let\ifbibinteractionelse\doifbibinteractionelse
+
\protect \endinput
diff --git a/tex/context/base/buff-ver.mkiv b/tex/context/base/buff-ver.mkiv
index 0e6a5e215..d1385ebd2 100644
--- a/tex/context/base/buff-ver.mkiv
+++ b/tex/context/base/buff-ver.mkiv
@@ -73,7 +73,7 @@
\let\buff_verbatim_set_line_margin\relax
\def\buff_verbatim_set_line_margin_indeed
- {\hskip\doifoddpageelse\typingparameter\c!oddmargin\else\typingparameter\c!evenmargin\fi\relax}
+ {\hskip\doifoddpageelse{\typingparameter\c!oddmargin}{\typingparameter\c!evenmargin}\relax}
\def\buff_verbatim_check_margins
{\scratchskip\typingparameter\c!oddmargin\relax
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 28568dd86..30a3c8e89 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.07.06 22:37}
+\newcontextversion{2012.07.07 15:04}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 632277752..21e02edbc 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.07.06 22:37}
+\newcontextversion{2012.07.07 15:04}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 145d5f6e0..3af0ed139 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 28cc385d7..dbedf4088 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index b9ded1ad0..f1593a6fa 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.07.06 22:37}
+\edef\contextversion{2012.07.07 15:04}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index b30482616..5a5d889ad 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.07.06 22:37}
+\edef\contextversion{2012.07.07 15:04}
%D For those who want to use this:
diff --git a/tex/context/base/math-def.mkiv b/tex/context/base/math-def.mkiv
index 1c602187f..3dac9a96b 100644
--- a/tex/context/base/math-def.mkiv
+++ b/tex/context/base/math-def.mkiv
@@ -167,7 +167,8 @@
\unexpanded\def\implies {\mathrel{\;\Longrightarrow\;}}
\unexpanded\def\impliedby{\mathrel{\;\Longleftarrow\;}}
\unexpanded\def\And {\mathrel{\;\internalAnd\;}}
-\unexpanded\def\iff {\;\Longleftrightarrow\;}
+%unexpanded\def\iff {\;\Longleftrightarrow\;}
+\setuvalue {iff}{\;\Longleftrightarrow\;} % nicer for if checker
% todo: virtual in math-vfu
diff --git a/tex/context/base/pack-rul.mkiv b/tex/context/base/pack-rul.mkiv
index ecc55d565..33b3c0ce9 100644
--- a/tex/context/base/pack-rul.mkiv
+++ b/tex/context/base/pack-rul.mkiv
@@ -283,11 +283,9 @@
{\edef\p_framed_frameradius{\framedparameter\c!frameradius}%
\ifzeropt\dimexpr\p_framed_frameradius\relax % just in case of .x\bodyfontsize
\pack_framed_stroked_box_normal
- \else
- \ifx\p_framed_frame\v!on
- \pack_framed_stroked_box_round
- \fi
- \fi}
+ \else\ifx\p_framed_frame\v!on
+ \pack_framed_stroked_box_round
+ \fi\fi}
% \pack_framed_stroked_box_normal % later
@@ -863,8 +861,7 @@
\d_framed_linewidth\p_framed_rulethickness\relax
\fi
\pack_framed_add_outline % real or invisible frame
- \fi \fi
- \fi
+ \fi\fi
\ifx\p_framed_background\empty \else
\edef\p_framed_backgroundoffset{\framedparameter\c!backgroundoffset}%
\d_framed_backgroundoffset
@@ -901,7 +898,7 @@
\d_framed_linewidth\p_framed_rulethickness\relax
\fi
\pack_framed_add_outline % real or invisible frame
- \fi \fi
+ \fi\fi
\ifx\p_framed_background\empty \else
\edef\p_framed_backgroundoffset{\framedparameter\c!backgroundoffset}%
\d_framed_backgroundoffset
diff --git a/tex/context/base/page-bck.mkiv b/tex/context/base/page-bck.mkiv
index 2320e4e0a..cc4db92fb 100644
--- a/tex/context/base/page-bck.mkiv
+++ b/tex/context/base/page-bck.mkiv
@@ -19,6 +19,8 @@
\unprotect
+% maybe use \currentframedhash here
+
%D For special purposes, users can question the \type {*background} mode. This mode
%D is only available when typesetting the pagebody.
%D
@@ -138,9 +140,6 @@
{\edef\currentotrbackground{\??layoutbackgrounds#1}%
\page_backgrounds_check_background}
-\def\ifsomebackgroundfound#1%
- {\ifcsname\??layoutbackgrounds#1\endcsname}
-
\def\doifsomebackgroundelse#1%
{\ifcsname\??layoutbackgrounds#1\endcsname
\expandafter\firstoftwoarguments
diff --git a/tex/context/base/page-plg.mkiv b/tex/context/base/page-plg.mkiv
index ec61da1d2..b59a05a94 100644
--- a/tex/context/base/page-plg.mkiv
+++ b/tex/context/base/page-plg.mkiv
@@ -179,21 +179,22 @@
\def\page_area_indeed#1#2#3%
{\setbox\b_page_area\vbox{\getspecificlayouttext{#1}{#2}{#3}}%
- \ifsomebackgroundfound{#1#2}%
- \iftrialtypesetting
- \fakebox\b_page_area
- \else
- % todo: \localbackgroundframed{\??layoutbackgrounds#1#2}{#1:#2}
- \localframed % todo:
- [\??layoutbackgrounds#1#2]
- [\c!width=\wd\b_page_area,
- \c!height=\ht\b_page_area,
- \c!offset=\v!overlay]
- {\box\b_page_area}%
- \fi
+ \iftrialtypesetting
+ \fakebox\b_page_area
+ \else\ifcsname\??layoutbackgrounds#1#2\endcsname
+ \page_area_indeed_yes{#1}{#2}%
\else
\box\b_page_area
- \fi}
+ \fi\fi}
+
+\def\page_area_indeed_yes#1#2%
+ {% todo: \localbackgroundframed{\??layoutbackgrounds#1#2}{#1:#2}
+ \localframed % todo:
+ [\??layoutbackgrounds#1#2]
+ [\c!width=\wd\b_page_area,
+ \c!height=\ht\b_page_area,
+ \c!offset=\v!overlay]
+ {\box\b_page_area}}
% to be done nicely (proper namespacing)
diff --git a/tex/context/base/page-sel.mkvi b/tex/context/base/page-sel.mkvi
index 3d0771b48..da96bbb0f 100644
--- a/tex/context/base/page-sel.mkvi
+++ b/tex/context/base/page-sel.mkvi
@@ -104,7 +104,7 @@
\def\page_selectors_filter_step#step%
{\dowithrange{#step}\page_selectors_filter_step_indeed}%
\processcommacommand[\p_selection]\page_selectors_filter_step
- \fi
+ \fi\fi
\egroup}
\def\page_selectors_filter_a_page#filename#page%
diff --git a/tex/context/base/page-sid.mkiv b/tex/context/base/page-sid.mkiv
index b84857601..029824597 100644
--- a/tex/context/base/page-sid.mkiv
+++ b/tex/context/base/page-sid.mkiv
@@ -631,9 +631,6 @@
\let\page_sides_check_floats\page_sides_check_floats_indeed
-\def\iffirstsidefloatparagraph
- {\ifcase\c_page_sides_checks_done\or}
-
\unexpanded\def\page_sides_check_floats_set
{\scratchdimen\dimexpr\d_page_sides_progress+\strutht-\roundingeps\relax
\c_page_sides_n_of_hang\scratchdimen
diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv
index b69612e6c..4ffdeaf85 100644
--- a/tex/context/base/spac-ver.mkiv
+++ b/tex/context/base/spac-ver.mkiv
@@ -181,12 +181,12 @@
\localinterlinespacefalse}
\unexpanded\def\dosetupcheckedinterlinespace#1% often a chain
- {\edef\askedinterlinespace{#1}%
- \ifx\askedinterlinespace\empty
+ {\edef\p_spac_checked_interlinespace{#1}%
+ \ifx\p_spac_checked_interlinespace\empty
\spac_linespacing_synchronize_local
- \else\ifcsname\namedinterlinespacehash\askedinterlinespace\s!parent\endcsname % we could have a \s!check
+ \else\ifcsname\namedinterlinespacehash\p_spac_checked_interlinespace\s!parent\endcsname % we could have a \s!check
\pushmacro\currentinterlinespace
- \let\currentinterlinespace\askedinterlinespace
+ \let\currentinterlinespace\p_spac_checked_interlinespace
\spac_linespacing_setup_specified_interline_space % \dosetupspecifiedinterlinespaceindeed
\iflocalinterlinespace
\the\everysetuplocalinterlinespace
@@ -197,8 +197,8 @@
\fi
\popmacro\currentinterlinespace
\else
- \normalexpanded{\noexpand\doifassignmentelse{\askedinterlinespace}%
- \setupspecifiedinterlinespace\setuprelativeinterlinespace[\askedinterlinespace]}%
+ \normalexpanded{\noexpand\doifassignmentelse{\p_spac_checked_interlinespace}%
+ \setupspecifiedinterlinespace\setuprelativeinterlinespace[\p_spac_checked_interlinespace]}%
\iflocalinterlinespace
\the\everysetuplocalinterlinespace
\else
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index b6f8f0cf2..7aa77290f 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index abeabfefd..4e1369aeb 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua
index 53cab34e5..c8782e532 100644
--- a/tex/context/base/status-mkiv.lua
+++ b/tex/context/base/status-mkiv.lua
@@ -653,17 +653,19 @@ return {
{
filename = "strc-con",
marktype = "mkiv",
- status = "todo",
+ status = "okay",
+ comment = "maybe more common counter code here",
},
{
filename = "strc-des",
marktype = "mkiv",
- status = "todo",
+ status = "okay",
},
{
filename = "strc-enu",
marktype = "mkiv",
- status = "todo",
+ status = "okay",
+ comment = "(interactive) coupling is not yet working"
},
{
filename = "strc-ind",
diff --git a/tex/context/base/status-mkiv.tex b/tex/context/base/status-mkiv.tex
index b01ba8c86..8bbb89ee9 100644
--- a/tex/context/base/status-mkiv.tex
+++ b/tex/context/base/status-mkiv.tex
@@ -52,6 +52,8 @@
\startitem the message system will be unified \stopitem
\startitem maybe rename dowhatevertexcommand to fromluawhatevertexcommand \stopitem
\startitem consider moving setups directly to lua end (e.g. in characterspacing, breakpoint, bitmaps etc.) \stopitem
+ \startitem more local temporary \type {\temp...} will become \type {\p_...} \stopitem
+ \startitem check all ctxlua calls for ctxcommand \stopitem
\stopitemize
\stoptitle
diff --git a/tex/context/base/strc-con.mkvi b/tex/context/base/strc-con.mkvi
index 16cc16bbb..bd1309f48 100644
--- a/tex/context/base/strc-con.mkvi
+++ b/tex/context/base/strc-con.mkvi
@@ -27,12 +27,13 @@
%
% todo: \currentconstructionattribute : can be a counter instead
-
-%D Constructions are just descriptions but a bit more abstract so that
-%D we can conveniently build upon them. They are not really meant for
-%D users but module writers might find them useful. We mention a
-%D couple of parameters but these are only mentioned because in the
-%D shared code we map all resolvers to constructions.
+%D Constructions are just descriptions but a bit more abstract so that we can
+%D conveniently build upon them. They are not really meant for users but module
+%D writers might find them useful. We mention a couple of parameters but these are
+%D only mentioned because in the shared code we map all resolvers to constructions.
+%D
+%D On top of constructions we build descriptions, enumerations, notes, labels and
+%D maybe some day more.
\unprotect
@@ -135,9 +136,9 @@
{\csname\??constructionstophandler\currentconstructionhandler\endcsname
\endgroup}
-%D As we will build on top of the generic construction mechanism we
-%D have handlers as a sort of plug in mechanism. In order to have
-%D some consistency we share some namespaces.
+%D As we will build on top of the generic construction mechanism we have handlers
+%D as a sort of plug in mechanism. In order to have some consistency we share
+%D some namespaces.
\installcorenamespace{constructioninitializer}
\installcorenamespace{constructionfinalizer}
@@ -172,9 +173,9 @@
\unexpanded\setvalue{\??constructionfinalizer\v!construction}%
{}
-% We keep the command variant around but rather would move to the
-% start-stop one. Also, passing the title as argument has some
-% history so we need to keep that as well.
+%D We keep the command variant around but rather would move to the start-stop one.
+%D Also, passing the title as argument has some history so we need to keep that as
+%D well.
\ifdefined\dotagsetconstruction \else \let\dotagsetconstruction\relax \fi
diff --git a/tex/context/base/strc-des.mkvi b/tex/context/base/strc-des.mkvi
index 816a89316..5635ff0df 100644
--- a/tex/context/base/strc-des.mkvi
+++ b/tex/context/base/strc-des.mkvi
@@ -118,10 +118,6 @@
\expandafter\strc_descriptions_start_yes_normal
\fi}
-% \unexpanded\def\strc_descriptions_start_yes_titled[#1]#2% todo userdata
-% {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title={#2},\c!bookmark=,\c!list=][]%
-% \csname\??constructionstarthandler\currentconstructionhandler\endcsname}
-
\unexpanded\def\strc_descriptions_start_yes_titled[#1]%
{\doifnextbgroupelse
{\strc_descriptions_start_yes_titled_indeed[#1]}%
@@ -143,11 +139,6 @@
\expandafter\strc_descriptions_start_nop_normal
\fi}
-% \unexpanded\def\strc_descriptions_start_nop_titled#1%
-% {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title={#1},\c!bookmark=,\c!list=][]%
-% \csname\??constructionstarthandler\currentconstructionhandler\endcsname}
-% \csname\??constructionstarthandler\currentconstructionhandler\endcsname}
-
\unexpanded\def\strc_descriptions_start_nop_titled
{\doifnextbgroupelse
{\strc_descriptions_start_nop_titled_indeed}%
@@ -205,10 +196,6 @@
\expandafter\strc_descriptions_nop_normal
\fi}
-% \unexpanded\def\strc_descriptions_nop_titled#1%
-% {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title={#1},\c!bookmark=,\c!list=][]%
-% \csname\??constructioncommandhandler\currentconstructionhandler\endcsname}
-
\unexpanded\def\strc_descriptions_nop_titled
{\doifnextbgroupelse
{\strc_descriptions_nop_titled_indeed}%
@@ -242,7 +229,7 @@
{\csname\??constructionstophandler\v!construction\endcsname
\endgroup}
-%D For historic rasons we have (from now on undocumented):
+%D For historic reasons we have (from now on undocumented):
\definedescription
[tab]
diff --git a/tex/context/base/strc-enu.mkvi b/tex/context/base/strc-enu.mkvi
index ea5cc0d19..6220120d2 100644
--- a/tex/context/base/strc-enu.mkvi
+++ b/tex/context/base/strc-enu.mkvi
@@ -221,7 +221,8 @@
%D Counters (maybe we can share this code): (not ok yet, messy with notes)
-%%%%%%%%%%% BEGIN TODO (SEE NOTES) %%%%%%%%%%%%%%%
+% Maybe we should move counters to the construction level as more derived mechanisms
+% use it \unknown\ so don't depend on names here!
\newtoks\everysetupenumerationcounter
@@ -239,9 +240,6 @@
\strc_counter_setup_using_parameter\v_strc_enumerations_counter_name\enumerationparameter
\to \everysetupenumerationcounter
-% \def\currentconstructionnumber {\enumerationparameter\s!counter}
-% \def\specificconstructionnumber#1{\namedenumerationparameter{#1}\s!counter}
-
\def\currentconstructionnumber {\constructionparameter\s!counter}
\def\specificconstructionnumber#1{\namedconstructionparameter{#1}\s!counter}
@@ -249,8 +247,6 @@
\strc_enumerations_setup_counter\currentenumeration
\to \everysetupenumeration
-%%%%%%%%%%% END TODO (SEE NOTES) %%%%%%%%%%%%%%%
-
%D Initializer:
%D The handlers.
@@ -366,23 +362,23 @@
%
% we will provide some more control, like skipping etc or reference relates
-% todo
-
- \unexpanded\def\strc_enumerations_full_number_coupling
- {\iflocation
- \strc_enumerations_full_number_yes
- \else
- \iftrialtypesetting \else
- % \doenumerationregistercoupling
- \fi
- \strc_enumerations_full_number_yes
- \edef\p_coupling{\constructionparameter\c!coupling}%
- \ifx\p_coupling\empty \else
- \symbolreference[order(construction:\p_coupling:\nextinternalorderreference)]%
- \fi
- \fi}
-
- \def\skipenumerationcoupling[#1]% e.g. for questions with no answer
- {\ctxlua{structures.references.setnextorder("construction","#1")}}
+% to do / to be checked
+
+\unexpanded\def\strc_enumerations_full_number_coupling
+ {\iflocation
+ \strc_enumerations_full_number_yes
+ \else
+ \iftrialtypesetting \else
+ % \doenumerationregistercoupling
+ \fi
+ \strc_enumerations_full_number_yes
+ \edef\p_coupling{\constructionparameter\c!coupling}%
+ \ifx\p_coupling\empty \else
+ \symbolreference[order(construction:\p_coupling:\nextinternalorderreference)]%
+ \fi
+ \fi}
+
+\unexpanded\def\strc_enumerations_skip_number_coupling[#1]% e.g. for questions with no answer
+ {\ctxlua{structures.references.setnextorder("construction","#1")}}
\protect \endinput
diff --git a/tex/context/base/strc-not.mkvi b/tex/context/base/strc-not.mkvi
index b5e81fee1..74e4345aa 100644
--- a/tex/context/base/strc-not.mkvi
+++ b/tex/context/base/strc-not.mkvi
@@ -119,14 +119,8 @@
\c!state=\v!start,
\c!levels=3]
-% mostly the same as enumersations but we want to keep them
-% isolated and at some point we might differentiate
-
-% to be considered:
-%
-% \let\??construction\??notation
-%
-% with push/pop (also at definition time)
+%D The code here is mostly the same as enumersations but we want to keep them
+%D isolated and at some point we might differentiate.
\unexpanded\def\strc_define_commands_notation#1#2#3% current level parent
{\doifelsenothing{#3}
@@ -137,8 +131,8 @@
\setuevalue{\e!next #1}{\strc_notations_next }%
\setuevalue{\c!reset#1}{\strc_notations_reset }%
%setuevalue{\c!set #1}{\strc_notations_set }%
-% \setuevalue {#1}{\strc_notations_command{\currentnotation}}%
-% \setuevalue{\e!start#1}{\strc_notations_start {\currentnotation}{#1}}%
+ %setuevalue {#1}{\strc_notations_command{\currentnotation}}%
+ %setuevalue{\e!start#1}{\strc_notations_start {\currentnotation}{#1}}%
\setuevalue {#1}{\strc_notations_command{#1}}%
\setuevalue{\e!start#1}{\strc_notations_start {#1}{#1}}% okay?
\setuevalue{\e!stop #1}{\strc_notations_stop }}
@@ -385,9 +379,7 @@
\fi
\to \everydefinenote
-% maybe we will share this at some point
-
-%%%%%%%%%%% BEGIN TODO (SEE ENUMERATIONS) %%%%%%%%%%%%%%%
+% maybe we will share this at some point:
\newtoks\everysetupnotecounter
@@ -409,10 +401,7 @@
\strc_notes_setup_counter\currentnotation
\to \everysetupnotation
-%%%%%%%%%%% END TODO (SEE ENUMERATIONS) %%%%%%%%%%%%%%%
-
-% \setvalue{\??constructionstarthandler\v!notation}%
-% {\csname\??constructionstarthandler\v!construction\endcsname}
+% so far
%expandafter\let\csname\??constructionstarthandler \v!notation\expandafter\endcsname\csname\??constructionstarthandler \v!enumeration\endcsname
\expandafter\let\csname\??constructionstarthandler \v!notation\expandafter\endcsname\csname\??constructionstarthandler \v!construction\endcsname % no par mess
@@ -643,7 +632,7 @@
\strc_notes_inject_separator
\fi
\nobreak
- \hbox to .5em{}%
+ \hbox to .5\emwidth{}%
\globallet\lastnotesymbol\relax}
\unexpanded\def\strc_notes_inject_separator % patch by WS due to request on list
diff --git a/tex/context/base/strc-ren.mkiv b/tex/context/base/strc-ren.mkiv
index f1fc71948..d20e494f0 100644
--- a/tex/context/base/strc-ren.mkiv
+++ b/tex/context/base/strc-ren.mkiv
@@ -15,7 +15,11 @@
\unprotect
-\newconstant\headtimingmode
+\newbox\b_strc_rendering_head
+
+\newdimen\d_strc_rendering_local_height
+\newdimen\d_strc_rendering_local_depth
+\newdimen\d_strc_rendering_local_lineheight
% Martin Kolarik's problem:
%
@@ -23,13 +27,13 @@
% \def\doTitle#1#2{\ruledvbox{\forgetall \hsize=4cm \ruledhbox{\ruledvtop{#1}\ruledvtop{#2}}}}
% \section{test test test test test test test test test test test test test test test test test}
-\newevery \everyheadstart \relax
+\newtoks\everyheadstart
-\unexpanded\def\setupheadcomponentfont#1#2%
+\unexpanded\def\strc_rendering_component_set_font#1#2%
{\dontconvertfont
\ifconditional\headisdisplay
- \edef\askedheadinterlinespace{\headparameter\c!interlinespace}%
- \ifx\askedheadinterlinespace\empty
+ \edef\p_strc_rendering_interlinespace{\headparameter\c!interlinespace}%
+ \ifx\p_strc_rendering_interlinespace\empty
% here the interline space is only set when style sets no space
\setfalse\fontattributeisset % use the currentfontparameter state instead
\setfalse\interlinespaceisset
@@ -46,45 +50,44 @@
\setfalse\fontattributeisset
\useheadstyleandcolor\c!style\c!color
\ifconditional\fontattributeisset
- \dosetupcheckedinterlinespace\askedheadinterlinespace
+ \dosetupcheckedinterlinespace\p_strc_rendering_interlinespace
\fi
\setfalse\fontattributeisset
\useheadstyleandcolor#1#2%
\ifconditional\fontattributeisset
- \dosetupcheckedinterlinespace\askedheadinterlinespace
+ \dosetupcheckedinterlinespace\p_strc_rendering_interlinespace
\fi
\fi
\else
\setfalse\fontattributeisset
\useheadstyleandcolor\c!style\c!color
\ifconditional\fontattributeisset
- \setupspacing
+ \updateraggedskips % \setupspacing
\fi
\setfalse\fontattributeisset
\useheadstyleandcolor#1#2%
\ifconditional\fontattributeisset
- \setupspacing
+ \updateraggedskips % \setupspacing
\fi
\fi}
\def\doplaceheadtextcomponent#1%
{\begingroup
- \setupheadcomponentfont\c!textstyle\c!textcolor
- \headparameter\c!commandbefore
+ \strc_rendering_component_set_font\c!textstyle\c!textcolor
+ \headparameter\c!commandbefore\relax
\ifcsname\currentheadhash\c!deeptextcommand\endcsname
\expandafter\let\expandafter\deepstructuretitlecommand\csname\currentheadhash\c!deeptextcommand\endcsname
\fi
\ifconditional\headisdisplay % \ifdisplaysectionhead
% struts can be nilled with \setnostrut
\headparameter\c!textcommand{\setstrut\begstrut#1\endstrut}%
- \xdef\localheadheight {\the\strutht}%
- \xdef\localheaddepth {\the\strutdp}%
- \xdef\localheadlineheight{\the\lineheight}%
- % == \globallet\localheaddepth\strutdepth
+ \global\d_strc_rendering_local_height\strutht
+ \global\d_strc_rendering_local_depth\strutdp
+ \global\d_strc_rendering_local_lineheight\lineheight
\else
\headparameter\c!textcommand{#1}%
\fi
- \headparameter\c!commandafter
+ \headparameter\c!commandafter\relax
\ifconditional\headisdisplay % \ifdisplaysectionhead
\endgraf
\fi
@@ -92,7 +95,7 @@
\def\doplaceheadnumbercomponent#1%
{\begingroup
- \setupheadcomponentfont\c!numberstyle\c!numbercolor
+ \strc_rendering_component_set_font\c!numberstyle\c!numbercolor
\ifcsname\currentheadhash\c!deepnumbercommand\endcsname
\expandafter\let\expandafter\deepstructurenumbercommand\csname\currentheadhash\c!deepnumbercommand\endcsname
\fi
@@ -104,10 +107,6 @@
\fi
\endgroup}
-% \newif\ifheadnumbercontent
-% \newif\ifemptyhead
-% \newif\ifdisplaysectionhead
-
\let\currentstructurereferenceattribute\attributeunsetvalue
\def\headreferenceattributes
@@ -147,35 +146,37 @@
\setheadmarking
\doresettructureheadnumbercontent
\ifconditional\headleaveempty
- \setbox\sectionheadbox\hbox \headreferenceattributes to \zeropoint{}%
- \makestrutofbox\sectionheadbox
+ \setbox\b_strc_rendering_head\hbox \headreferenceattributes to \zeropoint{}%
+ \makestrutofbox\b_strc_rendering_head
\else
\docheckheadreference
- \setbox\sectionheadbox\hbox \headreferenceattributes
+ \setbox\b_strc_rendering_head\hbox \headreferenceattributes
{\spac_grids_set_local_snapping{\headparameter\c!internalgrid}%
\doresettructureheadnumbercontent
\useheadstyleparameter\c!style
\setinlineheadreferenceattributes
\headparameter\c!command{}{\doplaceheadtextcomponent\getheadtitle}}%
\fi
- \endheadplacement{\getheadsyncs}}
+ \endheadplacement\getheadsyncs}
\unexpanded\def\placecurrentheadnumbertext
{\beginheadplacement
\setheadmarking
- \doiftextelse{\getheadnumber}\dosettructureheadnumbercontent\doresettructureheadnumbercontent
+ \doiftextelse\getheadnumber
+ \dosettructureheadnumbercontent
+ \doresettructureheadnumbercontent
\ifconditional\headleaveempty
- \setbox\sectionheadbox\hbox \headreferenceattributes to \zeropoint{}%
- \makestrutofbox\sectionheadbox
+ \setbox\b_strc_rendering_head\hbox \headreferenceattributes to \zeropoint{}%
+ \makestrutofbox\b_strc_rendering_head
\else % = needed
\docheckheadreference
- \setbox\sectionheadbox\hbox \headreferenceattributes
+ \setbox\b_strc_rendering_head\hbox \headreferenceattributes
{\spac_grids_set_local_snapping{\headparameter\c!internalgrid}%
\useheadstyleparameter\c!style
\setinlineheadreferenceattributes
\headparameter\c!command{\doplaceheadnumbercomponent\getheadnumber}{\doplaceheadtextcomponent\getheadtitle}}%
\fi
- \endheadplacement{\getheadsyncs}}
+ \endheadplacement\getheadsyncs}
\unexpanded\def\placecurrentheadempty
{\hbox \headreferenceattributes {\getheadsyncs}}
@@ -192,26 +193,28 @@
%D \MySubject{feeling stretched feeling stretched feeling stretched feeling stretched}
%D \stoptyping
-\let\headlastlinewidth\!!zeropoint
-
-\def\localheadheight {\strutht}
-\def\localheaddepth {\strutdp}
-\def\localheadlineheight{\lineheight}
-
-\def\dolocalheadsetup % koppeling met standaard kopcommando / engels
- {\forgetall % traag dus ...
- \doifsomething{\headparameter\c!align } {\normalexpanded{\noexpand\setupalign [\headparameter\c!align ]}}%
- \doifsomething{\headparameter\c!tolerance} {\normalexpanded{\noexpand\setuptolerance[\headparameter\c!tolerance]}}%
- \doif {\headparameter\c!strut }\v!no{\setnostrut}% new
+\def\dolocalheadsetup
+ {\forgetall
+ \edef\p_align{\headparameter\c!align}%
+ \ifx\p_align\empty \else
+ \normalexpanded{\setupalign[\p_align]}%
+ \fi
+ \edef\p_tolerance{\headparameter\c!tolerance}%
+ \ifx\p_tolerance\empty \else
+ \normalexpanded{\setuptolerance[\p_tolerance]}%
+ \fi
+ \edef\p_strut{\headparameter\c!strut}%
+ \ifx\p_strut\v!no
+ \setnostrut
+ \fi
\def\\{\crlf\strut\ignorespaces}}
\def\beginheadplacement
{\bgroup
\setsystemmode\currenthead
- \xdef\localheadheight {\the\strutht}%
- \xdef\localheaddepth {\the\strutdp}%
- \xdef\localheadlineheight{\the\lineheight}%
- % == \globallet\localheaddepth\strutdp
+ \global\d_strc_rendering_local_height\strutht
+ \global\d_strc_rendering_local_depth\strutdp
+ \global\d_strc_rendering_local_lineheight\lineheight
\reseteverypar % needed indeed
\noindent % ipv \whitespace elders, na \forgetall !
\bgroup
@@ -259,55 +262,56 @@
% \subsubsection {Test\\Test} \input tufte \page
% \subsubsubsection{Test\\Test} \input tufte \page
+\newdimen\d_strc_rendering_hang_height
+
\def\hangheadplacement
- {\scratchdimen\localheadlineheight
- \bgroup
- \openlineheight\scratchdimen
- \scratchdimen\htdp0%
- \getnoflines\scratchdimen
- \advance\noflines\minusone
- \normalexpanded{\egroup\noflines\the\noflines}% brrr
- \setbox0\hbox{\lower\noflines\scratchdimen\box0}%
- \scratchdimen\dimexpr\htdp0-\localheadheight+\strutdp\relax
- \ht0 \strutht
- \dp0 \strutdp
- \edef\localheaddepth{\the\strutdp}}
-
-\newconditional\continuoussectionhead % oeps, \newif\ifcontinuoushead got lost
-\newbox\sectionheadbox
+ {\begingroup
+ \openlineheight\d_strc_rendering_local_lineheight
+ \d_strc_rendering_hang_height\htdp\b_strc_rendering_head
+ \getnoflines\d_strc_rendering_hang_height
+ \normalexpanded{\endgroup\noflines\the\dimexpr\noflines-\plusone\relax}% brrr
+ \setbox\b_strc_rendering_head\hbox{\lower\noflines\d_strc_rendering_hang_height\box\b_strc_rendering_head}%
+ \d_strc_rendering_hang_height\dimexpr\htdp\b_strc_rendering_head-\d_strc_rendering_local_height+\strutdp\relax
+ \ht\b_strc_rendering_head\strutht
+ \dp\b_strc_rendering_head\strutdp
+ \d_strc_rendering_local_depth\strutdp}
+
+\installcorenamespace{headplacementcheckhang}
+
+\setvalue{\??headplacementcheckhang\v!line }{\hangheadplacement
+ \noflines\zerocount}
+\setvalue{\??headplacementcheckhang\v!broad }{\hangheadplacement
+ \getnoflines\d_strc_rendering_hang_height}
+\setvalue{\??headplacementcheckhang\v!fit }{\hangheadplacement
+ \getrawnoflines\d_strc_rendering_hang_height}
+\setvalue{\??headplacementcheckhang\v!none }{\noflines\zerocount}
+\setvalue{\??headplacementcheckhang }{\noflines\zerocount}
+\setvalue{\??headplacementcheckhang\s!unknown}{\hangheadplacement
+ \noflines\numexpr\p_hang-\plusone\relax}
\def\endheadplacement#1%
{\noflines\zerocount
\ifconditional\headisdisplay % \ifdisplaysectionhead
- % new (todo tight == one following line up)
- \processaction
- [\headparameter\c!hang]
- [ \v!line=>\hangheadplacement\noflines\zerocount,
- \v!broad=>\hangheadplacement\getnoflines\scratchdimen,
- \v!fit=>\hangheadplacement\getrawnoflines\scratchdimen,
- \v!none=>\noflines\zerocount,
- \v!default=>\noflines\zerocount,
- \v!unknown=>\hangheadplacement\noflines\numexpr0\commalistelement-1\relax]%
- % so far
- \let\headlastlinewidth\!!zeropoint
+ \edef\p_hang{\headparameter\c!hang}%
+ \expandcheckedcsname\??headplacementcheckhang\p_hang\s!unknown
% kind of special, we want to snap heads also according to local specs local
\ifgridsnapping
\hbox\bgroup % extra hbox will trigger global snapper on top of local
- \edef\currentheadgridsnapping{\headparameter\c!grid}%
+ \edef\p_grid{\headparameter\c!grid}%
\ifconditional\headisdisplay
- \ifx\currentheadgridsnapping\empty\else
+ \ifx\p_grid\empty\else
\useheadstyleandcolor\c!style\c!color
\setupinterlinespace
\useheadstyleandcolor\c!textstyle\c!textcolor
\setupinterlinespace
\fi
\fi
- \snaptogrid[\currentheadgridsnapping]\hbox
- {\hskip\localheadskip\hskip\headparameter\c!margin\box\sectionheadbox}%
+ \snaptogrid[\p_grid]\hbox
+ {\hskip\dimexpr\localheadskip+\headparameter\c!margin\relax\box\b_strc_rendering_head}%
\egroup
\else
\hbox
- {\hskip\localheadskip\hskip\headparameter\c!margin\box\sectionheadbox}%
+ {\hskip\dimexpr\localheadskip+\headparameter\c!margin\relax\box\b_strc_rendering_head}%
\fi
\flushnotes % new, not really needed
\endgraf
@@ -322,8 +326,7 @@
\else
\strut
\flushnotes % new, here since we're in par mode
- \unhbox\sectionheadbox
- \globallet\headlastlinewidth\!!zeropoint
+ \unhbox\b_strc_rendering_head
#1%
\hskip\numberheaddistance\!!plus\numberheaddistance\!!minus.25\dimexpr\numberheaddistance\relax
\hskip\continuousheadsignal\ignorespaces
@@ -333,7 +336,7 @@
\ifgridsnapping % important, font related depth, see comment
\prevdepth\strutdp
\else
- \prevdepth\localheaddepth
+ \prevdepth\d_strc_rendering_local_depth
\fi
\fi
\fi
@@ -398,8 +401,7 @@
\def\setheaddisplay % used in strc-sec
{\doifelsevalue{\??headplacementnature\headparameter\c!alternative}\v!horizontal
- {\setfalse\headisdisplay}
- {\settrue \headisdisplay}}
+ \setfalse\settrue\headisdisplay}
\defineheadplacement[\v!paragraph][\v!vertical]#1#2%
{\vbox
@@ -448,7 +450,8 @@
\hangindent\scratchdimen
\hangafter \plusone
\noindent
- \box\scratchbox\hskip\numberheaddistance
+ \box\scratchbox
+ \hskip\numberheaddistance
\else
\ifx\headtextwidth\empty
\ifx\headwidth\empty
@@ -462,18 +465,6 @@
\fi
#2}}
-% \unexpanded\def\placeheadmarginalternative#1#2%
-% {\vbox
-% {\localheadsetup
-% \begstrut % use one \strut here!
-% \dontleavehmode % in case there is no strut, else side effects with llap
-% \ifconditional\headshownumber
-% \llap{\hbox{\hfill{#1}\hskip\localheadskip\hskip\leftmargindistance}}% introduces whitespace
-% % maybe better:
-% % \inleftmargin{\hbox{\hss{#1}\hskip\localheadskip}}%
-% \fi
-% {#2}}}
-
\unexpanded\def\placeheadmarginalternative#1#2%
{\vbox
{\localheadsetup
@@ -484,8 +475,11 @@
\fi
{#2}}}
-\defineheadplacement[\v!inmargin][\v!vertical]#1#2{\placeheadmarginalternative{#1}{#2}}
-\defineheadplacement[\v!margin] [\v!vertical]#1#2{\placeheadmarginalternative{#1}{#2}}
+\defineheadplacement[\v!inmargin][\v!vertical]#1#2%
+ {\placeheadmarginalternative{#1}{#2}}
+
+\defineheadplacement[\v!margin] [\v!vertical]#1#2%
+ {\placeheadmarginalternative{#1}{#2}}
\defineheadplacement[\v!middle][\v!vertical]#1#2%
{\vbox
@@ -516,11 +510,13 @@
#1{\localheadsetup\noindent#3}%
\fi}
-% onder/boven lijnt het nummer op de onderste/bovenste regel
-% uit van een meerregelige kop
+% onder/boven lijnt het nummer op de onderste/bovenste regel uit van een meerregelige kop
+
+\defineheadplacement[\v!bottom][\v!vertical]#1#2%
+ {\placeheadlohialternative\vbox{#1}{#2}}
-\defineheadplacement[\v!bottom][\v!vertical]#1#2{\placeheadlohialternative\vbox{#1}{#2}}
-\defineheadplacement[\v!top] [\v!vertical]#1#2{\placeheadlohialternative\vtop{#1}{#2}}
+\defineheadplacement[\v!top][\v!vertical]#1#2%
+ {\placeheadlohialternative\vtop{#1}{#2}}
% helpers
diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv
index e9b613f21..7cf6921cb 100644
--- a/tex/context/base/strc-sec.mkiv
+++ b/tex/context/base/strc-sec.mkiv
@@ -43,6 +43,9 @@
% lua interface / names and interface might change
+\newconditional\c_strc_rendering_continuous % not used (mkii ?)
+
+
\def\setstructurelevel #1#2{\ctxlua{structures.sections.setlevel("#1","#2")}} % name, level|parent
\def\getstructurelevel #1{\ctxlua{structures.sections.getcurrentlevel("#1")}}% name
\def\setstructurenumber #1#2{\ctxlua{structures.sections.setnumber(#1,"#2")}} % level, number (+/-)
@@ -671,14 +674,14 @@
\global\precedingstructurelevel\currentheadlevel
\nobreak
\fi
- \global\settrue\continuoussectionhead
+ \global\settrue\c_strc_rendering_continuous
\else
\penalty\scratchcounter
- \global\setfalse\continuoussectionhead
+ \global\setfalse\c_strc_rendering_continuous
#1%
\fi
\else
- \global\setfalse\continuoussectionhead
+ \global\setfalse\c_strc_rendering_continue
#1%
\fi}
diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv
index a5c4cf0ff..74dd076f7 100644
--- a/tex/context/base/syst-aux.mkiv
+++ b/tex/context/base/syst-aux.mkiv
@@ -5295,40 +5295,41 @@
%D We have to use a two||step implementation, because the
%D expansion has to take place outside \type{\uppercase}.
%D
-%D These might up as \LUA based helpers:
+%D These might up as \LUA based helpers (i.e. considere these
+%D obsolete:
\unexpanded\def\syst_helpers_do_IF#1#2%
- {\uppercase{{$#1$}{$#2$}}%
+ {\uppercase{\syst_helpers_do_if_in_string_else{$#1$}{$#2$}}%
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
\fi}
\unexpanded\def\syst_helpers_do_IF_NOT#1#2%
- {\uppercase{{$#1$}{$#2$}}%
+ {\uppercase{\syst_helpers_do_if_in_string_else{$#1$}{$#2$}}%
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
\fi}
\unexpanded\def\syst_helpers_do_IF_ELSE#1#2%
- {\uppercase{{$#1$}{$#2$}}%
+ {\uppercase{\syst_helpers_do_if_in_string_else{$#1$}{$#2$}}%
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
\fi}
\unexpanded\def\syst_helpers_do_IF_INSTRING_ELSE#1#2%
- {\uppercase{{$#1$}{$#2$}}%
+ {\uppercase{\syst_helpers_do_if_in_string_else{$#1$}{$#2$}}%
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
\fi}
-\unexpanded\def\DOIF #1#2{\normalexpanded{\syst_helpers_do_IF {#1}{#2}}}
-\unexpanded\def\DOIFNOT #1#2{\normalexpanded{\syst_helpers_do_IF_NOT {#1}{#2}}}
-\unexpanded\def\DOIFELSE #1#2{\normalexpanded{\syst_helpers_do_IF_ELSE {#1}{#2}}}
-\unexpanded\def\DOIFINSTRINGELSE #1#2{\normalexpanded{\syst_helpers_do_IF_INSTRING_ELSE{#1}{#2}}}
+\unexpanded\def\DOIF #1#2{\normalexpanded{\syst_helpers_do_IF {#1}{#2}}}% will become obsolete
+\unexpanded\def\DOIFNOT #1#2{\normalexpanded{\syst_helpers_do_IF_NOT {#1}{#2}}}% will become obsolete
+\unexpanded\def\DOIFELSE #1#2{\normalexpanded{\syst_helpers_do_IF_ELSE {#1}{#2}}}% will become obsolete
+\unexpanded\def\DOIFINSTRINGELSE #1#2{\normalexpanded{\syst_helpers_do_IF_INSTRING_ELSE{#1}{#2}}}% will become obsolete
%D \macros
%D {dosingleargumentwithset,
diff --git a/tex/context/base/x-mathml.mkiv b/tex/context/base/x-mathml.mkiv
index 30ae1232e..6db01c671 100644
--- a/tex/context/base/x-mathml.mkiv
+++ b/tex/context/base/x-mathml.mkiv
@@ -121,7 +121,6 @@
% \def\mmlmiddledelimiter#1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{%
% \ifcase\delimiternesting\MMLleft\else\MMLmiddle\fi#1}\fi}
-
%D Remark: from now on this is a module and no longer an xtag
%D filter. There is an intermediate cleaner module but it has
%D some namespace limitations. Here we do it the \MKIV\ way.
@@ -2155,9 +2154,9 @@
{\ifx#1\empty
\expandafter\secondoftwoarguments
\else\ifcsname#1\endcsname
- \expandafter\expandafter\expandafter\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\else
- \expandafter\expandafter\expandafter\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\fi\fi
{\csname#1\endcsname}}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index c7acc7b5a..93c21412b 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 07/06/12 22:37:28
+-- merge date : 07/07/12 15:04:48
do -- begin closure to overcome local limits and interference