Fri Jan 10 22:37:06 CET 2003 Stepan Kasal * doc/texinfo.tex (\makedummies): New macro; to be used inside \indexdummies. (\indexdummies): Replace the horde of similar definitions by several call to the \makedummies factory. --- texinfo.tex.p1 Fri Jan 10 21:29:17 2003 +++ texinfo.tex Fri Jan 10 22:18:53 2003 @@ -2880,84 +2880,36 @@ \normalturnoffactive % % Accents. - \def\,##1{\realbackslash ,{##1}}% - \def\"{\realbackslash "}% - \def\`{\realbackslash `}% \def\'{\realbackslash acute }% - \def\^{\realbackslash ^}% - \def\~{\realbackslash ~}% - \def\={\realbackslash =}% - \def\b{\realbackslash b}% - \def\c{\realbackslash c}% - \def\d{\realbackslash d}% - \def\u{\realbackslash u}% - \def\v{\realbackslash v}% - \def\H{\realbackslash H}% - \def\dotaccent##1{\realbackslash dotaccent {##1}}% - \def\ringaccent##1{\realbackslash ringaccent {##1}}% - \def\tieaccent##1{\realbackslash tieaccent {##1}}% - \def\ubaraccent##1{\realbackslash ubaraccent {##1}}% - \def\udotaccent##1{\realbackslash udotaccent {##1}}% - \def\dotless##1{\realbackslash dotless {##1}}% + \makedummies , " ` ^ ~ = c d u v H \Enddummies + \makedummies + {dotaccent} {ringaccent} {tieaccent} {ubaraccent} {udotaccent} {dotless} + \Enddummies % Other non-English letters. - \def\AA{\realbackslash AA}% - \def\AE{\realbackslash AE}% - \def\L{\realbackslash L}% - \def\OE{\realbackslash OE}% - \def\O{\realbackslash O}% - \def\aa{\realbackslash aa}% - \def\ae{\realbackslash ae}% - \def\l{\realbackslash l}% - \def\oe{\realbackslash oe}% - \def\o{\realbackslash o}% - \def\ss{\realbackslash ss}% + \makedummies + {AA} {AE} {L} {OE} {O} + {aa} {ae} {l} {oe} {o} {ss} + \Enddummies % % Although these internals commands shouldn't show up, sometimes they do. - \def\bf{\realbackslash bf }% - \def\gtr{\realbackslash gtr}% - \def\hat{\realbackslash hat}% - \def\less{\realbackslash less}% - %\def\rm{\realbackslash rm }% - \def\sf{\realbackslash sf}% - \def\sl{\realbackslash sl }% - \def\tclose##1{\realbackslash tclose {##1}}% - \def\tt{\realbackslash tt}% - % - \def\b##1{\realbackslash b {##1}}% - \def\i##1{\realbackslash i {##1}}% - \def\r##1{\realbackslash r {##1}}% - \def\sc##1{\realbackslash sc {##1}}% - \def\t##1{\realbackslash t {##1}}% - % - \def\TeX{\realbackslash TeX}% - \def\acronym##1{\realbackslash acronym {##1}}% - \def\cite##1{\realbackslash cite {##1}}% - \def\code##1{\realbackslash code {##1}}% - \def\command##1{\realbackslash command {##1}}% - \def\dfn##1{\realbackslash dfn {##1}}% - \def\dots{\realbackslash dots }% - \def\emph##1{\realbackslash emph {##1}}% - \def\env##1{\realbackslash env {##1}}% - \def\file##1{\realbackslash file {##1}}% - \def\kbd##1{\realbackslash kbd {##1}}% - \def\key##1{\realbackslash key {##1}}% - \def\math##1{\realbackslash math {##1}}% - \def\option##1{\realbackslash option {##1}}% - \def\samp##1{\realbackslash samp {##1}}% - \def\strong##1{\realbackslash strong {##1}}% - \def\uref##1{\realbackslash uref {##1}}% - \def\url##1{\realbackslash url {##1}}% - \def\var##1{\realbackslash var {##1}}% - \def\w{\realbackslash w }% + \makedummies {bf} {gtr} {hat} {less} %{rm} + {sf} {sl} {tclose} {tt} \Enddummies + \makedummies b i r {sc} t \Enddummies + \makedummies + {TeX} {acronym} {cite} {code} {command} {dfn} {dots} {emph} {env} {file} + {kbd} {key} {math} {option} {samp} {strong} {uref} {url} {var} {w} + \Enddummies % % These math commands don't seem likely to be used in index entries. - \def\copyright{\realbackslash copyright}% - \def\equiv{\realbackslash equiv}% - \def\error{\realbackslash error}% - \def\expansion{\realbackslash expansion}% - \def\point{\realbackslash point}% - \def\print{\realbackslash print}% - \def\result{\realbackslash result}% + \makedummies + {copyright} + {equiv} + {error} + {expansion} + {point} + {print} + {result} + \Enddummies % % Handle some cases of @value -- where the variable name does not % contain - or _, and the value does not contain any @@ -2967,6 +2919,26 @@ \unsepspaces % Turn off macro expansion \turnoffmacros +} + +% \makedummies is macro which actually creates the dummies. +% It expands to plenty of definitions equvalent to the following: +% for control characters: \def\~{\realbackslash ~} +% for control words: \def\l{\realbackslash l } +% \def\bf{\realbackslash bf } +\def\makedummies#1{% + \def\temp{#1}% + \ifx\temp\Enddummies + \else + \expandafter\edef\csname#1\endcsname {% + \realbackslash \string#1\ifnum \getcatcode#1\EndCat = 11 \space\fi + }% + \expandafter \makedummies + \fi +} +\def\Enddummies{\Enddummies} +\def\getcatcode #1#2\EndCat{% + \expandafter\the\expandafter\catcode\expandafter`\string#1% } % If an index command is used in an @example environment, any spaces