rpms/claws-mail/devel 101_3.3.1_crasher_bug_1534.patch, NONE, 1.1 102_3.3.1_bug_1533.patch, NONE, 1.1 103_3.3.1_crasher_bug_1515.patch, NONE, 1.1 104_3.3.1_crasher_possible_null_date.patch, NONE, 1.1 105_3.3.1_crasher_ubuntu_bug_204290.patch, NONE, 1.1 106_3.3.1_crasher_ab_crash_on_delete.patch, NONE, 1.1 107_3.3.1_crasher_redhat_bug_431735.patch, NONE, 1.1 201_3.3.1_annoyance_fix_taskbar_blink.patch, NONE, 1.1 202_3.3.1_annoyance_ubuntu_bug_189569.patch, NONE, 1.1 203_3.3.1_annoyance_reedit_filter_redirect.patch, NONE, 1.1 204_3.3.1_annoyance_remove_raw_printf.patch, NONE, 1.1 205_3.3.1_annoyance_strstrip_mime_type.patch, NONE, 1.1 206_3.3.1_annoyance_bug_1555.patch, NONE, 1.1 claws-mail.spec, 1.31, 1.32

Andreas Bierfert (awjb) fedora-extras-commits at redhat.com
Fri Mar 28 23:35:26 UTC 2008


Author: awjb

Update of /cvs/pkgs/rpms/claws-mail/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9069

Modified Files:
	claws-mail.spec 
Added Files:
	101_3.3.1_crasher_bug_1534.patch 102_3.3.1_bug_1533.patch 
	103_3.3.1_crasher_bug_1515.patch 
	104_3.3.1_crasher_possible_null_date.patch 
	105_3.3.1_crasher_ubuntu_bug_204290.patch 
	106_3.3.1_crasher_ab_crash_on_delete.patch 
	107_3.3.1_crasher_redhat_bug_431735.patch 
	201_3.3.1_annoyance_fix_taskbar_blink.patch 
	202_3.3.1_annoyance_ubuntu_bug_189569.patch 
	203_3.3.1_annoyance_reedit_filter_redirect.patch 
	204_3.3.1_annoyance_remove_raw_printf.patch 
	205_3.3.1_annoyance_strstrip_mime_type.patch 
	206_3.3.1_annoyance_bug_1555.patch 
Log Message:
- bugfixes
- upstream patches


101_3.3.1_crasher_bug_1534.patch:

--- NEW FILE 101_3.3.1_crasher_bug_1534.patch ---
Fix bug 1534, Crash when saving to drafts on slow IMAP link and closing the window
during save.

Index: src/compose.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/compose.c,v
retrieving revision 1.382.2.438
retrieving revision 1.382.2.439
diff -u -p -u -r1.382.2.438 -r1.382.2.439
--- src/compose.c	2008/02/15 10:02:07	1.382.2.438
+++ src/compose.c	2008/02/28 16:56:26	1.382.2.439
@@ -8940,10 +8940,18 @@ static void compose_close_cb(gpointer da
 #endif
 
 	if (compose->modified) {
+		if (!g_mutex_trylock(compose->mutex)) {
+			/* we don't want to lock the mutex once it's available,
+			 * because as the only other part of compose.c locking
+			 * it is compose_close - which means once unlocked,
+			 * the compose struct will be freed */
+			debug_print("couldn't lock mutex, probably sending\n");
+			return;
+		}
 		val = alertpanel(_("Discard message"),
 				 _("This message has been modified. Discard it?"),
 				 _("_Discard"), _("_Save to Drafts"), GTK_STOCK_CANCEL);
-
+		g_mutex_unlock(compose->mutex);
 		switch (val) {
 		case G_ALERTDEFAULT:
 			if (prefs_common.autosave)

102_3.3.1_bug_1533.patch:

--- NEW FILE 102_3.3.1_bug_1533.patch ---
fix bug 1533, Can't mark mails as read on some IMAP servers.

Index: src/imap.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/imap.c,v
retrieving revision 1.179.2.212
retrieving revision 1.179.2.213
diff -u -p -u -r1.179.2.212 -r1.179.2.213
--- src/imap.c	2008/02/26 17:58:22	1.179.2.212
+++ src/imap.c	2008/02/28 16:56:28	1.179.2.213
@@ -5184,19 +5184,19 @@ static struct mailimap_flag_list * imap_
 
 	flag_list = mailimap_flag_list_new_empty();
 	
-	if (IMAP_IS_SEEN(flags) && flag_ok(item, IMAP_FLAG_SEEN))
+	if (IMAP_IS_SEEN(flags))
 		mailimap_flag_list_add(flag_list,
 				       mailimap_flag_new_seen());
-	if (IMAP_IS_ANSWERED(flags) && flag_ok(item, IMAP_FLAG_ANSWERED))
+	if (IMAP_IS_ANSWERED(flags))
 		mailimap_flag_list_add(flag_list,
 				       mailimap_flag_new_answered());
-	if (IMAP_IS_FLAGGED(flags) && flag_ok(item, IMAP_FLAG_FLAGGED))
+	if (IMAP_IS_FLAGGED(flags))
 		mailimap_flag_list_add(flag_list,
 				       mailimap_flag_new_flagged());
-	if (IMAP_IS_DELETED(flags) && flag_ok(item, IMAP_FLAG_DELETED))
+	if (IMAP_IS_DELETED(flags))
 		mailimap_flag_list_add(flag_list,
 				       mailimap_flag_new_deleted());
-	if (IMAP_IS_DRAFT(flags) && flag_ok(item, IMAP_FLAG_DRAFT))
+	if (IMAP_IS_DRAFT(flags))
 		mailimap_flag_list_add(flag_list,
 				       mailimap_flag_new_draft());
 	if (IMAP_IS_FORWARDED(flags) && flag_ok(item, IMAP_FLAG_FORWARDED))

103_3.3.1_crasher_bug_1515.patch:

--- NEW FILE 103_3.3.1_crasher_bug_1515.patch ---
Fix bug 1515, crash on failure to write IMAP message to disk.
Index: src/etpan/imap-thread.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/etpan/Attic/imap-thread.c,v
retrieving revision 1.1.4.97
retrieving revision 1.1.4.98
diff -u -p -u -r1.1.4.97 -r1.1.4.98
--- src/etpan/imap-thread.c	2008/02/12 17:24:47	1.1.4.97
+++ src/etpan/imap-thread.c	2008/02/28 16:56:31	1.1.4.98
@@ -2375,11 +2375,13 @@ static void fetch_content_run(struct etp
 		
 		r = fwrite(content, 1, content_size, f);
 		if (r < content_size) {
+			result->error = MAILIMAP_ERROR_FETCH;
 			goto fclose;
 		}
 		
 		r = fclose(f);
 		if (r == EOF) {
+			result->error = MAILIMAP_ERROR_FETCH;
 			goto unlink;
 		}
 		goto free;
@@ -2399,7 +2401,7 @@ static void fetch_content_run(struct etp
 			free(content);
 	}
 	
-	debug_print("imap fetch_content run - end %i\n", r);
+	debug_print("imap fetch_content run - end %i\n", result->error);
 }
 
 int imap_threaded_fetch_content(Folder * folder, uint32_t msg_index,

104_3.3.1_crasher_possible_null_date.patch:

--- NEW FILE 104_3.3.1_crasher_possible_null_date.patch ---
Prevent possible crash when trying to parse NULL dates.

Index: src/procheader.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/procheader.c,v
retrieving revision 1.47.2.46
retrieving revision 1.47.2.47
diff -u -p -u -r1.47.2.46 -r1.47.2.47
--- src/procheader.c	2007/10/15 17:19:38	1.47.2.46
+++ src/procheader.c	2008/03/19 09:40:46	1.47.2.47
@@ -772,6 +772,9 @@ static gint procheader_scan_date_string(
 	gchar zone1[3];
 	gchar zone2[3];
 
+	if (str == NULL)
+		return -1;
+
 	result = sscanf(str, "%10s %d %9s %d %2d:%2d:%2d %5s",
 			weekday, day, month, year, hh, mm, ss, zone);
 	if (result == 8) return 0;

105_3.3.1_crasher_ubuntu_bug_204290.patch:

--- NEW FILE 105_3.3.1_crasher_ubuntu_bug_204290.patch ---
Fix Ubuntu bug 204290, crash on socket close.

Index: src/imap.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/imap.c,v
retrieving revision 1.179.2.214
retrieving revision 1.179.2.215
diff -u -p -u -r1.179.2.214 -r1.179.2.215
--- src/imap.c	2008/03/18 09:06:33	1.179.2.214
+++ src/imap.c	2008/03/26 20:12:18	1.179.2.215
@@ -433,16 +433,6 @@ typedef struct _hashtable_data {
 
 static FolderClass imap_class;
 
-typedef struct _thread_data {
-	gchar *server;
-	gushort port;
-	gboolean done;
-	SockInfo *sock;
-#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
-	SSLType ssl_type;
-#endif
-} thread_data;
-
 FolderClass *imap_get_class(void)
 {
 	if (imap_class.idstr == NULL) {
@@ -535,19 +525,18 @@ static void unlock_session(IMAPSession *
 	}
 }
 
-static void imap_disc_session_destroy(Folder *folder)
+static void imap_disc_session_destroy(IMAPSession *session)
 {
-	RemoteFolder *rfolder = REMOTE_FOLDER(folder);
-	IMAPSession *session = NULL;
+	RemoteFolder *rfolder = REMOTE_FOLDER(IMAP_SESSION(session)->folder);
 	
 	if (!rfolder)
 		return;
-	session = IMAP_SESSION(rfolder->session);
 	if (!session)
 		return;
 	rfolder->session = NULL;
 	log_warning(LOG_PROTOCOL, _("IMAP4 connection broken\n"));
 	SESSION(session)->state = SESSION_DISCONNECTED;
+	SESSION(session)->sock = NULL;
 	session_destroy(SESSION(session));
 }
 
@@ -705,7 +694,7 @@ static void imap_handle_error(Session *s
 	}
 
 	if (session && is_fatal(libetpan_errcode)) {
-		imap_disc_session_destroy(IMAP_SESSION(session)->folder);
+		imap_disc_session_destroy(IMAP_SESSION(session));
 	} else if (session && !is_fatal(libetpan_errcode)) {
 		if (IMAP_SESSION(session)->busy)
 			unlock_session(IMAP_SESSION(session));
@@ -918,6 +907,7 @@ static IMAPSession *imap_reconnect_if_po
 	if (rfolder->session == NULL) {
 		log_warning(LOG_PROTOCOL, _("Connecting to %s failed"),
 			    folder->account->recv_server);
+		SESSION(session)->sock = NULL;
 		session_destroy(SESSION(session));
 		session = NULL;
 	} else {
@@ -929,6 +919,7 @@ static IMAPSession *imap_reconnect_if_po
 			    " disconnected. Reconnecting...\n"),
 			    folder->account->recv_server);
 		SESSION(session)->state = SESSION_DISCONNECTED;
+		SESSION(session)->sock = NULL;
 		session_destroy(SESSION(session));
 		/* Clear folders session to make imap_session_get create
 		   a new session, because of rfolder->session == NULL
@@ -986,6 +977,7 @@ static IMAPSession *imap_session_get(Fol
 		imap_threaded_disconnect(session->folder);
 		rfolder->session = NULL;
 		SESSION(session)->state = SESSION_DISCONNECTED;
+		SESSION(session)->sock = NULL;
 		session_destroy(SESSION(session));
 		rfolder->last_failure = time(NULL);
 		rfolder->connecting = FALSE;
@@ -1136,6 +1128,7 @@ static IMAPSession *imap_session_new(Fol
 		ok = imap_cmd_starttls(session);
 		if (ok != MAILIMAP_NO_ERROR) {
 			log_warning(LOG_PROTOCOL, _("Can't start TLS session.\n"));
+			SESSION(session)->sock = NULL;
 			session_destroy(SESSION(session));
 			return NULL;
 		}
@@ -1204,8 +1197,6 @@ static void imap_session_destroy(Session
 	
 	imap_free_capabilities(IMAP_SESSION(session));
 	g_free(IMAP_SESSION(session)->mbox);
-	sock_close(session->sock);
-	session->sock = NULL;
 }
 
 static gchar *imap_fetch_msg(Folder *folder, FolderItem *item, gint uid)
@@ -5254,6 +5245,7 @@ void imap_disconnect_all(void)
 				IMAPSession *session = (IMAPSession *)folder->session;
 				imap_threaded_disconnect(FOLDER(folder));
 				SESSION(session)->state = SESSION_DISCONNECTED;
+				SESSION(session)->sock = NULL;
 				session_destroy(SESSION(session));
 				folder->session = NULL;
 			}

106_3.3.1_crasher_ab_crash_on_delete.patch:

--- NEW FILE 106_3.3.1_crasher_ab_crash_on_delete.patch ---
Fix crash when deleting a whole adressbook folder.

Index: src/addressbook.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/addressbook.c,v
retrieving revision 1.60.2.111
retrieving revision 1.60.2.114
diff -u -p -u -r1.60.2.111 -r1.60.2.114
--- src/addressbook.c	2007/12/06 17:09:56	1.60.2.111
+++ src/addressbook.c	2008/03/27 17:27:48	1.60.2.114
@@ -1348,6 +1348,11 @@ static void addressbook_edit_clicked(Gtk
 	addressbook_edit_address_cb(NULL, 0, NULL);
 }
 
+static gboolean find_person(AddrSelectItem *item_a, ItemPerson *person)
+{
+	return ((ItemPerson *)item_a->addressItem == person)?0:-1;
+}
+
 /*
 * Delete one or more objects from address list.
 */
@@ -1404,9 +1409,14 @@ static void addressbook_del_clicked(GtkB
 	abf = ds->rawDataSource;
 	if( abf == NULL ) return;
 
+	gtk_clist_freeze(GTK_CLIST(addrbook.clist));
+	g_signal_handlers_block_by_func
+		(G_OBJECT(addrbook.clist),
+		 G_CALLBACK(addressbook_list_row_unselected), NULL);
 
 	/* Process deletions */
 	if( pobj->type == ADDR_DATASOURCE || pobj->type == ADDR_ITEM_FOLDER ) {
+		GList *groups = NULL, *persons = NULL, *emails = NULL;
 		gboolean group_delete = TRUE;
 		/* Items inside folders */
 		list = addrselect_get_list( _addressSelect_ );
@@ -1426,14 +1436,19 @@ static void addressbook_del_clicked(GtkB
 					_("Really delete the group(s)?\n"
 					  "The addresses it contains will not be lost."),
 					GTK_STOCK_CANCEL, "+"GTK_STOCK_DELETE, NULL );
-			if( aval != G_ALERTALTERNATE ) return;
+			if( aval != G_ALERTALTERNATE ) {
+				goto thaw_ret;
+			}
 		} else {
 			aval = alertpanel( _("Delete address(es)"),
 					_("Really delete the address(es)?"),
 					GTK_STOCK_CANCEL, "+"GTK_STOCK_DELETE, NULL );
-			if( aval != G_ALERTALTERNATE ) return;
+			if( aval != G_ALERTALTERNATE ) {
+				goto thaw_ret;
+			}
 		}
-
+	
+	/* first, set lists of groups and persons to remove */
 		node = list;
 		while( node ) {
 			item = node->data;
@@ -1442,9 +1457,41 @@ static void addressbook_del_clicked(GtkB
 			if (!aio)
 				continue;
 			if( aio->type == ADDR_ITEM_GROUP ) {
+				groups = g_list_prepend(groups, item);
+			}
+			else if( aio->type == ADDR_ITEM_PERSON ) {
+				persons = g_list_prepend(persons, item);
+			}
+		}
+	/* then set list of emails to remove *if* they're not children of
+	 * persons to remove */
+		node = list;
+		while( node ) {
+			item = node->data;
+			node = g_list_next( node );
+			aio = ( AddrItemObject * ) item->addressItem;
+			if (!aio)
+				continue;
+			if( aio->type == ADDR_ITEM_EMAIL ) {
+				ItemEMail *sitem = ( ItemEMail * ) aio;
+				ItemPerson *person = ( ItemPerson * ) ADDRITEM_PARENT(sitem);
+				if (!g_list_find_custom(persons, person, (GCompareFunc)(find_person))) {
+					emails = g_list_prepend(emails, item);
+				}
+				/* else, the email will be removed via the parent person */
+			}
+		}
+	/* then delete groups */
+		node = groups;
+		while( node ) {
+			item = node->data;
+			node = g_list_next( node );
+			aio = ( AddrItemObject * ) item->addressItem;
+			if (!aio)
+				continue;
+			if( aio->type == ADDR_ITEM_GROUP ) {
 				ItemGroup *item = ( ItemGroup * ) aio;
 				GtkCTreeNode *nd = NULL;
-
 				nd = addressbook_find_group_node( addrbook.opened, item );
 				item = addrbook_remove_group( abf, item );
 				if( item ) {
@@ -1454,7 +1501,16 @@ static void addressbook_del_clicked(GtkB
 				gtk_ctree_remove_node( ctree, nd );
 				refreshList = TRUE;
 			}
-			else if( aio->type == ADDR_ITEM_PERSON ) {
+		}
+	/* then delete persons */
+		node = persons;
+		while( node ) {
+			item = node->data;
+			node = g_list_next( node );
+			aio = ( AddrItemObject * ) item->addressItem;
+			if (!aio)
+				continue;
+			if( aio->type == ADDR_ITEM_PERSON ) {
 				ItemPerson *item = ( ItemPerson * ) aio;
 				item->status = DELETE_ENTRY; 
 				addressbook_folder_remove_one_person( clist, item );
@@ -1476,17 +1532,30 @@ static void addressbook_del_clicked(GtkB
 					addritem_free_item_person( item );
 				}
 			}
-			else if( aio->type == ADDR_ITEM_EMAIL ) {
-				ItemEMail *item = ( ItemEMail * ) aio;
-				ItemPerson *person = ( ItemPerson * ) ADDRITEM_PARENT(item);
-				item = addrbook_person_remove_email( abf, person, item );
-				if( item ) {
-					addrcache_remove_email(abf->addressCache, item);
-					addritem_free_item_email( item );
+		}
+	/* then delete emails */
+		node = emails;
+		while( node ) {
+			item = node->data;
+			node = g_list_next( node );
+			aio = ( AddrItemObject * ) item->addressItem;
+			if (!aio)
+				continue;
+
+			if( aio->type == ADDR_ITEM_EMAIL ) {
+				ItemEMail *sitem = ( ItemEMail * ) aio;
+				ItemPerson *person = ( ItemPerson * ) ADDRITEM_PARENT(sitem);
+				sitem = addrbook_person_remove_email( abf, person, sitem );
+				if( sitem ) {
+					addrcache_remove_email(abf->addressCache, sitem);
+					addritem_free_item_email( sitem );
 				}
 				addressbook_folder_refresh_one_person( clist, person );
 			}
 		}
+		g_list_free( groups );
+		g_list_free( persons );
+		g_list_free( emails );
 		g_list_free( list );
 		addressbook_list_select_clear();
 		if( refreshList ) {
@@ -1499,7 +1568,7 @@ static void addressbook_del_clicked(GtkB
 		addrbook_set_dirty(abf, TRUE);
 		addressbook_export_to_file();
 		addressbook_list_menu_setup();
-		return;
+		goto thaw_ret;
 	}
 	else if( pobj->type == ADDR_ITEM_GROUP ) {
 		/* Items inside groups */
@@ -1529,12 +1598,16 @@ static void addressbook_del_clicked(GtkB
 		addrbook_set_dirty(abf, TRUE);
 		addressbook_export_to_file();
 		addressbook_list_menu_setup();
-		return;
+		goto thaw_ret;
 	}
 
 	gtk_ctree_node_set_row_data( clist, nodeList, NULL );
 	gtk_ctree_remove_node( clist, nodeList );
-
+thaw_ret:
+	gtk_clist_thaw(GTK_CLIST(addrbook.clist));
+	g_signal_handlers_unblock_by_func
+		(G_OBJECT(addrbook.clist),
+		 G_CALLBACK(addressbook_list_row_unselected), NULL);
 }
 
 static void addressbook_reg_clicked(GtkButton *button, gpointer data)
@@ -3335,9 +3408,7 @@ static void addressbook_edit_address( gp
 static void addressbook_delete_address_cb(gpointer data, guint action,
 					  GtkWidget *widget)
 {
-	gtk_clist_freeze(GTK_CLIST(addrbook.clist));
 	addressbook_del_clicked(NULL, NULL);
-	gtk_clist_thaw(GTK_CLIST(addrbook.clist));
 }
 
 static void close_cb(gpointer data, guint action, GtkWidget *widget)

107_3.3.1_crasher_redhat_bug_431735.patch:

--- NEW FILE 107_3.3.1_crasher_redhat_bug_431735.patch ---
Fix Redhat bug 431735, Crash when starting with /home full.

Index: src/common/prefs.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/common/prefs.c,v
retrieving revision 1.5.2.10
retrieving revision 1.5.2.11
diff -u -p -u -r1.5.2.10 -r1.5.2.11
--- src/common/prefs.c	2007/10/15 17:19:54	1.5.2.10
+++ src/common/prefs.c	2008/03/27 20:12:38	1.5.2.11
@@ -143,7 +143,6 @@ gint prefs_file_close(PrefFile *pfile)
 			if (buf[0] == '[') {
 				if (fputs(buf, fp)  == EOF) {
 					g_warning("failed to write configuration to file\n");
-					fclose(orig_fp);
 					prefs_file_close_revert(pfile);
 				
 					return -1;
@@ -155,7 +154,6 @@ gint prefs_file_close(PrefFile *pfile)
 		while (fgets(buf, sizeof(buf), orig_fp) != NULL)
 			if (fputs(buf, fp) == EOF) {
 				g_warning("failed to write configuration to file\n");
-				fclose(orig_fp);
 				prefs_file_close_revert(pfile);			
 				
 				return -1;
@@ -301,7 +299,6 @@ gint prefs_set_block_label(PrefFile *pfi
 				} else {
 					if (fputs(buf, pfile->fp) == EOF) {
 						g_warning("failed to write configuration to file\n");
-						fclose(pfile->orig_fp);
 						prefs_file_close_revert(pfile);
 						g_free(block_label);
 						
@@ -318,7 +315,6 @@ gint prefs_set_block_label(PrefFile *pfi
 			if (fputs(block_label, pfile->fp) == EOF ||
 			    fputc('\n', pfile->fp) == EOF) {
 				g_warning("failed to write configuration to file\n");
-				fclose(pfile->orig_fp);
 				prefs_file_close_revert(pfile);
 				g_free(block_label);
 						
Index: src/common/xmlprops.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/common/xmlprops.c,v
retrieving revision 1.1.4.8
retrieving revision 1.1.4.9
diff -u -p -u -r1.1.4.8 -r1.1.4.9
--- src/common/xmlprops.c	2007/10/14 18:07:48	1.1.4.8
+++ src/common/xmlprops.c	2008/03/27 20:12:38	1.1.4.9
@@ -215,7 +215,8 @@ static gint xmlprops_write_to( XmlProper
 		
 		props->retVal = MGU_SUCCESS;
 		if( prefs_file_close( pfile ) < 0 ) {
-			goto revert;
+			props->retVal = MGU_ERROR_WRITE;
+			goto out;
 		}
 		goto out;
 revert:

201_3.3.1_annoyance_fix_taskbar_blink.patch:

--- NEW FILE 201_3.3.1_annoyance_fix_taskbar_blink.patch ---
Fix windows handling on startup, so that the Claws Mail taskbar entry doesn't
blink.

Index: src/mainwindow.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/mainwindow.c,v
retrieving revision 1.274.2.235
retrieving revision 1.274.2.236
diff -u -p -u -r1.274.2.235 -r1.274.2.236
--- src/mainwindow.c	2008/03/07 20:05:05	1.274.2.235
+++ src/mainwindow.c	2008/03/07 22:33:54	1.274.2.236
@@ -3132,14 +3132,20 @@ static void mailing_list_compose (GtkWid
 	
 void main_window_popup(MainWindow *mainwin)
 {
+	static gboolean first_start = TRUE;
+
 	if (!GTK_WIDGET_VISIBLE(GTK_WIDGET(mainwin->window)))
 		main_window_show(mainwin);
 
 	if (prefs_common.mainwin_maximised)
 		gtk_window_maximize(GTK_WINDOW(mainwin->window));
-
-	gtkut_window_popup(mainwin->window);
 
+	if (first_start) {
+		gtk_window_deiconify(GTK_WINDOW(mainwin->window));
+		first_start = FALSE;
+	} else {
+		gtkut_window_popup(mainwin->window);
+	}
 	if (prefs_common.layout_mode == SMALL_LAYOUT) {
 		if (mainwin->in_folder) {
 			mainwindow_enter_folder(mainwin);

202_3.3.1_annoyance_ubuntu_bug_189569.patch:

--- NEW FILE 202_3.3.1_annoyance_ubuntu_bug_189569.patch ---
Fix Ubuntu bug 189569, unscrollable folder list when starting minimized to tray.
Index: src/plugins/trayicon/trayicon.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/plugins/trayicon/trayicon.c,v
retrieving revision 1.14.2.61
retrieving revision 1.14.2.62
diff -u -p -u -r1.14.2.61 -r1.14.2.62
--- src/plugins/trayicon/trayicon.c	2008/03/12 06:22:29	1.14.2.61
+++ src/plugins/trayicon/trayicon.c	2008/03/12 17:21:03	1.14.2.62
@@ -276,6 +276,18 @@ static void resize_cb(GtkWidget *widget,
 	update(NULL);
 }
 
+static void fix_folderview_scroll(MainWindow *mainwin)
+{
+	static gboolean fix_done = FALSE;
+
+	if (fix_done)
+		return;
+
+	gtk_widget_queue_resize(mainwin->folderview->ctree);
+
+	fix_done = TRUE;
+}
+
 static gboolean click_cb(GtkWidget * widget,
 		         GdkEventButton * event, gpointer user_data)
 {
@@ -304,6 +316,7 @@ static gboolean click_cb(GtkWidget * wid
 			gtk_window_set_skip_taskbar_hint(GTK_WINDOW(mainwin->window), FALSE);
 			main_window_show(mainwin);
 			gtk_window_present(GTK_WINDOW(mainwin->window));
+			fix_folderview_scroll(mainwin);
         }
 		break;
 	case 3:

203_3.3.1_annoyance_reedit_filter_redirect.patch:

--- NEW FILE 203_3.3.1_annoyance_reedit_filter_redirect.patch ---
Fill in destination correctly when re-editing a re-send filtering rule.

Index: src/prefs_filtering_action.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/prefs_filtering_action.c,v
retrieving revision 1.1.4.49
retrieving revision 1.1.4.50
diff -u -p -u -r1.1.4.49 -r1.1.4.50
--- src/prefs_filtering_action.c	2008/02/12 10:43:52	1.1.4.49
+++ src/prefs_filtering_action.c	2008/03/14 07:40:04	1.1.4.50
@@ -1488,11 +1488,6 @@ static gboolean prefs_filtering_actions_
         action = action_list->data;
         g_slist_free(action_list);
 
-	if (action->destination)
-		gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), action->destination);
-	else
-		gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), "");
-
 	switch(action->type) {
 	case MATCHACTION_MOVE:
 		combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo),
@@ -1605,6 +1600,10 @@ static gboolean prefs_filtering_actions_
 		combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo),
 				     ACTION_ADD_TO_ADDRESSBOOK);
 	}
+	if (action->destination)
+		gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), action->destination);
+	else
+		gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), "");
 
 	filteringaction_free(action); /* XXX: memleak */
 	return TRUE;

204_3.3.1_annoyance_remove_raw_printf.patch:

--- NEW FILE 204_3.3.1_annoyance_remove_raw_printf.patch ---
Remove a raw printf from IMAP fetch code.

Index: src/imap.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/imap.c,v
retrieving revision 1.179.2.213
retrieving revision 1.179.2.214
diff -u -p -u -r1.179.2.213 -r1.179.2.214
--- src/imap.c	2008/02/28 16:56:28	1.179.2.213
+++ src/imap.c	2008/03/18 09:06:33	1.179.2.214
@@ -2894,7 +2894,6 @@ static void *imap_get_uncached_messages_
 				gchar *real_tag = imap_modified_utf7_to_utf8(cur->data, TRUE);
 				gint id = 0;
 				id = tags_get_id_for_str(real_tag);
-				printf("tag %s %d\n", real_tag, id);
 				if (id == -1) {
 					id = tags_add_tag(real_tag);
 					got_alien_tags = TRUE;

205_3.3.1_annoyance_strstrip_mime_type.patch:

--- NEW FILE 205_3.3.1_annoyance_strstrip_mime_type.patch ---
Strip MIME subtype to workaround some sender MUAs bugs. Fixes html display
from Seamonkey.

Index: src/procmime.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/procmime.c,v
retrieving revision 1.49.2.107
retrieving revision 1.49.2.108
diff -u -p -u -r1.49.2.107 -r1.49.2.108
--- src/procmime.c	2008/01/23 17:26:22	1.49.2.107
+++ src/procmime.c	2008/03/21 12:24:27	1.49.2.108
@@ -1767,7 +1767,7 @@ static void procmime_parse_content_type(
 		}
 
 		mimeinfo->type = procmime_get_media_type(type);
-		mimeinfo->subtype = g_strdup(subtype);
+		mimeinfo->subtype = g_strstrip(g_strdup(subtype));
 
 		/* Get mimeinfo->typeparameters */
 		if (params != NULL)

206_3.3.1_annoyance_bug_1555.patch:

--- NEW FILE 206_3.3.1_annoyance_bug_1555.patch ---
Use folder-set account if specified when using right-click->Compose Email 
on an email address.

Index: src/textview.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/textview.c,v
retrieving revision 1.96.2.198
retrieving revision 1.96.2.199
diff -u -p -u -r1.96.2.198 -r1.96.2.199
--- src/textview.c	2008/03/20 17:44:48	1.96.2.198
+++ src/textview.c	2008/03/26 07:33:18	1.96.2.199
@@ -3024,8 +3024,11 @@ static void mail_to_uri_cb (TextView *te
 		folder_item = textview->messageview->msginfo->folder;
 		if (folder_item->prefs && folder_item->prefs->enable_default_account)
 			account = account_find_from_id(folder_item->prefs->default_account);
+		
+		compose_new_with_folderitem(account, folder_item, uri->uri+7);
+	} else {
+		compose_new(account, uri->uri + 7, NULL);
 	}
-	compose_new(account, uri->uri + 7, NULL);
 }
 
 static void copy_mail_to_uri_cb	(TextView *textview, guint action, void *data)


Index: claws-mail.spec
===================================================================
RCS file: /cvs/pkgs/rpms/claws-mail/devel/claws-mail.spec,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- claws-mail.spec	11 Mar 2008 13:42:13 -0000	1.31
+++ claws-mail.spec	28 Mar 2008 23:34:30 -0000	1.32
@@ -1,12 +1,29 @@
 Name:           claws-mail
 Version:        3.3.1
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        The extended version of Sylpheed
 Group:          Applications/Internet
 License:        GPLv3+
 URL:            http://claws-mail.org
 Source0:        http://dl.sf.net/sylpheed-claws/claws-mail-3.3.1.tar.bz2
 Source1:        claws-mail.desktop
+
+# patches which will be in 3.3.2 (see #439382)
+Patch101: 101_3.3.1_crasher_bug_1534.patch
+Patch102: 102_3.3.1_bug_1533.patch
+Patch103: 103_3.3.1_crasher_bug_1515.patch
+Patch104: 104_3.3.1_crasher_possible_null_date.patch
+Patch105: 105_3.3.1_crasher_ubuntu_bug_204290.patch
+Patch106: 106_3.3.1_crasher_ab_crash_on_delete.patch
+Patch107: 107_3.3.1_crasher_redhat_bug_431735.patch
+Patch201: 201_3.3.1_annoyance_fix_taskbar_blink.patch
+Patch202: 202_3.3.1_annoyance_ubuntu_bug_189569.patch
+Patch203: 203_3.3.1_annoyance_reedit_filter_redirect.patch
+Patch204: 204_3.3.1_annoyance_remove_raw_printf.patch
+Patch205: 205_3.3.1_annoyance_strstrip_mime_type.patch
+Patch206: 206_3.3.1_annoyance_bug_1555.patch
+
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires:  flex, bison
 BuildRequires:  glib2-devel >= 2.6.2
@@ -97,6 +114,19 @@
 
 %prep
 %setup -q
+%patch101
+%patch102
+%patch103
+%patch104
+%patch105
+%patch106
+%patch107
+%patch201
+%patch202
+%patch203
+%patch204
+%patch205
+%patch206
 
 %build
 %configure --enable-openssl --enable-ipv6 \
@@ -199,6 +229,11 @@
 %{_libdir}/claws-mail/plugins/bogofilter.so
 
 %changelog
+* Fri Mar 28 2008 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
+- 3.3.1-4
+- apply some upstream patches (#439382)
+- fix #431735
+
 * Tue Mar 11 2008 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
 - 3.3.1-3
 - add obsoletes for deprecated clamav plugin




More information about the fedora-extras-commits mailing list