* xml.c (parse_region): Make the parsing work for non-comment-starting XML files...
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sat, 10 Sep 2011 18:14:50 +0000 (20:14 +0200)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Sat, 10 Sep 2011 18:14:50 +0000 (20:14 +0200)
Fixes: debbugs:9144

src/ChangeLog
src/xml.c

index 6c54d33..60009bf 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * xml.c (parse_region): Make the parsing work for
+       non-comment-starting XML files again (bug#9144).
+
 2011-09-10  Andreas Schwab  <schwab@linux-m68k.org>
 
        * image.c (gif_load): Fix calculation of bottom and right corner.
index 8b485e7..f042287 100644 (file)
--- a/src/xml.c
+++ b/src/xml.c
@@ -124,6 +124,8 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html
 
   if (doc != NULL)
     {
+      /* If the document is just comments, then this should get us the
+        nodes anyway. */
       xmlNode *n = doc->children->next;
       Lisp_Object r = Qnil;
 
@@ -134,9 +136,13 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html
        n = n->next;
       }
 
-      if (NILP (result))
-       result = r;
-      else
+      if (NILP (result)) {
+       /* The document isn't just comments, so get the tree the
+          proper way. */
+       xmlNode *node = xmlDocGetRootElement (doc);
+       if (node != NULL)
+         result = make_dom (node);
+      } else
        result = Fcons (intern ("top"),
                        Fcons (Qnil, Fnreverse (Fcons (r, result))));