%D \module
%D   [       file=math-pln,
%D        version=2001.11.16,
%D          title=\CONTEXT\ Math Macros,
%D       subtitle=Plain Helpers,
%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.

%D Here we collect some Plain \TEX\ leftovers.

\writestatus{loading}{ConTeXt Math Macros / Plain Helpers}

\unprotect

% we need proper unicode:

\def\relbar{\mathrel{\smash-}} % - has the same height as + .. no clue what this refers to

% might change

\unexpanded\def\hrulefill{\leaders\hrule\hfill}
\unexpanded\def\dotfill  {\cleaders\hbox{$\mathsurround\zeropoint\mkern1.5mu.\mkern1.5mu$}\hfill}

% will move

\def\oalign#1%
  {\leavevmode
   \vtop
     {\baselineskip\zeroskip
      \lineskip.25\exheight
      \ialign{##\crcr#1\crcr}}}

\def\ooalign % chars over each other
  {\lineskiplimit-\maxdimen
   \oalign}

% needs checking

\def\choose{\atopwithdelims()}
\def\brack {\atopwithdelims[]}
\def\brace {\atopwithdelims\{\}}

% needs checking

\unexpanded\def\buildrel#1\over#2%
  {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}

\unexpanded\def\bmod
  {\nonscript
   \mskip-\medmuskip
   \mkern5mu
   \mfunction{mod}%
   \penalty900
   \mkern5mu
   \nonscript
   \mskip-\medmuskip}

\unexpanded\def\pmod#1%
  {\allowbreak
   \mkern18mu
   (\mfunction{mod}\mskip\medmuskip#1)}

\unexpanded\def\cases#1%
  {\left\{%
   \mskip\thinmuskip
   \vcenter
     {\normalbaselines
      \mathsurround\zeropoint
      \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}%
   \right.}

\unexpanded\def\matrix#1%
  {\emptyhbox
   \mskip\thinmuskip
   \vcenter
     {\normalbaselines\mathsurround\zeropoint
      \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
      \mathstrut\crcr\noalign{\kern-\baselineskip}
      #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}%
   \mskip\thinmuskip}

\unexpanded\def\pmatrix#1%
  {\left(\matrix{#1}\right)}

% \unexpanded\def\openup
%   {\afterassignment\math_openup\scratchdimen=}
%
% \def\math_openup
%   {\advance\lineskip     \scratchdimen
%    \advance\baselineskip \scratchdimen
%    \advance\lineskiplimit\scratchdimen}

\let\math_closeup\relax

\unexpanded\def\math_openup
  {\afterassignment\math_openup_indeed\scratchdimen}

\def\math_openup_indeed
  {\unexpanded\edef\math_closeup
     {\lineskip     \the\lineskip
      \baselineskip \the\baselineskip
      \lineskiplimit\the\lineskiplimit
      \relax}%
   \advance \lineskip      \scratchdimen
   \advance \baselineskip  \scratchdimen
   \advance \lineskiplimit \scratchdimen}

\let\openup  \math_openup
\def\closeup{\math_closeup} % dynamic

\unexpanded\def\displaylines#1%
  {\the\mathdisplayaligntweaks
   \tabskip\zeroskip
   \halign
     {\hbox to \displaywidth{$\tabskip\zeroskip\everycr\emptytoks\hfil\displaystyle##\hfil$}\crcr
      #1\crcr}}

\protect \endinput
