From: Karl Berry Date: Thu, 17 Sep 1998 17:25:42 +0000 (+0000) Subject: * texinfo.tex: Fix @macro expansion of @code with _ in the X-Git-Tag: 3.77.90~65 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7a43e6cd3088a1edba0603b3dad276a9aef709ff;p=platform%2Fupstream%2Fmake.git * texinfo.tex: Fix @macro expansion of @code with _ in the argument. From: Zack Weinberg . --- diff --git a/texinfo.tex b/texinfo.tex index 7d3a33c..2cc8256 100644 --- a/texinfo.tex +++ b/texinfo.tex @@ -4514,6 +4514,17 @@ width0pt\relax} \fi \catcode`\^^M=12 \usembodybackslash} +\def\macroargctxt{% + \catcode`\~=12 + \catcode`\^=12 + \catcode`\_=12 + \catcode`\|=12 + \catcode`\<=12 + \catcode`\>=12 + \catcode`\+=12 + \catcode`\@=12 + \catcode`\\=12} + % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. @@ -4610,17 +4621,21 @@ width0pt\relax} \fi \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt \noexpand\braceorline\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% - \noexpand\scanmacro{\temp}}% + \egroup\noexpand\scanmacro{\temp}}% \else % many - \expandafter\xdef\csname\the\macname\endcsname##1{% + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \noexpand\csname\the\macname xx\endcsname} + \expandafter\xdef\csname\the\macname xx\endcsname##1{% \csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname - \paramlist{\noexpand\scanmacro{\temp}}% + \paramlist{\egroup\noexpand\scanmacro{\temp}}% \fi \else \ifcase\paramno @@ -4630,18 +4645,24 @@ width0pt\relax} \fi \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt \noexpand\braceorline\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% + \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % many - \expandafter\xdef\csname\the\macname\endcsname##1{% + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \noexpand\csname\the\macname xx\endcsname} + \expandafter\xdef\csname\the\macname xx\endcsname##1{% \csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% + \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \fi