X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/d07ff9db920196077333148f6db88525c8ba3151..5e6d03b2abd37151ae1329c4b98edfa8242d2f0f:/src/xml.c diff --git a/src/xml.c b/src/xml.c index a22ca20874..c330dce4a4 100644 --- a/src/xml.c +++ b/src/xml.c @@ -1,5 +1,5 @@ /* Interface to libxml2. - Copyright (C) 2010-2012 Free Software Foundation, Inc. + Copyright (C) 2010-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -73,7 +73,7 @@ libxml2_loaded_p (void) #define fn_xmlCleanupParser xmlCleanupParser #define fn_xmlCheckVersion xmlCheckVersion -static inline int +static int libxml2_loaded_p (void) { return 1; @@ -93,7 +93,7 @@ init_libxml2_functions (void) if (!(library = w32_delayed_load (Qlibxml2_dll))) { - message ("%s", "libxml2 library not found"); + message1 ("libxml2 library not found"); return 0; } @@ -124,7 +124,7 @@ make_dom (xmlNode *node) { if (node->type == XML_ELEMENT_NODE) { - Lisp_Object result = Fcons (intern ((char *) node->name), Qnil); + Lisp_Object result = list1 (intern ((char *) node->name)); xmlNode *child; xmlAttr *property; Lisp_Object plist = Qnil; @@ -180,8 +180,7 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html xmlDoc *doc; Lisp_Object result = Qnil; const char *burl = ""; - ptrdiff_t bytes; - ptrdiff_t istart, iend; + ptrdiff_t istart, iend, istart_byte, iend_byte; fn_xmlCheckVersion (LIBXML_VERSION); @@ -189,9 +188,11 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html istart = XINT (start); iend = XINT (end); + istart_byte = CHAR_TO_BYTE (istart); + iend_byte = CHAR_TO_BYTE (iend); if (istart < GPT && GPT < iend) - move_gap (iend); + move_gap_both (iend, iend_byte); if (! NILP (base_url)) { @@ -199,17 +200,15 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html burl = SSDATA (base_url); } - bytes = CHAR_TO_BYTE (iend) - CHAR_TO_BYTE (istart); - if (htmlp) - doc = fn_htmlReadMemory ((char *) BYTE_POS_ADDR (CHAR_TO_BYTE (istart)), - bytes, burl, "utf-8", + doc = fn_htmlReadMemory ((char *) BYTE_POS_ADDR (istart_byte), + iend_byte - istart_byte, burl, "utf-8", HTML_PARSE_RECOVER|HTML_PARSE_NONET| HTML_PARSE_NOWARNING|HTML_PARSE_NOERROR| HTML_PARSE_NOBLANKS); else - doc = fn_xmlReadMemory ((char *) BYTE_POS_ADDR (CHAR_TO_BYTE (istart)), - bytes, burl, "utf-8", + doc = fn_xmlReadMemory ((char *) BYTE_POS_ADDR (istart_byte), + iend_byte - istart_byte, burl, "utf-8", XML_PARSE_NONET|XML_PARSE_NOWARNING| XML_PARSE_NOBLANKS |XML_PARSE_NOERROR);