mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-28 23:14:57 +03:00
Fix html serialization error and htmlSetMetaEncoding()
For https://bugzilla.gnome.org/show_bug.cgi?id=630682 The python tests were reporting errors, some of it was due to a small change in case encoding, but the main one was about htmlSetMetaEncoding(doc, NULL) being broken by not removing the associated meta tag anymore
This commit is contained in:
@@ -164,6 +164,7 @@ htmlSetMetaEncoding(htmlDocPtr doc, const xmlChar *encoding) {
|
||||
const xmlChar *content = NULL;
|
||||
char newcontent[100];
|
||||
|
||||
newcontent[0] = 0;
|
||||
|
||||
if (doc == NULL)
|
||||
return(-1);
|
||||
@@ -278,8 +279,13 @@ create:
|
||||
xmlNewProp(meta, BAD_CAST"content", BAD_CAST newcontent);
|
||||
}
|
||||
} else {
|
||||
/* remove the meta tag if NULL is passed */
|
||||
if (encoding == NULL) {
|
||||
xmlUnlinkNode(meta);
|
||||
xmlFreeNode(meta);
|
||||
}
|
||||
/* change the document only if there is a real encoding change */
|
||||
if (xmlStrcasestr(content, encoding) == NULL) {
|
||||
else if (xmlStrcasestr(content, encoding) == NULL) {
|
||||
xmlSetProp(meta, BAD_CAST"content", BAD_CAST newcontent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ str = doc.serialize("iso-8859-1", 1)
|
||||
if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Hello</title>
|
||||
</head>
|
||||
<body><p>hello</p></body>
|
||||
@@ -131,7 +131,7 @@ if str != """<html>
|
||||
str = root.serialize("iso-8859-1", 1)
|
||||
if str != """<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Hello</title>
|
||||
</head>
|
||||
<body><p>hello</p></body>
|
||||
|
||||
4
tree.c
4
tree.c
@@ -3732,8 +3732,8 @@ xmlFreeNode(xmlNodePtr cur) {
|
||||
* @cur: the node
|
||||
*
|
||||
* Unlink a node from it's current context, the node is not freed
|
||||
* If one need to free the node, use xmlNodeFree() routine after the
|
||||
* unlink.
|
||||
* If one need to free the node, use xmlFreeNode() routine after the
|
||||
* unlink to discard it.
|
||||
*/
|
||||
void
|
||||
xmlUnlinkNode(xmlNodePtr cur) {
|
||||
|
||||
Reference in New Issue
Block a user