On Thu, Jul 19, 2012 at 06:56:10PM +0300, Eli Zaretskii wrote:
>
> > > Yes, @if* are the problem.
> >
> > And you think it is not fixed by calling makeinfo with --iftex
> > --no-ifinfo?
>
> First, there are also @ifset and @ifclear.
Ok, but then there is -D/-U and this is not different than in TeX.
> Then AFAIR there were problems with separate macro definitions for TeX
> and for Info. I'm not sure using explicit --iftex etc. solved them.
>
> More generally, if macros are used in a mix with other Texinfo
> commands, which are not expanded by "makeinfo -E", there's always a
> possibility of problems that don't happen in "makeinfo" proper.
In texi2any, everything is expanded, there are no @-commands that are
not taken into account, which is different from makeinfo in C. The
sole @-commands that are not expanded are @everyheading and friends
which is not really a problem in my opinion. The only really
problematic case I see is something like
@tex
\gdef\ctor#1{\ctorx#1,}
\gdef\ctorx#1,#2,{\def#1{something involving #2 somehow}}
@end tex
and similar (and maybe weirder) uses of TeX macros.
> > I don't really get what is the 'new macro expansion machinery'.
>
> The one in texi2any.
>
> > Basically, the new expansion machinery is the makeinfo in C expansion
> > without the inconsistencies and bugs.
>
> Well, that makes it "new".
If makeinfo in C was still developped, those changes should/may have been
done to makeinfo in C. So, I can't really see the difference here. We
try to be different and backward compatible with TeX/makeinfo in C as
if texi2any was the next version of makeinfo in C. The change in
implementation is not that relevant (unless there is a fundamental
modification, it is not so hard to change the parsing). Of course there
is a change in person, maybe that makes a difference in terms of
weighting backward compatibility and consistency, although I rely a
lot on Karl on that.
--
Pat