% password-protected names for the used primitives, internal regeisters and quantities \let\TRIOhHJqsSbegingroup\begingroup \let\TRIOhHJqsSendgroup\endgroup \let\TRIOhHJqsSexpandafter\expandafter \let\TRIOhHJqsSnoexpand\noexpand \let\TRIOhHJqsSdef\def \let\TRIOhHJqsSedef\edef \let\TRIOhHJqsSgdef\gdef \let\TRIOhHJqsSxdef\xdef \let\TRIOhHJqsSlet\let \let\TRIOhHJqsSfuturelet\futurelet \let\TRIOhHJqsSglobal\global \let\TRIOhHJqsSglobaldefs\globaldefs \let\TRIOhHJqsSifcase\ifcase \let\TRIOhHJqsSifcat\ifcat \let\TRIOhHJqsSifnum\ifnum \let\TRIOhHJqsSifx\ifx \let\TRIOhHJqsSor\or \let\TRIOhHJqsSelse\else \let\TRIOhHJqsSfi\fi \let\TRIOhHJqsSafterassignment\TRIOafterassignment % must use the \TRIO... name here \let\TRIOhHJqsSimmediate\TRIOimmediate \let\TRIOhHJqsSinput\TRIOinput \let\TRIOhHJqsSread\read \let\TRIOhHJqsSwrite\write \let\TRIOhHJqsSthe\the \let\TRIOhHJqsSnumber\number \let\TRIOhHJqsSadvance\advance \let\TRIOhHJqsScatcode\catcode \let\TRIOhHJqsSfont\font \let\TRIOhHJqsSinputlineno\inputlineno \let\TRIOhHJqsSrelax\relax \let\TRIOhHJqsSundefined\undefined \let\TrIOhHJqsSspace\space % % password-protected macro names for allmost all defined macros \let\TrIOhHJqsSwlog\TrIOwlog \let\TrIOhHJqsSmessage\TrIOmessage \let\TrIOhHJqsSglobaldefs\TrIOglobaldefs \let\TrIOhHJqsSafter\TrIOafterassignment \let\TrIOhHJqsSsuspend\TrIOsuspendafterassignment \let\TrIOhHJqsSresume\TrIOresumeafterassignment \let\TrIOhHJqsSinit\TrIOinitafterassignment \let\TrIOhHJqsScheck\TrIOchecktoken \let\TrIOhHJqsSstore\TrIOstoresavedtoken \let\TrIOhHJqsSremove\TrIOremovesavedtoken \let\TrIOhHJqsSAFTER\TrIOAFTERASSIGNMENT \let\TrIOhHJqsSoutput\TrIOoutputtoken \let\TrIOhHJqsScountiocmd\TrIOcountiocmd \let\TrIOhHJqsShandleglobaldefs\TrIOhandleglobaldefs \let\TrIOhHJqsSsetcatcodes\TrIOsetcatcodes % nothing to do for \TRIOhHJqsSspecial \let\TrIOhHJqsSempty\TrIOempty \let\TrIOhHJqsSfixedef\TrIOfixedef \let\TrIOhHJqsSnosubdir\TrIOnosubdir \let\TrIOhHJqsSinputmessage\TrIOinputmessage % nothing to do for \TrIOcCkPxXmove % nothing to do for \TrIOcCkPxXinputmessage % nothing to do for \TrIOcCkPxXinput \let\TrIOhHJqsSopenin\TrIOopenin \let\TrIOhHJqsSOpenIn\TrIOOpenIn \let\TrIOhHJqsSOPENIN\TrIOOPENIN % nothing to do for \TrIOaAmNzZopenin \let\TrIOhHJqsSImmediate\TrIOImmediate \let\TrIOhHJqsSIMMEDIATE\TrIOIMMEDIATE \let\TrIOhHJqsSopenout\TrIOopenout \let\TrIOhHJqsSOpenOut\TrIOOpenOut \let\TrIOhHJqsSOPENOUT\TrIOOPENOUT % nothing to do for \TrIObBlOyYopenout \let\TrIOhHJqsSenvinput\TrIOenvinput \let\TrIOhHJqsSenvopen\TrIOenvopen % nothing to do for \TrIOfFLouUexecute % nothing to do for \TrIOfFLouUdoiocmd \let\TRIOhHJqsSerrmessage\errmessage \let\TRIOhHJqsSiftrue\iftrue \let\TRIOhHJqsSiffalse\iffalse % nothing to do for \TrIOhHJqsSstop % nothing to do for \TrIOdDjQwWcheck \let\TRIOgGKptTpausing\pausing % nothing to do for \TrIOeEMnvVfilenames % % password-protected names for token registers \edef\TrIOhHJqsStrafter{\the\TrIOtrafterassignment} \edef\TrIOhHJqsStropenin{\the\TrIOtropenin} \edef\TrIOhHJqsStrimmediate{\the\TrIOtrimmediate} \edef\TrIOhHJqsStropenout{\the\TrIOtropenout} % % test macro % the next three macros need password-protected names \def\TrIOhHJqsSstop#1{\TRIOhHJqsSerrmessage{TrIO ALERT !!! Don't trust the source (#1)}} \let\TrIOstop\TrIOhHJqsSstop \def\TrIOdDjQwWcheck{% check that important macros aren't redefined % general: \ifx, \else, \fi, and \TrIOstop \TRIOhHJqsSifx\TRIOhHJqsSifx\TRIOifx \TRIOhHJqsSelse\TrIOhHJqsSstop{TRIOifx}\TRIOhHJqsSfi \TRIOifx\TRIOhHJqsSelse\TRIOelse \TRIOhHJqsSelse\TrIOhHJqsSstop{TRIOelse}\TRIOhHJqsSfi \TRIOifx\TRIOhHJqsSfi\TRIOfi \TRIOelse\TrIOhHJqsSstop{TRIOfi}\TRIOhHJqsSfi \TRIOifx\TrIOhHJqsSstop\TrIOstop \TRIOelse\TrIOhHJqsSstop{TrIOstop}\TRIOfi % \TRIOifx\TRIOhHJqsSbegingroup\TRIObegingroup \TRIOelse\TrIOstop{TRIObegingroup}\TRIOfi \TRIOifx\TRIOhHJqsSendgroup\TRIOendgroup \TRIOelse\TrIOstop{TRIOendgroup}\TRIOfi \TRIOifx\TRIOhHJqsSexpandafter\TRIOexpandafter \TRIOelse\TrIOstop{TRIOexpandafter}\TRIOfi \TRIOifx\TRIOhHJqsSnoexpand\TRIOnoexpand \TRIOelse\TrIOstop{TRIOnoexpand}\TRIOfi \TRIOifx\TRIOhHJqsSdef\TRIOdef \TRIOelse\TrIOstop{TRIOdef}\TRIOfi \TRIOifx\TRIOhHJqsSedef\TRIOedef \TRIOelse\TrIOstop{TRIOedef}\TRIOfi \TRIOifx\TRIOhHJqsSgdef\TRIOgdef \TRIOelse\TrIOstop{TRIOgdef}\TRIOfi \TRIOifx\TRIOhHJqsSxdef\TRIOxdef \TRIOelse\TrIOstop{TRIOxdef}\TRIOfi \TRIOifx\TRIOhHJqsSlet\TRIOlet \TRIOelse\TrIOstop{TRIOlet}\TRIOfi \TRIOifx\TRIOhHJqsSfuturelet\TRIOfuturelet \TRIOelse\TrIOstop{TRIOfuturelet}\TRIOfi \TRIOifx\TRIOhHJqsSglobal\TRIOglobal \TRIOelse\TrIOstop{TRIOglobal}\TRIOfi \TRIOifx\TRIOhHJqsSglobaldefs\TRIOglobaldefs \TRIOelse\TrIOstop{TRIOglobaldefs}\TRIOfi \TRIOifx\TRIOhHJqsSifcase\TRIOifcase \TRIOelse\TrIOstop{TRIOifcase}\TRIOfi \TRIOifx\TRIOhHJqsSifcat\TRIOifcat \TRIOelse\TrIOstop{TRIOifcat}\TRIOfi \TRIOifx\TRIOhHJqsSifnum\TRIOifnum \TRIOelse\TrIOstop{TRIOifnum}\TRIOfi \TRIOifx\TRIOhHJqsSor\TRIOor \TRIOelse\TrIOstop{TRIOor}\TRIOfi \TRIOifx\TRIOhHJqsSafterassignment\TRIOafterassignment \TRIOelse\TrIOstop{TRIOafterassignment}\TRIOfi \TRIOifx\TRIOhHJqsSimmediate\TRIOimmediate \TRIOelse\TrIOstop{TRIOimmediate}\TRIOfi \TRIOifx\TRIOhHJqsSinput\TRIOinput \TRIOelse\TrIOstop{TRIOinput}\TRIOfi \TRIOifx\TRIOhHJqsSread\TRIOread \TRIOelse\TrIOstop{TRIOread}\TRIOfi \TRIOifx\TRIOhHJqsSwrite\TRIOwrite \TRIOelse\TrIOstop{TRIOwrite}\TRIOfi \TRIOifx\TRIOhHJqsSthe\TRIOthe \TRIOelse\TrIOstop{TRIOthe}\TRIOfi \TRIOifx\TRIOhHJqsSnumber\TRIOnumber \TRIOelse\TrIOstop{TRIOnumber}\TRIOfi \TRIOifx\TRIOhHJqsSadvance\TRIOadvance \TRIOelse\TrIOstop{TRIOadvance}\TRIOfi \TRIOifx\TRIOhHJqsScatcode\TRIOcatcode \TRIOelse\TrIOstop{TRIOcatcode}\TRIOfi \TRIOifx\TRIOhHJqsSfont\TRIOfont \TRIOelse\TrIOstop{TRIOfont}\TRIOfi \TRIOifx\TRIOhHJqsSinputlineno\TRIOinputlineno \TRIOelse\TrIOstop{TRIOinputlineno}\TRIOfi \TRIOifx\TRIOhHJqsSrelax\TRIOrelax \TRIOelse\TrIOstop{TRIOrelax}\TRIOfi \TRIOifx\TRIOhHJqsSundefined\TRIOundefined \TRIOelse\TrIOstop{TRIOundefined}\TRIOfi \TRIOifx\TrIOhHJqsSspace\TrIOspace \TRIOelse\TrIOstop{TrIOspace}\TRIOfi \TRIOifx\TrIOhHJqsSwlog\TrIOwlog \TRIOelse\TrIOstop{TrIOwlog}\TRIOfi \TRIOifx\TrIOhHJqsSmessage\TrIOmessage \TRIOelse\TrIOstop{TrIOmessage}\TRIOfi \TRIOifx\TrIOhHJqsSglobaldefs\TrIOglobaldefs \TRIOelse\TrIOstop{TrIOglobaldefs}\TRIOfi \TRIOifx\TrIOhHJqsSafter\TrIOafterassignment \TRIOelse\TrIOstop{TrIOafterassignment}\TRIOfi \TRIOifx\TrIOhHJqsSsuspend\TrIOsuspendafterassignment \TRIOelse\TrIOstop{TrIOsuspendafterassignment}\TRIOfi \TRIOifx\TrIOhHJqsSresume\TrIOresumeafterassignment \TRIOelse\TrIOstop{TrIOresumeafterassignment}\TRIOfi \TRIOifx\TrIOhHJqsSinit\TrIOinitafterassignment \TRIOelse\TrIOstop{TrIOinitafterassignment}\TRIOfi \TRIOifx\TrIOhHJqsScheck\TrIOchecktoken \TRIOelse\TrIOstop{TrIOchecktoken}\TRIOfi \TRIOifx\TrIOhHJqsSstore\TrIOstoresavedtoken \TRIOelse\TrIOstop{TrIOstoresavedtoken}\TRIOfi \TRIOifx\TrIOhHJqsSremove\TrIOremovesavedtoken \TRIOelse\TrIOstop{TrIOremovesavedtoken}\TRIOfi \TRIOifx\TrIOhHJqsSAFTER\TrIOAFTERASSIGNMENT \TRIOelse\TrIOstop{TrIOAFTERASSIGNMENT}\TRIOfi \TRIOifx\TrIOhHJqsSoutput\TrIOoutputtoken \TRIOelse\TrIOstop{TrIOoutputtoken}\TRIOfi \TRIOifx\TrIOhHJqsScountiocmd\TrIOcountiocmd \TRIOelse\TrIOstop{TrIOcountiocmd}\TRIOfi \TRIOifx\TrIOhHJqsShandleglobaldefs\TrIOhandleglobaldefs \TRIOelse\TrIOstop{TrIOhandleglobaldefs}\TRIOfi \TRIOifx\TrIOhHJqsSsetcatcodes\TrIOsetcatcodes \TRIOelse\TrIOstop{TrIOsetcatcodes}\TRIOfi \TRIOifx\TrIOhHJqsSempty\TrIOempty \TRIOelse\TrIOstop{TrIOempty}\TRIOfi \TRIOifx\TrIOhHJqsSfixedef\TrIOfixedef \TRIOelse\TrIOstop{TrIOfixedef}\TRIOfi \TRIOifx\TrIOhHJqsSnosubdir\TrIOnosubdir \TRIOelse\TrIOstop{TrIOnosubdir}\TRIOfi \TRIOifx\TrIOhHJqsSinputmessage\TrIOinputmessage \TRIOelse\TrIOstop{TrIOinputmessage}\TRIOfi \TRIOifx\TrIOhHJqsSopenin\TrIOopenin \TRIOelse\TrIOstop{TrIOopenin}\TRIOfi \TRIOifx\TrIOhHJqsSOpenIn\TrIOOpenIn \TRIOelse\TrIOstop{TrIOOpenIn}\TRIOfi \TRIOifx\TrIOhHJqsSOPENIN\TrIOOPENIN \TRIOelse\TrIOstop{TrIOOPENIN}\TRIOfi \TRIOifx\TrIOhHJqsSImmediate\TrIOImmediate \TRIOelse\TrIOstop{TrIOImmediate}\TRIOfi \TRIOifx\TrIOhHJqsSIMMEDIATE\TrIOIMMEDIATE \TRIOelse\TrIOstop{TrIOIMMEDIATE}\TRIOfi \TRIOifx\TrIOhHJqsSopenout\TrIOopenout \TRIOelse\TrIOstop{TrIOopenout}\TRIOfi \TRIOifx\TrIOhHJqsSOpenOut\TrIOOpenOut \TRIOelse\TrIOstop{TrIOOpenOut}\TRIOfi \TRIOifx\TrIOhHJqsSOPENOUT\TrIOOPENOUT \TRIOelse\TrIOstop{TrIOOPENOUT}\TRIOfi \TRIOifx\TrIOhHJqsSenvinput\TrIOenvinput \TRIOelse\TrIOstop{TrIOenvinput}\TRIOfi \TRIOifx\TrIOhHJqsSenvopen\TrIOenvopen \TRIOelse\TrIOstop{TrIOenvopen}\TRIOfi % registers and flags \TRIObegingroup \TrIOsuspendafterassignment \TRIOedef\TRIOnext{\the\TrIOtrafterassignment}% \TRIOifx\TRIOnext\TrIOhHJqsStrafter \TRIOelse\TrIOstop{TRIOtrafterassignment}\TRIOfi \TRIOedef\TRIOnext{\the\TrIOtropenin}% \TRIOifx\TRIOnext\TrIOhHJqsStropenin \TRIOelse\TrIOstop{TRIOtropenin}\TRIOfi \TRIOedef\TRIOnext{\the\TrIOtrimmediate}% \TRIOifx\TRIOnext\TrIOhHJqsStrimmediate \TRIOelse\TrIOstop{TRIOtrimmediate}\TRIOfi \TRIOedef\TRIOnext{\the\TrIOtropenout}% \TRIOifx\TRIOnext\TrIOhHJqsStropenout \TRIOelse\TrIOstop{TRIOtropenout}\TRIOfi \TRIOcatcode`\1=12 \TRIOcatcode`\f=11 \TRIOifcat \TRIOifx\ifTrIOimoo\TRIOhHJqsSiftrue 1\TRIOelse f\TRIOfi \TRIOifx\ifTrIOimoo\TRIOhHJqsSiffalse f\TRIOelse 1\TRIOfi \TRIOelse\TrIOstop{ifTrIOimoo}\TRIOfi \TRIOendgroup % \special \TRIOifx\TRIOhHJqsSspecial\TRIOhHJqsSundefined \TRIOelse\TRIOifx\TRIOhHJqsSspecial\special \TRIOelse\TrIOstop{special}\TRIOfi\TRIOfi}