--- texinfo-4.7/makeinfo/xml.c.orig Tue Mar 2 09:17:44 2004 +++ texinfo-4.7/makeinfo/xml.c Sun Dec 5 22:09:45 2004 @@ -607,7 +607,7 @@ print_warnings = save_print_warnings; } - insert_string ("?>"); + insert_string ("?>\n"); if (docbook) { @@ -1599,8 +1599,13 @@ void xml_insert_docbook_image (char *name_arg) { + int found = 0; + char *fullname = NULL; + int elt = xml_in_para ? INLINEIMAGE : MEDIAOBJECT; + fullname = xmalloc (strlen (name_arg) + 5); + if (is_in_insertion_of_type (floatenv)) xml_begin_docbook_float (INFORMALFIGURE); else if (!xml_in_para) @@ -1610,17 +1615,55 @@ xml_insert_element (elt, START); + sprintf(fullname, "%s.eps", name_arg); + + if (access(fullname, R_OK) == 0) { xml_insert_element (IMAGEOBJECT, START); xml_insert_element_with_attribute (IMAGEDATA, START, "fileref=\"%s.eps\" format=\"EPS\"", name_arg); xml_insert_element (IMAGEDATA, END); xml_insert_element (IMAGEOBJECT, END); + found++; + } + + sprintf(fullname, "%s.jpg", name_arg); + if (access(fullname, R_OK) == 0) { + xml_insert_element (IMAGEOBJECT, START); + xml_insert_element_with_attribute (IMAGEDATA, + START, "fileref=\"%s.jpg\" format=\"JPG\"", name_arg); + xml_insert_element (IMAGEDATA, END); + xml_insert_element (IMAGEOBJECT, END); + found++; + } + + sprintf(fullname, "%s.png", name_arg); + if (access(fullname, R_OK) == 0) { + xml_insert_element (IMAGEOBJECT, START); + xml_insert_element_with_attribute (IMAGEDATA, + START, "fileref=\"%s.png\" format=\"PNG\"", name_arg); + xml_insert_element (IMAGEDATA, END); + xml_insert_element (IMAGEOBJECT, END); + found++; + } + + sprintf(fullname, "%s.gif", name_arg); + if (access(fullname, R_OK) == 0) { + xml_insert_element (IMAGEOBJECT, START); + xml_insert_element_with_attribute (IMAGEDATA, + START, "fileref=\"%s.gif\" format=\"GIF\"", name_arg); + xml_insert_element (IMAGEDATA, END); + xml_insert_element (IMAGEOBJECT, END); + found++; + } + if (found == 0) { xml_insert_element (IMAGEOBJECT, START); xml_insert_element_with_attribute (IMAGEDATA, START, "fileref=\"%s.jpg\" format=\"JPG\"", name_arg); xml_insert_element (IMAGEDATA, END); xml_insert_element (IMAGEOBJECT, END); + found++; + } xml_insert_text_file (name_arg); @@ -1630,6 +1673,7 @@ if (elt == MEDIAOBJECT) xml_insert_element (INFORMALFIGURE, END); + free(fullname); } void