Return CDATA sections (like <style>foo</style>) as text nodes.
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 6 Dec 2010 16:59:52 +0000 (17:59 +0100)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 6 Dec 2010 16:59:52 +0000 (17:59 +0100)
Also ignore blank HTML nodes.

src/ChangeLog
src/xml.c

index e05855a..47dd5c6 100644 (file)
@@ -1,3 +1,9 @@
+2010-12-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * xml.c (parse_region): Ignore blank HTML nodes.
+       (make_dom): Return CDATA sections (like <style>foo</style>) as
+       text nodes.
+
 2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * lread.c (read1): Allow newstyle unquote outside of backquote.
index a686e55..fde9d4d 100644 (file)
--- a/src/xml.c
+++ b/src/xml.c
@@ -62,7 +62,7 @@ Lisp_Object make_dom (xmlNode *node)
 
       return Fnreverse (result);
     }
-  else if (node->type == XML_TEXT_NODE)
+  else if (node->type == XML_TEXT_NODE || node->type == XML_CDATA_SECTION_NODE)
     {
       if (node->content)
        return build_string (node->content);
@@ -105,7 +105,8 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html
     doc = htmlReadMemory (BYTE_POS_ADDR (CHAR_TO_BYTE (istart)),
                          bytes, burl, "utf-8",
                          HTML_PARSE_RECOVER|HTML_PARSE_NONET|
-                         HTML_PARSE_NOWARNING|HTML_PARSE_NOERROR);
+                         HTML_PARSE_NOWARNING|HTML_PARSE_NOERROR|
+                         HTML_PARSE_NOBLANKS);
   else
     doc = xmlReadMemory (BYTE_POS_ADDR (CHAR_TO_BYTE (istart)),
                         bytes, burl, "utf-8",