2004-11-17 [colin] 0.9.12cvs156.1
authorColin Leroy <colin@colino.net>
Wed, 17 Nov 2004 14:16:23 +0000 (14:16 +0000)
committerColin Leroy <colin@colino.net>
Wed, 17 Nov 2004 14:16:23 +0000 (14:16 +0000)
* src/prefs_account.c
* src/prefs_account.h
* src/procmsg.c
Sync with HEAD (add pref to store encrypted mails encrypted)

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/prefs_account.c
src/prefs_account.h
src/procmsg.c

index 562e7fe9ef8b429ad095e6f651e93dcabe8b30d2..7780602c373339a817d30c986f35fa99996b1b43 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-17 [colin]     0.9.12cvs156.1
+
+       * src/prefs_account.c
+       * src/prefs_account.h
+       * src/procmsg.c
+               Sync with HEAD (add pref to store encrypted mails encrypted)
+
 2004-11-17 [paul]      0.9.12cvs155.1
 
        * ChangeLog
index 477889d44469d28adac0e34c9676459469e38c24..68abf0fdfbcbd5e194a8190832ad63c09f884620 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.9 -r 1.1.2.10 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs150.1.patchset
 ( cvs diff -u -r 1.1.2.10 -r 1.1.2.11 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs151.1.patchset
 ( cvs diff -u -r 1.396.2.12 -r 1.396.2.13 ChangeLog; cvs diff -u -r 1.2504.2.32 -r 1.2504.2.33 ChangeLog.claws; cvs diff -u -r 1.391.2.12 -r 1.391.2.13 ChangeLog.jp; cvs diff -u -r 1.42.2.4 -r 1.42.2.5 NEWS; cvs diff -u -r 1.654.2.278 -r 1.654.2.279 configure.ac; cvs diff -u -r 1.382.2.67 -r 1.382.2.68 src/compose.c; cvs diff -u -r 1.18.2.4 -r 1.18.2.5 src/jpilot.c; cvs diff -u -r 1.10.2.2 -r 1.10.2.3 src/privacy.c; cvs diff -u -r 1.49.2.21 -r 1.49.2.22 src/procmime.c; cvs diff -u -r 1.17.2.7 -r 1.17.2.8 src/procmime.h; cvs diff -u -r 1.150.2.15 -r 1.150.2.16 src/procmsg.c; cvs diff -u -r 1.43.2.11 -r 1.43.2.12 src/toolbar.c; cvs diff -u -r 1.1 -r 1.2 src/pixmaps/error.xpm; ) > 0.9.12cvs155.1.patchset
+( cvs diff -u -r 1.105.2.12 -r 1.105.2.13 src/prefs_account.c; cvs diff -u -r 1.49.2.7 -r 1.49.2.8 src/prefs_account.h; cvs diff -u -r 1.150.2.16 -r 1.150.2.17 src/procmsg.c; ) > 0.9.12cvs156.1.patchset
index 34b8811ca1d1b2fd373bc0ea152a8e43296dddcf..0d5f6e0bb91de6833cbe474ac5b565adc62470f0 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=12
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=155
+EXTRA_VERSION=156
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=.1
 
index cb6affbdd70e0e3b5fd2c841187222560e3e98de..83cb8c4646569ac99abdd7844d9d93cfabe86b39 100644 (file)
@@ -140,6 +140,7 @@ static struct Privacy {
        GtkWidget *default_privacy_system;
        GtkWidget *default_encrypt_chkbtn;
        GtkWidget *default_sign_chkbtn;
+       GtkWidget *save_clear_text_chkbtn;
 } privacy;
 
 #if USE_OPENSSL
@@ -409,6 +410,9 @@ static PrefParam param[] = {
        {"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 */
@@ -1689,6 +1693,7 @@ static void prefs_account_privacy_create(void)
        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);
@@ -1715,10 +1720,13 @@ static void prefs_account_privacy_create(void)
                           _("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
index 7f8cce8f9825f4fb81294dffbb922a293e66fd4e..5f71af6250c67eb7213fcf818b53f5df250b2d25 100644 (file)
@@ -131,6 +131,7 @@ struct _PrefsAccount
        gchar    *default_privacy_system;
        gboolean  default_encrypt;
        gboolean  default_sign;
+       gboolean  save_encrypted_as_clear_text;
 
        /* Advanced */
        gboolean  set_smtpport;
index d437e3142a3202339215180ef0320ba255729fd3..dd7ad649c18f39c035559c9d9dcd9c3bbe6346f3 100644 (file)
@@ -1067,6 +1067,9 @@ gint procmsg_send_message_queue(const gchar *file)
        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);
@@ -1132,8 +1135,11 @@ gint procmsg_send_message_queue(const gchar *file)
        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
@@ -1154,9 +1160,27 @@ gint procmsg_send_message_queue(const gchar *file)
                        g_free(encrypt_data);
                        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;
        }
 
@@ -1250,8 +1274,14 @@ gint procmsg_send_message_queue(const gchar *file)
                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) {