sync with sylpheed 0.7.2
authorPaul Mangan <paul@claws-mail.org>
Sat, 16 Feb 2002 14:01:09 +0000 (14:01 +0000)
committerPaul Mangan <paul@claws-mail.org>
Sat, 16 Feb 2002 14:01:09 +0000 (14:01 +0000)
13 files changed:
ChangeLog
ChangeLog.claws
ChangeLog.jp
NEWS
TODO
TODO.jp
configure.in
src/foldersel.c
src/folderview.c
src/folderview.h
src/imap.c
src/summary_search.c
src/summaryview.c

index b0ff4ab..f790b64 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2002-02-16
+
+       * version 0.7.2
+
+2002-02-16
+
+       * src/summary_search(): summary_search_execute(): scroll the view
+         when message view is hidden.
+
+2002-02-15
+
+       * src/foldersel.c: foldersel_set_tree(): made different type of
+         folders selectable in moving mode.
+       * src/folderview.[ch]: folderview_update_msg_num(): compare the
+         numbers with the CTree's labels, and don't update folder_item here.
+       * src/imap.c: imap_move_msg(), imap_move_msgs_with_dest():
+         implemented moving between different type of folders.
+       * src/mh.c: SET_DEST_MSG_FLAGS(): new macro.
+         mh_do_move(), mh_do_move_msgs_with_dest(): new (renamed previous
+         mh_move_msg() and mh_move_msgs_with_dest()).
+         mh_move_msg(), mh_move_msgs_with_dest(): implemented message
+         moving between different type of folders.
+         mh_copy_msg(), mh_copy_msgs_with_dest(): some code cleanups.
+       * src/summaryview.c: summary_status_show(): update folder_item
+         here.
+       * po/POTFILES.in: removed reference to headerwindow.c.
+       * src/summaryview.c: summary_step(): fixed the behavior on the
+         head and tail of the list.
+
 2002-02-15
 
        * src/mainwindow.c: main_window_set_menu_sensitive(): set 'Show
index 8438bd0..d8cad89 100644 (file)
@@ -1,3 +1,8 @@
+2002-02-16 [paul]      0.7.1claws6
+
+       * sync with sylpheed 0.7.2 release
+               see ChangeLog entry 2002-02-15 and 2002-02-16
+
 2002-02-15 [paul]      0.7.1claws5
 
        * sync with sylpheed 0.7.1cvs9
index 6d343b5..33076da 100644 (file)
@@ -1,3 +1,32 @@
+2002-02-16
+
+       * version 0.7.2
+
+2002-02-16
+
+       * src/summary_search(): summary_search_execute(): ¥á¥Ã¥»¡¼¥¸¥Ó¥å¡¼
+         ¤¬±£¤ì¤Æ¤¤¤ë¾ì¹ç¥Ó¥å¡¼¤ò¥¹¥¯¥í¡¼¥ë¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+2002-02-15
+
+       * src/foldersel.c: foldersel_set_tree(): °ÜÆ°¥â¡¼¥É¤Ç°Û¤Ê¤ë¥¿¥¤¥×
+         ¤Î¥Õ¥©¥ë¥À¤òÁªÂò²Äǽ¤Ë¤·¤¿¡£
+       * src/folderview.[ch]: folderview_update_msg_num(): ¿ô¤ò CTree ¤Î
+         ¥é¥Ù¥ë¤ÈÈæ³Ó¤·¡¢¤³¤³¤Ç folder_item ¤ò¹¹¿·¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+       * src/imap.c: imap_move_msg(), imap_move_msgs_with_dest():
+         °Û¤Ê¤ë¥¿¥¤¥×¤Î¥Õ¥©¥ë¥À´Ö¤Ç¤Î°ÜÆ°¤ò¼ÂÁõ¡£
+       * src/mh.c: SET_DEST_MSG_FLAGS(): ¿·µ¬¥Þ¥¯¥í¡£
+         mh_do_move(), mh_do_move_msgs_with_dest(): ¿·µ¬(°ÊÁ°¤Î mh_move_msg()
+         ¤È mh_move_msgs_with_dest() ¤ò²þ̾)¡£
+         mh_move_msg(), mh_move_msgs_with_dest(): °Û¤Ê¤ë¥¿¥¤¥×¤Î¥Õ¥©¥ë¥À
+         ´Ö¤Ç¤Î°ÜÆ°¤ò¼ÂÁõ¡£
+         mh_copy_msg(), mh_copy_msgs_with_dest(): ¥³¡¼¥É¤ÎÀ°Íý¡£
+       * src/summaryview.c: summary_status_show(): folder_item ¤ò¤³¤³¤Ç
+         ¹¹¿·¡£
+       * po/POTFILES.in: headerwindow.c ¤Ø¤Î»²¾È¤òºï½ü¡£
+       * src/summaryview.c: summary_step(): ¥ê¥¹¥È¤ÎÀèƬ¤ÈËöÈø¤Ç¤ÎµóÆ°
+         ¤ò½¤Àµ¡£
+
 2002-02-15
 
        * src/mainwindow.c: main_window_set_menu_sensitive(): ¡ÖÁ´¤Æ¤Î
diff --git a/NEWS b/NEWS
index 64309a5..b7e5681 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,16 @@
 Changes of Sylpheed
 
+* 0.7.2
+
+    * Message moving between different type of folders has been enabled.
+    * PGP decryption failure bug has been fixed.
+    * IMAP4 APPEND command failure has been fixed.
+    * Selection reply bug has been fixed.
+    * The bug that the external editor fails to launch when quotation
+      characters are used in the command line, has been fixed.
+    * 'Show all header' and 'Thread view' became toggle switch.
+    * Some code cleanups have been made.
+
 * 0.7.1
 
     * Message copy between different type of folders has been enabled.
diff --git a/TODO b/TODO
index 4da8c1c..a577c07 100644 (file)
--- a/TODO
+++ b/TODO
@@ -5,13 +5,13 @@ TODO
 
 o POP before SMTP
 o original icons and logos
-o autosave
-o speed-up of filtering
-o regular expression support at filtering
+o folder management enhancements
+o more robust IMAP4 response parser
+o enhancement of filtering
 o support for some formats other than MH and mbox (ex. Maildir)
 o priority (Priority:, X-Priority:, X-MSMail-Priority:)
 o notification of reception (Disposition-Notification-To:)
-o customization of key bindings
+o autosave
 o customization of toolbar
 o configuration for each folders
 o RFC 2231 (MIME filename encoding) compliant
@@ -22,7 +22,6 @@ o plug-in faculty
 o mailing list manager
 o inline image display on multipart MIME
 o compressed folder
-o GNOME support
 o make the code cleaner
 o make the process faster
 o make the dubious English much decent :)
@@ -38,6 +37,7 @@ Partially implemented features
 . display of HTML messages (composition of HTML message is not scheduled :-P)
 . progress display of time-consuming processes
 . parallel processing between sending-receiving and others
+. customization of key bindings
 
 Implemented features
 ====================
@@ -68,3 +68,4 @@ Implemented features
 * LDAP support
 * full-text search of messages (plain)
 * template function
+* regular expression support at filtering
diff --git a/TODO.jp b/TODO.jp
index b027a50..253f010 100644 (file)
--- a/TODO.jp
+++ b/TODO.jp
@@ -5,11 +5,13 @@ TODO
 
 o POP before SMTP
 o ¥ª¥ê¥¸¥Ê¥ë¤Î¥¢¥¤¥³¥ó¤È¥í¥´
-o ¼«Æ°Êݸµ¡Ç½
+o ¥Õ¥©¥ë¥À´ÉÍý¤Î³ÈÄ¥
+o ¤è¤ê·øÏ´¤Ê IMAP4 ±þÅú¥Ñ¡¼¥µ
 o ¿¶¤êʬ¤±½èÍý¤Î¶¯²½
 o MH, mbox °Ê³°¤Î·Á¼°¤Ø¤ÎÂбþ (Maildir Åù)
 o ½ÅÍ×ÅÙ (Priority:, X-Priority:, X-MSMail-Priority:)
 o ¼õ¿®³Îǧ (Disposition-Notification-To:)
+o ¼«Æ°Êݸµ¡Ç½
 o ¥Ä¡¼¥ë¥Ð¡¼¤Î¥«¥¹¥¿¥Þ¥¤¥º
 o ¥Õ¥©¥ë¥ÀËè¤ÎÀßÄê
 o RFC 2231 (MIME ¥Õ¥¡¥¤¥ë̾¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°) Âбþ
@@ -20,7 +22,6 @@ o 
 o ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¥Þ¥Í¡¼¥¸¥ã
 o ¥Þ¥ë¥Á¥Ñ¡¼¥ÈMIME¤Ç¤Î¥¤¥ó¥é¥¤¥ó²èÁüɽ¼¨
 o °µ½Ì¥Õ¥©¥ë¥À
-o GNOMEÂбþ
 o ¥³¡¼¥É¤ò¤µ¤é¤Ë¤­¤ì¤¤¤Ë¤¹¤ë
 o ½èÍý¤ò¤µ¤é¤Ë®¤¯¤¹¤ë
 o ²ø¤·¤²¤Ê±Ñ¸ì¤ò¤Ê¤ó¤È¤«¤¹¤ë :)
index 79a99ee..55b4ad5 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=7
 MICRO_VERSION=1
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws5
+EXTRA_VERSION=claws6
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 04a6f80..e9b10dd 100644 (file)
@@ -308,13 +308,6 @@ static void foldersel_set_tree(Folder *cur_folder, FolderSelectionType type)
                if (type != FOLDER_SEL_ALL) {
                        if (folder->type == F_NEWS)
                                continue;
-                       if (type == FOLDER_SEL_MOVE && cur_folder) {
-                               if (cur_folder->type != folder->type)
-                                       continue;
-                               if (cur_folder->type == F_IMAP &&
-                                   cur_folder != folder)
-                                       continue;
-                       }
                }
 
                node = gtk_ctree_insert_gnode(GTK_CTREE(ctree), NULL, NULL,
index 6a447ef..1a6e976 100644 (file)
@@ -681,18 +681,26 @@ void folderview_select_next_unread(FolderView *folderview)
                folderview_select_node(folderview, node);
 }
 
-void folderview_update_msg_num(FolderView *folderview, GtkCTreeNode *row,
-                              gint new, gint unread, gint total)
+void folderview_update_msg_num(FolderView *folderview, GtkCTreeNode *row)
 {
        GtkCTree *ctree = GTK_CTREE(folderview->ctree);
        static GtkCTreeNode *prev_row = NULL;
        FolderItem *item;
+       gint new, unread, total;
+       gchar *new_str, *unread_str, *total_str;
 
        if (!row) return;
 
        item = gtk_ctree_node_get_row_data(ctree, row);
        if (!item) return;
 
+       gtk_ctree_node_get_text(ctree, row, COL_NEW, &new_str);
+       gtk_ctree_node_get_text(ctree, row, COL_UNREAD, &unread_str);
+       gtk_ctree_node_get_text(ctree, row, COL_TOTAL, &total_str);
+       new = atoi(new_str);
+       unread = atoi(unread_str);
+       total = atoi(total_str);
+
        /* CLAWS: don't know why but this always seems to be true
         * when deleting messages. Somewhere claws does a folder
         * scan which sets all new, unread & total to the correct
@@ -702,16 +710,12 @@ void folderview_update_msg_num(FolderView *folderview, GtkCTreeNode *row,
        if (prev_row     == row    &&
            item->new    == new    &&
            item->unread == unread &&
-           item->total  == total) 
+           item->total  == total)
                return;
 #endif         
 
        prev_row = row;
 
-       item->new    = new;
-       item->unread = unread;
-       item->total  = total;
-
        folderview_update_node(folderview, row);
 }
 
index 56f91be..f42b37f 100644 (file)
@@ -66,10 +66,7 @@ void folderview_select                       (FolderView     *folderview,
 void folderview_unselect               (FolderView     *folderview);
 void folderview_select_next_unread     (FolderView     *folderview);
 void folderview_update_msg_num         (FolderView     *folderview,
-                                        GtkCTreeNode   *row,
-                                        gint            new,
-                                        gint            unread,
-                                        gint            total);
+                                        GtkCTreeNode   *row);
 void folderview_update_tree            (Folder         *folder);
 void folderview_update_all             (void);
 void folderview_update_all_node                (void);
index 3d4d910..1351a3a 100644 (file)
@@ -724,13 +724,51 @@ static gint imap_do_copy_msgs_with_dest(Folder *folder, FolderItem *dest,
 
 gint imap_move_msg(Folder *folder, FolderItem *dest, MsgInfo *msginfo)
 {
-       return imap_do_copy(folder, dest, msginfo, TRUE);
+       gchar *srcfile;
+       gint ret = 0;
+
+       g_return_val_if_fail(folder != NULL, -1);
+       g_return_val_if_fail(dest != NULL, -1);
+       g_return_val_if_fail(msginfo != NULL, -1);
+       g_return_val_if_fail(msginfo->folder != NULL, -1);
+
+       if (folder == msginfo->folder->folder)
+               return imap_do_copy(folder, dest, msginfo, TRUE);
+
+       srcfile = procmsg_get_message_file(msginfo);
+       if (!srcfile) return -1;
+
+       ret = imap_add_msg(folder, dest, srcfile, FALSE);
+       g_free(srcfile);
+
+       if (ret == 0)
+               ret = folder_item_remove_msg(msginfo->folder, msginfo->msgnum);
+
+       return ret;
 }
 
 gint imap_move_msgs_with_dest(Folder *folder, FolderItem *dest, 
                              GSList *msglist)
 {
-       return imap_do_copy_msgs_with_dest(folder, dest, msglist, TRUE);
+       MsgInfo *msginfo;
+       GSList *cur;
+       gint ret = 0;
+
+       g_return_val_if_fail(folder != NULL, -1);
+       g_return_val_if_fail(dest != NULL, -1);
+       g_return_val_if_fail(msglist != NULL, -1);
+
+       msginfo = (MsgInfo *)msglist->data;
+       if (folder == msginfo->folder->folder)
+               return imap_do_copy_msgs_with_dest(folder, dest, msglist, TRUE);
+
+       for (cur = msglist; cur != NULL; cur = cur->next) {
+               msginfo = (MsgInfo *)cur->data;
+               ret = imap_move_msg(folder, dest, msginfo);
+               if (ret != 0) break;
+       }
+
+       return ret;
 }
 
 gint imap_copy_msg(Folder *folder, FolderItem *dest, MsgInfo *msginfo)
index 3a2d8c8..4db58d6 100644 (file)
@@ -353,7 +353,7 @@ static void summary_search_execute(GtkButton *button, gpointer data)
                        else {
                                if (summaryview->msg_is_toggled_on) {
                                        summary_select_node
-                                               (summaryview, node, TRUE, FALSE);
+                                               (summaryview, node, TRUE, TRUE);
                                        if (body_matched) {
                                                messageview_search_string
                                                        (summaryview->messageview,
@@ -361,7 +361,7 @@ static void summary_search_execute(GtkButton *button, gpointer data)
                                        }
                                } else {
                                        summary_select_node
-                                               (summaryview, node, FALSE, FALSE);
+                                               (summaryview, node, FALSE, TRUE);
                                }
                                break;
                        }
index eba2c5c..8c3439b 100644 (file)
@@ -1718,8 +1718,7 @@ static void summary_status_show(SummaryView *summaryview)
        g_free(cp);
        g_free(itstr);
 
-       if (summaryview->folder_item &&
-           FOLDER_IS_LOCAL(summaryview->folder_item->folder)) {
+       if (FOLDER_IS_LOCAL(summaryview->folder_item->folder)) {
                str = g_strdup_printf(_("%d new, %d unread, %d total (%s)"),
                                      summaryview->newmsgs,
                                      summaryview->unread,
@@ -1734,11 +1733,12 @@ static void summary_status_show(SummaryView *summaryview)
        gtk_label_set(GTK_LABEL(summaryview->statlabel_msgs), str);
        g_free(str);
 
+       summaryview->folder_item->new    = summaryview->newmsgs;
+       summaryview->folder_item->unread = summaryview->unread;
+       summaryview->folder_item->total  = summaryview->messages;
+
        folderview_update_msg_num(summaryview->folderview,
-                                 summaryview->folderview->opened,
-                                 summaryview->newmsgs,
-                                 summaryview->unread,
-                                 summaryview->messages);
+                                 summaryview->folderview->opened);
 }
 
 static void summary_set_column_titles(SummaryView *summaryview)
@@ -2408,14 +2408,21 @@ void summary_reedit(SummaryView *summaryview)
 void summary_step(SummaryView *summaryview, GtkScrollType type)
 {
        GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
+       GtkCTreeNode *node;
 
        if (summary_is_locked(summaryview)) return;
 
        if (type == GTK_SCROLL_STEP_FORWARD) {
-               GtkCTreeNode *node;
                node = gtkut_ctree_node_next(ctree, summaryview->selected);
                if (node)
                        gtkut_ctree_expand_parent_all(ctree, node);
+               else
+                       return;
+       } else {
+               if (summaryview->selected) {
+                       node = GTK_CTREE_NODE_PREV(summaryview->selected);
+                       if (!node) return;
+               }
        }
 
        if (summaryview->msg_is_toggled_on)