From abbd7a7a3cc83056b2bf76322598698d0f1730e3 Mon Sep 17 00:00:00 2001 From: Paul Mangan Date: Tue, 6 Aug 2002 08:38:29 +0000 Subject: [PATCH 1/1] sync with 0.8.1cvs12 --- ChangeLog | 14 ++++++ ChangeLog.claws | 13 ++++-- ChangeLog.jp | 14 ++++++ configure.in | 2 +- src/compose.c | 40 ++++++++--------- src/passphrase.c | 20 ++++----- src/prefs_account.c | 106 +++++++++++++++++++++----------------------- src/prefs_account.h | 2 +- src/prefs_common.c | 19 ++++---- src/prefs_common.h | 4 +- src/procmsg.c | 19 +++++--- src/rfc2015.c | 2 +- 12 files changed, 143 insertions(+), 112 deletions(-) diff --git a/ChangeLog b/ChangeLog index 86795d52d..a499223da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2002-08-06 + + * src/procmsg.c: procmsg_save_to_outbox(): don't forget to remove + the temporary file when saving from queue. + +2002-08-05 + + * src/compose.c + src/passphrase.[ch] + src/rfc2015.[ch] + src/prefs_account.[ch] + src/prefs_common.[ch]: merged GnuPG stuff from the claws branch. + Modified some messages. + 2002-08-05 * src/textview.c: textview_scan_header(): fixed a memory leak diff --git a/ChangeLog.claws b/ChangeLog.claws index 1100d65e2..4af9e12cd 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,9 +1,14 @@ -2002-08-06 [match] 0.8.0claws21 +2002-08-06 [paul] 0.8.1claws22 + + * sync with 0.8.1cvs12 + see ChangeLog 2002-08-05 and 2002-08-06 + +2002-08-06 [match] 0.8.1claws21 * src/addrclip.c improvements to cut/copy/paste address -2002-08-05 [match] 0.8.0claws20 +2002-08-05 [match] 0.8.1claws20 * src/addritem.[ch] * src/addrcache.c @@ -12,7 +17,7 @@ * src/addressbook.c fixes to improve cut/copy/paste -2002-08-06 [melvin] 0.8.0claws19 +2002-08-06 [melvin] 0.8.1claws19 * src/account.[ch] account_find_all_from_address(): new function that returns the @@ -29,7 +34,7 @@ account and to make a security test on the Delivery-Notification address which should be the same as the Return-Path. -2002-08-06 [thorsten] 0.8.0claws18 +2002-08-06 [thorsten] 0.8.1claws18 * src/mimeview.c attach_all: save unnamed as "noname.%d", diff --git a/ChangeLog.jp b/ChangeLog.jp index 38e332df0..f48170724 100644 --- a/ChangeLog.jp +++ b/ChangeLog.jp @@ -1,3 +1,17 @@ +2002-08-06 + + * src/procmsg.c: procmsg_save_to_outbox(): Á÷¿®ÂÔ¤Á¤«¤éÊݸ¤¹¤ë + ¤È¤­¤Ë°ì»þ¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤¹¤ë¤Î¤ò˺¤ì¤Æ¤¤¤¿¤Î¤ò½¤Àµ¡£ + +2002-08-05 + + * src/compose.c + src/passphrase.[ch] + src/rfc2015.[ch] + src/prefs_account.[ch] + src/prefs_common.[ch]: claws ¥Ö¥é¥ó¥Á¤«¤é GnuPG ´ØÏ¢¤ò¥Þ¡¼¥¸¡£ + ¤¤¤¯¤Ä¤«¤Î¥á¥Ã¥»¡¼¥¸¤ò½¤Àµ¡£ + 2002-08-05 * src/textview.c: textview_scan_header(): ¥á¥â¥ê¥ê¡¼¥¯¤ò½¤Àµ diff --git a/configure.in b/configure.in index 59323adb9..d5a59fe86 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=8 MICRO_VERSION=1 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws21 +EXTRA_VERSION=claws22 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/compose.c b/src/compose.c index 126cdcd8e..f8bf96786 100644 --- a/src/compose.c +++ b/src/compose.c @@ -3042,40 +3042,36 @@ static gint compose_redirect_write_to_file(Compose *compose, const gchar *file) } -#ifdef USE_GPGME -/* - * interfaces to rfc2015 to keep out the prefs stuff there. +#if USE_GPGME +/* interfaces to rfc2015 to keep out the prefs stuff there. * returns 0 on success and -1 on error. */ -static int compose_create_signers_list (Compose *compose, GSList **pkey_list) +static gint compose_create_signers_list(Compose *compose, GSList **pkey_list) { - const char *keyid = NULL; + const gchar *key_id = NULL; GSList *key_list; switch (compose->account->sign_key) { case SIGN_KEY_DEFAULT: *pkey_list = NULL; - return 0; /* nothing to do */ - + return 0; case SIGN_KEY_BY_FROM: - keyid = compose->account->address; + key_id = compose->account->address; break; - case SIGN_KEY_CUSTOM: - keyid = compose->account->sign_key_id; + key_id = compose->account->sign_key_id; break; - default: - g_assert_not_reached (); + break; } - key_list = rfc2015_create_signers_list(keyid); + key_list = rfc2015_create_signers_list(key_id); if (!key_list) { - alertpanel_error("Could not find any key associated with currently " - "selected keyid `%s'!", keyid); - return -1; + alertpanel_error(_("Could not find any key associated with " + "currently selected key id `%s'."), key_id); + return -1; } - + *pkey_list = key_list; return 0; } @@ -3206,16 +3202,16 @@ static gint compose_write_to_file(Compose *compose, const gchar *file, #if USE_GPGME if (compose->use_signing) { GSList *key_list; - - if (compose_create_signers_list(compose, &key_list) == -1 || - rfc2015_sign(file, key_list) < 0) { - + + if (compose_create_signers_list(compose, &key_list) < 0 || + rfc2015_sign(file, key_list) < 0) { unlink(file); return -1; } } if (compose->use_encryption) { - if (rfc2015_encrypt(file, compose->to_list, compose->account->ascii_armored) < 0) { + if (rfc2015_encrypt(file, compose->to_list, + compose->account->ascii_armored) < 0) { unlink(file); return -1; } diff --git a/src/passphrase.c b/src/passphrase.c index 184f349b2..f88d1b9f2 100644 --- a/src/passphrase.c +++ b/src/passphrase.c @@ -49,7 +49,7 @@ static int grab_all = 0; static gboolean pass_ack; -static gchar* lastPass = NULL; +static gchar *last_pass = NULL; static void passphrase_ok_cb(GtkWidget *widget, gpointer data); static void passphrase_cancel_cb(GtkWidget *widget, gpointer data); @@ -269,10 +269,10 @@ create_description (const gchar *desc) static int free_passphrase(gpointer _unused) { - if (lastPass != NULL) { - munlock(lastPass, strlen(lastPass)); - g_free(lastPass); - lastPass = NULL; // necessary? + if (last_pass != NULL) { + munlock(last_pass, strlen(last_pass)); + g_free(last_pass); + last_pass = NULL; g_message("%% passphrase removed"); } @@ -290,9 +290,9 @@ gpgmegtk_passphrase_cb (void *opaque, const char *desc, void **r_hd) /* FIXME: cleanup by looking at *r_hd */ return NULL; } - if (prefs_common.store_passphrase - && strncmp(desc, "TRY_AGAIN", 9) && (lastPass != NULL)) - return g_strdup(lastPass); + if (prefs_common.store_passphrase && last_pass != NULL && + strncmp(desc, "TRY_AGAIN", 9) != 0) + return g_strdup(last_pass); gpgmegtk_set_passphrase_grab (prefs_common.passphrase_grab); g_message ("%% requesting passphrase for `%s': ", desc ); @@ -304,8 +304,8 @@ gpgmegtk_passphrase_cb (void *opaque, const char *desc, void **r_hd) } else { if (prefs_common.store_passphrase) { - lastPass = g_strdup(pass); - if (mlock(lastPass, strlen(lastPass)) == -1) + last_pass = g_strdup(pass); + if (mlock(last_pass, strlen(last_pass)) == -1) g_message("%% locking passphrase failed"); if (prefs_common.store_passphrase_timeout > 0) { diff --git a/src/prefs_account.c b/src/prefs_account.c index 6b1664851..3ab2695df 100644 --- a/src/prefs_account.c +++ b/src/prefs_account.c @@ -126,9 +126,9 @@ static struct Compose { #if USE_GPGME static struct Privacy { - GtkWidget *checkbtn_default_encrypt; - GtkWidget *checkbtn_ascii_armored; - GtkWidget *checkbtn_default_sign; + GtkWidget *default_encrypt_chkbtn; + GtkWidget *default_sign_chkbtn; + GtkWidget *ascii_armored_chkbtn; GtkWidget *defaultkey_radiobtn; GtkWidget *emailkey_radiobtn; GtkWidget *customkey_radiobtn; @@ -202,9 +202,12 @@ static void prefs_account_smtp_auth_type_set_optmenu (PrefParam *pparam); #if USE_GPGME || USE_SSL static void prefs_account_enum_set_data_from_radiobtn (PrefParam *pparam); static void prefs_account_enum_set_radiobtn (PrefParam *pparam); -static void prefs_account_ascii_armored_warning(GtkWidget* widget, - gpointer unused); #endif /* USE_GPGME || USE_SSL */ + +#if USE_GPGME +static void prefs_account_ascii_armored_warning (GtkWidget *widget); +#endif /* USE_GPGME */ + static void prefs_account_crosspost_set_data_from_colormenu(PrefParam *pparam); static void prefs_account_crosspost_set_colormenu(PrefParam *pparam); @@ -368,13 +371,13 @@ static PrefParam param[] = { #if USE_GPGME /* Privacy */ {"default_encrypt", "FALSE", &tmp_ac_prefs.default_encrypt, P_BOOL, - &privacy.checkbtn_default_encrypt, - prefs_set_data_from_toggle, prefs_set_toggle}, - {"ascii_armored", "FALSE", &tmp_ac_prefs.ascii_armored, P_BOOL, - &privacy.checkbtn_ascii_armored, + &privacy.default_encrypt_chkbtn, prefs_set_data_from_toggle, prefs_set_toggle}, {"default_sign", "FALSE", &tmp_ac_prefs.default_sign, P_BOOL, - &privacy.checkbtn_default_sign, + &privacy.default_sign_chkbtn, + prefs_set_data_from_toggle, prefs_set_toggle}, + {"ascii_armored", "FALSE", &tmp_ac_prefs.ascii_armored, P_BOOL, + &privacy.ascii_armored_chkbtn, prefs_set_data_from_toggle, prefs_set_toggle}, {"sign_key", NULL, &tmp_ac_prefs.sign_key, P_ENUM, &privacy.defaultkey_radiobtn, @@ -1462,13 +1465,11 @@ static void prefs_account_privacy_create(void) GtkWidget *vbox1; GtkWidget *frame1; GtkWidget *vbox2; - GtkWidget *frame2; - GtkWidget *vbox3; GtkWidget *hbox1; GtkWidget *label; - GtkWidget *checkbtn_default_encrypt; - GtkWidget *checkbtn_ascii_armored; - GtkWidget *checkbtn_default_sign; + GtkWidget *default_encrypt_chkbtn; + GtkWidget *default_sign_chkbtn; + GtkWidget *ascii_armored_chkbtn; GtkWidget *defaultkey_radiobtn; GtkWidget *emailkey_radiobtn; GtkWidget *customkey_radiobtn; @@ -1479,35 +1480,30 @@ static void prefs_account_privacy_create(void) gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); - PACK_FRAME (vbox1, frame1, _("Default Actions")); - vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); - gtk_container_add (GTK_CONTAINER (frame1), vbox2); - gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8); + gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0); - PACK_CHECK_BUTTON (vbox2, checkbtn_default_encrypt, + PACK_CHECK_BUTTON (vbox2, default_encrypt_chkbtn, _("Encrypt message by default")); - - PACK_CHECK_BUTTON (vbox2, checkbtn_ascii_armored, - _("Plain ASCII-armored")); - gtk_signal_connect(GTK_OBJECT(checkbtn_ascii_armored), "toggled", - prefs_account_ascii_armored_warning, (gpointer)0); - - PACK_CHECK_BUTTON (vbox2, checkbtn_default_sign, + PACK_CHECK_BUTTON (vbox2, default_sign_chkbtn, _("Sign message by default")); + PACK_CHECK_BUTTON (vbox2, ascii_armored_chkbtn, + _("Use ASCII-armored format")); + gtk_signal_connect (GTK_OBJECT (ascii_armored_chkbtn), "toggled", + prefs_account_ascii_armored_warning, NULL); - PACK_FRAME (vbox1, frame2, _("Sign key")); + PACK_FRAME (vbox1, frame1, _("Sign key")); - vbox3 = gtk_vbox_new (FALSE, VSPACING_NARROW); - gtk_widget_show (vbox3); - gtk_container_add (GTK_CONTAINER (frame2), vbox3); - gtk_container_set_border_width (GTK_CONTAINER (vbox3), 8); + vbox2 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox2); + gtk_container_add (GTK_CONTAINER (frame1), vbox2); + gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8); defaultkey_radiobtn = gtk_radio_button_new_with_label (NULL, _("Use default GnuPG key")); gtk_widget_show (defaultkey_radiobtn); - gtk_box_pack_start (GTK_BOX (vbox3), defaultkey_radiobtn, + gtk_box_pack_start (GTK_BOX (vbox2), defaultkey_radiobtn, FALSE, FALSE, 0); gtk_object_set_user_data (GTK_OBJECT (defaultkey_radiobtn), GINT_TO_POINTER (SIGN_KEY_DEFAULT)); @@ -1516,7 +1512,7 @@ static void prefs_account_privacy_create(void) (GTK_RADIO_BUTTON (defaultkey_radiobtn), _("Select key by your email address")); gtk_widget_show (emailkey_radiobtn); - gtk_box_pack_start (GTK_BOX (vbox3), emailkey_radiobtn, + gtk_box_pack_start (GTK_BOX (vbox2), emailkey_radiobtn, FALSE, FALSE, 0); gtk_object_set_user_data (GTK_OBJECT (emailkey_radiobtn), GINT_TO_POINTER (SIGN_KEY_BY_FROM)); @@ -1525,14 +1521,14 @@ static void prefs_account_privacy_create(void) (GTK_RADIO_BUTTON (defaultkey_radiobtn), _("Specify key manually")); gtk_widget_show (customkey_radiobtn); - gtk_box_pack_start (GTK_BOX (vbox3), customkey_radiobtn, + gtk_box_pack_start (GTK_BOX (vbox2), customkey_radiobtn, FALSE, FALSE, 0); gtk_object_set_user_data (GTK_OBJECT (customkey_radiobtn), GINT_TO_POINTER (SIGN_KEY_CUSTOM)); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); - gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); label = gtk_label_new (""); gtk_widget_show (label); @@ -1550,25 +1546,13 @@ static void prefs_account_privacy_create(void) SET_TOGGLE_SENSITIVITY (customkey_radiobtn, customkey_entry); - privacy.checkbtn_default_encrypt = checkbtn_default_encrypt; - privacy.checkbtn_ascii_armored = checkbtn_ascii_armored; - privacy.checkbtn_default_sign = checkbtn_default_sign; - privacy.defaultkey_radiobtn = defaultkey_radiobtn; - privacy.emailkey_radiobtn = emailkey_radiobtn; - privacy.customkey_radiobtn = customkey_radiobtn; - privacy.customkey_entry = customkey_entry; -} - -static void prefs_account_ascii_armored_warning(GtkWidget* widget, - gpointer unused) -{ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)) - && gtk_notebook_get_current_page(GTK_NOTEBOOK(dialog.notebook))) { - alertpanel_message(_("Warning - Privacy/Plain ASCII-armored"), - _("Its not recommend to use the old style plain ASCII-\n" - "armored mode for encrypted messages. It doesn't comply\n" - "with the RFC 3156 - MIME security with OpenPGP.")); - } + privacy.default_encrypt_chkbtn = default_encrypt_chkbtn; + privacy.default_sign_chkbtn = default_sign_chkbtn; + privacy.ascii_armored_chkbtn = ascii_armored_chkbtn; + privacy.defaultkey_radiobtn = defaultkey_radiobtn; + privacy.emailkey_radiobtn = emailkey_radiobtn; + privacy.customkey_radiobtn = customkey_radiobtn; + privacy.customkey_entry = customkey_entry; } #endif /* USE_GPGME */ @@ -2119,6 +2103,18 @@ static void prefs_account_enum_set_radiobtn(PrefParam *pparam) } } +#endif /* USE_GPGME || USE_SSL */ + +#if USE_GPGME +static void prefs_account_ascii_armored_warning(GtkWidget *widget) +{ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)) && + gtk_notebook_get_current_page(GTK_NOTEBOOK(dialog.notebook)) > 0) + alertpanel_warning + (_("It's not recommended to use the old style ASCII-armored\n" + "mode for encrypted messages. It doesn't comply with the\n" + "RFC 3156 - MIME Security with OpenPGP.")); +} #endif /* USE_GPGME */ static void prefs_account_protocol_set_data_from_optmenu(PrefParam *pparam) diff --git a/src/prefs_account.h b/src/prefs_account.h index 22a02a7ab..7e06da46e 100644 --- a/src/prefs_account.h +++ b/src/prefs_account.h @@ -141,8 +141,8 @@ struct _PrefsAccount #if USE_GPGME /* Privacy */ gboolean default_encrypt; - gboolean ascii_armored; gboolean default_sign; + gboolean ascii_armored; SignKeyType sign_key; gchar *sign_key_id; #endif /* USE_GPGME */ diff --git a/src/prefs_common.c b/src/prefs_common.c index b32bc9257..1d3889c38 100644 --- a/src/prefs_common.c +++ b/src/prefs_common.c @@ -694,8 +694,9 @@ static PrefParam param[] = { {"store_passphrase", "FALSE", &prefs_common.store_passphrase, P_BOOL, &privacy.checkbtn_store_passphrase, prefs_set_data_from_toggle, prefs_set_toggle}, - {"store_passphrase_timeout", "0", &prefs_common.store_passphrase_timeout, - P_INT, &privacy.spinbtn_store_passphrase, + {"store_passphrase_timeout", "0", + &prefs_common.store_passphrase_timeout, P_INT, + &privacy.spinbtn_store_passphrase, prefs_set_data_from_spinbtn, prefs_set_spinbtn}, #ifndef __MINGW32__ {"passphrase_grab", "FALSE", &prefs_common.passphrase_grab, P_BOOL, @@ -2472,7 +2473,7 @@ static void prefs_privacy_create(void) PACK_CHECK_BUTTON (hbox_stpass, checkbtn_store_passphrase, _("Store passphrase temporarily")); - label_stpass1 = gtk_label_new(_("- remove after")); + label_stpass1 = gtk_label_new(_("Expire after")); gtk_box_pack_start(GTK_BOX(hbox_stpass), label_stpass1, FALSE, FALSE, 0); spinbtn_store_passphrase_adj = gtk_adjustment_new(0, 0, 1440, 1, 5, 5); @@ -2492,7 +2493,7 @@ static void prefs_privacy_create(void) gtk_box_pack_start(GTK_BOX(vbox2), hbox_stpassinfo, FALSE, FALSE, 0); label_stpassinfo = gtk_label_new - (_("(A setting of '0' will store the passphrase\n" + (_("(Setting to '0' will store the passphrase" " for the whole session)")); gtk_box_pack_start (GTK_BOX (hbox_stpassinfo), label_stpassinfo, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label_stpassinfo), GTK_JUSTIFY_LEFT); @@ -2532,15 +2533,15 @@ static void prefs_privacy_create(void) gtk_widget_set_sensitive(optmenu, FALSE); privacy.checkbtn_auto_check_signatures - = checkbtn_auto_check_signatures; + = checkbtn_auto_check_signatures; privacy.checkbtn_gpg_signature_popup - = checkbtn_gpg_signature_popup; + = checkbtn_gpg_signature_popup; privacy.checkbtn_store_passphrase = checkbtn_store_passphrase; privacy.spinbtn_store_passphrase = spinbtn_store_passphrase; privacy.spinbtn_store_passphrase_adj = spinbtn_store_passphrase_adj; - privacy.checkbtn_passphrase_grab = checkbtn_passphrase_grab; - privacy.checkbtn_gpg_warning = checkbtn_gpg_warning; - privacy.optmenu_default_signkey = optmenu; + privacy.checkbtn_passphrase_grab = checkbtn_passphrase_grab; + privacy.checkbtn_gpg_warning = checkbtn_gpg_warning; + privacy.optmenu_default_signkey = optmenu; } static void diff --git a/src/prefs_common.h b/src/prefs_common.h index 1e5e13fb2..bd36ea9c2 100644 --- a/src/prefs_common.h +++ b/src/prefs_common.h @@ -200,12 +200,12 @@ struct _PrefsCommon GList *mime_open_cmd_history; -#if USE_GPGME +#if USE_GPGME /* Privacy */ gboolean auto_check_signatures; gboolean gpg_signature_popup; gboolean store_passphrase; - gint store_passphrase_timeout; + gint store_passphrase_timeout; gboolean passphrase_grab; gchar *default_signkey; gboolean gpg_warning; diff --git a/src/procmsg.c b/src/procmsg.c index 2515c2917..d787a3164 100644 --- a/src/procmsg.c +++ b/src/procmsg.c @@ -898,7 +898,7 @@ gint procmsg_save_to_outbox(FolderItem *outbox, const gchar *file, FILE *fp; MsgInfo *msginfo; - debug_print(_("saving sent message...\n")); + debug_print("saving sent message...\n"); if (!outbox) outbox = folder_get_default_outbox(); @@ -927,13 +927,18 @@ gint procmsg_save_to_outbox(FolderItem *outbox, const gchar *file, fputs(buf, outfp); fclose(outfp); fclose(fp); - Xstrdup_a(file, tmp, return -1); - } - if ((num = folder_item_add_msg(outbox, file, FALSE)) < 0) { - g_warning(_("can't save message\n")); - if(is_queued) { - unlink(file); + folder_item_scan(outbox); + if ((num = folder_item_add_msg(outbox, tmp, TRUE)) < 0) { + g_warning("can't save message\n"); + unlink(tmp); + return -1; + } + } else { + folder_item_scan(outbox); + if ((num = folder_item_add_msg(outbox, file, FALSE)) < 0) { + g_warning("can't save message\n"); + return -1; } return -1; } diff --git a/src/rfc2015.c b/src/rfc2015.c index 58cf3a14d..57409fe0f 100644 --- a/src/rfc2015.c +++ b/src/rfc2015.c @@ -1022,7 +1022,7 @@ find_xml_tag (const char *xml, const char *tag) /* * Extract the micalg from an GnupgOperationInfo XML container. */ -const char * +static char * extract_micalg (char *xml) { const char *s; -- 2.25.1