summaryrefslogtreecommitdiff
path: root/tex/context/base/core-mar.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/core-mar.tex')
-rw-r--r--tex/context/base/core-mar.tex126
1 files changed, 126 insertions, 0 deletions
diff --git a/tex/context/base/core-mar.tex b/tex/context/base/core-mar.tex
new file mode 100644
index 000000000..836dd64b6
--- /dev/null
+++ b/tex/context/base/core-mar.tex
@@ -0,0 +1,126 @@
+%D \module
+%D [ file=core-mar,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Markings,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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 Core Macros / Markings}
+
+\unprotect
+
+% voor 'interne' doeleinden zijn beschikbaar:
+%
+% \fetchmark[naam][plaats]
+
+% nog expansie in hoofdmarkering
+
+% ook nog reset koppelen aan sectie
+
+\def\hoofdmarkering#1%
+ {\getvalue{\??mk#1\c!koppeling}}
+
+\def\dodoresetmarkering#1%
+ {\doifdefined{\??mk\hoofdmarkering{#1}}
+ {\expandafter\resetmark\csname\??mk\hoofdmarkering{#1}\endcsname}}
+
+\def\doresetmarkering[#1]%
+ {\processcommalist[#1]\dodoresetmarkering}
+
+\def\resetmarkering%
+ {\dosingleargument\doresetmarkering}
+
+\def\dostelmarkeringin[#1][#2]%
+ {\getparameters[\??mk#1][#2]}
+
+\def\stelmarkeringin%
+ {\dodoubleargument\dostelmarkeringin}
+
+\letvalue{\??mk \v!vorige}\gettopmark
+\letvalue{\??mk \v!eerste}\getfirstmark
+\letvalue{\??mk\v!laatste}\getbotmark
+
+\def\dododefinieermarkering[#1][#2]%
+ {\stelmarkeringin[#1]
+ [% \c!expansie=\v!nee, % saves a macro
+ \c!scheider={ --- }, % watch the spaces
+ \c!status=\v!start]%
+ \ontkoppelmarkering[#1]% % no coupling with sections
+ \setevalue{\??mk#1\c!koppeling}{#2}%
+ \expandafter\newmark\csname\??mk#2\endcsname
+ \showmessage{\m!systems}{13}{#1,[#2]}}
+
+\def\dodefinieermarkering[#1][#2]%
+ {\doifelsenothing{#2}
+ {\dododefinieermarkering[#1][#1]}
+ {\dododefinieermarkering[#1][#2]}}
+
+\def\definieermarkering%
+ {\dodoubleempty\dodefinieermarkering}
+
+\let\geenmarkering=\relax
+
+%\def\fetchmark[#1][#2]% geen \def, anders problemen in \doif...
+% {\def\dofetchmark{\getvalue{\??mk#2}}%
+% \expandafter\dofetchmark\csname\??mk\hoofdmarkering{#1}\endcsname}
+
+\def\dofetchmark#1#2% needed because we need to expand
+ {\getvalue{\??mk#2}#1}
+
+\def\fetchmark[#1][#2]% never \unexpanded
+ %{\getvalue{\getvalue{\??mk#2}\??mk\hoofdmarkering{#1}}}
+ {\expandafter\dofetchmark\csname\??mk\hoofdmarkering{#1}\endcsname{#2}}
+
+\def\fetchtwomarks[#1]%
+ {\doifsomething{\fetchmark[#1][\v!eerste]}
+ {\fetchmark[#1][\v!eerste]%
+ \doifsomething{\fetchmark[#1][\v!laatste]}
+ {\doifnot{\fetchmark[#1][\v!eerste]}{\fetchmark[#1][\v!laatste]}
+ {\getvalue{\??mk#1\c!scheider}\fetchmark[#1][\v!laatste]}}}}
+
+\def\fetchallmarks[#1]%
+ {\doifsomething{\fetchmark[#1][\v!eerste]}
+ {\doifsomething{\fetchmark[#1][\v!vorige]}
+ {\doifnot{\fetchmark[#1][\v!vorige]}{\fetchmark[#1][\v!eerste]}
+ {\fetchmark[#1][\v!vorige]\getvalue{\??mk#1\c!scheider}}}}%
+ \fetchtwomarks[#1]}
+
+\def\dohaalmarkering[#1][#2]%
+ {\doifvalue{\??mk#1\c!status}{\v!start}
+ {\bgroup
+ \def\geenmarkering##1{\unknown\ }%
+ \setfullsectionnumber{\??mk#1}%
+ \processaction
+ [#2]
+ [ \v!beide=>{\fetchtwomarks[#1]},
+ \v!alles=>{\fetchallmarks[#1]},
+ \s!default=>{\fetchmark[#1][\v!eerste]},
+ \s!unknown=>{\fetchmark[#1][#2]}]%
+ \egroup}}
+
+\def\nohaalmarkering[#1][#2]%
+ {}
+
+\unexpanded\def\haalmarkering%
+ {\dodoubleargument\dohaalmarkering}
+
+\def\domarking[#1]#2%
+ {\bgroup
+ \doifelsevalue{\??mk#1\c!expansie}{\v!ja}
+ {\expandmarkstrue}
+ {\expandmarksfalse}%
+% \honorunexpanded
+% \getvalue{\??mk\hoofdmarkering{#1}}{#2}%
+ \expandafter\setmark\csname\??mk\hoofdmarkering{#1}\endcsname{#2}%
+ \egroup}
+
+\def\marking%
+ {\dosingleargument\domarking}
+
+\protect \endinput