Re: another texinfo.tex bug in \scanmacro

2016-03-19 Thread Gavin Smith
On 17 March 2016 at 01:31, Norbert Preining  wrote:
>
> Ok, I tried your  suggestion, but that again breaks:

I've checked and using \gdef instead of \def works, because the
definition took place within a TeX group:

\input texinfo   @c -*-texinfo-*-

@iftex
@tex
\gdef\aaa#1{Hello #1}
@end tex
@end iftex

@macro bbb{word}
@tex
\\aaa{\word\}
@end tex
@end macro

@bbb{World}

@bye

I don't know why the original code used to work, because \gdef wasn't
used there either.

> Is this just an incorrect usage of macro definitions and @tex
> in the original sources, that "just happened" to work till 6.0,
> or is there something else behind?

There's nothing else to it as far as I can tell. As far as I know,
this usage has never been documented or encouraged. It appears to be a
recursive definition of a macro which actually uses a definition from
elsewhere.



Re: another texinfo.tex bug in \scanmacro

2016-03-19 Thread Norbert Preining
Hi Gavin,

> Why not use a different name for the \lw macro defined in the @tex
> block, so it isn't used in its own definition?  That's the cause of

Ok, I tried your  suggestion, but that again breaks:

code >>>
\input texinfo   @c -*-texinfo-*-

@iftex
@tex
\def\aaa#1{Hello #1}
@end tex
@end iftex

@macro bbb{word}
@tex
\\aaa{\word\}
@end tex
@end macro

@bbb{World}

@bye
>>
gives
./bla.texinfo:15: Undefined control sequence.
l.2 \aaa
{World}
\scanmacro ...atspaces }\scantokens {#1\texinfoc }
  \aftermacro 
l.15 @bbb{World}

tested with latest texinfo.tex


The problem goes away when the I use
@macro bbb{word}
\\aaa{\word\}
@end macro
(without the @tex ...@end tex)

Is this just an incorrect usage of macro definitions and @tex
in the original sources, that "just happened" to work till 6.0,
or is there something else behind?

Thanks

Norbert


PREINING, Norbert   http://www.preining.info
JAIST, Japan TeX Live & Debian Developer
GPG: 0x860CDC13   fp: F7D8 A928 26E3 16A1 9FA0  ACF0 6CAC A448 860C DC13