En r�ponse � Jos� Fonseca <[EMAIL PROTECTED]>:
Hello,
I don't have cvs access at this time (due to a proxy server), but can you try
this diff? I think it resolves lots of the bugs you cited. I'll make some other
work this week-end, directly in cvs.
--
Philippe
--- xml.h.old Mon Oct 14 23:25:11 2002
+++ xml.h Fri Nov 8 15:57:36 2002
@@ -33,6 +33,8 @@
extern char *xml_node_id;
extern int xml_last_section_output_position;
+extern int xml_in_xref_token;
+
enum xml_element
{
TEXINFO=0, SETFILENAME, TITLEFONT, SETTITLE,
--- xml.c.old Thu Nov 7 23:14:56 2002
+++ xml.c Fri Nov 8 15:59:58 2002
@@ -359,6 +359,8 @@
static int first_section_opened = 0;
static int in_abstract = 0;
+int xml_in_xref_token = 0;
+
static int xml_current_element ();
void
@@ -375,13 +377,14 @@
char *tem = xmalloc (strlen (id) + 1);
char *p = tem;
strcpy (tem, id);
- while (*p++)
+ while (*p)
{
- if (*p == ' ' || *p == '&' || *p == '/' || *p == '+')
+ if (strchr ("~ &/+^;?()%<>\"", *p))
*p = '-';
+ p++;
}
p = tem;
- while (*p == '-')
+ if (*p == '-')
*p = 'i';
return tem;
}
@@ -821,7 +824,8 @@
if (docbook && !only_macro_expansion && (in_menu || in_detailmenu))
return;
- if (!first_section_opened && !in_abstract && xml_current_element () == TEXINFO
+ if (!executing_string && !first_section_opened &&
+ !in_abstract && xml_current_element () == TEXINFO
&& !xml_no_para && character != '\r' && character != '\n' && character != ' ')
{
xml_insert_element (BOOKINFO, START);
@@ -829,7 +833,7 @@
in_abstract = 1;
}
- if (xml_after_table_term && !xml_sort_index)
+ if (xml_after_table_term && !xml_sort_index && !xml_in_xref_token)
{
xml_after_table_term = 0;
xml_insert_element (ITEM, START);
--- makeinfo.c.old Tue Nov 5 20:31:57 2002
+++ makeinfo.c Fri Nov 8 15:57:34 2002
@@ -2910,6 +2910,8 @@
{
char *string;
+ if (docbook)
+ xml_in_xref_token = 1;
if (expand)
{
int old_offset = input_text_offset;
@@ -2935,6 +2937,10 @@
if (curchar () == ',')
input_text_offset++;
fix_whitespace (string);
+
+ if (docbook)
+ xml_in_xref_token = 0;
+
return string;
}