summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/core-obj.mkii
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-obj.mkii')
-rw-r--r--Master/texmf-dist/tex/context/base/core-obj.mkii74
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