sync with sylpheed 0.7.2cvs21
authorPaul Mangan <paul@claws-mail.org>
Thu, 28 Feb 2002 10:06:43 +0000 (10:06 +0000)
committerPaul Mangan <paul@claws-mail.org>
Thu, 28 Feb 2002 10:06:43 +0000 (10:06 +0000)
12 files changed:
ChangeLog
ChangeLog.claws
ChangeLog.jp
configure.in
src/codeconv.c
src/compose.c
src/mainwindow.c
src/prefs_account.c
src/prefs_account.h
src/prefs_common.c
src/send.c
src/textview.c

index 95098120e73de7ab869304123ee105c13ea87017..fb2107ac4ad692f91f14cbf7b6f9d1d5dec5c1f8 100644 (file)
--- 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
 
index 7d82e06cb7d099609881c19b8c37f2a70a9804ba..70016d62c9468d8e46813daae11af70083c85567 100644 (file)
@@ -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
index 2160f59a1740a19489d260b0ed4d8bb72a14b327..6c8aa89dc2cb704f3c5eae42260ee6cf280f3f08 100644 (file)
@@ -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
 
index 032caaf994eaaf3b3a0cce14762d0bfa2c6ea2cb..9edc5747706a131617f2712b4f7a0caf731ad0a6 100644 (file)
@@ -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
index 093054ff2d3b87da09c702a722f464b80525d769..1ac8f6945c1f74b8f1d92eac03fb44c69707c0ac 100644 (file)
@@ -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) {
index 1cf3c818d398f4f55f3a2958eff7c1e1d55fb01d..dcb199c2e9901001a5324716128fa3414bfe45be 100644 (file)
@@ -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);
index adf60f4a8dfe9b74c97ab46f181bec8e6a14e899..ca5bf68cae9e58c7e1e0ab97ef419feab8a80be8 100644 (file)
@@ -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)"),
index 41361889b0077a8285f9f80180c945d446fd74f2..5163ab8eb5988567edd852826f5541a55a5aa58d 100644 (file)
@@ -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;
 }
 
index e670a454e0910cd0b0f2c5287eb9e49713d4dcb2..35e8357d5eb7e7c5a4520d317973104127485f7a 100644 (file)
@@ -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;
index a08eca26f35061d9b05b93286440bdc14af7ae2e..4a3505bfedbc1d6992e2c88a27595c1248a7f255 100644 (file)
@@ -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
index 7ba30d4eca7cbe168815a25c668ed6b5cf8e72ea..d85cc2e24bcf80878818b866591fc9b364df4451 100644 (file)
@@ -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..."));
index 7446f35863ae0978c52dcfde65810e2645e07e36..9b03331ee78dd157a13a9542901a0bf8d38d2967 100644 (file)
@@ -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);