From: Paul Mangan Date: Thu, 28 Feb 2002 10:06:43 +0000 (+0000) Subject: sync with sylpheed 0.7.2cvs21 X-Git-Tag: rel_0_7_4~42 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=24174b5f1c43a74573c859f81563517aedfa2c5c sync with sylpheed 0.7.2cvs21 --- diff --git a/ChangeLog b/ChangeLog index 95098120e..fb2107ac4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,24 @@ +2002-02-28 + + * src/mainwindow.c + src/prefs_common.c: added ISO-8859-15 to the codesets for + displaying and sending. + * src/codeconv.c: conv_codeset_strdup(): return NULL if code + conversion failed, and made caller deal with it. + * src/compose.c: compose_write_to_file(): show error dialog when + code conversion failed, and let user select whether to send it + as is or not. + * src/textview.c: textview_write_line(): show the original string + if code conversion failed. + 2002-02-27 * src/inc.c: get_spool(): fixed a bug that failed to unlock mbox if copy_mbox() failed (thanks to Alexander Kabaev). + * src/prefs_account.[ch]: added separate user ID / password setting + for SMTP AUTH. + * src/send.c: send_message_smtp(): use separate user ID / password + for SMTP AUTH if it is specified. 2002-02-26 diff --git a/ChangeLog.claws b/ChangeLog.claws index 7d82e06cb..70016d62c 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,8 @@ +2002-02-28 [paul] 0.7.2claws19 + + * sync with sylpheed 0.7.2cvs21 + see ChangeLog entries 2002-02-27 and 2002-02-28 + 2002-02-27 [paul] 0.7.2claws18 * sync with sylpheed 0.7.2cvs18 diff --git a/ChangeLog.jp b/ChangeLog.jp index 2160f59a1..6c8aa89dc 100644 --- a/ChangeLog.jp +++ b/ChangeLog.jp @@ -1,7 +1,24 @@ +2002-02-28 + + * src/mainwindow.c + src/prefs_common.c: ɽ¼¨¤ÈÁ÷¿®ÍѤΥ³¡¼¥É¥»¥Ã¥È¤Ë ISO-8859-15 ¤ò + Äɲᣠ+ * src/codeconv.c: conv_codeset_strdup(): ¥³¡¼¥ÉÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤é + NULL ¤òÊÖ¤·¡¢¸Æ¤Ó½Ð¤·Â¦¤¬¤½¤ì¤ËÂн褹¤ë¤è¤¦¤Ë¤·¤¿¡£ + * src/compose.c: compose_write_to_file(): ¥³¡¼¥ÉÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤é + ¥¨¥é¡¼¥À¥¤¥¢¥í¥°¤òɽ¼¨¤·¡¢¤½¤ì¤ò¤½¤Î¤Þ¤ÞÁ÷¿®¤¹¤ë¤«¤É¤¦¤«¤ò¥æ¡¼¥¶ + ¤ËÁªÂò¤µ¤»¤ë¤è¤¦¤Ë¤·¤¿¡£ + * src/textview.c: textview_write_line(): ¥³¡¼¥ÉÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤é + ¸µ¤Îʸ»úÎó¤òɽ¼¨¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£ + 2002-02-27 * src/inc.c: get_spool(): copy_mbox() ¤Ë¼ºÇÔ¤·¤¿¤È¤­ mbox ¤ò¥í¥Ã¥¯ ²ò½ü¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¥Ð¥°¤ò½¤Àµ(Alexander Kabaev ¤µ¤ó thanks)¡£ + * src/prefs_account.[ch]: SMTP AUTH ÍѤÎÊ̤Υ桼¥¶ ID / ¥Ñ¥¹¥ï¡¼¥É + ¤ÎÀßÄê¤òÄɲᣠ+ * src/send.c: send_message_smtp(): SMTP AUTH ÍѤÎÊ̤Υ桼¥¶ ID / + ¥Ñ¥¹¥ï¡¼¥É¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¤½¤ì¤ò»ÈÍÑ¡£ 2002-02-26 diff --git a/configure.in b/configure.in index 032caaf99..9edc57477 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=7 MICRO_VERSION=2 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws18 +EXTRA_VERSION=claws19 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/codeconv.c b/src/codeconv.c index 093054ff2..1ac8f6945 100644 --- a/src/codeconv.c +++ b/src/codeconv.c @@ -378,7 +378,7 @@ gchar *conv_codeset_strdup(const gchar *inbuf, g_warning("code conversion from %s to %s failed\n", codesets && codesets[0] ? codesets[0] : "(unknown)", dest_codeset); - return g_strdup(inbuf); + return NULL; } #else /* !HAVE_LIBJCONV */ if (src_codeset) { diff --git a/src/compose.c b/src/compose.c index 1cf3c818d..dcb199c2e 100644 --- a/src/compose.c +++ b/src/compose.c @@ -2963,11 +2963,20 @@ static gint compose_write_to_file(Compose *compose, const gchar *file, buf = conv_codeset_strdup(chars, src_codeset, out_codeset); if (!buf) { - g_free(chars); - fclose(fp); - unlink(file); - alertpanel_error(_("Can't convert the codeset of the message.")); - return -1; + AlertValue aval; + + aval = alertpanel + (_("Error"), + _("Can't convert the character encoding of the message.\n" + "Send it anyway?"), _("Yes"), _("+No"), NULL); + if (aval != G_ALERTDEFAULT) { + g_free(chars); + fclose(fp); + unlink(file); + return -1; + } else { + buf = g_strdup(chars); + } } } g_free(chars); diff --git a/src/mainwindow.c b/src/mainwindow.c index adf60f4a8..ca5bf68ca 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -532,6 +532,8 @@ static GtkItemFactoryEntry mainwin_entries[] = #endif {N_("/_View/_Code set/Western European (ISO-8859-_1)"), CODESET_ACTION(C_ISO_8859_1)}, + {N_("/_View/_Code set/Western European (ISO-8859-15)"), + CODESET_ACTION(C_ISO_8859_15)}, CODESET_SEPARATOR, #if HAVE_LIBJCONV {N_("/_View/_Code set/Central European (ISO-8859-_2)"), diff --git a/src/prefs_account.c b/src/prefs_account.c index 41361889b..5163ab8eb 100644 --- a/src/prefs_account.c +++ b/src/prefs_account.c @@ -106,14 +106,14 @@ static struct Send { GtkWidget *customhdr_chkbtn; GtkWidget *smtp_auth_chkbtn; - GtkWidget *smtp_userid_entry; - GtkWidget *smtp_passwd_entry; + GtkWidget *smtp_uid_entry; + GtkWidget *smtp_pass_entry; GtkWidget *pop_bfr_smtp_chkbtn; } send; static struct Compose { GtkWidget *sigpath_entry; - + GtkWidget *autocc_chkbtn; GtkWidget *autocc_entry; GtkWidget *autobcc_chkbtn; @@ -283,10 +283,9 @@ static PrefParam param[] = { prefs_set_data_from_toggle, prefs_set_toggle}, {"smtp_user_id", NULL, &tmp_ac_prefs.smtp_userid, P_STRING, - &send.smtp_userid_entry, prefs_set_data_from_entry, prefs_set_entry}, - + &send.smtp_uid_entry, prefs_set_data_from_entry, prefs_set_entry}, {"smtp_password", NULL, &tmp_ac_prefs.smtp_passwd, P_STRING, - &send.smtp_passwd_entry, prefs_set_data_from_entry, prefs_set_entry}, + &send.smtp_pass_entry, prefs_set_data_from_entry, prefs_set_entry}, {"pop_before_smtp", "FALSE", &tmp_ac_prefs.pop_before_smtp, P_BOOL, &send.pop_bfr_smtp_chkbtn, @@ -1104,13 +1103,12 @@ static void prefs_account_send_create(void) GtkWidget *frame3; GtkWidget *vbox3; GtkWidget *smtp_auth_chkbtn; - GtkWidget *hbox2; - GtkWidget *smtp_auth_hbox; + GtkWidget *vbox4; + GtkWidget *hbox_spc; GtkWidget *label; - GtkWidget *uid_label; - GtkWidget *smtp_userid_entry; - GtkWidget *pass_label; - GtkWidget *smtp_passwd_entry; + GtkWidget *smtp_uid_entry; + GtkWidget *smtp_pass_entry; + GtkWidget *vbox_spc; GtkWidget *pop_bfr_smtp_chkbtn; vbox1 = gtk_vbox_new (FALSE, VSPACING); @@ -1155,57 +1153,57 @@ static void prefs_account_send_create(void) PACK_CHECK_BUTTON (vbox3, smtp_auth_chkbtn, _("SMTP Authentication (SMTP AUTH)")); - hbox2 = gtk_hbox_new (FALSE, 8); - gtk_widget_show (hbox2); - gtk_box_pack_start (GTK_BOX (vbox3), hbox2, FALSE, FALSE, 0); + vbox4 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox4); + gtk_box_pack_start (GTK_BOX (vbox3), vbox4, FALSE, FALSE, 0); - label = gtk_label_new (""); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0); - gtk_widget_set_usize (label, 16, -1); + hbox = gtk_hbox_new (FALSE, 8); + gtk_widget_show (hbox); + gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0); + + hbox_spc = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox_spc); + gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0); + gtk_widget_set_usize (hbox_spc, 16, -1); - label = gtk_label_new (_("(Leave User ID empty to use receive server's account information)")); + label = gtk_label_new (_("User ID")); gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox2), label, - FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - smtp_auth_hbox = gtk_hbox_new (FALSE, 8); - gtk_widget_show (smtp_auth_hbox); - gtk_box_pack_start (GTK_BOX (vbox3), smtp_auth_hbox, FALSE, FALSE, 0); + smtp_uid_entry = gtk_entry_new (); + gtk_widget_show (smtp_uid_entry); + gtk_widget_set_usize (smtp_uid_entry, DEFAULT_ENTRY_WIDTH, -1); + gtk_box_pack_start (GTK_BOX (hbox), smtp_uid_entry, TRUE, TRUE, 0); - label = gtk_label_new (""); + label = gtk_label_new (_("Password")); gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (smtp_auth_hbox), label, FALSE, FALSE, 0); - gtk_widget_set_usize (label, 16, -1); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - uid_label = gtk_label_new (_("User ID")); - gtk_widget_show (uid_label); - gtk_box_pack_start (GTK_BOX (smtp_auth_hbox), uid_label, - FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (uid_label), 1, 0.5); + smtp_pass_entry = gtk_entry_new (); + gtk_widget_show (smtp_pass_entry); + gtk_widget_set_usize (smtp_pass_entry, DEFAULT_ENTRY_WIDTH, -1); + gtk_box_pack_start (GTK_BOX (hbox), smtp_pass_entry, TRUE, TRUE, 0); + gtk_entry_set_visibility (GTK_ENTRY (smtp_pass_entry), FALSE); - smtp_userid_entry = gtk_entry_new (); - gtk_widget_show (smtp_userid_entry); - gtk_widget_set_usize (smtp_userid_entry, DEFAULT_ENTRY_WIDTH, -1); - gtk_box_pack_start (GTK_BOX (smtp_auth_hbox), smtp_userid_entry, - TRUE, TRUE, 0); + PACK_VSPACER(vbox4, vbox_spc, VSPACING_NARROW_2); - pass_label = gtk_label_new (_("Password")); - gtk_widget_show (pass_label); - gtk_box_pack_start (GTK_BOX (smtp_auth_hbox), pass_label, - FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 8); + gtk_widget_show (hbox); + gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0); - smtp_passwd_entry = gtk_entry_new (); - gtk_widget_show (smtp_passwd_entry); - gtk_widget_set_usize (smtp_passwd_entry, DEFAULT_ENTRY_WIDTH, -1); - gtk_box_pack_start (GTK_BOX (smtp_auth_hbox), smtp_passwd_entry, - TRUE, TRUE, 0); - gtk_entry_set_visibility (GTK_ENTRY (smtp_passwd_entry), FALSE); + hbox_spc = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox_spc); + gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0); + gtk_widget_set_usize (hbox_spc, 16, -1); + + label = gtk_label_new + (_("If you leave these entries empty, the same\n" + "user ID and password as receiving will be used.")); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); - SET_TOGGLE_SENSITIVITY (smtp_auth_chkbtn, smtp_auth_hbox); - gtk_signal_connect(GTK_OBJECT(smtp_userid_entry), "changed", - GTK_SIGNAL_FUNC(prefs_account_smtp_userid_cb), smtp_passwd_entry); - prefs_account_smtp_userid_cb(GTK_EDITABLE(smtp_userid_entry), smtp_passwd_entry); + SET_TOGGLE_SENSITIVITY (smtp_auth_chkbtn, vbox4); PACK_CHECK_BUTTON (vbox3, pop_bfr_smtp_chkbtn, _("Authenticate with POP3 before sending")); @@ -1216,8 +1214,8 @@ static void prefs_account_send_create(void) send.customhdr_chkbtn = customhdr_chkbtn; send.smtp_auth_chkbtn = smtp_auth_chkbtn; - send.smtp_userid_entry = smtp_userid_entry; - send.smtp_passwd_entry = smtp_passwd_entry; + send.smtp_uid_entry = smtp_uid_entry; + send.smtp_pass_entry = smtp_pass_entry; send.pop_bfr_smtp_chkbtn = pop_bfr_smtp_chkbtn; } diff --git a/src/prefs_account.h b/src/prefs_account.h index e670a454e..35e8357d5 100644 --- a/src/prefs_account.h +++ b/src/prefs_account.h @@ -99,7 +99,6 @@ struct _PrefsAccount /* Temporarily preserved password */ gchar *tmp_pass; - gchar *tmp_smtp_passwd; /* Receive */ gboolean rmmail; @@ -121,8 +120,12 @@ struct _PrefsAccount gboolean gen_msgid; gboolean add_customhdr; gboolean use_smtp_auth; - gchar *smtp_userid; - gchar *smtp_passwd; + gchar *smtp_userid; + gchar *smtp_passwd; + + /* Temporarily preserved password */ + gchar *tmp_smtp_pass; + gboolean pop_before_smtp; GSList *customhdr_list; diff --git a/src/prefs_common.c b/src/prefs_common.c index a08eca26f..4a3505bfe 100644 --- a/src/prefs_common.c +++ b/src/prefs_common.c @@ -1212,14 +1212,15 @@ static void prefs_send_create(void) #if HAVE_LIBJCONV SET_MENUITEM(_("Unicode (UTF-8)"), CS_UTF_8); #endif - SET_MENUITEM(_("Western European (ISO-8859-1)"), CS_ISO_8859_1); - SET_MENUITEM(_("Central European (ISO-8859-2)"), CS_ISO_8859_2); - SET_MENUITEM(_("Baltic (ISO-8859-13)"), CS_ISO_8859_13); - SET_MENUITEM(_("Baltic (ISO-8859-4)"), CS_ISO_8859_4); - SET_MENUITEM(_("Greek (ISO-8859-7)"), CS_ISO_8859_7); - SET_MENUITEM(_("Turkish (ISO-8859-9)"), CS_ISO_8859_9); + SET_MENUITEM(_("Western European (ISO-8859-1)"), CS_ISO_8859_1); + SET_MENUITEM(_("Western European (ISO-8859-15)"), CS_ISO_8859_15); + SET_MENUITEM(_("Central European (ISO-8859-2)"), CS_ISO_8859_2); + SET_MENUITEM(_("Baltic (ISO-8859-13)"), CS_ISO_8859_13); + SET_MENUITEM(_("Baltic (ISO-8859-4)"), CS_ISO_8859_4); + SET_MENUITEM(_("Greek (ISO-8859-7)"), CS_ISO_8859_7); + SET_MENUITEM(_("Turkish (ISO-8859-9)"), CS_ISO_8859_9); #if HAVE_LIBJCONV - SET_MENUITEM(_("Cyrillic (ISO-8859-5)"), CS_ISO_8859_5); + SET_MENUITEM(_("Cyrillic (ISO-8859-5)"), CS_ISO_8859_5); #endif SET_MENUITEM(_("Cyrillic (KOI8-R)"), CS_KOI8_R); #if HAVE_LIBJCONV diff --git a/src/send.c b/src/send.c index 7ba30d4ec..d85cc2e24 100644 --- a/src/send.c +++ b/src/send.c @@ -1,6 +1,6 @@ /* * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2001 Hiroyuki Yamamoto + * Copyright (C) 1999-2002 Hiroyuki Yamamoto * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -255,6 +255,10 @@ gint send_message_local(const gchar *command, FILE *fp) g_free(ac_prefs->tmp_pass); \ ac_prefs->tmp_pass = NULL; \ } \ + if (ac_prefs->tmp_smtp_pass) { \ + g_free(ac_prefs->tmp_smtp_pass); \ + ac_prefs->tmp_smtp_pass = NULL; \ + } \ } \ if (smtp_quit(smtp_sock) != SM_OK) \ log_warning("Error occurred while sending QUIT\n"); \ @@ -299,25 +303,25 @@ gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list, if (ac_prefs->use_smtp_auth) { if (ac_prefs->smtp_userid) { user = ac_prefs->smtp_userid; - if(ac_prefs->smtp_passwd) + if (ac_prefs->smtp_passwd) pass = ac_prefs->smtp_passwd; - else if (ac_prefs->tmp_pass) - pass = ac_prefs->tmp_pass; + else if (ac_prefs->tmp_smtp_pass) + pass = ac_prefs->tmp_smtp_pass; else { pass = input_dialog_query_password - (ac_prefs->smtp_server, ac_prefs->smtp_userid); + (ac_prefs->smtp_server, user); if (!pass) pass = g_strdup(""); - ac_prefs->tmp_pass = pass; + ac_prefs->tmp_smtp_pass = pass; } } else { user = ac_prefs->userid; - if (ac_prefs->passwd) { + if (ac_prefs->passwd) pass = ac_prefs->passwd; - } else if (ac_prefs->tmp_pass) + else if (ac_prefs->tmp_pass) pass = ac_prefs->tmp_pass; else { pass = input_dialog_query_password - (ac_prefs->smtp_server, ac_prefs->userid); + (ac_prefs->smtp_server, user); if (!pass) pass = g_strdup(""); ac_prefs->tmp_pass = pass; } @@ -356,8 +360,8 @@ gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list, GTK_EVENTS_FLUSH(); SEND_EXIT_IF_NOTOK - (smtp_from(smtp_sock, ac_prefs->address, user, - pass, ac_prefs->use_smtp_auth), + (smtp_from(smtp_sock, ac_prefs->address, user, pass, + ac_prefs->use_smtp_auth), "sending MAIL FROM"); progress_dialog_set_label(dialog->dialog, _("Sending RCPT TO...")); diff --git a/src/textview.c b/src/textview.c index 7446f3586..9b03331ee 100644 --- a/src/textview.c +++ b/src/textview.c @@ -883,6 +883,7 @@ static void textview_write_line(TextView *textview, const gchar *str, GdkColor *fg_color; gint quotelevel = -1; +#if 0 if (!conv) strncpy2(buf, str, sizeof(buf)); else if (conv_convert(conv, buf, sizeof(buf), str) < 0) { @@ -893,6 +894,9 @@ static void textview_write_line(TextView *textview, const gchar *str, -1); return; } +#endif + if (!conv || conv_convert(conv, buf, sizeof(buf), str) < 0) + strncpy2(buf, str, sizeof(buf)); strcrchomp(buf); if (prefs_common.conv_mb_alnum) conv_mb_alnum(buf);