O Lun, 03-05-2010 ás 12:20 +0200, Juan A. Suarez Romero escribiu: > On Mon, 2010-05-03 at 10:53 +0200, Xabier Rodriguez Calvar wrote: > > I am already doing that, but I got some trouble to test some plugins, so > > it is taking some time. Code is already written. > > Oh! Good. Thanks, Xabier. It seems to work properly, but I encourage you to test it yourself. Br. -- Xabier Rodríguez Calvar Enxeñeiro en Informática IGALIA http://www.igalia.com
From 060dede743e9492f7c4eaf529cd0fd32193cf492 Mon Sep 17 00:00:00 2001
From: Xabier Rodriguez Calvar <xrcalvar igalia com>
Date: Tue, 27 Apr 2010 13:59:17 +0200
Subject: [PATCH 1/6] [apple-trailers] Changed to use xmlReadMemory instead of xmlRecoverDoc
---
src/apple-trailers/grl-apple-trailers.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/apple-trailers/grl-apple-trailers.c b/src/apple-trailers/grl-apple-trailers.c
index 521aad1..f771801 100644
--- a/src/apple-trailers/grl-apple-trailers.c
+++ b/src/apple-trailers/grl-apple-trailers.c
@@ -298,7 +298,8 @@ xml_parse_result (const gchar *str, OperationData *op_data)
goto finalize;
}
- op_data->xml_doc = xmlRecoverDoc ((xmlChar *) str);
+ op_data->xml_doc = xmlReadMemory (str, xmlStrlen ((xmlChar*) str), NULL, NULL,
+ XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
if (!op_data->xml_doc) {
error = g_error_new (GRL_ERROR,
GRL_ERROR_BROWSE_FAILED,
--
1.7.0
From a041f1b0962b7492fee6d2ca1b9ec03269986876 Mon Sep 17 00:00:00 2001
From: Xabier Rodriguez Calvar <xrcalvar igalia com>
Date: Tue, 27 Apr 2010 14:00:48 +0200
Subject: [PATCH 2/6] [jamendo] Changed to use xmlReadMemory instead of xmlRecoverDoc
Now the function to skip the text nodes is useless and it was also
removed.
---
src/jamendo/grl-jamendo.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/jamendo/grl-jamendo.c b/src/jamendo/grl-jamendo.c
index a144619..d16fac6 100644
--- a/src/jamendo/grl-jamendo.c
+++ b/src/jamendo/grl-jamendo.c
@@ -289,7 +289,8 @@ xml_parse_result (const gchar *str, GError **error, XmlParseEntries *xpe)
xmlNodePtr node;
gint child_nodes = 0;
- doc = xmlRecoverDoc ((xmlChar *) str);
+ doc = xmlReadMemory (str, strlen (str), NULL, NULL,
+ XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
if (!doc) {
*error = g_error_new (GRL_ERROR,
GRL_ERROR_BROWSE_FAILED,
--
1.7.0
From 0c834566284704000bcf64bf72d2e93db8eb046c Mon Sep 17 00:00:00 2001
From: Xabier Rodriguez Calvar <xrcalvar igalia com>
Date: Tue, 27 Apr 2010 15:25:13 +0200
Subject: [PATCH 3/6] [shoutcast] Replaced xmlRecoverDoc with xmlReadMemory.
skip_garbage nodes is not useful anymore so it was removed.
---
src/shoutcast/grl-shoutcast.c | 19 ++-----------------
1 files changed, 2 insertions(+), 17 deletions(-)
diff --git a/src/shoutcast/grl-shoutcast.c b/src/shoutcast/grl-shoutcast.c
index 691313a..3a7a577 100644
--- a/src/shoutcast/grl-shoutcast.c
+++ b/src/shoutcast/grl-shoutcast.c
@@ -162,17 +162,6 @@ G_DEFINE_TYPE (GrlShoutcastSource, grl_shoutcast_source, GRL_TYPE_MEDIA_SOURCE);
/* ======================= Private ==================== */
-static void
-skip_garbage_nodes (xmlNodePtr *node)
-{
- /* Result contains "\n" and "\t" to pretty align XML. Unfortunately, libxml
- doesn't cope very fine with them, and it creates "fakes" nodes with name
- "text" and value those characters. So we need to skip them */
- while ((*node) && xmlStrcmp ((*node)->name, (const xmlChar *) "text") == 0) {
- (*node) = (*node)->next;
- }
-}
-
static gint
xml_count_nodes (xmlNodePtr node)
{
@@ -181,7 +170,6 @@ xml_count_nodes (xmlNodePtr node)
while (node) {
count++;
node = node->next;
- skip_garbage_nodes (&node);
}
return count;
@@ -274,7 +262,6 @@ send_media (OperationData *op_data, GrlMedia *media)
NULL);
op_data->xml_entries = op_data->xml_entries->next;
- skip_garbage_nodes (&op_data->xml_entries);
}
if (op_data->to_send == 0 || op_data->cancelled) {
@@ -315,7 +302,8 @@ xml_parse_result (const gchar *str, OperationData *op_data)
return;
}
- op_data->xml_doc = xmlRecoverDoc ((xmlChar *) str);
+ op_data->xml_doc = xmlReadMemory (str, xmlStrlen ((xmlChar*) str), NULL, NULL,
+ XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
if (!op_data->xml_doc) {
error = g_error_new (GRL_ERROR,
op_data->error_code,
@@ -335,7 +323,6 @@ xml_parse_result (const gchar *str, OperationData *op_data)
(const xmlChar *) "stationlist") == 0);
op_data->xml_entries = node->xmlChildrenNode;
- skip_garbage_nodes (&op_data->xml_entries);
/* Check if we are interesting only in updating a media (that is, a metadata()
operation) or just browsing/searching */
@@ -389,13 +376,11 @@ xml_parse_result (const gchar *str, OperationData *op_data)
if (stationlist_result) {
/* First node is "tunein"; skip it */
op_data->xml_entries = op_data->xml_entries->next;
- skip_garbage_nodes (&op_data->xml_entries);
}
/* Skip elements */
while (op_data->xml_entries && op_data->skip > 0) {
op_data->xml_entries = op_data->xml_entries->next;
- skip_garbage_nodes (&op_data->xml_entries);
op_data->skip--;
}
--
1.7.0
From eeb6e6ba6dc3bdd31205da13f632f987ea8cb486 Mon Sep 17 00:00:00 2001
From: Xabier Rodriguez Calvar <xrcalvar igalia com>
Date: Tue, 27 Apr 2010 15:48:25 +0200
Subject: [PATCH 4/6] [flickr] Changed xmlRecoverDoc to xmlReadMemory
skip_garbage_nodes is not usefull anymore as text nodes are already
removed.
---
src/flickr/gflickr.c | 23 ++++-------------------
1 files changed, 4 insertions(+), 19 deletions(-)
diff --git a/src/flickr/gflickr.c b/src/flickr/gflickr.c
index 4053542..00d264f 100644
--- a/src/flickr/gflickr.c
+++ b/src/flickr/gflickr.c
@@ -145,17 +145,6 @@ get_api_sig_photos_getInfo (GFlickr *f, glong photo_id)
return signature;
}
-static void
-skip_garbage_nodes (xmlNodePtr *node)
-{
- /* Result contains "\n" and "\t" to pretty align XML. Unfortunately, libxml
- doesn't cope very fine with them, and it creates "fakes" nodes with name
- "text" and value those characters. So we need to skip them */
- while ((*node) && xmlStrcmp ((*node)->name, (const xmlChar *) "text") == 0) {
- (*node) = (*node)->next;
- }
-}
-
static gboolean
result_is_correct (xmlNodePtr node)
{
@@ -202,7 +191,6 @@ get_photo (xmlNodePtr node)
/* Add children nodes with their properties */
node = node->xmlChildrenNode;
- skip_garbage_nodes (&node);
while (node) {
if (xmlStrcmp (node->name, (const xmlChar *) "owner") == 0 ||
@@ -216,7 +204,6 @@ get_photo (xmlNodePtr node)
}
node = node->next;
- skip_garbage_nodes (&node);
}
return photo;
@@ -230,7 +217,8 @@ process_photo_result (const gchar *xml_result, gpointer user_data)
GFlickrData *data = (GFlickrData *) user_data;
GHashTable *photo;
- doc = xmlRecoverDoc ((xmlChar *) xml_result);
+ doc = xmlReadMemory (xml_result, xmlStrlen ((xmlChar*) xml_result), NULL,
+ NULL, XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
node = xmlDocGetRootElement (doc);
/* Check result is ok */
@@ -238,7 +226,6 @@ process_photo_result (const gchar *xml_result, gpointer user_data)
data->get_info_cb (NULL, NULL, data->user_data);
} else {
node = node->xmlChildrenNode;
- skip_garbage_nodes (&node);
photo = get_photo (node);
data->get_info_cb (NULL, photo, data->user_data);
@@ -256,7 +243,8 @@ process_photolist_result (const gchar *xml_result, gpointer user_data)
xmlDocPtr doc;
xmlNodePtr node;
- doc = xmlRecoverDoc ((xmlChar *) xml_result);
+ doc = xmlReadMemory (xml_result, xmlStrlen ((xmlChar*) xml_result), NULL,
+ NULL, XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
node = xmlDocGetRootElement (doc);
/* Check result is ok */
@@ -264,15 +252,12 @@ process_photolist_result (const gchar *xml_result, gpointer user_data)
data->search_cb (NULL, NULL, data->user_data);
} else {
node = node->xmlChildrenNode;
- skip_garbage_nodes (&node);
/* Now we're at "photo pages" node */
node = node->xmlChildrenNode;
- skip_garbage_nodes (&node);
while (node) {
photolist = g_list_prepend (photolist, get_photo (node));
node = node->next;
- skip_garbage_nodes (&node);
}
data->search_cb (NULL, g_list_reverse (photolist), data->user_data);
--
1.7.0
From a0a5e370ba86c61a045355e3a70a4633c2032b15 Mon Sep 17 00:00:00 2001
From: Xabier Rodriguez Calvar <xrcalvar igalia com>
Date: Tue, 4 May 2010 14:39:37 +0200
Subject: [PATCH 5/6] [youtube] Replaced xmlRecoverDoc with xmlReadMemory
---
src/youtube/grl-youtube.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/youtube/grl-youtube.c b/src/youtube/grl-youtube.c
index 480cd1f..3f33b81 100644
--- a/src/youtube/grl-youtube.c
+++ b/src/youtube/grl-youtube.c
@@ -575,7 +575,8 @@ build_categories_directory_read_cb (gchar *xmldata, gpointer user_data)
return;
}
- doc = xmlRecoverDoc ((xmlChar *) xmldata);
+ doc = xmlReadMemory (xmldata, strlen (xmldata), NULL, NULL,
+ XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
if (!doc) {
g_critical ("Failed to build category directory (2)");
goto free_resources;
--
1.7.0
From af10ef3a731b7844ef2cb46413dd61775339c896 Mon Sep 17 00:00:00 2001
From: Xabier Rodriguez Calvar <xrcalvar igalia com>
Date: Tue, 4 May 2010 14:56:38 +0200
Subject: [PATCH 6/6] [lastfm-albumart] Replaced xmlRecoverDoc with xmlReadMemory
---
src/lastfm-albumart/grl-lastfm-albumart.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/lastfm-albumart/grl-lastfm-albumart.c b/src/lastfm-albumart/grl-lastfm-albumart.c
index 40bfa7e..11169d1 100644
--- a/src/lastfm-albumart/grl-lastfm-albumart.c
+++ b/src/lastfm-albumart/grl-lastfm-albumart.c
@@ -139,7 +139,8 @@ xml_get_image (const gchar *xmldata)
xmlXPathObjectPtr xpath_res;
gchar *image;
- doc = xmlRecoverDoc ((xmlChar *) xmldata);
+ doc = xmlReadMemory (xmldata, xmlStrlen ((xmlChar*) xmldata), NULL, NULL,
+ XML_PARSE_RECOVER | XML_PARSE_NOBLANKS);
if (!doc) {
return NULL;
}
--
1.7.0
Attachment:
signature.asc
Description: Esta =?ISO-8859-1?Q?=E9?= unha parte de mensaxe asinada dixitalmente