home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / tex / inputs.sit / TeX-inputs / ifthen.sty < prev    next >
Encoding:
Text File  |  1988-10-11  |  1.5 KB  |  31 lines  |  [TEXT/????]

  1. % ifthen.sty 17-Dec-85
  2.  
  3. \long\def\ifthenelse#1#2#3{\setbox\@tempboxa
  4.  \vbox{\let\or\@or \let\and\@and \let\not\@neg \let\(\@lparen \let\)\@rparen
  5.  {\let\if\relax\let\ifx\relax\let\ifnum\relax\let\fi\relax
  6.  \let\else\relax \xdef\@gtempa{#1}}\expandafter
  7.  \@eval \ifnum \@gtempa\relax \def\@term{T}\else \def\@term{F}\fi
  8.  \@endeval\global\let\@gtempa\@val}\if\@gtempa T#2\else#3\fi}
  9. \def\@eval{\def\@val{F}\def\@orop{T}\def\@negate{F}}
  10. \def\@endeval{\if\@negate T\def\@negate{F}\if\@term T\def\@term{F}\else
  11.  \def\@term{T}\fi\fi
  12.  \if\@orop T\if\@val F\let\@val\@term\fi
  13.  \else \if\@val T\let\@val\@term\fi\fi}
  14. \def\@or{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi
  15.  \noexpand\@endeval \def\noexpand\@orop{T}\ifnum}
  16. \def\@and{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi
  17.  \noexpand\@endeval\def\noexpand\@orop{F}\ifnum}
  18. \def\@neg{1=1 \fi \def\noexpand\@negate{T}\ifnum}
  19. \def\@lparen{1=1 \fi \begingroup \noexpand\@eval \ifnum}
  20. \def\@rparen{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi
  21.  \noexpand\@endeval \if\noexpand\@val T\gdef\noexpand\@gtempb{1=1}\else
  22.  \gdef\noexpand\@gtempb{1=0}\fi
  23.  \endgroup \ifnum\noexpand\@gtempb}
  24. \def\equal#1#2{1=1 \fi \edef\noexpand\@tempa{#1}\edef\noexpand\@tempb{#2}\ifx
  25.  \noexpand\@tempa\noexpand\@tempb
  26.  \def\noexpand\@tempa{1=1}\else
  27.  \def\noexpand\@tempa{1=0}\fi \ifnum \noexpand\@tempa}
  28. \long\def\whiledo#1#2{\ifthenelse{#1}{\@whiledotrue \@whilesw\if@whiledo
  29.  \fi{#2\ifthenelse{#1}{\@whiledotrue}{\@whiledofalse}}}{}}
  30. \newif\if@whiledo
  31.