Date: Sun, 14 Nov 1999 14:20:33 +0200 (IST)
From: Eli Zaretskii <[EMAIL PROTECTED]>
On Sun, 14 Nov 1999, Brian J. Fox wrote:
> > if (arg == START)
> > {
> > ! char *addr = get_xref_token (0);
> > char *name = get_xref_token (0);
>
> This change breaks support for macros inside @email. Why did you need
> it?
>
> I would be surprised if it actually broke support for macros inside
> @email. Isn't execute_string() called on the arguments after they are
> gathered?
It's subtle (and thus took a lot of sweat and blood to get right).
execute_string is indeed called on the name and address, but it doesn't
only expand macros. It also converts Texinfo commands embedded in the
name and the address. For @email, the usual case is that the address
calls @@ (to produce a literal `@').
Now suppose @email is itself called from a macro. In that case, @@ will
be passed to execute_string more than once, and bad things will happen
the second time. Under -E, the macro-expanded output is also incorrect
in some cases like this.
Okay, I'll go along with this. So why isn't NAME treated the same way
as ADDR, i.e., get_xref_token (1)?
Brian
== The Difference Between Cultures: ==
Einigkeit und Recht und Freiheit
Liberte', E'galite', Fraternite'
Sex, drugs and rock'n'roll