From 5f0ea86ac0245f62faa3845d3cd04de8a56c1779 Mon Sep 17 00:00:00 2001
From: Marius <mariausol@gmail.com>
Date: Sun, 7 Apr 2013 00:40:21 +0300
Subject: beta 2013.04.06 23:27

---
 tex/context/base/cont-new.mkiv                     |   2 +-
 tex/context/base/context-version.pdf               | Bin 4135 -> 4134 bytes
 tex/context/base/context-version.png               | Bin 40352 -> 40321 bytes
 tex/context/base/context.mkiv                      |   3 +-
 tex/context/base/math-frc.mkiv                     | 280 ++++++++++-----------
 tex/context/base/math-ini.mkiv                     |  10 +-
 tex/context/base/math-mis.mkiv                     |  60 +++++
 tex/context/base/mult-aux.mkiv                     |  19 +-
 tex/context/base/status-files.pdf                  | Bin 24790 -> 24753 bytes
 tex/context/base/status-lua.pdf                    | Bin 211713 -> 211790 bytes
 tex/generic/context/luatex/luatex-fonts-merged.lua |   2 +-
 11 files changed, 217 insertions(+), 159 deletions(-)
 create mode 100644 tex/context/base/math-mis.mkiv

diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index ec48d6bae..9c6e824b0 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{2013.04.05 22:00}
+\newcontextversion{2013.04.06 23:27}
 
 %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/context-version.pdf b/tex/context/base/context-version.pdf
index bccf8fc16..044e9c791 100644
Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 0a8bac0da..6c5d44ac4 100644
Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index e4442fdcd..2888cea6a 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{2013.04.05 22:00}
+\edef\contextversion{2013.04.06 23:27}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:
@@ -423,6 +423,7 @@
 %loadmarkfile{math-arr}
 \loadmkvifile{math-stc}
 \loadmarkfile{math-frc}
+\loadmarkfile{math-mis}
 \loadmarkfile{math-scr}
 \loadmarkfile{math-int}
 \loadmarkfile{math-del}
diff --git a/tex/context/base/math-frc.mkiv b/tex/context/base/math-frc.mkiv
index ae78b9290..ea3a737aa 100644
--- a/tex/context/base/math-frc.mkiv
+++ b/tex/context/base/math-frc.mkiv
@@ -1,9 +1,9 @@
 %D \module
 %D   [       file=math-frc,
-%D        version=2007.07.19,
+%D        version=2013.04.06, % 2007.07.19,
 %D          title=\CONTEXT\ Math Macros,
 %D       subtitle=Fractions,
-%D         author={Hans Hagen \& Taco Hoekwater},
+%D         author=Hans Hagen,
 %D           date=\currentdate,
 %D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
 %C
@@ -15,17 +15,18 @@
 
 \unprotect
 
-% quite old ... still needed?
+%D todo: struts ... depends on demand
+
+%D This module is reimplemented in \MKIV\ style.
 
 %D \macros
 %D   {frac, xfrac, xxfrac}
 %D
-%D This is another one Tobias asked for. It replaces the
-%D primitive \type {\over}. We also take the opportunity to
-%D handle math style restoring, which makes sure units and
-%D chemicals come out ok.
-%D The \type {\frac} macro kind of replaces the awkward \type
-%D {\over} primitive. Say that we have the following formulas:
+%D This is another one Tobias asked for. It replaces the primitive \type
+%D {\over}. We also take the opportunity to handle math style restoring,
+%D which makes sure units and chemicals come out ok. The \type {\frac}
+%D macro kind of replaces the awkward \type {\over} primitive. Say that
+%D we have the following formulas:
 %D
 %D \startbuffer[sample]
 %D test $\frac  {1}{2}$ test $$1 + \frac  {1}{2} = 1.5$$
@@ -65,120 +66,85 @@
 %D
 %D \typebuffer[code] \getbuffer[code,sample]
 %D
-%D So we stick to the next definitions (watch the local
-%D overloading of \type {\xfrac}).
-
-% \def\math_fractions_forced#1#2#3{\relax\mathematics{\Ustack{{#1{#2}}\normalover{#1{#3}}}}}
-% \def\math_fractions_auto    #1#2{\relax\mathematics{\Ustack{{#1}\normalover{#2}}}}
-
-\def\math_fractions_forced#1#2#3%
-  {\normalexpanded{\vcenter\bgroup\hbox\bgroup\startimath\triggermathstyle\normalmathstyle}%
-     \Ustack{{#1{#2}}\normalover{#1{#3}}}%
-   \stopimath\egroup\egroup}
-
-\def\math_fractions_auto#1#2%
-  {\normalexpanded{\vcenter\bgroup\hbox\bgroup\startimath\triggermathstyle\normalmathstyle}%
-     \Ustack{{#1}\normalover{#2}}%
-   \stopimath\egroup\egroup}
-
-% \def\math_fractions_auto{\math_fractions_forced\firstofoneargument}
+%D So we stick to the next definitions (watch the local overloading of
+%D \type {\xfrac}).
+%D
+%D In the meantime, in \LUATEX, we have better control over styles so the
+%D following macros are different from the \MKII\ ones.
 
+% obsolete, is now c!mathstyle
+%
+% 0=auto, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle, 5=mathstyle
+%
 % $\mathfracmode0 \frac{1}{2}$
 % $\mathfracmode1 \frac{1}{2}$
 % $\mathfracmode2 \frac{1}{2}$
 % $\mathfracmode3 \frac{1}{2}$
 % $\mathfracmode4 \frac{1}{2}$
 % $\mathfracmode5 \frac{1}{2}$
-
-% 0=auto, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle, 5=mathstyle
+%
+% we keep the constant for a while
 
 \setnewconstant\mathfracmode\zerocount
 
-\unexpanded\def\frac
-  {\ifcase\mathfracmode
-     \expandafter\math_fractions_auto
-   \or
-     \expandafter\math_fractions_forced\expandafter\displaystyle
-   \or
-     \expandafter\math_fractions_forced\expandafter\textstyle
-   \or
-     \expandafter\math_fractions_forced\expandafter\scriptstyle
-   \or
-     \expandafter\math_fractions_forced\expandafter\scriptscriptstyle
-   \else
-     \expandafter\math_fractions_forced\expandafter\mathstyle
-   \fi}
-
-\unexpanded\def\xfrac#1#2%
-  {\begingroup
-   \let\xfrac\xxfrac
-   \math_fractions_forced\scriptstyle{#1}{#2}%
-   \endgroup}
+\installcorenamespace{mathfractions}
+\installcorenamespace{mathfractionstyle}
+\installcorenamespace{mathfractionalign}
+\installcorenamespace{mathfractionalternative}
 
-\unexpanded\def\xxfrac#1#2%
-  {\begingroup
-   \math_fractions_forced\scriptscriptstyle{#1}{#2}%
-   \endgroup}
+\installcommandhandler \??mathfractions {mathfraction} \??mathfractions
 
-%D The \type {xx} variant looks still ugly, so maybe it's
-%D best to say:
+\let\setupmathfractions\setupmathfraction
 
-\unexpanded\def\xxfrac#1#2%
+\setupmathfractions
+  [\c!mathstyle=\v!auto,
+   \c!align=\v!normal,
+   \c!alternative=\v!inner,
+   \c!command=\normalover] % beware a <arg 1><command><arg 2> variant
+
+\appendtoks
+    \setuevalue{\currentmathfraction}{\math_frac{\currentmathfraction}}%
+\to \everydefinemathfraction
+
+\letvalue{\??mathfractionalign\v!normal}\mathstylehbox
+\letvalue{\??mathfractionalign\v!lohi  }\mathstylevcenteredhbox
+
+\def\math_frac_align
+  {\expandnamespaceparameter\??mathfractionalign\mathfractionparameter\c!align\v!normal}
+
+\unexpanded\def\math_frac#1%
   {\begingroup
-   \math_fractions_forced\scriptscriptstyle{#1}{\raise.25ex\hbox{$\scriptscriptstyle#2$}}%
+   \edef\currentmathfraction{#1}%
+   \expandnamespaceparameter\??mathfractionstyle\mathfractionparameter\c!mathstyle\s!math}
+
+\setvalue{\??mathfractionalternative\v!inner}#1#2#3%
+  {\math_frac_align{\Ustack{{#1{#2}}\mathfractionparameter\c!command{#1{#3}}}}%
    \endgroup}
 
-%D Something low level for scientific calculator notation:
+\setvalue{\??mathfractionalternative\v!outer}#1#2#3%
+  {\math_frac_align{\Ustack{{#1{{#2}\mathfractionparameter\c!command{#3}}}}}%
+   \endgroup}
 
-\unexpanded\def\scinot#1#2%
-  {#1\times10^{#2}}
+\def\math_frac_alternative
+  {\expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
 
-% I have no clue what \mthfrac and \mthsqrt are supposed to do but
-% I guess that it can be done with tweaking luatex's math parameters.
-% Otherwise I'll write something from scratch.
+\setvalue{\??mathfractionstyle\v!auto        }{\math_frac_alternative\firstofoneargument} % was: 0
+\setvalue{\??mathfractionstyle\s!display     }{\math_frac_alternative\displaystyle}       % was: 1
+\setvalue{\??mathfractionstyle\s!text        }{\math_frac_alternative\textstyle}          % was: 2
+\setvalue{\??mathfractionstyle\s!script      }{\math_frac_alternative\scriptstyle}        % was: 3
+\setvalue{\??mathfractionstyle\s!scriptscript}{\math_frac_alternative\scriptscriptstyle}  % was: 4
+\setvalue{\??mathfractionstyle\s!math        }{\math_frac_alternative\mathstyle}          % was: else
 
-% \def\math_stylebuilders_frac#1#2#3#4#5#6#7%
-%   {\begingroup
-%    \mathsurround\zeropoint
-%    \setbox0\hbox{$#1 #6$}%
-%    \setbox2\hbox{$#1 #7$}%
-%    \dimen0\wd\ifdim\wd2>\wd0 2\else 0\fi
-%    \setbox4\hbox to \dimen0{\leaders\hbox{#4}\hss#5}%
-%    \mathord{\vcenter{{\offinterlineskip
-%      \hbox to \dimen0{\hss\box0\hss}%
-%      \kern\ht4%
-%      \hbox to \dimen0{\hss\copy4\hss}%
-%      \kern\ht4%
-%      \hbox to \dimen0{\hss\box2\hss}}}}%
-%    \endgroup}
-%
-% \def\math_stylebuilders_sqrt#1#2#3#4#5%
-%   {\begingroup
-%    \mathsurround\zeropoint
-%    \setbox0\hbox{$#1 #5$}%
-%    \ht0\dimexpr1.05\ht0+\onepoint\relax
-%    \dp0\dimexpr1.05\dp0+\onepoint\relax
-%    \setbox4\hbox to \wd0{\mr#2\leaders\hbox{#3}\hfill#4}%
-%    \delimitershortfall\zeropoint
-%    \nulldelimiterspace\zeropoint
-%    \setbox2\hbox{$\left\delimiter"0270370 \vrule \s!height\ht0 \s!depth \dp0 \s!width\zeropoint\right.$}% is this the right code point?
-%    \mathord{\vcenter{\hbox{\copy2\rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
-%    \endgroup}
-%
-% \def\mthfrac#1#2#3#4#5{\mathchoice
-%   {\math_stylebuilders_frac\displaystyle     \textface        {#1}{#2}{#3}{#4}{#5}}%
-%   {\math_stylebuilders_frac\textstyle        \textface        {#1}{#2}{#3}{#4}{#5}}%
-%   {\math_stylebuilders_frac\scriptstyle      \scriptface      {#1}{#2}{#3}{#4}{#5}}%
-%   {\math_stylebuilders_frac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
-%
-% \def\mthsqrt#1#2#3{\mathchoice
-%   {\math_stylebuilders_sqrt\displaystyle     \textface{#1}{#2}{#3}}%
-%   {\math_stylebuilders_sqrt\textstyle        \textface{#1}{#2}{#3}}%
-%   {\math_stylebuilders_sqrt\scriptstyle      \textface{#1}{#2}{#3}}%
-%   {\math_stylebuilders_sqrt\scriptscriptstyle\textface{#1}{#2}{#3}}}
+\definemathfraction[frac][\c!mathstyle=\v!auto]
 
-\unexpanded\def\mthfrac#1#2#3{[mthfrac: #1 #2 #3]}
-\unexpanded\def\mthsqrt#1#2#3{[mthsqrt: #1 #2 #3]}
+\unexpanded\def\xfrac {\begingroup\let\xfrac\xxfrac\math_frac_alternative\scriptstyle}
+\unexpanded\def\xxfrac{\begingroup                 \math_frac_alternative\scriptscriptstyle}
+
+%D The \type {xx} variant looks still ugly, so maybe it's best to say:
+
+\unexpanded\def\xxfrac#1#2%
+  {\begingroup
+   \math_frac_alternative\scriptscriptstyle{#1}{\raise.25\exheight\hbox{$\scriptscriptstyle#2$}}}
 
 %D \macros
 %D   {dfrac, tfrac, frac, dbinom, tbinom, binom}
@@ -191,21 +157,26 @@
 %D \typebuffer
 %D \getbuffer
 
-% extra {} after displaystyle etc are needed
+% \unexpanded\def\dfrac #1#2{{\displaystyle     {{#1}\normalover                       {#2}}}}
+% \unexpanded\def\tfrac #1#2{{\textstyle        {{#1}\normalover                       {#2}}}}
 
-%unexpanded\def\frac  #1#2{{                  {{#1}\normalover                       {#2}}}}
-%unexpanded\def\xfrac #1#2{{\scriptstyle      {{#1}\normalover                       {#2}}}}
-%unexpanded\def\xxfrac#1#2{{\scriptscriptstyle{{#1}\normalover                       {#2}}}}
-\unexpanded\def\dfrac #1#2{{\displaystyle     {{#1}\normalover                       {#2}}}}
-\unexpanded\def\tfrac #1#2{{\textstyle        {{#1}\normalover                       {#2}}}}
+\definemathfraction[dfrac][\c!alternative=\v!outer,\c!mathstyle=\s!display]
+\definemathfraction[tfrac][\c!alternative=\v!outer,\c!mathstyle=\s!text]
+\definemathfraction[sfrac][\c!alternative=\v!outer,\c!mathstyle=\s!script]
 
-%unexpanded\def\binom #1#2{{                  {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
-\unexpanded\def\dbinom#1#2{{\displaystyle     {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
-\unexpanded\def\tbinom#1#2{{\textstyle        {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+\def\normaloverbinum{\normalabovewithdelims()\zeropoint}
 
-\unexpanded\def\binom #1#2{{\Ustack{{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+% \definemathfraction[ddfrac][\c!mathstyle=\s!display]
+% \definemathfraction[ttfrac][\c!mathstyle=\s!text]
+% \definemathfraction[ssfrac][\c!mathstyle=\s!script]
 
-% \let\frac\math_fractions_auto
+% \unexpanded\def\binom #1#2{{\Ustack      {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+% \unexpanded\def\dbinom#1#2{{\displaystyle{{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+% \unexpanded\def\tbinom#1#2{{\textstyle   {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+
+\definemathfraction[binom] [\c!alternative=\v!outer,\c!command=\normaloverbinum,\c!mathstyle=\s!auto]
+\definemathfraction[dbinom][\c!alternative=\v!outer,\c!command=\normaloverbinum,\c!mathstyle=\s!display]
+\definemathfraction[tbinom][\c!alternative=\v!outer,\c!command=\normaloverbinum,\c!mathstyle=\s!text]
 
 %D \macros
 %D   {cfrac}
@@ -278,42 +249,51 @@
 \unexpanded\def\splitdfrac#1#2%
   {{\displaystyle{{          #1\quad\hfill}\normalabove\zeropoint{          \hfill\quad\mathstrut#2}}}}
 
-%D For thee moment here, but it might move:
-
-%D \macros
-%D   {qedsymbol}
-%D
-%D [HH] The general Quod Erat Domonstrandum symbol is defined
-%D in such a way that we can configure it. Because this symbol
-%D is also used in text mode, we make it a normal text symbol
-%D with special behavior.
-
-\unexpanded\def\qedsymbol#1%
-  {\ifhmode
-     \unskip\nobreakspace\hfill#1\par
-   \else\ifmmode
-     #1\relax % leading \eqno removed
-   \else
-     \dontleavehmode\emptyhbox\hfill#1\par
-   \fi\fi}
-
-\definesymbol [qed] [\qedsymbol{\mathematics{\square}}]
-
-%D \macros
-%D   {QED}
-%D
-%D [HH] For compatbility reasons we also provide the \type
-%D {\QED} command. In case this command is overloaded, we still
-%D have the symbol available. \symbol[qed]
-
-\unexpanded\def\QED{\symbol[qed]}
+\protect \endinput
 
-%D \macros
-%D   {boxed}
-%D
-%D [HH] Another macro that users might expect (slightly adapted):
+% I have no clue what \mthfrac and \mthsqrt are supposed to do but
+% I guess that it can be done with tweaking luatex's math parameters.
+% Otherwise I'll write something from scratch.
 
-\unexpanded\def\boxed % maybe obsolete
-  {\ifmmode\expandafter\mframed\else\expandafter\framed\fi}
+% \def\math_stylebuilders_frac#1#2#3#4#5#6#7%
+%   {\begingroup
+%    \mathsurround\zeropoint
+%    \setbox0\hbox{$#1 #6$}%
+%    \setbox2\hbox{$#1 #7$}%
+%    \dimen0\wd\ifdim\wd2>\wd0 2\else 0\fi
+%    \setbox4\hbox to \dimen0{\leaders\hbox{#4}\hss#5}%
+%    \mathord{\vcenter{{\offinterlineskip
+%      \hbox to \dimen0{\hss\box0\hss}%
+%      \kern\ht4%
+%      \hbox to \dimen0{\hss\copy4\hss}%
+%      \kern\ht4%
+%      \hbox to \dimen0{\hss\box2\hss}}}}%
+%    \endgroup}
+%
+% \def\math_stylebuilders_sqrt#1#2#3#4#5%
+%   {\begingroup
+%    \mathsurround\zeropoint
+%    \setbox0\hbox{$#1 #5$}%
+%    \ht0\dimexpr1.05\ht0+\onepoint\relax
+%    \dp0\dimexpr1.05\dp0+\onepoint\relax
+%    \setbox4\hbox to \wd0{\mr#2\leaders\hbox{#3}\hfill#4}%
+%    \delimitershortfall\zeropoint
+%    \nulldelimiterspace\zeropoint
+%    \setbox2\hbox{$\left\delimiter"0270370 \vrule \s!height\ht0 \s!depth \dp0 \s!width\zeropoint\right.$}% is this the right code point?
+%    \mathord{\vcenter{\hbox{\copy2\rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
+%    \endgroup}
+%
+% \def\mthfrac#1#2#3#4#5{\mathchoice
+%   {\math_stylebuilders_frac\displaystyle     \textface        {#1}{#2}{#3}{#4}{#5}}%
+%   {\math_stylebuilders_frac\textstyle        \textface        {#1}{#2}{#3}{#4}{#5}}%
+%   {\math_stylebuilders_frac\scriptstyle      \scriptface      {#1}{#2}{#3}{#4}{#5}}%
+%   {\math_stylebuilders_frac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
+%
+% \def\mthsqrt#1#2#3{\mathchoice
+%   {\math_stylebuilders_sqrt\displaystyle     \textface{#1}{#2}{#3}}%
+%   {\math_stylebuilders_sqrt\textstyle        \textface{#1}{#2}{#3}}%
+%   {\math_stylebuilders_sqrt\scriptstyle      \textface{#1}{#2}{#3}}%
+%   {\math_stylebuilders_sqrt\scriptscriptstyle\textface{#1}{#2}{#3}}}
 
-\protect \endinput
+% \unexpanded\def\mthfrac#1#2#3{[mthfrac: #1 #2 #3]}
+% \unexpanded\def\mthsqrt#1#2#3{[mthsqrt: #1 #2 #3]}
diff --git a/tex/context/base/math-ini.mkiv b/tex/context/base/math-ini.mkiv
index 4253ee6e7..891160847 100644
--- a/tex/context/base/math-ini.mkiv
+++ b/tex/context/base/math-ini.mkiv
@@ -1152,23 +1152,23 @@
 
 \unexpanded\def\mathstylehbox#1%
   {\normalexpanded{\hbox\bgroup
-     $\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1$\egroup}
+     \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
 
 \unexpanded\def\mathstylevbox#1%
   {\normalexpanded{\vbox\bgroup
-     $\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1$\egroup}
+     \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
 
 \unexpanded\def\mathstylevcenter#1%
   {\normalexpanded{\vcenter\bgroup
-     $\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1$\egroup}
+     \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
 
 \unexpanded\def\mathstylevcenteredhbox#1%
   {\normalexpanded{\vcenter\bgroup\hbox\bgroup
-     $\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1$\egroup\egroup}
+     \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup\egroup}
 
 \unexpanded\def\mathstylevcenteredvbox#1%
   {\normalexpanded{\vcenter\bgroup\vbox\bgroup
-     $\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1$\egroup\egroup}
+     \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup\egroup}
 
 \unexpanded\def\setmathsmalltextbox#1#2#%
   {\normalizebodyfontsize\m_math_text_choice_face{\mathsmallstyleface\normalmathstyle}%
diff --git a/tex/context/base/math-mis.mkiv b/tex/context/base/math-mis.mkiv
new file mode 100644
index 000000000..6346da9a0
--- /dev/null
+++ b/tex/context/base/math-mis.mkiv
@@ -0,0 +1,60 @@
+%D \module
+%D   [       file=math-mis,
+%D        version=2013.04.06, % 2007.07.19,
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=Miscellaneous,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Miscellaneous}
+
+\unprotect
+
+%D This file contains left-overs moved from other files. It's mostly old stuff
+%D that we keep around for compatbility reasons.
+
+%D \macros
+%D   {qedsymbol}
+%D
+%D [HH] The general Quod Erat Demonstrandum symbol is defined in such a way that
+%D we can configure it. Because this symbol is also used in text mode, we make it
+%D a normal text symbol with special behavior.
+
+\unexpanded\def\qedsymbol#1%
+  {\ifhmode
+     \unskip\nobreakspace\hfill#1\par
+   \else\ifmmode
+     #1\relax % leading \eqno removed
+   \else
+     \dontleavehmode\emptyhbox\hfill#1\par
+   \fi\fi}
+
+\definesymbol [qed] [\qedsymbol{\mathematics{\square}}]
+
+%D \macros
+%D   {QED}
+%D
+%D [HH] For compatbility reasons we also provide the \type {\QED} command. In case
+%D this command is overloaded, we still have the symbol available. \symbol[qed]
+
+\unexpanded\def\QED{\symbol[qed]}
+
+%D \macros
+%D   {boxed}
+%D
+%D [HH] Another macro that users might expect (slightly adapted):
+
+\unexpanded\def\boxed % maybe obsolete
+  {\ifmmode\expandafter\mframed\else\expandafter\framed\fi}
+
+%D Something low level for scientific calculator notation:
+
+\unexpanded\def\scinot#1#2%
+  {#1\times10^{#2}}
+
+\protect \endinput
diff --git a/tex/context/base/mult-aux.mkiv b/tex/context/base/mult-aux.mkiv
index 97b330248..763ae9605 100644
--- a/tex/context/base/mult-aux.mkiv
+++ b/tex/context/base/mult-aux.mkiv
@@ -798,7 +798,7 @@
       \expandafter\mult_interfaces_show_parent_chain\csname#1:\s!parent\endcsname
    \fi}
 
-%D Another helper:
+%D Another helper (needs to be applied):
 
 \unexpanded\def\doifelsecommandhandler#1#2% namespace name
   {\ifcsname#1#2:\s!parent\endcsname
@@ -823,6 +823,23 @@
 
 \let\doifcommandhandlerelse\doifelsecommandhandler
 
+% another helper:
+%
+% \def\math_frac_alternative
+%   {\expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
+%
+% \def\expandnamespaceparameter#1#2#3% \??xx \yyparameter \c!aa \c!bb
+%   {\expandafter\expandafter\expandafter\mult_aux_expand_namespace_parameter\expandafter\expandafter\expandafter#1#2#3}
+%
+% \def\mult_aux_expand_namespace_parameter#1#2#3%
+%   {\csname#1\ifcsname#1#2\endcsname#2\else#3\fi\endcsname}
+
+\def\expandnamespaceparameter#1#2#3% \??xx \getp \c!xx \c!yy
+  {\csname#1\ifcsname#1\expandafter\expandafter\expandafter\mult_aux_expand_namespace_parameter#2#3}
+
+\def\mult_aux_expand_namespace_parameter#1#2% \cs \c!yy
+  {#1\endcsname#1\else#2\fi\endcsname}
+
 %D Conventions:
 %D
 %D \starttyping
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 28cb15781..9e6dd13f8 100644
Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 8cc75d46c..f9ffcd721 100644
Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index d1b4bcda9..786c3647c 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  : 04/05/13 22:00:23
+-- merge date  : 04/06/13 23:27:35
 
 do -- begin closure to overcome local limits and interference
 
-- 
cgit v1.2.3