diff options
Diffstat (limited to 'info/examples/tex-in-practice/stswitch.tip')
-rw-r--r-- | info/examples/tex-in-practice/stswitch.tip | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/info/examples/tex-in-practice/stswitch.tip b/info/examples/tex-in-practice/stswitch.tip new file mode 100644 index 0000000000..76d8c936d3 --- /dev/null +++ b/info/examples/tex-in-practice/stswitch.tip @@ -0,0 +1,57 @@ +% This macro source file is from the four volume series +% "TeX in Practice" by Stephan von Bechtolsheim, published +% 1993 by Springer-Verlag, New York. +% Copyright 1993 Stephan von Bechtolsheim. +% No warranty or liability is assumed. +% This macro may be copied freely if no fees other than +% media cost or shipping charges are charged and as long +% as this copyright and the following source code itself +% is not changed. Please see the series for further information. +% +% Version: 1.0 +% Date: May 1, 1993 +% +% +% This source code is documented in 25.1.19.1, p. III-341. +% Original source in file "macros5.TEX", starting line 1398. +\wlog{L: "stswitch.tip" ["macros5.TEX," l. 1398, p. III-341]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\catcode`\@ = 11 +\newcount\@StringSwitchMatchCount +\def\StringSwitch #1#2{% + \edef\@StringSwitchMasterString{#1}% + \if\EmptyStringConditional{#1}% + \errmessage{\string\StringSwitch: master string + must not be the empty string.}% + \fi + \def\@StringSwitchMatchCommonCode{#2}% + \@StringSwitchMatchCount = 0 + \@StringSwitch +} +\def\@StringSwitchOne #1#2{% + \def\@StringSwitchString{#1}% + \def\@StringSwitchAction{#2}% +} +\def\@StringSwitch #1{% + \@StringSwitchOne #1% + \if\EmptyStringConditional{\@StringSwitchString}% + \ifcase\@StringSwitchMatchCount + \@StringSwitchAction + \or + \else + \errmessage{\string\StringSwitch: double match.}% + \fi + \def\@StringSwitchNext{}% + \else + \if\StringsEqualConditional{\@StringSwitchMasterString}% + {\@StringSwitchString}% + \advance\@StringSwitchMatchCount by 1 + \@StringSwitchMatchCommonCode + \@StringSwitchAction + \fi + \def\@StringSwitchNext{\@StringSwitch}% + \fi + \@StringSwitchNext +} +\catcode`\@ = 12 |