evolution-rss r284 - in trunk: . src
- From: lucilanga svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-rss r284 - in trunk: . src
- Date: Wed, 4 Jun 2008 11:48:54 +0000 (UTC)
Author: lucilanga
Date: Wed Jun 4 11:48:54 2008
New Revision: 284
URL: http://svn.gnome.org/viewvc/evolution-rss?rev=284&view=rev
Log:
2008-06-04 Lucian Langa <lucilanga gnome org>
* correctly parse utf 8 content
* Fix for bug #531751
Modified:
trunk/ChangeLog
trunk/src/rss.c
Modified: trunk/src/rss.c
==============================================================================
--- trunk/src/rss.c (original)
+++ trunk/src/rss.c Wed Jun 4 11:48:54 2008
@@ -190,6 +190,7 @@
static char *layer_find_innerelement (xmlNodePtr node, char *match, char *el, char *fail);
static gchar *layer_find_innerhtml (xmlNodePtr node, char *match, char *submatch, char *fail);
xmlNodePtr layer_find_pos (xmlNodePtr node, char *match, char *submatch);
+gchar *decode_utf8_entities(gchar *str);
gchar *strplchr(gchar *source);
static char *gen_md5(gchar *buffer);
CamelMimePart *file_to_message(const char *name);
@@ -1798,8 +1799,6 @@
GString *content;
xmlChar *buff = NULL;
int size = 0;
- unsigned char *buffer2 = NULL;
- int inlen, utf8len;
CamelDataWrapper *dw = camel_data_wrapper_new();
CamelMimePart *part = camel_mime_part_new();
CamelStream *fstream = camel_stream_mem_new();
@@ -1878,11 +1877,8 @@
goto out;
}
- inlen = content->len;
- utf8len = 5*inlen+1;
- buffer2 = g_malloc(utf8len);
- UTF8ToHtml(buffer2, &utf8len, content->str, &inlen);
- xmlDoc *src = (xmlDoc *)parse_html(addr, buffer2, strlen(buffer2));
+ gchar *tmp = decode_utf8_entities(content->str);
+ xmlDoc *src = (xmlDoc *)parse_html(addr, tmp, strlen(tmp));
if (src)
{
@@ -1901,8 +1897,7 @@
"<tr><td bgcolor=\"#ffffff\"><b><font size=+1><a href=%s>%s</a></font></b></td></tr>", website, subject);
camel_stream_printf(fstream, "</head></html><tr><td bgcolor=\"#ffffff\">%s</td>", buff);
camel_stream_printf(fstream, "</tr></table></td></tr></table>");
- if (buff)
- g_free(buff);
+
g_free(subject);
g_string_free(content, 1);
}
@@ -1921,13 +1916,11 @@
// //then again this does not work in evo > 2.12 perhaps is gtkhtml related
// buff = buffer->data;
//#else
- inlen = buffer->len;
- utf8len = 5*inlen+1;
- buffer2 = g_malloc(utf8len);
- UTF8ToHtml(buffer2, &utf8len, buffer->data, &inlen);
+/// gchar *tmp = decode_utf8_entities(buffer->data);
+ buff=g_strdup(buffer->data);
g_byte_array_free (buffer, 1);
// char *buff = decode_html_entities(buffer2);
- buff=g_strdup(buffer2);
+/// buff=tmp;
camel_stream_printf (fstream,
"<table border=1 width=\"100%%\" cellpadding=0 cellspacing=0><tr><td bgcolor=#ffffff>");
@@ -1951,8 +1944,6 @@
out: if (addr)
g_free(addr);
- if (buffer2)
- g_free(buffer2);
return;
fmerror:
camel_stream_printf (t->stream,
@@ -3981,8 +3972,8 @@
g_return_if_fail (str != NULL);
inlen = strlen(str);
- utf8len = 10*inlen+1;
- buffer = g_malloc(utf8len);
+ utf8len = 5*inlen+1;
+ buffer = g_malloc0(utf8len);
UTF8ToHtml(buffer, &utf8len, str, &inlen);
return buffer;
}
@@ -4205,7 +4196,7 @@
ftotal++;
p = decode_html_entities (p);
gchar *tmp = decode_utf8_entities(b);
- g_print("tmp:%s\n\n\n", tmp);
+ g_free(b);
xmlDoc *src = (xmlDoc *)parse_html_sux(tmp, strlen(tmp));
if (src)
@@ -4223,14 +4214,14 @@
}
}
xmlDocDumpMemory(src, &buff, &size);
+ xmlFree(src);
}
+ g_free(tmp);
// tmp = decode_html_entities(buff);
// tmp = xmlEncodeSpecialChars(NULL, buff);
- g_free(b);
- b = buff;
+// b = tmp;
// g_free(b);
-// b=buff;
- g_print("bbb:%s\n\n\n", b);
+ b=buff;
while (gtk_events_pending())
gtk_main_iteration ();
@@ -4278,7 +4269,6 @@
d(g_print("put success()\n"));
tout: if (q) g_free(q);
g_free(b);
-// g_free(p);
if (feed) g_free(feed);
if (encl) g_free(encl);
g_free(link);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]