diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-var.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/core-var.tex | 87 |
1 files changed, 67 insertions, 20 deletions
diff --git a/Master/texmf-dist/tex/context/base/core-var.tex b/Master/texmf-dist/tex/context/base/core-var.tex index 2317d7bf75a..61a8c87e799 100644 --- a/Master/texmf-dist/tex/context/base/core-var.tex +++ b/Master/texmf-dist/tex/context/base/core-var.tex @@ -232,7 +232,7 @@ {\docheckforallmodes\donothing\dostopallmodes{#1}} \long\def\dostartnotallmodes[#1]% - {\docheckforallmodes\dostopallmodes\donothing{#1}} + {\docheckforallmodes\dostopnotallmodes\donothing{#1}} \let\stopallmodes \donothing \let\stopnotallmodes\donothing @@ -264,24 +264,38 @@ %newevery \everybeforeutilitywrite \relax -\newevery \everycleanupfeatures \relax -\newevery \everyinsidefloat \relax -\newevery \everyheadstart \relax -\newevery \everyendoftextbody \relax -\newevery \everybeginofpar \relax -\newevery \everyendofpar \relax -\newevery \everylistentry \relax -\newevery \everymarking \relax -\newevery \everysavesortkeys \relax - -\newevery \everyfont \relax -\newevery \everybodyfont \EveryBodyFont -\newevery \everyfontswitch \EveryFontSwitch -\newevery \everydefinedfont \relax +\newevery \everycleanupfeatures \relax +\newevery \everyinsidefloat \relax +\newevery \everyheadstart \relax +\newevery \everyendoftextbody \relax +\newevery \everybeginofpar \relax +\newevery \everyendofpar \relax +\newevery \everylistentry \relax +\newevery \everymarking \relax +\newevery \everysavesortkeys \relax + +\newevery \everyfont \relax +\newevery \everybodyfont \EveryBodyFont +\newevery \everyglobalbodyfont \relax +\newevery \everyfontswitch \EveryFontSwitch +\newevery \everydefinedfont \relax + +\newevery \everybeforeoutput \relax +\newevery \everyafteroutput \relax + +\newevery \everybeforedisplayformula \relax \def\cleanupfeatures{\the\everycleanupfeatures} \def\forgetall {\the\everyforgetall} +%D State mess: + +\newtoks \everypushsomestate +\newtoks \everypopsomestate + +\def\pushsomestates{\the\everypushsomestate} +\def\popsomestates {\the\everypopsomestate } + %D For shared \type {\everymath} and \type {\everydisplay}: \newevery \everymathematics \relax @@ -366,6 +380,8 @@ %D This boolean can be used to bypass certain %D initializations. +\ifx\protectionlevel\undefined \newcount\protectionlevel \fi + \newif\ifproductionrun \appendtoks \productionruntrue \to \everydump \appendtoks \ifcase\protectionlevel\else\reportunprotection\fi \to \everydump @@ -443,12 +459,43 @@ \def\globalsetvariables % obsolete {\dotripleargument\dosetvariables[\globalgetrawparameters]} -\long\def\dosetvariables[#1][#2][#3]% +% \long\def\dosetvariables[#1][#2][#3]% +% {\errorisfataltrue +% \def\currentvariableclass{#2}% +% \getvariable{#2}\s!reset +% #1[\??vars:#2:][#3]% +% \getvariable{#2}\s!set +% \errorisfatalfalse} +% +% permit nested definitions while preventing nested set/reset +% +% wrong: +% +% \long\def\dosetvariables[#1][#2][#3]% +% {\errorisfataltrue +% \getrawparameters[\??vars:*:][\s!reset=*,\s!set=*,#3]% +% \doifelse{\getvalue{\??vars:*:\s!reset}\getvalue{\??vars:*:\s!set}}{**} +% {\doifelse{#2}\currentvariableclass +% {#1[\??vars:#2:][#3]} +% {\pushmacro\currentvariableclass +% \def\currentvariableclass{#2}% +% \getvariable{#2}\s!reset +% #1[\??vars:#2:][#3]% +% \getvariable{#2}\s!set +% \popmacro\currentvariableclass}}% +% {#1[\??vars:#2:][#3]}% +% \errorisfatalfalse} + +\long\def\dosetvariables[#1][#2][#3]% tricky, test on s-pre-60 {\errorisfataltrue - \def\currentvariableclass{#2}% - \getvariable{#2}\s!reset - #1[\??vars:#2:][#3]% - \getvariable{#2}\s!set + \doifelse{#2}\currentvariableclass + {#1[\??vars:#2:][#3]}% + {\pushmacro\currentvariableclass + \def\currentvariableclass{#2}% + \getvariable{#2}\s!reset + #1[\??vars:#2:][#3]% + \getvariable{#2}\s!set + \popmacro\currentvariableclass}% \errorisfatalfalse} \long\def\setvariable #1#2#3{\long\setvalue {\??vars:#1:#2}{#3}} |