[evolution-rss] Bug 584154 – custom icon folder hook does not work; do not require libsoup-gnome



commit ae5339cbd7b1bd5f388f21c0e227d8069692c8b3
Author: Lucian Langa <lucilanga gnome org>
Date:   Fri May 29 11:51:18 2009 +0300

    Bug 584154 â?? custom icon folder hook does not work; do not require libsoup-gnome
---
 configure.ac    |   13 +++-
 src/Makefile.am |    1 +
 src/misc.c      |   43 +++++++++++
 src/misc.h      |    2 +
 src/rss.c       |  213 ++++++++++++++++++++++++++++++++++---------------------
 src/rss.h       |    2 -
 6 files changed, 187 insertions(+), 87 deletions(-)

diff --git a/configure.ac b/configure.ac
index 32e51d1..e1b9843 100644
--- a/configure.ac
+++ b/configure.ac
@@ -60,8 +60,7 @@ PKG_CHECK_MODULES(EVOLUTION_RSS_EPLUGIN,
   [libgnome-2.0 >= $LIBGNOME_REQUIRED dnl
    libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED dnl
    gtk+-2.0 >= $LIBGTK_REQUIRED dnl
-   dnl libsoup$SOUP >= $LIBSOUP_REQUIRED dnl
-   libsoup-gnome$SOUP >= $LIBSOUP_REQUIRED dnl
+   libsoup$SOUP >= $LIBSOUP_REQUIRED dnl
    evolution-plugin$EVOLUTION_BASE_VERSION_S >= $EVOLUTION_REQUIRED dnl
    evolution-shell$EVOLUTION_BASE_VERSION_S >= $EVOLUTION_REQUIRED dnl
    libglade-2.0 dnl
@@ -234,7 +233,14 @@ dnl ********************
 SOUP_VERSION=`$PKG_CONFIG --modversion libsoup$SOUP` 
 SOUP_VERSION=`echo $SOUP_VERSION|$AWK -F . '{print $1 * 1000000 + $2 * 1000 + $3}'`
 AC_SUBST(SOUP_VERSION)
-LIBSOUP_LIBS=`$PKG_CONFIG --libs libsoup$SOUP libsoup-gnome$SOUP`
+PKG_CHECK_MODULES([LIBSOUP_GNOME], libsoup-gnome$SOUP, [have_libsoup_gnome=yes], [have_libsoup_gnome=no])
+if test "x$have_libsoup_gnome" == "xyes"; then
+	LIBSOUP_LIBS=`$PKG_CONFIG --libs libsoup$SOUP libsoup-gnome$SOUP`
+	AC_DEFINE_UNQUOTED(HAVE_LIBSOUP_GNOME,1, [libsoup-gnome library present])
+	AC_SUBST(HAVE_LIBSOUP_GNOME)
+else
+	LIBSOUP_LIBS=`$PKG_CONFIG --libs libsoup$SOUP`
+fi
 AC_SUBST(LIBSOUP_LIBS)
 
 dnl ***********
@@ -350,6 +356,7 @@ echo "
 	HTML renders		: $kits
 	Primary HTML render	: $RENDER
 	D-BUS support		: $have_dbus_build
+	libsoup-gnome support	: $have_libsoup_gnome
 	Import feeds		: $import_feeds
 
 	"
diff --git a/src/Makefile.am b/src/Makefile.am
index 9bc74dc..0661c0b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,6 +4,7 @@ INCLUDES =							\
 	-I$(top_srcdir)						\
 	$(RENDER_CFLAGS)					\
 	$(DBUS_CFLAGS)						\
+	$(LIBSOUP_GNOME_CFLAGS)					\
 	-DGETTEXT_PACKAGE="\"$(GETTEXT_PACKAGE)\""		\
 	-DLOCALEDIR="\"$(LOCALEDIR)\""				\
 	-DEVOLUTION_VERSION_STRING=\"$(EVOLUTION_EXEC_VERSION)\"\
diff --git a/src/misc.c b/src/misc.c
index 97a84d6..6cfae6b 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -454,5 +454,48 @@ encode_rfc2047(gchar *str)
         return (gchar *)rfctmp;
 }
 
+//check if feed already exists in feed file
+//and if not add it to the feed file
+gboolean
+feed_is_new(gchar *file_name, gchar *needle)
+{
+        gchar rfeed[513];
+        memset(rfeed, 0, 512);
+        FILE *fr = fopen(file_name, "r");
+        int occ = 0;
+        gchar *tmpneedle = NULL;
+        gchar *port =  get_port_from_uri(needle);
+        if (port && atoi(port) == 80) {
+                gchar *tp = g_strconcat(":", port, NULL);
+                g_free(port);
+                tmpneedle = strextr(needle, tp);
+                g_free(tp);
+        } else
+                tmpneedle = g_strdup(needle);
+
+        if (fr) {
+            while (fgets(rfeed, 511, fr) != NULL) {
+                if (rfeed && strstr(rfeed, tmpneedle)) {
+                        occ=1;
+                        break;
+                }
+            }
+            fclose(fr);
+        }
+        g_free(tmpneedle);
+        return occ;
+}
+
+void
+write_feed_status_line(gchar *file, gchar *needle)
+{
+        FILE *fw = fopen(file, "a+");
+        if (fw) {
+                fputs(g_strstrip(needle), fw);
+                fputs("\n", fw);
+                fclose(fw);
+        }
+}
+
 #endif
 
diff --git a/src/misc.h b/src/misc.h
index 494eb97..a91b9cf 100644
--- a/src/misc.h
+++ b/src/misc.h
@@ -36,5 +36,7 @@ void header_decode_lwsp(const char **in);
 char *decode_token (const char **in);
 gchar *encode_rfc2047(gchar *str);
 void print_hash(gpointer key, gpointer value, gpointer user_data);
+gboolean feed_is_new(gchar *file_name, gchar *needle);
+void write_feed_status_line(gchar *file, gchar *needle);
 
 #endif
diff --git a/src/rss.c b/src/rss.c
index 16cf9bf..d98a083 100644
--- a/src/rss.c
+++ b/src/rss.c
@@ -1549,7 +1549,8 @@ gecko_click(GtkMozEmbed *mozembed, gpointer dom_event, gpointer user_data)
 static gboolean
 org_gnome_rss_browser (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject)
 {
-	struct _org_gnome_rss_controls_pobject *po = (struct _org_gnome_rss_controls_pobject *) pobject;
+	struct _org_gnome_rss_controls_pobject *po = 
+			(struct _org_gnome_rss_controls_pobject *) pobject;
 	GtkWidget *moz;
 
 //        gtk_widget_size_request (efhd->priv->attachment_bar, &req);
@@ -1630,7 +1631,8 @@ org_gnome_rss_browser (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject
 static gboolean
 org_gnome_rss_rfrcomm (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject)
 {
-        struct _org_gnome_rss_controls_pobject *po = (struct _org_gnome_rss_controls_pobject *) pobject;
+        struct _org_gnome_rss_controls_pobject *po = 
+			(struct _org_gnome_rss_controls_pobject *) pobject;
 	GtkWidget *hbox = gtk_hbox_new (FALSE, 0);
 
 	gchar *mem = g_strdup_printf("%s(%d):",  _("Comments"), po->counter);
@@ -1651,7 +1653,8 @@ org_gnome_rss_rfrcomm (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject
 static gboolean
 org_gnome_rss_controls (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject)
 {
-	struct _org_gnome_rss_controls_pobject *po = (struct _org_gnome_rss_controls_pobject *) pobject;
+	struct _org_gnome_rss_controls_pobject *po = 
+			(struct _org_gnome_rss_controls_pobject *) pobject;
 	GtkWidget *vbox = gtk_vbox_new (TRUE, 1);
 	GtkWidget *hbox2 = gtk_hbox_new (FALSE, 0);
 
@@ -1728,7 +1731,8 @@ org_gnome_rss_controls (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobjec
 void
 free_rss_controls(EMFormatHTMLPObject *o)
 {
-	struct _org_gnome_rss_controls_pobject *po = (struct _org_gnome_rss_controls_pobject *) o;
+	struct _org_gnome_rss_controls_pobject *po = 
+			(struct _org_gnome_rss_controls_pobject *) o;
 	if (po->mem)
 		g_free(po->mem);
 	if (po->website)
@@ -1739,14 +1743,17 @@ free_rss_controls(EMFormatHTMLPObject *o)
 void
 pfree(EMFormatHTMLPObject *o)
 {
-	struct _org_gnome_rss_controls_pobject *po = (struct _org_gnome_rss_controls_pobject *) o;
+	struct _org_gnome_rss_controls_pobject *po = 
+			(struct _org_gnome_rss_controls_pobject *) o;
 	gpointer key = g_hash_table_lookup(rf->key_session, po->website);
 	g_print("key sess:%p\n", key);
 	if (key) {
 		g_hash_table_remove(rf->key_session, po->website);
 		soup_session_abort(key);
 	}
-	guint engine = gconf_client_get_int(rss_gconf, GCONF_KEY_HTML_RENDER, NULL);
+	guint engine = gconf_client_get_int(rss_gconf, 
+					GCONF_KEY_HTML_RENDER,
+					NULL);
 #ifdef HAVE_GECKO
 	if (engine == 2) {
 		gtk_moz_embed_stop_load(GTK_MOZ_EMBED(rf->mozembed));
@@ -1825,7 +1832,12 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
         char *classid = g_strdup_printf ("org-gnome-rss-controls-%d",
 			org_gnome_rss_controls_counter_id);
 	org_gnome_rss_controls_counter_id++;
-	pobj = (struct _org_gnome_rss_controls_pobject *) em_format_html_add_pobject ((EMFormatHTML *) t->format, sizeof(*pobj), classid, message, (EMFormatHTMLPObjectFunc)org_gnome_rss_controls);
+	pobj = (struct _org_gnome_rss_controls_pobject *)
+			em_format_html_add_pobject ((EMFormatHTML *) t->format,
+						sizeof(*pobj),
+						classid,
+						message,
+						(EMFormatHTMLPObjectFunc)org_gnome_rss_controls);
 	pobj->is_html = GPOINTER_TO_INT(is_html);
 	pobj->website = g_strstrip(g_strdup((gchar *)website));
 	pobj->stream = t->stream;
@@ -1841,11 +1853,11 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
 				org_gnome_rss_controls_counter_id);
 			org_gnome_rss_controls_counter_id++;
 			pobj = (struct _org_gnome_rss_controls_pobject *) 
-					em_format_html_add_pobject ((EMFormatHTML *) t->format, 
-										sizeof(*pobj), 
-										classid, 
-										message, 
-										(EMFormatHTMLPObjectFunc)org_gnome_rss_browser);
+				em_format_html_add_pobject ((EMFormatHTML *) t->format, 
+									sizeof(*pobj), 
+									classid, 
+									message, 
+									(EMFormatHTMLPObjectFunc)org_gnome_rss_browser);
 			pobj->website = g_strstrip(g_strdup((gchar *)website));
 			pobj->is_html = GPOINTER_TO_INT(is_html);
 			pobj->format = (EMFormatHTML *)t->format;
@@ -1853,11 +1865,14 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
 			pobj->part = t->part;
 			camel_stream_printf (t->stream,
 				"<div style=\"border: solid #%06x 1px; background-color: #%06x; color: #%06x;\">\n",
-				frame_colour & 0xffffff, content_colour & 0xffffff, text_colour & 0xffffff);
+				frame_colour & 0xffffff,
+				content_colour & 0xffffff,
+				text_colour & 0xffffff);
 			camel_stream_printf(t->stream,
 		 		"<table border=0 width=\"100%%\" cellpadding=1 cellspacing=1><tr><td>");
         		camel_stream_printf (t->stream, 
-				"<object classid=%s></object></td></tr></table></div>\n", classid);
+				"<object classid=%s></object></td></tr></table></div>\n",
+				classid);
 			goto out;
 		}
 #endif
@@ -1870,7 +1885,9 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
 			//such proxy error or transport error
 			camel_stream_printf (t->stream,
 				"<div style=\"border: solid #%06x 1px; background-color: #%06x; color: #%06x;\">\n",
-				frame_colour & 0xffffff, content_colour & 0xffffff, text_colour & 0xffffff);
+				frame_colour & 0xffffff,
+				content_colour & 0xffffff,
+				text_colour & 0xffffff);
 			camel_stream_printf(t->stream, 
         			"<div style=\"border: solid 0px; padding: 4px;\">\n");
      			camel_stream_printf (t->stream, "<h3>Error!</h3>");
@@ -1879,23 +1896,28 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
                 	goto out;
         	}
 
+#if 0
 		gchar *tmp = decode_utf8_entities(content->str);
 		xmlDoc *src = (xmlDoc *)parse_html(addr, tmp, strlen(tmp));
 
 		if (src) {
 			htmlDocDumpMemory(src, &buff, &size);
-			d(g_print("htmlDocDumpMemory:%s\n", buff));
+			g_print("htmlDocDumpMemory:%s\n", buff);
 			xmlFree(src);
 		} else
 			goto out;
+#endif
 
 		camel_stream_printf (fstream,
 			"<div style=\"border: solid #%06x 1px; background-color: #%06x; color: #%06x;\">\n",
-			frame_colour & 0xffffff, content_colour & 0xffffff, text_colour & 0xffffff);
+			frame_colour & 0xffffff,
+			content_colour & 0xffffff,
+			text_colour & 0xffffff);
                 camel_stream_printf (fstream,
                         "<div style=\"border: solid 0px; background-color: #%06x; padding: 2px; color: #%06x;\">"
                         "<b><font size=+1><a href=%s>%s</a></font></b></div>",
-			content_colour & 0xEDECEB & 0xffffff, text_colour & 0xffffff,
+			content_colour & 0xEDECEB & 0xffffff,
+			text_colour & 0xffffff,
                         website, subject);
                 if (category)
                         camel_stream_printf(fstream,
@@ -1903,9 +1925,12 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
                                 "<b><font size=-1>Posted under: %s</font></b></div>",
                                 content_colour & 0xEDECEB & 0xffffff, text_colour & 0xffffff,
                                 category);
-                camel_stream_printf (fstream, "<div style=\"border: solid #%06x 0px; background-color: #%06x; padding: 2px; color: #%06x;\">"
+                camel_stream_printf (fstream, 
+				"<div style=\"border: solid #%06x 0px; background-color: #%06x; padding: 2px; color: #%06x;\">"
                                 "%s</div>",
-                        	frame_colour & 0xffffff, content_colour & 0xffffff, text_colour & 0xffffff,
+                        	frame_colour & 0xffffff,
+				content_colour & 0xffffff,
+				text_colour & 0xffffff,
                                 buff);
 
 		g_free(subject);
@@ -1945,11 +1970,14 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
         	if (g_file_test(feed_file, G_FILE_TEST_EXISTS))
 			if ((pixbuf = gdk_pixbuf_new_from_file(feed_file, NULL))) {
                 		camel_stream_printf (fstream,
-                        	"<div style=\"border: solid 0px; background-color: #%06x; padding: 2px; color: #%06x;\">"
-                        	"<img height=16 src=%s>"
-                        	"<b><font size=+1><a href=%s>%s</a></font></b></div>",
-				content_colour & 0xEDECEB & 0xffffff, text_colour & 0xffffff,
-                        	feed_file, website, subject);
+                        		"<div style=\"border: solid 0px; background-color: #%06x; padding: 2px; color: #%06x;\">"
+                        		"<img height=16 src=%s>"
+                        		"<b><font size=+1><a href=%s>%s</a></font></b></div>",
+					content_colour & 0xEDECEB & 0xffffff,
+					text_colour & 0xffffff,
+                        		feed_file,
+					website,
+					subject);
 				g_object_unref(pixbuf);
 				goto render_body;
 			}
@@ -1967,24 +1995,36 @@ render_body:    if (category)
                         camel_stream_printf(fstream,
                                 "<div style=\"border: solid 0px; background-color: #%06x; padding: 2px; color: #%06x;\">"
                                 "<b><font size=-1>Posted under: %s</font></b></div>",
-                                content_colour & 0xEDECEB & 0xffffff, text_colour & 0xffffff,
+                                content_colour & 0xEDECEB & 0xffffff,
+				text_colour & 0xffffff,
                                 category);
-                camel_stream_printf (fstream, "<div style=\"border: solid #%06x 0px; background-color: #%06x; padding: 10px; color: #%06x;\">"
+               	camel_stream_printf (fstream, 
+				"<div style=\"border: solid #%06x 0px; background-color: #%06x; padding: 10px; color: #%06x;\">"
                                 "%s</div>",
-                        	frame_colour & 0xffffff, content_colour & 0xffffff, text_colour & 0xffffff,
+                        	frame_colour & 0xffffff,
+				content_colour & 0xffffff,
+				text_colour & 0xffffff,
                                 buff);
 
-		if (comments && 
-  			gconf_client_get_bool (rss_gconf, GCONF_KEY_SHOW_COMMENTS, NULL)) {
+		if (comments && gconf_client_get_bool (rss_gconf, 
+						GCONF_KEY_SHOW_COMMENTS, 
+						NULL)) {
 			if (commstream) {
 			camel_stream_printf (fstream, 
                         	"<div style=\"border: solid #%06x 0px; background-color: #%06x; padding: 2px; color: #%06x;\">",
-                        	frame_colour & 0xffffff, content_colour & 0xEDECEB & 0xffffff, text_colour & 0xffffff);
+                        		frame_colour & 0xffffff,
+					content_colour & 0xEDECEB & 0xffffff,
+					text_colour & 0xffffff);
 				gchar *result = print_comments(comments, commstream);
 				char *rfrclsid = g_strdup_printf ("org-gnome-rss-controls-%d",
 					org_gnome_rss_controls_counter_id);
 				org_gnome_rss_controls_counter_id++;
-				pobj = (struct _org_gnome_rss_controls_pobject *) em_format_html_add_pobject ((EMFormatHTML *) t->format, sizeof(*pobj), rfrclsid, message, (EMFormatHTMLPObjectFunc)org_gnome_rss_rfrcomm);
+				pobj = (struct _org_gnome_rss_controls_pobject *) 
+							em_format_html_add_pobject ((EMFormatHTML *) t->format, 
+									sizeof(*pobj),
+									rfrclsid,
+									message,
+									(EMFormatHTMLPObjectFunc)org_gnome_rss_rfrcomm);
 				pobj->counter = commcnt;
 				pobj->website = comments;
 				//pobj->object.free = free_rss_controls;
@@ -1993,7 +2033,10 @@ render_body:    if (category)
 				if (result && strlen(result))
 					camel_stream_printf(fstream, 
 					"<div style=\"border: solid #%06x 0px; background-color: #%06x; padding: 10px; color: #%06x;\">%s",
-						frame_colour & 0xffffff, content_colour & 0xffffff, text_colour & 0xffffff, result);
+						frame_colour & 0xffffff, 
+						content_colour & 0xffffff,
+						text_colour & 0xffffff,
+						result);
 				commstream = NULL;
 			} else {
 				fetch_comments(comments, (EMFormatHTML *)t->format);
@@ -2006,7 +2049,9 @@ render_body:    if (category)
 	//this is required for proper charset rendering when html
       	camel_data_wrapper_construct_from_stream(dw, fstream);
       	camel_medium_set_content_object((CamelMedium *)part, dw);
-	em_format_format_text((EMFormat *)t->format, (CamelStream *)t->stream, (CamelDataWrapper *)part);
+	em_format_format_text((EMFormat *)t->format, 
+				(CamelStream *)t->stream,
+				(CamelDataWrapper *)part);
 	camel_object_unref(dw);
 	camel_object_unref(part);
 	camel_object_unref(fstream);
@@ -2055,7 +2100,12 @@ void org_gnome_cooly_folder_icon(void *ep, EMEventTargetCustomIcon *t)
 				ofolder ? ofolder : rss_folder);
 	if (!key)
 		goto normal;
+
+#if (EVOLUTION_VERSION >= 22703)
+	if (!(g_hash_table_lookup(icons, key))) {
+#else
 	if (!(icon = g_hash_table_lookup(icons, key))) {
+#endif
   		if (gconf_client_get_bool (rss_gconf, GCONF_KEY_FEED_ICON, NULL)) {
 			gchar *feed_dir = rss_component_peek_base_directory(mail_component_peek());
         		gchar *feed_file = g_strdup_printf("%s/%s.img", feed_dir, key);
@@ -2064,16 +2114,35 @@ void org_gnome_cooly_folder_icon(void *ep, EMEventTargetCustomIcon *t)
 					// we use gdk_pixbuf_new_from_file to test the validity of the image file
 					pixbuf = gdk_pixbuf_new_from_file(feed_file, NULL);
 					if (pixbuf) {
+#if (EVOLUTION_VERSION >= 22703)
+						icon = e_icon_factory_get_icon (feed_file, GTK_ICON_SIZE_DIALOG);
+						g_hash_table_insert(icons, g_strdup(key), GINT_TO_POINTER(1));
+						gtk_icon_theme_add_builtin_icon(key,
+							GTK_ICON_SIZE_INVALID,
+							icon);
+						gtk_tree_store_set(
+                					t->store, t->iter,
+                					COL_STRING_ICON_NAME, key,
+                					-1);
+#else
 						icon = e_icon_factory_get_icon (feed_file, E_ICON_SIZE_MENU);
 						g_hash_table_insert(icons, g_strdup(key), icon);
 						g_object_set (t->renderer, "pixbuf", icon, "visible", 1, NULL);
+#endif
 						g_object_unref(pixbuf);
 						goto out;
 					}
 			}
 		}
 	} else {
+#if (EVOLUTION_VERSION >= 22703)
+		gtk_tree_store_set (
+			t->store, t->iter,
+			COL_STRING_ICON_NAME, key,
+			-1);
+#else
 		g_object_set (t->renderer, "pixbuf", icon, "visible", 1, NULL);
+#endif
 		goto out;
 	}
 
@@ -2081,11 +2150,25 @@ normal:	if (!initialised) { //move this to startup
 		gchar *iconfile = g_build_filename (EVOLUTION_ICONDIR,
 	                                    "rss-16.png",
 						NULL);
+#if (EVOLUTION_VERSION >= 22703)
+		folder_icon = e_icon_factory_get_icon (iconfile, GTK_ICON_SIZE_MENU);
+		gtk_icon_theme_add_builtin_icon     ("evolution-rss-main",
+				GTK_ICON_SIZE_INVALID,
+				folder_icon);
+#else
 		folder_icon = e_icon_factory_get_icon (iconfile, E_ICON_SIZE_MENU);
+#endif
 		g_free(iconfile);
 		initialised = TRUE;
 	}
+#if (EVOLUTION_VERSION >= 22703)
+	gtk_tree_store_set (
+                t->store, t->iter,
+                COL_STRING_ICON_NAME, "evolution-rss-main",
+                -1);
+#else
 	g_object_set (t->renderer, "pixbuf", folder_icon, "visible", 1, NULL);
+#endif
 out:	g_free(main_folder);
 	return;
 }
@@ -4128,8 +4211,10 @@ file_to_message(const char *filename)
 	camel_mime_part_set_encoding(msg, CAMEL_TRANSFER_ENCODING_BINARY);
 	CamelDataWrapper *content = camel_data_wrapper_new();
 	
-        //file = (CamelStreamFs *)camel_stream_fs_new_with_name(name, O_RDONLY, 0);
-        file = (CamelStreamFs *)camel_stream_fs_new_with_name(filename, O_RDWR|O_CREAT, 0666);
+        file = (CamelStreamFs *)
+			camel_stream_fs_new_with_name(filename, 
+				O_RDWR|O_CREAT,
+				0666);
 
 	if (!file)
 		return NULL;
@@ -4191,49 +4276,6 @@ free_cf(create_feed *CF)
 }
 
 void
-write_feed_status_line(gchar *file, gchar *needle)
-{
-	FILE *fw = fopen(file, "a+");
-	if (fw) {
-		fputs(g_strstrip(needle), fw);
-		fputs("\n", fw);
-		fclose(fw);
-	}
-}
-
-//check if feed already exists in feed file
-//and if not add it to the feed file
-gboolean
-feed_is_new(gchar *file_name, gchar *needle)
-{
-	gchar rfeed[513];
-	memset(rfeed, 0, 512);
-	FILE *fr = fopen(file_name, "r");
-	int occ = 0;
-	gchar *tmpneedle = NULL;
-	gchar *port =  get_port_from_uri(needle);
-	if (port && atoi(port) == 80) {
-		gchar *tp = g_strconcat(":", port, NULL);
-		g_free(port);
-		tmpneedle = strextr(needle, tp);
-		g_free(tp);
-	} else
-		tmpneedle = g_strdup(needle);
-
-	if (fr) {
-	    while (fgets(rfeed, 511, fr) != NULL) {
-		if (rfeed && strstr(rfeed, tmpneedle)) {
-			occ=1;
-			break;
-		}
-	    }
-	    fclose(fr);
-	}
-	g_free(tmpneedle);
-	return occ;
-}
-
-void
 #if LIBSOUP_VERSION < 2003000
 finish_enclosure (SoupMessage *msg, create_feed *user_data)
 #else
@@ -4285,10 +4327,14 @@ finish_image (SoupSession *soup_sess, SoupMessage *msg, CamelStream *user_data)
 	      7 != msg->status_code) { //STATUS_IO_ERROR
 #if LIBSOUP_VERSION < 2003000
 		if (msg->response.body) {
-			camel_stream_write(user_data, msg->response.body, msg->response.length);
+			camel_stream_write(user_data,
+				msg->response.body,
+				msg->response.length);
 #else
 		if (msg->response_body->data) {
-			camel_stream_write(user_data, msg->response_body->data, msg->response_body->length);
+			camel_stream_write(user_data, 
+				msg->response_body->data, 
+				msg->response_body->length);
 #endif
 			camel_stream_close(user_data);
 			camel_object_unref(user_data);
@@ -4361,7 +4407,10 @@ fetch_image(gchar *url, gchar *link)
 		tmpurl = g_strdup(url);
 	}
 	d(g_print("fetch_image() tmpurl:%s\n", tmpurl));
-	gchar *feed_dir = g_build_path("/", rss_component_peek_base_directory(mail_component_peek()), "static", NULL);
+	gchar *feed_dir = g_build_path("/", 
+				rss_component_peek_base_directory(mail_component_peek()),
+				"static",
+				NULL);
 	if (!g_file_test(feed_dir, G_FILE_TEST_EXISTS))
 	    g_mkdir_with_parents (feed_dir, 0755);
 	http_cache = camel_data_cache_new(feed_dir, 0, NULL);
diff --git a/src/rss.h b/src/rss.h
index 7e48a0b..52ec036 100644
--- a/src/rss.h
+++ b/src/rss.h
@@ -304,7 +304,6 @@ gchar *get_real_channel_name(gchar *uri, gchar *failed);
 gchar *fetch_image(gchar *url, gchar *link);
 void create_mail(create_feed *CF);
 void migrate_crc_md5(const char *name, gchar *url);
-void write_feed_status_line(gchar *file, gchar *needle);
 void free_cf(create_feed *CF);
 gchar *generate_safe_chn_name(gchar *chn_name);
 void update_sr_message(void);
@@ -337,7 +336,6 @@ gchar *rss_component_peek_base_directory(MailComponent *component);
 void custom_feed_timeout(void);
 CamelFolder *check_feed_folder(gchar *folder_name);
 gboolean setup_feed(add_feed *feed);
-gboolean feed_is_new(gchar *file_name, gchar *needle);
 gboolean web_auth_dialog(gchar *url);
 gchar *get_main_folder(void);
 gpointer lookup_key(gpointer key);



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