> Date: Thu, 30 Dec 2010 05:03:09 +0100 (CET)
> From: Werner LEMBERG <[email protected]>
> Cc: [email protected]
>
> Well, I can, more or less, but it is a pity that Patrice's texi2any
> has inherited this very bug from makeinfo.
Given the requirement to be back-compatible with the C implementation,
I don't see how we can blame Patrice. See below.
> Having an unbalanced @{ as an argument to @deffn is not such a
> strange assumption, is it?
Actually, it is. @def* commands are extremely irregular, in that they
violate a couple of very basic rules of the Texinfo "language". For
example, they allow text inside "{..}", something that isn't allowed
anywhere else in Texinfo. Take a look at the implementation, to get a
feeling of how much kludgeing around this requires.
It is a small wonder that stretching @deffn to the limits breaks it.
You may think that using @{ as an argument to @deffn is a natural
thing, since @{ is allowed elsewhere in Texinfo, but since @deffn has
no formal spec and violates basic Texinfo rules, what is valid
elsewhere is not necessarily valid in @deffn. IOW, your assumption
that any valid Texinfo should be valid in @deffn is simply false.
> > Since macros are such a touchy and ill-defined subject in the
> > Texinfo language, I expect problems with particular versions of the
> > tools will always be there.
>
> Honestly spoken, I'm not happy about this fatalistic attitude.
I don't know what are Karl's and Patrice's plans in this regard, but
IMO the problems with Texinfo macros will not go away unless Someoneā¢
comes up with a formal spec of macros that defines a regular grammar,
with all the corners (like quoting and whitespace/newline handling)
figured out as part of that. How to do that without breaking existing
manuals that are heavy users of macros, I don't know.