% 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