evolution-rss r422 - in trunk: . src



Author: lucilanga
Date: Wed Jan  7 20:20:31 2009
New Revision: 422
URL: http://svn.gnome.org/viewvc/evolution-rss?rev=422&view=rev

Log:
2009-01-07  Lucian Langa  <lucilanga gnome org>

* src/rss.c encode_rfc2047() - new function
* src/parser.c - correctly encode sender
(rfc2047)

Modified:
   trunk/ChangeLog
   trunk/src/Makefile.in
   trunk/src/parser.c
   trunk/src/rss.c
   trunk/src/rss.h

Modified: trunk/src/Makefile.in
==============================================================================
--- trunk/src/Makefile.in	(original)
+++ trunk/src/Makefile.in	Wed Jan  7 20:20:31 2009
@@ -383,6 +383,9 @@
 	network-soup.c				\
 	misc.c					\
 	dbus.c					\
+	fetch.c					\
+	file-gio.c				\
+	file-gio.h				\
 	gecko-utils.cpp				\
 	gecko-utils.h				\
 	parser.c				\

Modified: trunk/src/parser.c
==============================================================================
--- trunk/src/parser.c	(original)
+++ trunk/src/parser.c	Wed Jan  7 20:20:31 2009
@@ -738,7 +738,7 @@
 update_channel(const char *chn_name, gchar *url, char *main_date, GArray *item, GtkWidget *progress)
 {
         guint i;
-	gchar *sender = g_strdup_printf("%s <%s>", chn_name, chn_name);
+	gchar *sender;
 	CamelStore *store = mail_component_peek_local_store(NULL);
 	char *d2 = NULL;
 	xmlNodePtr el;
@@ -750,6 +750,11 @@
 	xmlChar *buff = NULL;
 	int size = 0;
 
+	gchar *safes = encode_rfc2047(chn_name);
+
+	sender = g_strdup_printf("%s <%s>", safes, chn_name);
+	g_free(safes);
+
 	migrate_crc_md5(chn_name, url);
 
 	gchar *buf = gen_md5(url);
@@ -788,10 +793,11 @@
 		if (q1)
 		{
         		q1 = g_strdelimit(q1, "><", ' ');
+			gchar *qsafe = encode_rfc2047(q1);
 			if (q3)
 			{
         			q3 = g_strdelimit(q3, "><", ' ');
-               			q = g_strdup_printf("%s <%s>", q1, q3);
+               			q = g_strdup_printf("%s <%s>", qsafe, q3);
 				g_free(q1);
 				if (q2) g_free(q2);
 				g_free(q3);
@@ -802,10 +808,11 @@
         				q2 = g_strdelimit(q2, "><", ' ');
 				else 
 					q2 = g_strdup(q1);
-               			q = g_strdup_printf("%s <%s>", q1, q2);
+               			q = g_strdup_printf("%s <%s>", qsafe, q2);
 				g_free(q1);
 				g_free(q2);
 			}
+			g_free(qsafe);
 		}
 		else	//then RSS or RDF
 		{
@@ -823,8 +830,10 @@
 				//evo will go crazy when it'll encounter ":" character
         			//it probably enforces strict rfc2047 compliance
         			q = g_strdelimit(q, "><:", ' ');
-        			gchar *tmp = g_strdup_printf("\"%s\" <\"%s\">", q, q);
+				gchar *qsafe = encode_rfc2047(q);
+        			gchar *tmp = g_strdup_printf("\"%s\" <\"%s\">", qsafe, q);
 				g_free(q);
+				g_free(qsafe);
 				q = tmp;
 				if (q2) g_free(q2);
 				if (q3) g_free(q3);
@@ -879,25 +888,6 @@
                   gtk_main_iteration ();
 
 		if (!feed_is_new(feed_name, feed)) {
-/*
-		if (fr)
-		{
-		    while (fgets(rfeed, 511, fr) != NULL)
-		    {
-			if (rfeed && strstr(rfeed, feed))
-			{
-				occ=1;
-				break;
-			}
-		    }
-		    (void)fseek(fr, 0L, SEEK_SET);
-		}
-
-		while (gtk_events_pending())
-                  gtk_main_iteration ();
-
-		if (!occ)
-		{*/
 			ftotal++;
 			p =  decode_html_entities (p);
 			gchar *tmp = decode_utf8_entities(b);

Modified: trunk/src/rss.c
==============================================================================
--- trunk/src/rss.c	(original)
+++ trunk/src/rss.c	Wed Jan  7 20:20:31 2009
@@ -3493,12 +3493,8 @@
 
 	addr = camel_internet_address_new(); 
 	d(g_print("date:%s\n", CF->date));
-	tmp = decode_entities(author);
-	gchar *safe_author = camel_header_encode_string(tmp);
-	g_free(tmp);
-   	camel_address_decode(CAMEL_ADDRESS(addr), safe_author);
+   	camel_address_decode(CAMEL_ADDRESS(addr), author);
 	camel_mime_message_set_from(new, addr);
-	g_free(safe_author);
 	camel_object_unref(addr);
 
 	int offset = 0;
@@ -4003,6 +3999,16 @@
 }
 
 gchar *
+encode_rfc2047(gchar *str)
+{
+	gchar *tmp = decode_entities(str);
+        gchar *rfctmp = camel_header_encode_string(tmp);
+        g_free(tmp);
+	return rfctmp;
+}
+
+
+gchar *
 display_doc (RDF *r)
 {
 	xmlNodePtr root = xmlDocGetRootElement (r->cache);

Modified: trunk/src/rss.h
==============================================================================
--- trunk/src/rss.h	(original)
+++ trunk/src/rss.h	Wed Jan  7 20:20:31 2009
@@ -317,6 +317,7 @@
 gchar *rss_component_peek_base_directory(MailComponent *component);
 static void custom_feed_timeout(void);
 void gio_finish_feed (GObject *object, GAsyncResult *res, gpointer user_data);
+gchar *encode_rfc2047(gchar *str);
 
 
 typedef struct FEED_FOLDERS {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]