+2004-11-17 [colin] 0.9.12cvs156
+
+ * src/prefs_account.c
+ * src/prefs_account.h
+ * src/procmsg.c
+ Add an option to let the user choose to store encrypted
+ mail as clear text or encrypted.
+
2004-11-17 [colin] 0.9.12cvs155
* src/compose.c
( cvs diff -u -r 1.33 -r 1.34 src/procmime.h; ) > 0.9.12cvs153.patchset
( cvs diff -u -r 1.11 -r 1.12 src/privacy.c; ) > 0.9.12cvs154.patchset
( cvs diff -u -r 1.455 -r 1.456 src/compose.c; cvs diff -u -r 1.173 -r 1.174 src/procmsg.c; cvs diff -u -r 1.55 -r 1.56 src/toolbar.c; ) > 0.9.12cvs155.patchset
+( cvs diff -u -r 1.120 -r 1.121 src/prefs_account.c; cvs diff -u -r 1.55 -r 1.56 src/prefs_account.h; cvs diff -u -r 1.174 -r 1.175 src/procmsg.c; ) > 0.9.12cvs156.patchset
MICRO_VERSION=12
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=155
+EXTRA_VERSION=156
EXTRA_RELEASE=
if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
GtkWidget *default_privacy_system;
GtkWidget *default_encrypt_chkbtn;
GtkWidget *default_sign_chkbtn;
+ GtkWidget *save_clear_text_chkbtn;
} privacy;
#if USE_OPENSSL
{"default_sign", "FALSE", &tmp_ac_prefs.default_sign, P_BOOL,
&privacy.default_sign_chkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
+ {"save_clear_text", "FALSE", &tmp_ac_prefs.save_encrypted_as_clear_text, P_BOOL,
+ &privacy.save_clear_text_chkbtn,
+ prefs_set_data_from_toggle, prefs_set_toggle},
#if USE_OPENSSL
/* SSL */
GtkWidget *default_privacy_system;
GtkWidget *default_encrypt_chkbtn;
GtkWidget *default_sign_chkbtn;
+ GtkWidget *save_clear_text_chkbtn;
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
_("Encrypt message by default"));
PACK_CHECK_BUTTON (vbox2, default_sign_chkbtn,
_("Sign message by default"));
-
+ PACK_CHECK_BUTTON (vbox2, save_clear_text_chkbtn,
+ _("Save sent encrypted messages as clear text"));
+
privacy.default_privacy_system = default_privacy_system;
privacy.default_encrypt_chkbtn = default_encrypt_chkbtn;
privacy.default_sign_chkbtn = default_sign_chkbtn;
+ privacy.save_clear_text_chkbtn = save_clear_text_chkbtn;
}
#if USE_OPENSSL
gchar *default_privacy_system;
gboolean default_encrypt;
gboolean default_sign;
+ gboolean save_encrypted_as_clear_text;
/* Advanced */
gboolean set_smtpport;
gchar buf[BUFFSIZE];
gint hnum;
PrefsAccount *mailac = NULL, *newsac = NULL;
+ gboolean save_clear_text = TRUE;
+ gchar *tmp_enc_file = NULL;
+
int local = 0;
g_return_val_if_fail(file != NULL, -1);
if (encrypt) {
MimeInfo *mimeinfo;
+ save_clear_text = (mailac != NULL && mailac->save_encrypted_as_clear_text);
+
fclose(fp);
-
+ fp = NULL;
+
mimeinfo = procmime_scan_queue_file(file);
if (!privacy_encrypt(privacy_system, mimeinfo, encrypt_data)
|| (fp = my_tmpfile()) == NULL
return -1;
}
- procmime_mimeinfo_free_all(mimeinfo);
rewind(fp);
+ if (!save_clear_text) {
+ gchar *content = NULL;
+ FILE *tmpfp = get_tmpfile_in_dir(get_mime_tmp_dir(), &tmp_enc_file);
+ if (tmpfp) {
+ fclose(tmpfp);
+
+ content = file_read_stream_to_str(fp);
+ rewind(fp);
+
+ get_tmpfile_in_dir(get_mime_tmp_dir(), &tmp_enc_file);
+ str_write_to_file(content, tmp_enc_file);
+ g_free(content);
+ } else {
+ g_warning("couldn't get tempfile\n");
+ }
+ }
+
+ procmime_mimeinfo_free_all(mimeinfo);
+
filepos = 0;
}
outbox = folder_find_item_from_identifier(savecopyfolder);
if (!outbox)
outbox = folder_get_default_outbox();
-
- procmsg_save_to_outbox(outbox, file, TRUE);
+
+ if (save_clear_text || tmp_enc_file == NULL) {
+ procmsg_save_to_outbox(outbox, file, TRUE);
+ } else {
+ procmsg_save_to_outbox(outbox, tmp_enc_file, FALSE);
+ unlink(tmp_enc_file);
+ free(tmp_enc_file);
+ }
}
if (replymessageid != NULL || fwdmessageid != NULL) {