author | Mike Sullivan <Mike.Sullivan@Oracle.COM> |
Wed, 29 Aug 2012 11:05:56 -0700 | |
changeset 957 | 255465c5756f |
parent 918 | 35e4a56e4a26 |
permissions | -rw-r--r-- |
918
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
Last file (tree.c) of original commit was left out since it modifies |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
just comment where it wouldn't apply because of change in context. |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
|
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
From 39d027cdb74371d64f68dc488556be41e1d14546 Mon Sep 17 00:00:00 2001 |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
From: Daniel Veillard <[email protected]> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
Date: Fri, 11 May 2012 04:38:23 +0000 |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
Subject: Fix html serialization error and htmlSetMetaEncoding() |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
|
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
For https://bugzilla.gnome.org/show_bug.cgi?id=630682 |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
The python tests were reporting errors, some of it was due to |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
a small change in case encoding, but the main one was about |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
htmlSetMetaEncoding(doc, NULL) being broken by not removing |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
the associated meta tag anymore |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
--- |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
diff --git a/HTMLtree.c b/HTMLtree.c |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
index f23ae02..5d0893b 100644 |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
--- a/HTMLtree.c |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
+++ b/HTMLtree.c |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
@@ -151,7 +151,7 @@ found_content: |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
* htmlSetMetaEncoding: |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
* @doc: the document |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
* @encoding: the encoding string |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
- * |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
+ * |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
* Sets the current encoding in the Meta tags |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
* NOTE: this will not change the document content encoding, just |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
* the META flag associated. |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
@@ -164,6 +164,7 @@ htmlSetMetaEncoding(htmlDocPtr doc, const xmlChar *encoding) { |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
const xmlChar *content = NULL; |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
char newcontent[100]; |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
|
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
+ newcontent[0] = 0; |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
|
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
34 |
if (doc == NULL) |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
35 |
return(-1); |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
36 |
@@ -244,7 +245,7 @@ found_meta: |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
37 |
http = 1; |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
38 |
else |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
39 |
{ |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
40 |
- if ((value != NULL) && |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
41 |
+ if ((value != NULL) && |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
42 |
(!xmlStrcasecmp(attr->name, BAD_CAST"content"))) |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
43 |
content = value; |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
44 |
} |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
45 |
@@ -278,8 +279,13 @@ create: |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
46 |
xmlNewProp(meta, BAD_CAST"content", BAD_CAST newcontent); |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
47 |
} |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
48 |
} else { |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
49 |
+ /* remove the meta tag if NULL is passed */ |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
50 |
+ if (encoding == NULL) { |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
51 |
+ xmlUnlinkNode(meta); |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
52 |
+ xmlFreeNode(meta); |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
53 |
+ } |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
54 |
/* change the document only if there is a real encoding change */ |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
55 |
- if (xmlStrcasestr(content, encoding) == NULL) { |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
56 |
+ else if (xmlStrcasestr(content, encoding) == NULL) { |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
57 |
xmlSetProp(meta, BAD_CAST"content", BAD_CAST newcontent); |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
58 |
} |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
59 |
} |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
60 |
diff --git a/python/tests/serialize.py b/python/tests/serialize.py |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
61 |
index 5b969a9..91753e7 100755 |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
62 |
--- a/python/tests/serialize.py |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
63 |
+++ b/python/tests/serialize.py |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
64 |
@@ -96,7 +96,7 @@ str = doc.serialize("iso-8859-1", 1) |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
65 |
if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
66 |
<html> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
67 |
<head> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
68 |
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
69 |
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
70 |
<title>Hello</title> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
71 |
</head> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
72 |
<body><p>hello</p></body> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
73 |
@@ -131,7 +131,7 @@ if str != """<html> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
74 |
str = root.serialize("iso-8859-1", 1) |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
75 |
if str != """<html> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
76 |
<head> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
77 |
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
78 |
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
79 |
<title>Hello</title> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
80 |
</head> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
81 |
<body><p>hello</p></body> |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
82 |
-- |
35e4a56e4a26
7184322 libxml2 should pass its internal test suite
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
83 |
cgit v0.9.0.2 |