%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