Karl, this bug will bite in more than one situation -- I fixed it by
modifying get_until_in_braces ();. (We didn't have @, when I
originally wrote makeinfo, and this function dates from then.)
Date: Fri, 12 Nov 1999 22:15:34 -0700
From: Anthony Fok <[EMAIL PROTECTED]>
On Fri, Nov 12, 1999 at 09:09:51PM -0800, Brian J. Fox wrote:
>
> The "{c}" in `Fran@,{c}ois' seems strange to me. Is this handled
> elsewhere in makeinfo?
Wow, that's a quick response! :-)
Yes, makeinfo handles 'Fran@,{c}ois' (translates it to 'Franc,ois')
when it is not in @email{}. I have attached my modified AUTHORS.texi
(added 'Franc@,{c}ois' outside @email) and the resulting
AUTHORS.info (makeinfo --force AUTHORS.texi) in this message.
Well, I haven't read the code for @email (added after I stopped
maintaining makeinfo and info) but it appears to me as if the argument
reader is getting confused by the comma character within the argument.
I'll check:
[ time passes while I; download 4.0 from gatekeeper... read through
the source... find the problem and fix it.
Here's a patch:
*** makeinfo.c.~1~ Sun Sep 19 08:24:44 1999
--- makeinfo.c Sat Nov 13 09:12:06 1999
***************
*** 1029,1035 ****
if (brace < 0 ||
(brace == 0 && strncmp (input_text + i, match, match_len) == 0))
! break;
}
match_len = i - input_text_offset;
--- 1029,1043 ----
if (brace < 0 ||
(brace == 0 && strncmp (input_text + i, match, match_len) == 0))
! {
! /* If the character to search for is found, but it turns out
! that this character is special (is actually a command
! character in this context), then skip it. */
! if ((match_len == 1) && (i > 0) && (input_text[i - 1] == '@'))
! continue;
! else
! break;
! }
}
match_len = i - input_text_offset;
***************
*** 2961,2967 ****
{
if (arg == START)
{
! char *addr = get_xref_token (1); /* expands all macros in email */
char *name = get_xref_token (0);
if (html)
--- 2969,2975 ----
{
if (arg == START)
{
! char *addr = get_xref_token (0);
char *name = get_xref_token (0);
if (html)
Brian
--
== The Difference Between Cultures: ==
Einigkeit und Recht und Freiheit
Liberte', E'galite', Fraternite'
Sex, drugs and rock'n'roll