diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-obj.mkii')
-rw-r--r-- | Master/texmf-dist/tex/context/base/core-obj.mkii | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/core-obj.mkii b/Master/texmf-dist/tex/context/base/core-obj.mkii new file mode 100644 index 00000000000..efc16655591 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/core-obj.mkii @@ -0,0 +1,74 @@ +%D \module +%D [ file=core-obj, +%D version=1998.01.15, +%D title=\CONTEXT\ Core Macros, +%D subtitle=Object Handling, +%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. + +\unprotect + +\def\checkobjectreferences + {\startnointerference + \protectlabels + \doutilities{objectreferences}\jobname\empty\relax\relax + \global\let\checkobjectreferences\relax + \stopnointerference} + +\def\setobjectreferences + {\def\objectreference##1##2##3##4% + {\ifundefined{\r!driver##1::##2}% + \setxvalue{\r!driver##1::##2}{{##3}{##4}}% + \else + \showmessage\m!references{31}{[##1 ##2=>##3/##4]}% + \fi}} + +\def\resetobjectreferences + {\let\objectreference\gobblefourarguments} + +\resetobjectreferences + +\def\mkregisterobjectreference#1#2#3% + {\checkobjectreferences + \blabelgroup + \expanded{\writeutilitycommand{\noexpand\objectreference{#1}{#2}{#3}{\noexpand\realfolio}}}% + \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}% + \elabelgroup} + +\def\mkoverloadobjectreference#1#2#3% + {\checkobjectreferences + \blabelgroup + \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}% + \elabelgroup} + +\def\dodogetobjectreference#1#2#3#4#5% + {\checkobjectreferences + \blabelgroup + \ifundefined{\r!driver#3::#4}% + \showmessage\m!references{30}{[#3 #4=>#3/#4]}% + \xdef#5{#2{#3}{#4}}% + \else + \xdef#5{\@EAEAEA#1\csname\r!driver#3::#4\endcsname}% + \fi + \elabelgroup} + +\def\mkgetobjectreference + {\dodogetobjectreference\firstoftwoarguments\defaultobjectreference} + +\def\mkgetobjectreferencepage + {\dodogetobjectreference\secondoftwoarguments\defaultobjectpage} + +\def\mkifobjectreferencefoundelse#1#2% + {\checkobjectreferences + \blabelgroup \ifcsname\r!driver#1::#2\endcsname + \elabelgroup \expandafter\firstoftwoarguments + \else + \elabelgroup \expandafter\secondoftwoarguments + \fi} + +\protect \endinput |