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