* src/compose.c
authorChristoph Hohmann <reboot@gmx.ch>
Thu, 10 Jan 2002 21:46:43 +0000 (21:46 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Thu, 10 Jan 2002 21:46:43 +0000 (21:46 +0000)
select account from account ids if possible and
correctly set save folder for copy in reedit

ChangeLog.claws
configure.in
src/compose.c

index 87195fe..72233c4 100644 (file)
@@ -1,3 +1,9 @@
+2002-01-11 [christoph] 0.6.6claws47
+
+       * src/compose.c
+               select account from account ids if possible and
+               correctly set save folder for copy in reedit
+
 2002-01-10 [paul]      0.6.6claws46
 
        * sync with sylpheed 0.7.0 release
index 099ad94..df43253 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=6
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws46
+EXTRA_VERSION=claws47
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl
index b6082f6..8b0e648 100644 (file)
@@ -1204,7 +1204,7 @@ Compose *compose_forward_multiple(PrefsAccount *account, GSList *msginfo_list)
 void compose_reedit(MsgInfo *msginfo)
 {
        Compose *compose;
-       PrefsAccount *account;
+       PrefsAccount *account = NULL;
        GtkSText *text;
        FILE *fp;
        gchar buf[BUFFSIZE];
@@ -1213,9 +1213,23 @@ void compose_reedit(MsgInfo *msginfo)
        g_return_if_fail(msginfo->folder != NULL);
 
         if (msginfo->folder->stype == F_QUEUE) {
-               gchar account_address[BUFFSIZE];
-               if (!get_header_from_msginfo(msginfo, account_address, sizeof(account_address), "S:")) {
-                       account = account_find_from_address(account_address);
+               gchar queueheader_buf[BUFFSIZE];
+               gint id;
+
+               /* Select Account from queue headers */
+               if (!get_header_from_msginfo(msginfo, queueheader_buf, 
+                                            sizeof(queueheader_buf), "NAID:")) {
+                       id = atoi(&queueheader_buf[5]);
+                       account = account_find_from_id(id);
+               }
+               if (!account && !get_header_from_msginfo(msginfo, queueheader_buf, 
+                                                   sizeof(queueheader_buf), "MAID:")) {
+                       id = atoi(&queueheader_buf[5]);
+                       account = account_find_from_id(id);
+               }
+               if (!account && !get_header_from_msginfo(msginfo, queueheader_buf, 
+                                                               sizeof(queueheader_buf), "S:")) {
+                       account = account_find_from_address(queueheader_buf);
                }
        } else 
                account = msginfo->folder->folder->account;
@@ -1233,6 +1247,19 @@ void compose_reedit(MsgInfo *msginfo)
        compose = compose_create(account, COMPOSE_REEDIT);
        compose->targetinfo = procmsg_msginfo_copy(msginfo);
 
+        if (msginfo->folder->stype == F_QUEUE) {
+               gchar queueheader_buf[BUFFSIZE];
+
+               /* Set message save folder */
+               if (!get_header_from_msginfo(msginfo, queueheader_buf, sizeof(queueheader_buf), "SCF:")) {
+                       gint startpos = 0;
+
+                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compose->savemsg_checkbtn), TRUE);
+                       gtk_editable_delete_text(GTK_EDITABLE(compose->savemsg_entry), 0, -1);
+                       gtk_editable_insert_text(GTK_EDITABLE(compose->savemsg_entry), &queueheader_buf[4], strlen(&queueheader_buf[4]), &startpos);
+               }
+       }
+       
        if (compose_parse_header(compose, msginfo) < 0) return;
        compose_reedit_set_entry(compose, msginfo);