[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: macro bug in CVS makeinfo
From: |
Eli Zaretskii |
Subject: |
Re: macro bug in CVS makeinfo |
Date: |
Thu, 30 Dec 2010 06:15:27 -0500 |
> Date: Thu, 30 Dec 2010 05:03:09 +0100 (CET)
> From: Werner LEMBERG <address@hidden>
> Cc: address@hidden
>
> 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.
Re: macro bug in CVS makeinfo, Dumas Patrice, 2010/12/30