GtkWidget *draft_folder_entry;
GtkWidget *trash_folder_checkbtn;
GtkWidget *trash_folder_entry;
- GtkWidget *imap_use_trash_checkbtn;
} AdvancedPage;
static BasicPage basic_page;
static char *protocol_names[] = {
N_("POP3"),
- NULL, /* APOP, deprecated */
- NULL, /* RPOP, deprecated */
N_("IMAP4"),
N_("News (NNTP)"),
N_("Local mbox file"),
&advanced_page.trash_folder_entry,
prefs_set_data_from_entry, prefs_set_entry},
- {"imap_use_trash", "TRUE", &tmp_ac_prefs.imap_use_trash, P_BOOL,
- &advanced_page.imap_use_trash_checkbtn,
- prefs_set_data_from_toggle, prefs_set_toggle},
-
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
/* Passwords are handled outside of PrefParams. */
buf = passwd_store_get_account(ac_prefs->account_id,
PWS_ACCOUNT_RECV);
- gtk_entry_set_text(GTK_ENTRY(page->pass_entry), buf);
- g_free(buf);
+ gtk_entry_set_text(GTK_ENTRY(page->pass_entry), buf != NULL ? buf : "");
+ if (buf != NULL) {
+ memset(buf, 0, strlen(buf));
+ g_free(buf);
+ }
}
page->vbox = vbox1;
/* Passwords are handled outside of PrefParams. */
buf = passwd_store_get_account(ac_prefs->account_id,
PWS_ACCOUNT_SEND);
- gtk_entry_set_text(GTK_ENTRY(page->smtp_pass_entry), buf);
- g_free(buf);
+ gtk_entry_set_text(GTK_ENTRY(page->smtp_pass_entry), buf != NULL ? buf : "");
+ if (buf != NULL) {
+ memset(buf, 0, strlen(buf));
+ g_free(buf);
+ }
}
pop_bfr_smtp_tm_set_sens (NULL, NULL);
/* Passwords are handled outside of PrefParams. */
buf = passwd_store_get_account(ac_prefs->account_id,
PWS_ACCOUNT_RECV_CERT);
- gtk_entry_set_text(GTK_ENTRY(page->entry_in_cert_pass), buf);
- g_free(buf);
+ gtk_entry_set_text(GTK_ENTRY(page->entry_in_cert_pass), buf != NULL ? buf : "");
+ if (buf != NULL) {
+ memset(buf, 0, strlen(buf));
+ g_free(buf);
+ }
+
buf = passwd_store_get_account(ac_prefs->account_id,
PWS_ACCOUNT_SEND_CERT);
- gtk_entry_set_text(GTK_ENTRY(page->entry_out_cert_pass), buf);
- g_free(buf);
+ gtk_entry_set_text(GTK_ENTRY(page->entry_out_cert_pass), buf != NULL ? buf : "");
+ if (buf != NULL) {
+ memset(buf, 0, strlen(buf));
+ g_free(buf);
+ }
}
page->vbox = vbox1;
GtkWidget *draft_folder_entry;
GtkWidget *trash_folder_checkbtn;
GtkWidget *trash_folder_entry;
- GtkWidget *imap_use_trash_checkbtn;
GtkSizeGroup *size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
#define PACK_HBOX(hbox) \
gtk_box_pack_start (GTK_BOX (hbox1), entry_tunnelcmd, TRUE, TRUE, 0);
SET_TOGGLE_SENSITIVITY (checkbtn_tunnelcmd, entry_tunnelcmd);
#endif
- PACK_HBOX (hbox1);
- PACK_CHECK_BUTTON (hbox1, imap_use_trash_checkbtn,
- _("Move deleted mails to trash and expunge immediately"));
- CLAWS_SET_TIP(imap_use_trash_checkbtn,
- _("Moves deleted mails to trash instead of using the \\Deleted flag without expunging."));
#if !GTK_CHECK_VERSION(3, 0, 0)
PACK_CHECK_BUTTON (hbox1, checkbtn_crosspost,
page->draft_folder_entry = draft_folder_entry;
page->trash_folder_checkbtn = trash_folder_checkbtn;
page->trash_folder_entry = trash_folder_entry;
- page->imap_use_trash_checkbtn = imap_use_trash_checkbtn;
tmp_ac_prefs = *ac_prefs;
if (id < 0) g_warning("wrong account id: %d", id);
ac_prefs->account_id = id;
- if (ac_prefs->protocol == A_APOP) {
- debug_print("converting protocol A_APOP to new prefs.\n");
- ac_prefs->protocol = A_POP3;
- ac_prefs->use_apop_auth = TRUE;
- }
-
if (privacy_prefs != NULL) {
strv = g_strsplit(privacy_prefs, ",", 0);
for (cur = strv; *cur != NULL; cur++) {
privacy_prefs = NULL;
}
+ gboolean passwords_migrated = FALSE;
+
if (ac_prefs->passwd != NULL && strlen(ac_prefs->passwd) > 1) {
passwd_store_set_account(ac_prefs->account_id,
PWS_ACCOUNT_RECV, ac_prefs->passwd, TRUE);
+ passwords_migrated = TRUE;
}
if (ac_prefs->smtp_passwd != NULL && strlen(ac_prefs->smtp_passwd) > 1) {
passwd_store_set_account(ac_prefs->account_id,
PWS_ACCOUNT_SEND, ac_prefs->smtp_passwd, TRUE);
+ passwords_migrated = TRUE;
}
if (ac_prefs->in_ssl_client_cert_pass != NULL
&& strlen(ac_prefs->in_ssl_client_cert_pass) > 1) {
passwd_store_set_account(ac_prefs->account_id,
PWS_ACCOUNT_RECV_CERT, ac_prefs->in_ssl_client_cert_pass, TRUE);
+ passwords_migrated = TRUE;
}
if (ac_prefs->out_ssl_client_cert_pass != NULL
&& strlen(ac_prefs->out_ssl_client_cert_pass) > 1) {
passwd_store_set_account(ac_prefs->account_id,
PWS_ACCOUNT_SEND_CERT, ac_prefs->out_ssl_client_cert_pass, TRUE);
+ passwords_migrated = TRUE;
}
+ /* Write out password store to file immediately after their move
+ * from accountrc there. */
+ if (passwords_migrated)
+ passwd_store_write_config();
+
ac_prefs->receive_in_progress = FALSE;
prefs_custom_header_read_config(ac_prefs);
if (prefs_file_close(pfile) < 0)
g_warning("failed to write configuration to file");
+
+ passwd_store_write_config();
}
#undef WRITE_PARAM
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
gtk_widget_show(advanced_page.tunnelcmd_checkbtn);
gtk_widget_show(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_show(advanced_page.imap_use_trash_checkbtn);
gtk_widget_show(receive_page.imapdir_label);
gtk_widget_show(receive_page.imapdir_entry);
gtk_widget_show(receive_page.subsonly_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);