diff options
Diffstat (limited to 'tex/context/base/core-two.mkiv')
-rw-r--r-- | tex/context/base/core-two.mkiv | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tex/context/base/core-two.mkiv b/tex/context/base/core-two.mkiv new file mode 100644 index 000000000..bbe00be92 --- /dev/null +++ b/tex/context/base/core-two.mkiv @@ -0,0 +1,74 @@ +%D \module +%D [ file=core-two, % moved from core-uti +%D version=2006.09.24, +%D title=\CONTEXT\ Core Macros, +%D subtitle=Two Pass Data, +%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 + +\registerctxluafile{core-two}{1.001} + +\appendtoks + \immediatewriteutilitytua{if not job.twopass then job.twopass = { } end}% + \immediatewriteutilitytua{local tp = job.twopass}% +\to \everyopenutilities + +\def\immediatesavetwopassdata #1#2#3{\expanded{\immediatewriteutilitytua{table.insert(tp['#1'],"#3")}}} +\def\savetwopassdata #1#2#3{\expanded{\writeutilitytua {table.insert(tp['#1'],"#3")}}} +\def\immediatesavetaggedtwopassdata#1#2#3#4{\expanded{\immediatewriteutilitytua{tp['#1']['#3']="#4"}}} +\def\savetaggedtwopassdata #1#2#3#4{\expanded{\writeutilitytua {tp['#1']['#3']="#4"}}} + +% temp hack: needs a proper \starteverytimeluacode + +\def\dodefinetwopasslist#1% + {\ctxlua{job.definetwopassdata('#1')}% + \immediatewriteutilitytua{job.definetwopassdata('#1')}} + +\def\definetwopasslist#1% + {\dodefinetwopasslist{#1}% + \doglobal\addtocommalist{#1}\alltwopasslists} + +\appendtoks + \processcommacommand[\alltwopasslists]\dodefinetwopasslist + \globallet\alltwopasslists\empty +\to \everyopenutilities + +\def\testtwopassdata + {\ifx\twopassdata\empty\twopassdatafoundfalse\else\twopassdatafoundtrue\fi} + +\def\gettwopassdata#1% + {\edef\twopassdata{\ctxlua{job.gettwopassdata("#1")}}\testtwopassdata} + +\def\checktwopassdata#1% + {\edef\twopassdata{\ctxlua{job.checktwopassdata("#1")}}\testtwopassdata} + +\def\findtwopassdata#1#2% + {\edef\twopassdata{\ctxlua{job.findtwopassdata("#1","#2")}}\testtwopassdata} + +\let\getfirsttwopassdata\checktwopassdata + +\def\getlasttwopassdata#1% + {\edef\noftwopassitems{\ctxlua{job.noftwopassitems("#1")}}% + \edef\twopassdata {\ctxlua{job.getlasttwopassdata("#1")}}% + \testtwopassdata} + +\def\getfromtwopassdata#1#2% + {\edef\twopassdata{\ctxlua{job.getfromtwopassdata("#1",#2)}}\testtwopassdata} + +\def\gettwopassdatalist + {\getnamedtwopassdatalist\twopassdatalist} + +\def\getnamedtwopassdatalist#1#2% \cs tag + {\edef#1{\ctxlua{job.twopassdatalist("#2")}}} + +\def\doifelseintwopassdata#1#2% tag dat + {\ctxlua{job.doifelseintwopassdata("#1","#2"))}} + +\protect \endinput |