Re: [PATCH] Deleting messages
- From: Peter Bloomfield <PeterBloomfield MindSpring com>
- To: balsa-list gnome org
- Subject: Re: [PATCH] Deleting messages
- Date: Wed, 16 Jan 2002 16:24:48 -0500
This morning's patch results in a segfault when closing an IMAP folder
with deleted messages (shown or hidden). This *replacement* patch fixes
the segfault, and also plugs a memory leak in the existing code.
diff -u -r1.38 balsa.sgml
--- help/C/balsa.sgml 2001/12/06 22:51:11 1.38
+++ help/C/balsa.sgml 2002/01/16 21:06:31
@@ -2564,6 +2564,51 @@
</listitem>
</varlistentry>
+<varlistentry>
+ <term><guilabel>Automatically close mailbox</guilabel></term>
+ <listitem>
+ <para>&Balsa; can close mailboxes for you after the specified time.</para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term><guilabel>Drag-and-drop moves messages by default</guilabel></term>
+ <listitem>
+ <para>When you drag and drop a message to a destination mailbox, it
+ may be moved (not leaving a copy in the source mailbox) or copied.
+ This option sets the default action; use the Control key when
+ dragging to have the opposite effect.</para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term><guilabel>Delete immediately</guilabel></term> <listitem>
+ <para>When you delete a message or messages, &Balsa; can either
+ delete them immediately, or flag them as deleted and actually delete
+ them later. If they are flagged as deleted, you can then go back
+ and Undelete them if you change your mind. Messages flagged as
+ deleted are removed when you close the mailbox or when you commit
+ changes.</para>
+ <para>This option has no effect on trashing messages by moving
+ them to the Trash folder;
+ a message may always be retrieved from the Trash,
+ until the Trash folder is emptied.</para>
+ <para>You should be aware that &Balsa; <emphasis>moves</emphasis>
+ a message from one mailbox to another by first making a copy
+ in the new mailbox, and then deleting the original.
+ This option affects the handling of such a deleted message,
+ as well as messages that you delete explicitly.</para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term><guilabel>Hide deleted messages</guilabel></term> <listitem>
+ <para>When &Balsa; is not deleting messages immediately, you can use
+ this option to control whether deleted messages are shown in the
+ mailbox index.</para>
+ </listitem>
+</varlistentry>
+
</variablelist>
</sect1>
Index: libbalsa/mailbox.c
===================================================================
RCS file: /cvs/gnome/balsa/libbalsa/mailbox.c,v
retrieving revision 1.187
diff -u -r1.187 mailbox.c
--- libbalsa/mailbox.c 2002/01/12 23:06:26 1.187
+++ libbalsa/mailbox.c 2002/01/16 21:06:31
@@ -372,6 +372,8 @@
g_return_if_fail(mailbox != NULL);
g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
+ /* remove messages flagged for deleting, before closing: */
+ libbalsa_mailbox_sync_backend(mailbox);
gtk_signal_emit(GTK_OBJECT(mailbox),
libbalsa_mailbox_signals[CLOSE_MAILBOX]);
if(mailbox->open_ref <1) mailbox->context = NULL;
@@ -598,19 +600,19 @@
{
msg->mailbox = mailbox;
- gtk_signal_connect(GTK_OBJECT(msg), "clear-flags",
+ gtk_signal_connect_after(GTK_OBJECT(msg), "clear-flags",
GTK_SIGNAL_FUNC(message_status_changed_cb),
mailbox);
- gtk_signal_connect(GTK_OBJECT(msg), "set-answered",
+ gtk_signal_connect_after(GTK_OBJECT(msg), "set-answered",
GTK_SIGNAL_FUNC(message_status_changed_cb),
mailbox);
- gtk_signal_connect(GTK_OBJECT(msg), "set-read",
+ gtk_signal_connect_after(GTK_OBJECT(msg), "set-read",
GTK_SIGNAL_FUNC(message_status_changed_cb),
mailbox);
- gtk_signal_connect(GTK_OBJECT(msg), "set-deleted",
+ gtk_signal_connect_after(GTK_OBJECT(msg), "set-deleted",
GTK_SIGNAL_FUNC(message_status_changed_cb),
mailbox);
- gtk_signal_connect(GTK_OBJECT(msg), "set-flagged",
+ gtk_signal_connect_after(GTK_OBJECT(msg), "set-flagged",
GTK_SIGNAL_FUNC(message_status_changed_cb),
mailbox);
@@ -647,8 +649,14 @@
for (msgno = mailbox->messages; mailbox->new_messages > 0; msgno++) {
cur = CLIENT_CONTEXT(mailbox)->hdrs[msgno];
- if (!(cur && cur->env && cur->content && !cur->deleted))
+ if (!(cur && cur->env && cur->content)) {
+ /* we'd better decrement mailbox->new_messages, in case this
+ * defective message was included in the count; otherwise,
+ * we'll increment msgno too far, and try to access an
+ * invalid header */
+ mailbox->new_messages--;
continue;
+ }
if (cur->env->subject &&
!strcmp(cur->env->subject,
@@ -733,6 +741,8 @@
return FALSE;
LOCK_MAILBOX_RETURN_VAL(mailbox, FALSE);
+ /* remove messages flagged for deleting, before committing: */
+ libbalsa_mailbox_sync_backend_real(mailbox);
libbalsa_lock_mutt();
index_hint = CLIENT_CONTEXT(mailbox)->vcount;
rc = mx_sync_mailbox(CLIENT_CONTEXT(mailbox), &index_hint);
@@ -825,6 +835,7 @@
gtk_object_unref(GTK_OBJECT(current_message));
mailbox->message_list =
g_list_remove_link(mailbox->message_list, message_list);
+ g_list_free_1(message_list);
}
message_list = tmp_message_list;
Index: libbalsa/mailbox_imap.c
===================================================================
RCS file: /cvs/gnome/balsa/libbalsa/mailbox_imap.c,v
retrieving revision 1.52
diff -u -r1.52 mailbox_imap.c
--- libbalsa/mailbox_imap.c 2002/01/07 10:22:28 1.52
+++ libbalsa/mailbox_imap.c 2002/01/16 21:06:32
@@ -637,8 +637,7 @@
mailbox->messages = 0;
mailbox->total_messages = 0;
mailbox->unread_messages = 0;
- mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount
- - CLIENT_CONTEXT(mailbox)->deleted;
+ mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount;
LIBBALSA_MAILBOX_IMAP(mailbox)->uid_validity =
((IMAP_DATA*)CLIENT_CONTEXT(mailbox)->data)->uid_validity;
if(mailbox->open_ref == 0)
Index: libbalsa/mailbox_local.c
===================================================================
RCS file: /cvs/gnome/balsa/libbalsa/mailbox_local.c,v
retrieving revision 1.36
diff -u -r1.36 mailbox_local.c
--- libbalsa/mailbox_local.c 2002/01/05 12:48:30 1.36
+++ libbalsa/mailbox_local.c 2002/01/16 21:06:32
@@ -270,8 +270,7 @@
mailbox->messages = 0;
mailbox->total_messages = 0;
mailbox->unread_messages = 0;
- mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount
- - CLIENT_CONTEXT(mailbox)->deleted;
+ mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount;
mailbox->open_ref++;
UNLOCK_MAILBOX(mailbox);
gdk_threads_enter();
Index: src/balsa-app.h
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-app.h,v
retrieving revision 1.165
diff -u -r1.165 balsa-app.h
--- src/balsa-app.h 2002/01/08 23:09:35 1.165
+++ src/balsa-app.h 2002/01/16 21:06:32
@@ -353,6 +353,8 @@
GList *folder_mru;
gint drag_default_is_move;
+ gboolean delete_immediately;
+ gboolean hide_deleted;
} balsa_app;
Index: src/balsa-index.c
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-index.c,v
retrieving revision 1.220
diff -u -r1.220 balsa-index.c
--- src/balsa-index.c 2002/01/05 12:48:33 1.220
+++ src/balsa-index.c 2002/01/16 21:06:33
@@ -705,6 +705,11 @@
g_return_if_fail(bindex != NULL);
g_return_if_fail(message != NULL);
+
+ if (balsa_app.hide_deleted
+ && message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+ return;
+
mailbox = bindex->mailbox_node->mailbox;
if (mailbox == NULL)
@@ -1111,6 +1116,7 @@
struct BalsaIndexScanInfo *b)
{
GList *list;
+ LibBalsaMessage *message;
for (list = b->selection; list; list = g_list_next(list)) {
if (list->data == node) {
@@ -1126,6 +1132,11 @@
}
/* this node isn't selected */
+ message = LIBBALSA_MESSAGE(gtk_ctree_node_get_row_data(ctree, node));
+ /* skip any DELETED message, as it may really be deleted before we
+ * get a chance to show it */
+ if (message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+ return;
if (b->next == NULL)
/* save it whether or not it's viewable */
@@ -1223,6 +1234,12 @@
ctree = bindex->ctree;
+ if (balsa_app.hide_deleted
+ && message->flags & LIBBALSA_MESSAGE_FLAG_DELETED){
+ balsa_index_del(bindex, message);
+ return;
+ }
+
for(tmp=0; tmp<ELEMENTS(flags) && !(message->flags & flags[tmp].mask);
tmp++);
if(tmp<ELEMENTS(flags))
@@ -1795,7 +1812,8 @@
/* sync with backend AFTER adjacent message is selected.
* Update the style and message counts in the mailbox list */
- libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
balsa_mblist_update_mailbox(balsa_app.mblist,
index->mailbox_node->mailbox);
// balsa_index_redraw_current(index);
@@ -1836,13 +1854,6 @@
libbalsa_message_delete(message, FALSE);
list = list->next;
}
-
-/* XXX - Not sure this is relevant - this function apparently clears
- * the 'Status: D' flag, but doesn't appear to move messages around.
- */
- enable_empty_trash(TRASH_CHECK);
-
- balsa_index_select_next(index);
}
gint
@@ -1903,7 +1914,8 @@
(*cb) (message, new_flag);
}
gtk_clist_thaw(GTK_CLIST(balsa_app.mblist));
- libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
}
/* This function toggles the FLAGGED attribute of a list of messages
@@ -2071,6 +2083,9 @@
GtkRequisition req;
LibBalsaMailbox* mailbox;
unsigned i;
+ GList *list;
+ gboolean any_deleted = FALSE;
+ gboolean any_not_deleted = FALSE;
BALSA_DEBUG();
mailbox = bindex->mailbox_node->mailbox;
@@ -2081,14 +2096,27 @@
create_stock_menu_item(menu, entries[i].icon, _(entries[i].label),
entries[i].func, bindex, TRUE);
- create_stock_menu_item(menu, GNOME_STOCK_MENU_TRASH,
- _("Delete"), balsa_message_delete, bindex,
- !mailbox->readonly);
- if (mailbox == balsa_app.trash) {
+ for (list = GTK_CLIST(bindex->ctree)->selection; list;
+ list = g_list_next(list)) {
+ LibBalsaMessage *message =
+ LIBBALSA_MESSAGE(gtk_ctree_node_get_row_data
+ (GTK_CTREE(bindex->ctree), list->data));
+ if (message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+ any_deleted = TRUE;
+ else
+ any_not_deleted = TRUE;
+ }
+ if (any_not_deleted) {
+ create_stock_menu_item(menu, GNOME_STOCK_MENU_TRASH,
+ _("Delete"), balsa_message_delete, bindex,
+ !mailbox->readonly);
+ }
+ if (any_deleted) {
create_stock_menu_item(menu, GNOME_STOCK_MENU_UNDELETE,
_("Undelete"), balsa_message_undelete,
bindex, !mailbox->readonly);
- } else {
+ }
+ if (mailbox != balsa_app.trash) {
create_stock_menu_item(menu, GNOME_STOCK_MENU_TRASH,
_("Move To Trash"), balsa_message_move_to_trash,
bindex, !mailbox->readonly);
@@ -2231,7 +2259,8 @@
/* select another message depending on where we are in the list */
balsa_index_select_next_threaded(bindex);
- libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
if (mailbox == balsa_app.trash) {
enable_empty_trash(TRASH_FULL);
@@ -2607,4 +2636,38 @@
if (ret)
handler.id = 0;
return ret;
+}
+
+/* balsa_index_hide_deleted:
+ * called from pref manager when balsa_app.hide_deleted is changed.
+ */
+void
+balsa_index_hide_deleted(gboolean hide)
+{
+ gint i;
+ GtkWidget *page;
+
+ for (i = 0; (page =
+ gtk_notebook_get_nth_page(GTK_NOTEBOOK
+ (balsa_app.notebook),
+ i)) != NULL; ++i) {
+ LibBalsaMailbox *mailbox =
+ BALSA_INDEX(page)->mailbox_node->mailbox;
+ GList *list;
+ GList *messages = NULL;
+
+ for (list = mailbox->message_list; list; list = g_list_next(list)) {
+ LibBalsaMessage *message = LIBBALSA_MESSAGE(list->data);
+
+ if (message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+ messages = g_list_prepend(messages, message);
+ }
+
+ if (hide)
+ mailbox_messages_delete_cb(BALSA_INDEX(page), messages);
+ else
+ mailbox_messages_new_cb(BALSA_INDEX(page), messages);
+
+ g_list_free(messages);
+ }
}
Index: src/balsa-index.h
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-index.h,v
retrieving revision 1.42
diff -u -r1.42 balsa-index.h
--- src/balsa-index.h 2001/11/25 22:42:13 1.42
+++ src/balsa-index.h 2002/01/16 21:06:33
@@ -141,6 +141,11 @@
gint, gpointer);
void balsa_index_refresh_size (GtkNotebook *, GtkNotebookPage *,
gint, gpointer);
+
+ /* Change the display of all indexes when balsa_app.hide_deleted is
+ * changed */
+ void balsa_index_hide_deleted(gboolean hide);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Index: src/balsa-mblist.c
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-mblist.c,v
retrieving revision 1.131
diff -u -r1.131 balsa-mblist.c
--- src/balsa-mblist.c 2001/12/19 13:16:37 1.131
+++ src/balsa-mblist.c 2002/01/16 21:06:34
@@ -1542,7 +1542,8 @@
break;
}
- libbalsa_mailbox_sync_backend (orig_mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend (orig_mailbox);
balsa_mblist_update_mailbox(balsa_app.mblist, mailbox);
if (mailbox == balsa_app.trash) {
Index: src/main-window.c
===================================================================
RCS file: /cvs/gnome/balsa/src/main-window.c,v
retrieving revision 1.442
diff -u -r1.442 main-window.c
--- src/main-window.c 2002/01/05 12:48:32 1.442
+++ src/main-window.c 2002/01/16 21:06:35
@@ -3164,7 +3164,8 @@
break;
}
- libbalsa_mailbox_sync_backend (orig_mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend (orig_mailbox);
balsa_mblist_update_mailbox(balsa_app.mblist, orig_mailbox);
if (mailbox == balsa_app.trash) {
Index: src/message-window.c
===================================================================
RCS file: /cvs/gnome/balsa/src/message-window.c,v
retrieving revision 1.40
diff -u -r1.40 message-window.c
--- src/message-window.c 2001/11/04 13:15:38 1.40
+++ src/message-window.c 2002/01/16 21:06:35
@@ -773,7 +773,8 @@
if(bindex != NULL && bindex->ctree != NULL) {
/* select another message depending on where we are in the list */
balsa_index_select_next_threaded(bindex);
- libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
}
balsa_remove_from_folder_mru(mbnode->mailbox->url);
@@ -862,7 +863,8 @@
if(bindex != NULL && bindex->ctree != NULL) {
/* select another message depending on where we are in the list */
balsa_index_select_next_threaded(bindex);
- libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
+ if (balsa_app.delete_immediately)
+ libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
}
balsa_remove_from_folder_mru(mailbox->url);
Index: src/pref-manager.c
===================================================================
RCS file: /cvs/gnome/balsa/src/pref-manager.c,v
retrieving revision 1.187
diff -u -r1.187 pref-manager.c
--- src/pref-manager.c 2002/01/08 23:09:35 1.187
+++ src/pref-manager.c 2002/01/16 21:06:36
@@ -1,5 +1,4 @@
/* -*-mode:c; c-style:k&r; c-basic-offset:4; -*- */
-/* vim:set ts=4 sw=4 ai et: */
/* Balsa E-Mail Client
* Copyright (C) 1997-2001 Stuart Parmenter and others,
* See the file AUTHORS for a list.
@@ -70,8 +69,10 @@
GtkWidget *mdn_reply_clean_menu, *mdn_reply_notclean_menu;
GtkWidget *close_mailbox_auto;
- GtkWidget *drag_default_is_move;
GtkWidget *close_mailbox_minutes;
+ GtkWidget *drag_default_is_move;
+ GtkWidget *delete_immediately;
+ GtkWidget *hide_deleted;
GtkWidget *previewpane;
GtkWidget *alternative_layout;
@@ -386,11 +387,16 @@
gtk_signal_connect(GTK_OBJECT(pui->close_mailbox_auto), "toggled",
GTK_SIGNAL_FUNC(mailbox_timer_modified_cb), property_box);
+ gtk_signal_connect(GTK_OBJECT(pui->close_mailbox_minutes), "changed",
+ GTK_SIGNAL_FUNC(mailbox_timer_modified_cb), property_box);
+
gtk_signal_connect(GTK_OBJECT(pui->drag_default_is_move), "toggled",
GTK_SIGNAL_FUNC(properties_modified_cb), property_box);
- gtk_signal_connect(GTK_OBJECT(pui->close_mailbox_minutes), "changed",
- GTK_SIGNAL_FUNC(mailbox_timer_modified_cb), property_box);
+ gtk_signal_connect(GTK_OBJECT(pui->delete_immediately), "toggled",
+ GTK_SIGNAL_FUNC(properties_modified_cb), property_box);
+ gtk_signal_connect(GTK_OBJECT(pui->hide_deleted), "toggled",
+ GTK_SIGNAL_FUNC(properties_modified_cb), property_box);
gtk_signal_connect(GTK_OBJECT(pui->browse_wrap), "toggled",
GTK_SIGNAL_FUNC(browse_modified_cb), property_box);
@@ -660,11 +666,23 @@
balsa_app.close_mailbox_auto =
GTK_TOGGLE_BUTTON(pui->close_mailbox_auto)->active;
- balsa_app.drag_default_is_move =
- GTK_TOGGLE_BUTTON(pui->drag_default_is_move)->active;
balsa_app.close_mailbox_timeout =
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON
(pui->close_mailbox_minutes));
+ balsa_app.drag_default_is_move =
+ GTK_TOGGLE_BUTTON(pui->drag_default_is_move)->active;
+ balsa_app.delete_immediately =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON
+ (pui->delete_immediately));
+ {
+ gboolean hide =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON
+ (pui->hide_deleted));
+ if (balsa_app.hide_deleted != hide) {
+ balsa_app.hide_deleted = hide;
+ balsa_index_hide_deleted(hide);
+ }
+ }
/* external editor */
g_free(balsa_app.extern_editor_command);
@@ -898,11 +916,18 @@
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pui->close_mailbox_auto),
balsa_app.close_mailbox_auto);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pui->drag_default_is_move),
- balsa_app.drag_default_is_move);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(pui->close_mailbox_minutes),
(float) balsa_app.close_mailbox_timeout);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pui->drag_default_is_move),
+ balsa_app.drag_default_is_move);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+ (pui->delete_immediately),
+ balsa_app.delete_immediately);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+ (pui->hide_deleted),
+ balsa_app.hide_deleted);
+
gtk_widget_set_sensitive(pui->close_mailbox_minutes,
GTK_TOGGLE_BUTTON(pui->close_mailbox_auto)->
active);
@@ -2167,6 +2192,27 @@
gtk_widget_show(pui->drag_default_is_move);
gtk_box_pack_start(GTK_BOX(vbox10), pui->drag_default_is_move,
FALSE, FALSE, 0);
+
+ {
+ GtkWidget *frame = gtk_frame_new(_("Deleting Messages"));
+ GtkWidget *vbox = vbox_in_container(frame);
+
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
+ gtk_box_pack_start(GTK_BOX(vbox9), frame, FALSE, FALSE, 0);
+
+ pui->delete_immediately =
+ gtk_check_button_new_with_label(_("Delete immediately "
+ "and irretrievably"));
+ gtk_box_pack_start(GTK_BOX(vbox), pui->delete_immediately, FALSE,
+ FALSE, 0);
+
+ pui->hide_deleted =
+ gtk_check_button_new_with_label(_("Hide deleted messages"));
+ gtk_box_pack_start(GTK_BOX(vbox), pui->hide_deleted, FALSE,
+ FALSE, 0);
+
+ gtk_widget_show_all(frame);
+ }
return vbox9;
}
Index: src/save-restore.c
===================================================================
RCS file: /cvs/gnome/balsa/src/save-restore.c,v
retrieving revision 1.226
diff -u -r1.226 save-restore.c
--- src/save-restore.c 2002/01/08 23:09:35 1.226
+++ src/save-restore.c 2002/01/16 21:06:36
@@ -614,6 +614,10 @@
/* ... Progress Window Dialog */
balsa_app.pwindow_option = d_get_gint("ProgressWindow", WHILERETR);
balsa_app.drag_default_is_move = d_get_gint("DragDefaultIsMove", 0);
+ balsa_app.delete_immediately =
+ gnome_config_get_bool("DeleteImmediately=false");
+ balsa_app.hide_deleted =
+ gnome_config_get_bool("HideDeleted=false");
gnome_config_pop_prefix();
@@ -902,6 +906,10 @@
gnome_config_set_bool("PageDownMod", balsa_app.pgdownmod);
gnome_config_set_int("PageDownPercent", balsa_app.pgdown_percent);
gnome_config_set_int("DragDefaultIsMove", balsa_app.drag_default_is_move);
+ gnome_config_set_bool("DeleteImmediately",
+ balsa_app.delete_immediately);
+ gnome_config_set_bool("HideDeleted",
+ balsa_app.hide_deleted);
gnome_config_pop_prefix();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]