diff options
Diffstat (limited to 'tex/context/base/core-var.tex')
-rw-r--r-- | tex/context/base/core-var.tex | 135 |
1 files changed, 99 insertions, 36 deletions
diff --git a/tex/context/base/core-var.tex b/tex/context/base/core-var.tex index 54c9c52df..eba38fdc5 100644 --- a/tex/context/base/core-var.tex +++ b/tex/context/base/core-var.tex @@ -160,26 +160,13 @@ \def\dodocheckformode#1% {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi} -% \def\docheckformode#1#2#3% will be sped up with a quit -% {\protect\checkedmodefalse\rawprocesscommalist[#3]\dodocheckformode -% \ifcheckedmode\@EA#1\else\@EA#2\fi} -% -% better: - \def\docheckformode#1#2#3% will be sped up with a quit {\cleanuplabel{#3}% \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode \ifcheckedmode\@EA#1\else\@EA#2\fi} \def\dodocheckforallmodes#1% - {\ifcase0\csname\@mode@#1\endcsname\relax - \checkedmodefalse\or\or\checkedmodefalse\fi} - -% \def\docheckforallmodes#1#2#3% will be sped up with a quit -% {\protect\checkedmodetrue\rawprocesscommalist[#3]\dodocheckforallmodes -% \ifcheckedmode\@EA#1\else\@EA#2\fi} -% -% better: + {\ifcase0\csname\@mode@#1\endcsname\relax\checkedmodefalse\or\or\checkedmodefalse\fi} \def\docheckforallmodes#1#2#3% will be sped up with a quit {\cleanuplabel{#3}% @@ -221,13 +208,13 @@ \def\startallmodes {\unprotect\dostartallmodes} \def\startnotallmodes{\unprotect\dostartnotallmodes} -\def\doifallmodeselse +\def\dodoifallmodeselse {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments} -\def\doifallmodes +\def\dodoifallmodes {\docheckforallmodes\firstofoneargument\gobbleoneargument} -\def\doifnotallmodes +\def\dodoifnotallmodes {\docheckforallmodes\gobbleoneargument\firstofoneargument} \long\def\dostartallmodes[#1]% @@ -258,13 +245,15 @@ \newevery \everystoptext \relax \newevery \everyforgetall \relax \newevery \everybeforepagebody \relax -\newevery \everyafterpagebody \relax \let \everypagebody \everybeforepagebody % backward compatible +\newevery \everyafterpagebody \relax \newevery \everybeforeutilityread \relax \newevery \everyafterutilityread \relax +\let \everypagebody \everybeforepagebody % backward compatible + %newevery \everybeforeutilitywrite \relax -\newevery \everycleanupfeatures \relax \def\cleanupfeatures{\the\everycleanupfeatures} +\newevery \everycleanupfeatures \relax \newevery \everyinsidefloat \relax \newevery \everyheadstart \relax \newevery \everyendoftextbody \relax @@ -274,6 +263,14 @@ \newevery \everymarking \relax \newevery \everysavesortkeys \relax +\newevery \everyfont \relax +\newevery \everybodyfont \EveryBodyFont +\newevery \everyfontswitch \EveryFontSwitch +\newevery \everydefinedfont \relax + +\def\cleanupfeatures{\the\everycleanupfeatures} +\def\forgetall {\the\everyforgetall} + %D For shared \type {\everymath} and \type {\everydisplay}: \newevery \everymathematics \relax @@ -304,6 +301,12 @@ \def\starttextproperties{\the\everystarttextproperties} \def\stoptextproperties {\the\everystoptextproperties} +%D This is pretty important (esp since we now ignore shipouts). +%D Actually we should nil all writes, marks, specials. + +\appendtoks \globallet\popproperties \relax \to \everylastshipout +\appendtoks \globallet\popsplitproperties\relax \to \everylastshipout + %D \macros %D {defineinputmode,setinputmode} %D @@ -324,25 +327,20 @@ %D We disable trial typesetting in the output routine, %D just to be sure. +% defined in syst-ext + \prependtoks \trialtypesettingfalse \to \everybeforepagebody %D \macros -%D {starttextdata} -%D -%D This is a user macro (appending to every last shipout is not -%D really user friendly. - -\newtoks \collectedtextdata - -\long\def\starttextdata#1\stoptextdata - {\doglobal\appendtoks#1\to\collectedtextdata} - -\def\flushtextdata - {\vsmashed{\the\collectedtextdata}% all dimensions zero - \global\collectedtextdata\emptytoks - \globallet\flushtextdata\donothing} +%D {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided} -\prependtoks \flushtextdata \to \everylastshipout +\newif \ifinpagebody +\newif \ifinsidecolumns +\newif \ifdoublesided \doublesidedfalse +\newif \ifsinglesided \singlesidedtrue +\newif \ifinsidefloat +\newif \ifdoingblocks +\newif \ifgridsnapping %D \macros %D {ifprocessingXML} @@ -382,8 +380,6 @@ %D The command \type {\fastmode} disables some time consuming %D typesetting. -\let\normalwritestatus\writestatus - \newevery \everyfastmode \relax \newif\iffastmode @@ -561,4 +557,71 @@ \let\startlayoutcomponent\gobbletwoarguments \let\stoplayoutcomponent \relax +%D Label cleanup: + +\bgroup % some day this will go away / we could use detokenize as well + +% actually we should handle all discretionaries here + +\catcode`:=\@@active + +\gdef\cleanuplabel#1% + {\begingroup + \let:\lettercolon + \xdef\cleanlabel{#1}% + \endgroup} + +\gdef\cleanupprefixedlabel#1#2% + {\begingroup + \let:\lettercolon + \xdef\cleanprefix{#1}% + \xdef\cleanlabel {#2}% + \endgroup} + +\gdef\protectlabels + {\let:\lettercolon} + +\global\def\blabelgroup {\begingroup \let:\lettercolon} +\global\let\elabelgroup \endgroup + +\gdef\labelcsname + {\begingroup\let:\lettercolon + \expandafter\endgroup\csname} + +\gdef\labelvalue#1% + {\labelcsname#1\endcsname} + +\egroup + +%D TO BE TESTED FIRST (needs changes in usage too) + +% \def\cleanuplabel#1% +% {\edef\cleanlabel{\detokenize{#1}}} +% +% \def\cleanupprefixedlabel#1#2% +% {\edef\cleanprefix{\detokenize{#1}}% +% \edef\cleanlabel {\detokenize{#2}}} +% +% \def\labelvalue#1% +% {\csname\detokenize{#1}\endcsname} +% +% \let\protectlabels\donothing +% +% \def\blabelgroup {\begingroup} % why no \let ? +% \let\elabelgroup \endgroup + + + + +%D Concepts: + +\chardef\conceptmode\zerocount + +\def\doifconcepttracing + {\ifnum\conceptmode>\plustwo + \expandafter\firstofoneargument + \else + \expandafter\gobbleoneargument + \fi} + \protect \endinput |