Preparing for 2.3.4 release:
- configure.in: bumped to 2.3.4
- error.c: fixed bug #51860
- tree.c: fixed bug #51861
- valid.c: cleanup, more debug, failed to fix one bug crap ...
- tree.[ch] : added xmlDefaultBufferSize
- nanoftp.c: typo in function name header block
- doc/xml.html : updated, added link to XML::LibXSLT
- doc/html/* : rebuilt the docs
Daniel
diff --git a/tree.c b/tree.c
index 709fe22..a30bc0e 100644
--- a/tree.c
+++ b/tree.c
@@ -311,7 +311,7 @@
* xmlCreateIntSubset:
* @doc: the document pointer
* @name: the DTD name
- * @ExternalID: the external ID
+ * @ExternalID: the external (PUBLIC) ID
* @SystemID: the system ID
*
* Create the internal subset of a document
@@ -358,18 +358,33 @@
doc->children = (xmlNodePtr) cur;
doc->last = (xmlNodePtr) cur;
} else {
- xmlNodePtr prev;
-
if (doc->type == XML_HTML_DOCUMENT_NODE) {
+ xmlNodePtr prev;
+
prev = doc->children;
prev->prev = (xmlNodePtr) cur;
cur->next = prev;
doc->children = (xmlNodePtr) cur;
} else {
- prev = doc->last;
- prev->next = (xmlNodePtr) cur;
- cur->prev = prev;
- doc->last = (xmlNodePtr) cur;
+ xmlNodePtr next;
+
+ next = doc->children;
+ while ((next != NULL) && (next->type != XML_ELEMENT_NODE))
+ next = next->next;
+ if (next == NULL) {
+ cur->prev = doc->last;
+ cur->prev->next = (xmlNodePtr) cur;
+ cur->next = NULL;
+ doc->last = (xmlNodePtr) cur;
+ } else {
+ cur->next = next;
+ cur->prev = next->prev;
+ if (cur->prev == NULL)
+ doc->children = (xmlNodePtr) cur;
+ else
+ cur->prev->next = (xmlNodePtr) cur;
+ next->prev = (xmlNodePtr) cur;
+ }
}
}
}
@@ -4412,6 +4427,8 @@
#define BASE_BUFFER_SIZE 4000
+int xmlDefaultBufferSize = BASE_BUFFER_SIZE;
+
/**
* xmlBufferCreate:
*
@@ -4429,7 +4446,7 @@
return(NULL);
}
ret->use = 0;
- ret->size = BASE_BUFFER_SIZE;
+ ret->size = xmlDefaultBufferSize;
ret->alloc = xmlBufferAllocScheme;
ret->content = (xmlChar *) xmlMalloc(ret->size * sizeof(xmlChar));
if (ret->content == NULL) {