X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/7e09ef09a479731d01b1ca46e94ddadd73ac98e3..f65ef80fed9813903559345a9f7eb89d712fa3fc:/src/xml.c diff --git a/src/xml.c b/src/xml.c index 11a6e45645..6c47a9da9f 100644 --- a/src/xml.c +++ b/src/xml.c @@ -1,5 +1,5 @@ /* Interface to libxml2. - Copyright (C) 2010-2015 Free Software Foundation, Inc. + Copyright (C) 2010-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -25,12 +25,9 @@ along with GNU Emacs. If not, see . */ #include #include "lisp.h" -#include "character.h" #include "buffer.h" -static Lisp_Object Qlibxml2_dll; - #ifdef WINDOWSNT # include @@ -45,14 +42,12 @@ DEF_DLL_FN (void, xmlFreeDoc, (xmlDocPtr)); DEF_DLL_FN (void, xmlCleanupParser, (void)); DEF_DLL_FN (void, xmlCheckVersion, (int)); -static int +static bool libxml2_loaded_p (void) { Lisp_Object found = Fassq (Qlibxml2_dll, Vlibrary_cache); - if (CONSP (found)) - return EQ (XCDR (found), Qt) ? 1 : 0; - return 0; + return CONSP (found) && EQ (XCDR (found), Qt); } # undef htmlReadMemory @@ -83,20 +78,20 @@ load_dll_functions (HMODULE library) #else /* !WINDOWSNT */ -static int +static bool libxml2_loaded_p (void) { - return 1; + return true; } #endif /* !WINDOWSNT */ -static int +static bool init_libxml2_functions (void) { #ifdef WINDOWSNT if (libxml2_loaded_p ()) - return 1; + return true; else { HMODULE library; @@ -104,22 +99,22 @@ init_libxml2_functions (void) if (!(library = w32_delayed_load (Qlibxml2_dll))) { message1 ("libxml2 library not found"); - return 0; + return false; } if (! load_dll_functions (library)) goto bad_library; Vlibrary_cache = Fcons (Fcons (Qlibxml2_dll, Qt), Vlibrary_cache); - return 1; + return true; } bad_library: Vlibrary_cache = Fcons (Fcons (Qlibxml2_dll, Qnil), Vlibrary_cache); - return 0; + return false; #else /* !WINDOWSNT */ - return 1; + return true; #endif /* !WINDOWSNT */ } @@ -179,7 +174,8 @@ make_dom (xmlNode *node) } static Lisp_Object -parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments, int htmlp) +parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, + Lisp_Object discard_comments, bool htmlp) { xmlDoc *doc; Lisp_Object result = Qnil; @@ -240,8 +236,7 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Obj if (node != NULL) result = make_dom (node); } else - result = Fcons (intern ("top"), - Fcons (Qnil, Fnreverse (Fcons (r, result)))); + result = Fcons (Qtop, Fcons (Qnil, Fnreverse (Fcons (r, result)))); xmlFreeDoc (doc); } @@ -265,7 +260,7 @@ If DISCARD-COMMENTS is non-nil, all HTML comments are discarded. */) (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) { if (init_libxml2_functions ()) - return parse_region (start, end, base_url, discard_comments, 1); + return parse_region (start, end, base_url, discard_comments, true); return Qnil; } @@ -278,7 +273,7 @@ If DISCARD-COMMENTS is non-nil, all HTML comments are discarded. */) (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) { if (init_libxml2_functions ()) - return parse_region (start, end, base_url, discard_comments, 0); + return parse_region (start, end, base_url, discard_comments, false); return Qnil; } @@ -291,8 +286,6 @@ syms_of_xml (void) { defsubr (&Slibxml_parse_html_region); defsubr (&Slibxml_parse_xml_region); - - DEFSYM (Qlibxml2_dll, "libxml2"); } #endif /* HAVE_LIBXML2 */