1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-30 22:43:14 +03:00

use the character() SAX callback if the cdataBlock ain't defined. fix bug

* parser.c HTMLparser.c: use the character() SAX callback
  if the cdataBlock ain't defined.
* xpath.c: fix bug #115349 allowing compilation when configured
  with --without-xpath since the Schemas code needs NAN and co.
Daniel
This commit is contained in:
Daniel Veillard
2003-07-05 20:32:43 +00:00
parent 59002e7bea
commit d9d32aebd3
4 changed files with 49 additions and 28 deletions

View File

@ -1,3 +1,10 @@
Sat Jul 5 22:30:25 CEST 2003 Daniel Veillard <daniel@veillard.com>
* parser.c HTMLparser.c: use the character() SAX callback
if the cdataBlock ain't defined.
* xpath.c: fix bug #115349 allowing compilation when configured
with --without-xpath since the Schemas code needs NAN and co.
Sat Jul 5 00:51:30 HKT 2003 William Brack <wbrack@mmm.com.hk> Sat Jul 5 00:51:30 HKT 2003 William Brack <wbrack@mmm.com.hk>
Fixed problem with multi-threading, shown by the test program Fixed problem with multi-threading, shown by the test program

View File

@ -2688,6 +2688,8 @@ htmlParseScript(htmlParserCtxtPtr ctxt) {
* Insert as CDATA, which is the same as HTML_PRESERVE_NODE * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
*/ */
ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar); ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
} else if (ctxt->sax->characters != NULL) {
ctxt->sax->characters(ctxt->userData, buf, nbchar);
} }
} }
nbchar = 0; nbchar = 0;
@ -2712,6 +2714,8 @@ htmlParseScript(htmlParserCtxtPtr ctxt) {
* Insert as CDATA, which is the same as HTML_PRESERVE_NODE * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
*/ */
ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar); ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
} else if (ctxt->sax->characters != NULL) {
ctxt->sax->characters(ctxt->userData, buf, nbchar);
} }
nbchar = 0; nbchar = 0;
} }
@ -2732,6 +2736,8 @@ htmlParseScript(htmlParserCtxtPtr ctxt) {
* Insert as CDATA, which is the same as HTML_PRESERVE_NODE * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
*/ */
ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar); ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
} else if (ctxt->sax->characters != NULL) {
ctxt->sax->characters(ctxt->userData, buf, nbchar);
} }
} }
} }

View File

@ -8790,7 +8790,12 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
if (avail >= XML_PARSER_BIG_BUFFER_SIZE + 2) { if (avail >= XML_PARSER_BIG_BUFFER_SIZE + 2) {
if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) { if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
if (ctxt->sax->cdataBlock != NULL) if (ctxt->sax->cdataBlock != NULL)
ctxt->sax->cdataBlock(ctxt->userData, ctxt->input->cur, ctxt->sax->cdataBlock(ctxt->userData,
ctxt->input->cur,
XML_PARSER_BIG_BUFFER_SIZE);
else if (ctxt->sax->characters != NULL)
ctxt->sax->characters(ctxt->userData,
ctxt->input->cur,
XML_PARSER_BIG_BUFFER_SIZE); XML_PARSER_BIG_BUFFER_SIZE);
} }
SKIP(XML_PARSER_BIG_BUFFER_SIZE); SKIP(XML_PARSER_BIG_BUFFER_SIZE);
@ -8803,6 +8808,9 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
if (ctxt->sax->cdataBlock != NULL) if (ctxt->sax->cdataBlock != NULL)
ctxt->sax->cdataBlock(ctxt->userData, ctxt->sax->cdataBlock(ctxt->userData,
ctxt->input->cur, base); ctxt->input->cur, base);
else if (ctxt->sax->characters != NULL)
ctxt->sax->characters(ctxt->userData,
ctxt->input->cur, base);
} }
SKIP(base + 3); SKIP(base + 3);
ctxt->checkIndex = 0; ctxt->checkIndex = 0;

54
xpath.c
View File

@ -16,7 +16,6 @@
#define IN_LIBXML #define IN_LIBXML
#include "libxml.h" #include "libxml.h"
#ifdef LIBXML_XPATH_ENABLED
#include <string.h> #include <string.h>
@ -53,32 +52,6 @@
#include <libxml/threads.h> #include <libxml/threads.h>
#include <libxml/globals.h> #include <libxml/globals.h>
/*
* TODO: when compatibility allows remove all "fake node libxslt" strings
* the test should just be name[0] = ' '
*/
/* #define DEBUG */
/* #define DEBUG_STEP */
/* #define DEBUG_STEP_NTH */
/* #define DEBUG_EXPR */
/* #define DEBUG_EVAL_COUNTS */
static xmlNs xmlXPathXMLNamespaceStruct = {
NULL,
XML_NAMESPACE_DECL,
XML_XML_NAMESPACE,
BAD_CAST "xml",
NULL
};
static xmlNsPtr xmlXPathXMLNamespace = &xmlXPathXMLNamespaceStruct;
#ifndef LIBXML_THREAD_ENABLED
/*
* Optimizer is disabled only when threaded apps are detected while
* the library ain't compiled for thread safety.
*/
static int xmlXPathDisableOptimizer = 0;
#endif
/************************************************************************ /************************************************************************
* * * *
* Floating point stuff * * Floating point stuff *
@ -162,6 +135,33 @@ xmlXPathGetSign(double val) {
} }
#ifdef LIBXML_XPATH_ENABLED
/*
* TODO: when compatibility allows remove all "fake node libxslt" strings
* the test should just be name[0] = ' '
*/
/* #define DEBUG */
/* #define DEBUG_STEP */
/* #define DEBUG_STEP_NTH */
/* #define DEBUG_EXPR */
/* #define DEBUG_EVAL_COUNTS */
static xmlNs xmlXPathXMLNamespaceStruct = {
NULL,
XML_NAMESPACE_DECL,
XML_XML_NAMESPACE,
BAD_CAST "xml",
NULL
};
static xmlNsPtr xmlXPathXMLNamespace = &xmlXPathXMLNamespaceStruct;
#ifndef LIBXML_THREAD_ENABLED
/*
* Optimizer is disabled only when threaded apps are detected while
* the library ain't compiled for thread safety.
*/
static int xmlXPathDisableOptimizer = 0;
#endif
/************************************************************************ /************************************************************************
* * * *
* Parser Types * * Parser Types *