0.8.10claws64
authorChristoph Hohmann <reboot@gmx.ch>
Fri, 28 Feb 2003 23:11:56 +0000 (23:11 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Fri, 28 Feb 2003 23:11:56 +0000 (23:11 +0000)
* src/account.c
* src/addressadd.c
* src/compose.c
* src/gtkaspell.c
* src/gtkxtext.h                ** REMOVE **
* src/imap.c
* src/matcher.[ch]
* src/mh.c
* src/news.c
* src/pine.c
* src/prefs_common.c
* src/prefs_matcher.c
* src/procheader.[ch]
* src/procmsg.[ch]
* src/toolbar.c
* src/common/ssl_certificate.c
* src/gtk/colorlabel.c
* src/gtk/menu.c
        o fix warnings
        o remove code obsoleted by new cache and folder system rework

23 files changed:
ChangeLog.claws
configure.ac
src/account.c
src/addressadd.c
src/common/ssl_certificate.c
src/compose.c
src/gtk/colorlabel.c
src/gtk/menu.c
src/gtkaspell.c
src/gtkxtext.h [deleted file]
src/imap.c
src/matcher.c
src/matcher.h
src/mh.c
src/news.c
src/pine.c
src/prefs_common.c
src/prefs_matcher.c
src/procheader.c
src/procheader.h
src/procmsg.c
src/procmsg.h
src/toolbar.c

index 7187e32d7f57c34b63e44129e044ee9410b084e9..a936823f3c7498e555774d8343d184056de8c064 100644 (file)
@@ -1,3 +1,26 @@
+2003-02-28 [christoph] 0.8.10claws64
+
+       * src/account.c
+       * src/addressadd.c
+       * src/compose.c
+       * src/gtkaspell.c
+       * src/gtkxtext.h                ** REMOVE **
+       * src/imap.c
+       * src/matcher.[ch]
+       * src/mh.c
+       * src/news.c
+       * src/pine.c
+       * src/prefs_common.c
+       * src/prefs_matcher.c
+       * src/procheader.[ch]
+       * src/procmsg.[ch]
+       * src/toolbar.c
+       * src/common/ssl_certificate.c
+       * src/gtk/colorlabel.c
+       * src/gtk/menu.c
+               o fix warnings
+               o remove code obsoleted by new cache and folder system rework
+
 2003-02-28 [oliver]    0.8.10claws63
        
        * src/toolbar.[ch]
 2003-02-28 [oliver]    0.8.10claws63
        
        * src/toolbar.[ch]
index 2ae01d3ca53e80ba359711e987a374d59b1284aa..cd3d73ec10e4ca041def08564d6144fdeeba574d 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=10
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=10
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws63
+EXTRA_VERSION=claws64
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 04b8e5898a4609db26bf75bbba38ef1a6a8df1cf..dfbad2694a6510751a9e7ce7e7e5cb9aeadd7601 100644 (file)
@@ -45,6 +45,7 @@
 #include "gtkutils.h"
 #include "utils.h"
 #include "alertpanel.h"
 #include "gtkutils.h"
 #include "utils.h"
 #include "alertpanel.h"
+#include "procheader.h"
 
 typedef enum
 {
 
 typedef enum
 {
@@ -1007,7 +1008,7 @@ PrefsAccount *account_get_reply_account(MsgInfo *msginfo, gboolean reply_autosel
        if (reply_autosel) {
                if (!account && msginfo->to) {
                        gchar *to;
        if (reply_autosel) {
                if (!account && msginfo->to) {
                        gchar *to;
-                       Xstrdup_a(to, msginfo->to, return);
+                       Xstrdup_a(to, msginfo->to, return NULL);
                        extract_address(to);
                        account = account_find_from_address(to);
                }
                        extract_address(to);
                        account = account_find_from_address(to);
                }
index c081cab328704540b439747683b4a7a0e75b017c..928f53349f82bd8abd663c3bcb210bb683497e4f 100644 (file)
@@ -150,7 +150,6 @@ static void addressadd_create( void ) {
        GtkWidget *vlbox;
        GtkWidget *tree_win;
        GtkWidget *hbbox;
        GtkWidget *vlbox;
        GtkWidget *tree_win;
        GtkWidget *hbbox;
-       GtkWidget *hsep;
        GtkWidget *ok_btn;
        GtkWidget *cancel_btn;
        GtkWidget *hsbox;
        GtkWidget *ok_btn;
        GtkWidget *cancel_btn;
        GtkWidget *hsbox;
index 837d0b49d8233edcb92e8c83b715e6b91d76d52f..832f47b426a0adb5009ee681b7d81644273be666 100644 (file)
@@ -295,7 +295,6 @@ char *ssl_certificate_check_signer (X509 *cert)
 {
        X509_STORE_CTX store_ctx;
        X509_STORE *store;
 {
        X509_STORE_CTX store_ctx;
        X509_STORE *store;
-       int ok = 0;
        char *err_msg = NULL;
 
        store = X509_STORE_new();
        char *err_msg = NULL;
 
        store = X509_STORE_new();
index ba36887ed7c780d70f2a8d25edcdb1679293d706..dcd979d22abdd834541b6a6eee34ed724b9a4d62 100644 (file)
@@ -3737,9 +3737,6 @@ static void compose_write_attach(Compose *compose, FILE *fp)
 
        for (row = 0; (ainfo = gtk_clist_get_row_data(clist, row)) != NULL;
             row++) {
 
        for (row = 0; (ainfo = gtk_clist_get_row_data(clist, row)) != NULL;
             row++) {
-               gchar buf[BUFFSIZE];
-               gchar inbuf[B64_LINE_SIZE], outbuf[B64_BUFFSIZE];
-
                if ((attach_fp = fopen(ainfo->file, "rb")) == NULL) {
                        g_warning("Can't open file %s\n", ainfo->file);
                        continue;
                if ((attach_fp = fopen(ainfo->file, "rb")) == NULL) {
                        g_warning("Can't open file %s\n", ainfo->file);
                        continue;
index 0913b87ffce313b16cf22b2448bcce34e345078c..aa7c01f576566c1dc8bb12f709d62916d8fbe455 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <glib.h>
 #include <gdk/gdkx.h>
 
 #include <glib.h>
 #include <gdk/gdkx.h>
+#include <gtk/gtk.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkpixmap.h>
 #include <gtk/gtkmenu.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkpixmap.h>
 #include <gtk/gtkmenu.h>
index 6c527ef63cfcd77ad6f424aec9e78195c7ac1f5f..3db4865ea8aceebc80574dea2d15d8e992da0d94 100644 (file)
@@ -22,6 +22,7 @@
 #endif
 
 #include <glib.h>
 #endif
 
 #include <glib.h>
+#include <gtk/gtk.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkmenu.h>
 #include <gtk/gtkmenubar.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkmenu.h>
 #include <gtk/gtkmenubar.h>
index 2bc6d2a8fc6fed43267bf41d823d71a892af1373..3a4a619193409c994e5bff3b6e154e539e312a92 100644 (file)
@@ -602,7 +602,6 @@ static gboolean set_dictionary(AspellConfig *config, Dictionary *dict)
        gchar *language = NULL;
        gchar *jargon = NULL;
        gchar *size   = NULL;
        gchar *language = NULL;
        gchar *jargon = NULL;
        gchar *size   = NULL;
-       gchar *end      = NULL;
        gchar  buf[BUFSIZE];
        
        g_return_val_if_fail(config, FALSE);
        gchar  buf[BUFSIZE];
        
        g_return_val_if_fail(config, FALSE);
@@ -1429,14 +1428,11 @@ static GSList *create_empty_dictionary_list(void)
 GSList *gtkaspell_get_dictionary_list(const gchar *aspell_path, gint refresh)
 {
        GSList *list;
 GSList *gtkaspell_get_dictionary_list(const gchar *aspell_path, gint refresh)
 {
        GSList *list;
-       gchar *dict_path, *tmp, *prevdir;
-       gchar tmpname[BUFSIZE];
        Dictionary *dict;
        AspellConfig *config;
        AspellDictInfoList *dlist;
        AspellDictInfoEnumeration *dels;
        const AspellDictInfo *entry;
        Dictionary *dict;
        AspellConfig *config;
        AspellDictInfoList *dlist;
        AspellDictInfoEnumeration *dels;
        const AspellDictInfo *entry;
-       struct dirent *ent;
 
        if (!gtkaspellcheckers)
                gtkaspellcheckers = gtkaspell_checkers_new();
 
        if (!gtkaspellcheckers)
                gtkaspellcheckers = gtkaspell_checkers_new();
diff --git a/src/gtkxtext.h b/src/gtkxtext.h
deleted file mode 100644 (file)
index 96c5890..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2001 Hiroyuki Yamamoto & The Sylpheed Claws Team
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef GTKXTEXT_H__
-#define GTKXTEXT_H__
-
-#include "config.h"
-
-#ifdef CLAWS
-
-#include "gtkstext.h"
-
-typedef GtkSText GtkXText;
-
-#define GTK_IS_XTEXT(obj)      GTK_IS_STEXT(obj)
-#define GTK_XTEXT(obj)         GTK_STEXT(obj)
-
-#define gtk_xtext_get_type     gtk_stext_get_type
-#define gtk_xtext_new          gtk_stext_new
-#define gtk_xtext_set_editable gtk_stext_set_editable
-#define gtk_xtext_set_word_wrap        gtk_stext_set_word_wrap
-#define gtk_xtext_set_line_wrap        gtk_stext_set_line_wrap
-#define gtk_xtext_set_adjustments      gtk_stext_set_adjustments
-#define gtk_xtext_set_point    gtk_stext_set_point
-#define gtk_xtext_get_point    gtk_stext_get_point
-#define gtk_xtext_get_length   gtk_stext_get_length
-#define gtk_xtext_freeze       gtk_stext_freeze
-#define gtk_xtext_thaw         gtk_stext_thaw
-#define gtk_xtext_insert       gtk_stext_insert
-#define gtk_xtext_backward_delete      gtk_stext_backward_delete
-#define gtk_xtext_forward_delete       gtk_stext_forward_delete
-
-#define GTK_XTEXT_INDEX                GTK_STEXT_INDEX
-
-#else
-
-#include <gtk/gtktext.h>
-
-typedef GtkText  GtkXText;
-
-#define GTK_IS_XTEXT(obj)      GTK_IS_TEXT(obj)
-#define GTK_XTEXT(obj)         GTK_TEXT(obj)
-
-#define gtk_xtext_get_type     gtk_text_get_type
-#define gtk_xtext_new          gtk_text_new
-#define gtk_xtext_set_editable gtk_text_set_editable
-#define gtk_xtext_set_word_wrap        gtk_text_set_word_wrap
-#define gtk_xtext_set_line_wrap        gtk_text_set_line_wrap
-#define gtk_xtext_set_adjustments      gtk_text_set_adjustments
-#define gtk_xtext_set_point    gtk_text_set_point
-#define gtk_xtext_get_point    gtk_text_get_point
-#define gtk_xtext_get_length   gtk_text_get_length
-#define gtk_xtext_freeze       gtk_text_freeze
-#define gtk_xtext_thaw         gtk_text_thaw
-#define gtk_xtext_insert       gtk_text_insert
-#define gtk_xtext_backward_delete      gtk_text_backward_delete
-#define gtk_xtext_forward_delete       gtk_text_forward_delete
-
-#define GTK_XTEXT_INDEX                GTK_TEXT_INDEX
-
-#endif /* !CLAWS */
-
-
-#endif /* GTKXTEXT_H__ */
index 872c84a55e17abe451979a62eb4da5249e508fb8..eccab33641c02c99e74ff778518af61a315f458c 100644 (file)
@@ -119,10 +119,6 @@ static GSList *imap_get_uncached_messages  (IMAPSession    *session,
                                                 FolderItem     *item,
                                                 guint32         first_uid,
                                                 guint32         last_uid);
                                                 FolderItem     *item,
                                                 guint32         first_uid,
                                                 guint32         last_uid);
-static GSList *imap_delete_cached_messages     (GSList         *mlist,
-                                                FolderItem     *item,
-                                                guint32         first_uid,
-                                                guint32         last_uid);
 static void imap_delete_all_cached_messages    (FolderItem     *item);
 
 #if USE_OPENSSL
 static void imap_delete_all_cached_messages    (FolderItem     *item);
 
 #if USE_OPENSSL
@@ -161,9 +157,6 @@ static gint imap_select                     (IMAPSession    *session,
                                         gint           *recent,
                                         gint           *unseen,
                                         guint32        *uid_validity);
                                         gint           *recent,
                                         gint           *unseen,
                                         guint32        *uid_validity);
-static gint imap_get_uid               (IMAPSession    *session,
-                                        gint            msgnum,
-                                        guint32        *uid);
 static gint imap_status                        (IMAPSession    *session,
                                         IMAPFolder     *folder,
                                         const gchar    *path,
 static gint imap_status                        (IMAPSession    *session,
                                         IMAPFolder     *folder,
                                         const gchar    *path,
@@ -611,99 +604,6 @@ void imap_session_destroy_all(void)
        }
 }
 
        }
 }
 
-#define THROW goto catch
-
-GSList *imap_get_msg_list(Folder *folder, FolderItem *item, gboolean use_cache)
-{
-       GSList *mlist = NULL;
-       IMAPSession *session;
-       gint ok, exists = 0, recent = 0, unseen = 0;
-       guint32 uid_validity = 0;
-       guint32 first_uid = 0, last_uid = 0, begin;
-
-       g_return_val_if_fail(folder != NULL, NULL);
-       g_return_val_if_fail(item != NULL, NULL);
-       g_return_val_if_fail(folder->type == F_IMAP, NULL);
-       g_return_val_if_fail(folder->account != NULL, NULL);
-
-       session = imap_session_get(folder);
-
-       if (!session) {
-               mlist = procmsg_read_cache(item, FALSE);
-               item->last_num = procmsg_get_last_num_in_msg_list(mlist);
-               procmsg_set_flags(mlist, item);
-               return mlist;
-       }
-
-       ok = imap_select(session, IMAP_FOLDER(folder), item->path,
-                        &exists, &recent, &unseen, &uid_validity);
-       if (ok != IMAP_SUCCESS) THROW;
-       if (exists > 0) {
-               ok = imap_get_uid(session, 1, &first_uid);
-               if (ok != IMAP_SUCCESS) THROW;
-               if (1 != exists) {
-                       ok = imap_get_uid(session, exists, &last_uid);
-                       if (ok != IMAP_SUCCESS) THROW;
-               } else
-                       last_uid = first_uid;
-       } else {
-               imap_delete_all_cached_messages(item);
-               return NULL;
-       }
-
-       if (use_cache) {
-               guint32 cache_last;
-
-               mlist = procmsg_read_cache(item, FALSE);
-               procmsg_set_flags(mlist, item);
-               cache_last = procmsg_get_last_num_in_msg_list(mlist);
-
-               /* calculating the range of envelope to get */
-               if (item->mtime != uid_validity) {
-                       /* mailbox is changed (get all) */
-                       begin = first_uid;
-               } else if (last_uid < cache_last) {
-                       /* mailbox is changed (get all) */
-                       begin = first_uid;
-               } else if (last_uid == cache_last) {
-                       /* mailbox unchanged (get none)*/
-                       begin = 0;
-               } else {
-                       begin = cache_last + 1;
-               }
-
-               item->mtime = uid_validity;
-
-               if (first_uid > 0 && last_uid > 0) {
-                       mlist = imap_delete_cached_messages(mlist, item,
-                                                           0, first_uid - 1);
-                       mlist = imap_delete_cached_messages(mlist, item,
-                                                           last_uid + 1,
-                                                           UINT_MAX);
-               }
-               if (begin > 0)
-                       mlist = imap_delete_cached_messages(mlist, item,
-                                                           begin, UINT_MAX);
-       } else {
-               imap_delete_all_cached_messages(item);
-               begin = first_uid;
-       }
-
-       if (begin > 0 && begin <= last_uid) {
-               GSList *newlist;
-               newlist = imap_get_uncached_messages(session, item,
-                                                    begin, last_uid);
-               mlist = g_slist_concat(mlist, newlist);
-       }
-
-       item->last_num = last_uid;
-
-catch:
-       return mlist;
-}
-
-#undef THROW
-
 gchar *imap_fetch_msg(Folder *folder, FolderItem *item, gint uid)
 {
        gchar *path, *filename;
 gchar *imap_fetch_msg(Folder *folder, FolderItem *item, gint uid)
 {
        gchar *path, *filename;
@@ -1765,43 +1665,6 @@ static GSList *imap_get_uncached_messages(IMAPSession *session,
        return newlist;
 }
 
        return newlist;
 }
 
-static GSList *imap_delete_cached_messages(GSList *mlist, FolderItem *item,
-                                          guint32 first_uid, guint32 last_uid)
-{
-       GSList *cur, *next;
-       MsgInfo *msginfo;
-       gchar *dir;
-
-       g_return_val_if_fail(item != NULL, mlist);
-       g_return_val_if_fail(item->folder != NULL, mlist);
-       g_return_val_if_fail(item->folder->type == F_IMAP, mlist);
-
-       debug_print("Deleting cached messages %u - %u ... ",
-                   first_uid, last_uid);
-
-       dir = folder_item_get_path(item);
-       if (is_dir_exist(dir))
-               remove_numbered_files(dir, first_uid, last_uid);
-       g_free(dir);
-
-       for (cur = mlist; cur != NULL; ) {
-               next = cur->next;
-
-               msginfo = (MsgInfo *)cur->data;
-               if (msginfo != NULL && first_uid <= msginfo->msgnum &&
-                   msginfo->msgnum <= last_uid) {
-                       procmsg_msginfo_free(msginfo);
-                       mlist = g_slist_remove(mlist, msginfo);
-               }
-
-               cur = next;
-       }
-
-       debug_print("done.\n");
-
-       return mlist;
-}
-
 static void imap_delete_all_cached_messages(FolderItem *item)
 {
        gchar *dir;
 static void imap_delete_all_cached_messages(FolderItem *item)
 {
        gchar *dir;
@@ -2462,36 +2325,6 @@ static gint imap_select(IMAPSession *session, IMAPFolder *folder,
 
 #define THROW(err) { ok = err; goto catch; }
 
 
 #define THROW(err) { ok = err; goto catch; }
 
-static gint imap_get_uid(IMAPSession *session, gint msgnum, guint32 *uid)
-{
-       gint ok;
-       GPtrArray *argbuf;
-       gchar *str;
-       gint num;
-
-       *uid = 0;
-       argbuf = g_ptr_array_new();
-
-       imap_cmd_gen_send(SESSION(session)->sock, "FETCH %d (UID)", msgnum);
-       if ((ok = imap_cmd_ok(SESSION(session)->sock, argbuf)) != IMAP_SUCCESS)
-               THROW(ok);
-
-       str = search_array_contain_str(argbuf, "FETCH");
-       if (!str) THROW(IMAP_ERROR);
-
-       if (sscanf(str, "%d FETCH (UID %d)", &num, uid) != 2 ||
-           num != msgnum) {
-               g_warning("imap_get_uid(): invalid FETCH line.\n");
-               THROW(IMAP_ERROR);
-       }
-
-catch:
-       ptr_array_free_strings(argbuf);
-       g_ptr_array_free(argbuf, TRUE);
-
-       return ok;
-}
-
 static gint imap_status(IMAPSession *session, IMAPFolder *folder,
                        const gchar *path,
                        gint *messages, gint *recent,
 static gint imap_status(IMAPSession *session, IMAPFolder *folder,
                        const gchar *path,
                        gint *messages, gint *recent,
@@ -2979,7 +2812,7 @@ static gint imap_cmd_copy(IMAPSession *session,
                log_warning(_("can't copy %d to %s\n"), msgnum, destfolder_);
        else if (imap_has_capability(session, "UIDPLUS") && reply->len > 0)
                if ((okmsginfo = g_ptr_array_index(reply, reply->len - 1)) != NULL &&
                log_warning(_("can't copy %d to %s\n"), msgnum, destfolder_);
        else if (imap_has_capability(session, "UIDPLUS") && reply->len > 0)
                if ((okmsginfo = g_ptr_array_index(reply, reply->len - 1)) != NULL &&
-                   sscanf(okmsginfo, "%*u OK [COPYUID %*llu %u %u]", &olduid, &newuid) == 2 &&
+                   sscanf(okmsginfo, "%*u OK [COPYUID %*u %u %u]", &olduid, &newuid) == 2 &&
                    olduid == msgnum)
                        *new_uid = newuid;
 
                    olduid == msgnum)
                        *new_uid = newuid;
 
index fb0e84bed7802367fece1bbf5a9cf2783c653644..312b7ccb9685c2ea9cfa29c68f7c79f98f940287 100644 (file)
@@ -174,7 +174,6 @@ static void create_matchparser_hashtab(void)
  */
 gint get_matchparser_tab_id(const gchar *str)
 {
  */
 gint get_matchparser_tab_id(const gchar *str)
 {
-       gint i;
        MatchParser *res;
 
        if (NULL != (res = g_hash_table_lookup(matchparser_hashtab, str))) {
        MatchParser *res;
 
        if (NULL != (res = g_hash_table_lookup(matchparser_hashtab, str))) {
@@ -190,7 +189,7 @@ gint get_matchparser_tab_id(const gchar *str)
  *
  *\return      gchar * Newly allocated string with escaped characters
  */
  *
  *\return      gchar * Newly allocated string with escaped characters
  */
-const gchar *matcher_escape_str(const gchar *str)
+gchar *matcher_escape_str(const gchar *str)
 {
        register const gchar *walk;
        register int escape;
 {
        register const gchar *walk;
        register int escape;
@@ -1069,8 +1068,7 @@ gchar *matcherprop_to_string(MatcherProp *matcher)
        const gchar *criteria_str;
        const gchar *matchtype_str;
        int i;
        const gchar *criteria_str;
        const gchar *matchtype_str;
        int i;
-        const char *expr;
-        char *header;
+        gchar *expr;
 
        criteria_str = NULL;
        for (i = 0; i < (int) (sizeof(matchparser_tab) / sizeof(MatchParser)); i++) {
 
        criteria_str = NULL;
        for (i = 0; i < (int) (sizeof(matchparser_tab) / sizeof(MatchParser)); i++) {
index 4e7f94c3302535da95ffa91903419373c522a382..ba5b89881f9f9494b9400c12a077d6ce2a2339a9 100644 (file)
@@ -160,7 +160,7 @@ gint matcher_parse_number           (gchar          **str);
 gboolean matcher_parse_boolean_op      (gchar          **str);
 gchar *matcher_parse_regexp            (gchar          **str);
 gchar *matcher_parse_str               (gchar          **str);
 gboolean matcher_parse_boolean_op      (gchar          **str);
 gchar *matcher_parse_regexp            (gchar          **str);
 gchar *matcher_parse_str               (gchar          **str);
-const gchar *matcher_escape_str                (const gchar    *str);
+gchar *matcher_escape_str              (const gchar    *str);
 gchar *matcher_unescape_str            (gchar          *str);
 gchar *matcherprop_to_string           (MatcherProp    *matcher);
 gchar *matcherlist_to_string           (const MatcherList      *matchers);
 gchar *matcher_unescape_str            (gchar          *str);
 gchar *matcherprop_to_string           (MatcherProp    *matcher);
 gchar *matcherlist_to_string           (const MatcherList      *matchers);
index 969b10de40ee6b8eb3ed3c958f685425b46275a9..81f142e950ebc3f032c4779159c743f3cdc01480 100644 (file)
--- a/src/mh.c
+++ b/src/mh.c
@@ -100,8 +100,6 @@ gint    mh_remove_folder    (Folder         *folder,
 
 gchar   *mh_get_new_msg_filename               (FolderItem     *dest);
 
 
 gchar   *mh_get_new_msg_filename               (FolderItem     *dest);
 
-static GSList  *mh_get_uncached_msgs           (GHashTable     *msg_table,
-                                                FolderItem     *item);
 static MsgInfo *mh_parse_msg                   (const gchar    *file,
                                                 FolderItem     *item);
 static void    mh_scan_tree_recursive          (FolderItem     *item);
 static MsgInfo *mh_parse_msg                   (const gchar    *file,
                                                 FolderItem     *item);
 static void    mh_scan_tree_recursive          (FolderItem     *item);
@@ -231,67 +229,6 @@ gint mh_get_num_list(Folder *folder, FolderItem *item, GSList **list)
        return nummsgs;
 }
 
        return nummsgs;
 }
 
-GSList *mh_get_msg_list(Folder *folder, FolderItem *item, gboolean use_cache)
-{
-       GSList *mlist;
-       GHashTable *msg_table;
-       gchar *path;
-       struct stat s;
-       gboolean scan_new = TRUE;
-#ifdef MEASURE_TIME
-       struct timeval tv_before, tv_after, tv_result;
-
-       gettimeofday(&tv_before, NULL);
-#endif
-
-       g_return_val_if_fail(item != NULL, NULL);
-
-       path = folder_item_get_path(item);
-       if (stat(path, &s) < 0) {
-               FILE_OP_ERROR(path, "stat");
-       } else {
-               time_t mtime;
-
-               mtime = MAX(s.st_mtime, s.st_ctime);
-               if (item->mtime == mtime) {
-                       debug_print("Folder is not modified.\n");
-                       scan_new = FALSE;
-               } else
-                       item->mtime = mtime;
-       }
-       g_free(path);
-
-       if (use_cache && !scan_new) {
-               mlist = procmsg_read_cache(item, FALSE);
-               if (!mlist)
-                       mlist = mh_get_uncached_msgs(NULL, item);
-       } else if (use_cache) {
-               GSList *newlist;
-
-               mlist = procmsg_read_cache(item, TRUE);
-               msg_table = procmsg_msg_hash_table_create(mlist);
-
-               newlist = mh_get_uncached_msgs(msg_table, item);
-               if (msg_table)
-                       g_hash_table_destroy(msg_table);
-
-               mlist = g_slist_concat(mlist, newlist);
-       } else
-               mlist = mh_get_uncached_msgs(NULL, item);
-
-       procmsg_set_flags(mlist, item);
-
-#ifdef MEASURE_TIME
-       gettimeofday(&tv_after, NULL);
-
-       timersub(&tv_after, &tv_before, &tv_result);
-       g_print("mh_get_msg_list: %s: elapsed time: %ld.%06ld sec\n",
-               item->path, tv_result.tv_sec, tv_result.tv_usec);
-#endif
-
-       return mlist;
-}
-
 gchar *mh_fetch_msg(Folder *folder, FolderItem *item, gint num)
 {
        gchar *path;
 gchar *mh_fetch_msg(Folder *folder, FolderItem *item, gint num)
 {
        gchar *path;
@@ -481,21 +418,8 @@ gint mh_move_msg(Folder *folder, FolderItem *dest, MsgInfo *msginfo)
        ret = mh_add_msg(folder, dest, srcfile, FALSE);
        g_free(srcfile);
  
        ret = mh_add_msg(folder, dest, srcfile, FALSE);
        g_free(srcfile);
  
-       if (ret != -1) {
-               gchar *destdir;
-               FILE *fp;
-               destdir = folder_item_get_path(dest);
-               if ((fp = procmsg_open_mark_file(destdir, TRUE)) == NULL)
-                       g_warning("Can't open mark file.\n");
-               else {
-                       SET_DEST_MSG_FLAGS(fp, dest, msginfo);
-                       fclose(fp);
-               }
-               g_free(destdir);
+       if (ret != -1)
                ret = folder_item_remove_msg(msginfo->folder, msginfo->msgnum);
                ret = folder_item_remove_msg(msginfo->folder, msginfo->msgnum);
-       }
  
        return ret;
 }
  
        return ret;
 }
@@ -1010,104 +934,6 @@ gint mh_remove_folder(Folder *folder, FolderItem *item)
        return 0;
 }
 
        return 0;
 }
 
-
-static GSList *mh_get_uncached_msgs(GHashTable *msg_table, FolderItem *item)
-{
-       gchar *path;
-       DIR *dp;
-       struct dirent *d;
-       struct stat s;
-       GSList *newlist = NULL;
-       GSList *last = NULL;
-       MsgInfo *msginfo;
-       gint n_newmsg = 0;
-       gint num;
-
-       g_return_val_if_fail(item != NULL, NULL);
-
-       path = folder_item_get_path(item);
-       g_return_val_if_fail(path != NULL, NULL);
-       if (change_dir(path) < 0) {
-               g_free(path);
-               return NULL;
-       }
-       g_free(path);
-
-       if ((dp = opendir(".")) == NULL) {
-               FILE_OP_ERROR(item->path, "opendir");
-               return NULL;
-       }
-
-       debug_print("Searching uncached messages...\n");
-
-       if (msg_table) {
-               while ((d = readdir(dp)) != NULL) {
-                       if ((num = to_number(d->d_name)) < 0) continue;
-                       if (stat(d->d_name, &s) < 0) {
-                               FILE_OP_ERROR(d->d_name, "stat");
-                               continue;
-                       }
-                       if (!S_ISREG(s.st_mode)) continue;
-
-                       msginfo = g_hash_table_lookup
-                               (msg_table, GUINT_TO_POINTER(num));
-
-                       if (!msginfo) {
-                               /* not found in the cache (uncached message) */
-                               msginfo = mh_parse_msg(d->d_name, item);
-                               if (!msginfo) continue;
-
-                               if (!newlist)
-                                       last = newlist =
-                                               g_slist_append(NULL, msginfo);
-                               else {
-                                       last = g_slist_append(last, msginfo);
-                                       last = last->next;
-                               }
-                               n_newmsg++;
-                       }
-               }
-       } else {
-               /* discard all previous cache */
-               while ((d = readdir(dp)) != NULL) {
-                       if (to_number(d->d_name) < 0) continue;
-                       if (stat(d->d_name, &s) < 0) {
-                               FILE_OP_ERROR(d->d_name, "stat");
-                               continue;
-                       }
-                       if (!S_ISREG(s.st_mode)) continue;
-
-                       msginfo = mh_parse_msg(d->d_name, item);
-                       if (!msginfo) continue;
-
-                       if (!newlist)
-                               last = newlist = g_slist_append(NULL, msginfo);
-                       else {
-                               last = g_slist_append(last, msginfo);
-                               last = last->next;
-                       }
-                       n_newmsg++;
-               }
-       }
-
-       closedir(dp);
-
-       if (n_newmsg)
-               debug_print("%d uncached message(s) found.\n", n_newmsg);
-       else
-               debug_print("done.\n");
-
-       /* sort new messages in numerical order */
-       if (newlist) {
-               debug_print("Sorting uncached messages in numerical order...\n");
-               newlist = g_slist_sort
-                       (newlist, (GCompareFunc)procmsg_cmp_msgnum_for_sort);
-               debug_print("done.\n");
-       }
-
-       return newlist;
-}
-
 static MsgInfo *mh_parse_msg(const gchar *file, FolderItem *item)
 {
        struct stat s;
 static MsgInfo *mh_parse_msg(const gchar *file, FolderItem *item)
 {
        struct stat s;
index 21b865d3cba75ae281bdca710e4851b6f370efdd..cf40007dfdf63954baeb17fca8ad0c99e979f857 100644 (file)
@@ -87,21 +87,9 @@ static gint news_select_group                 (NNTPSession   *session,
                                          gint          *num,
                                          gint          *first,
                                          gint          *last);
                                          gint          *num,
                                          gint          *first,
                                          gint          *last);
-static GSList *news_get_uncached_articles(NNTPSession  *session,
-                                         FolderItem    *item,
-                                         gint           cache_last,
-                                         gint          *rfirst,
-                                         gint          *rlast);
 static MsgInfo *news_parse_xover        (const gchar   *xover_str);
 static gchar *news_parse_xhdr           (const gchar   *xhdr_str,
                                          MsgInfo       *msginfo);
 static MsgInfo *news_parse_xover        (const gchar   *xover_str);
 static gchar *news_parse_xhdr           (const gchar   *xhdr_str,
                                          MsgInfo       *msginfo);
-static GSList *news_delete_old_articles         (GSList        *alist,
-                                         FolderItem    *item,
-                                         gint           first);
-static void news_delete_all_articles    (FolderItem    *item);
-static void news_delete_expired_caches  (GSList        *alist,
-                                         FolderItem    *item);
-
 static gint news_remove_msg             (Folder        *folder, 
                                          FolderItem    *item, 
                                          gint           num);
 static gint news_remove_msg             (Folder        *folder, 
                                          FolderItem    *item, 
                                          gint           num);
@@ -293,57 +281,6 @@ NNTPSession *news_session_get(Folder *folder)
        return NNTP_SESSION(rfolder->session);
 }
 
        return NNTP_SESSION(rfolder->session);
 }
 
-GSList *news_get_article_list(Folder *folder, FolderItem *item,
-                             gboolean use_cache)
-{
-       GSList *alist;
-       NNTPSession *session;
-
-       g_return_val_if_fail(folder != NULL, NULL);
-       g_return_val_if_fail(item != NULL, NULL);
-       g_return_val_if_fail(folder->type == F_NEWS, NULL);
-
-       session = news_session_get(folder);
-
-       if (!session) {
-               alist = procmsg_read_cache(item, FALSE);
-               item->last_num = procmsg_get_last_num_in_msg_list(alist);
-       } else if (use_cache) {
-               GSList *newlist;
-               gint cache_last;
-               gint first, last;
-
-               alist = procmsg_read_cache(item, FALSE);
-
-               cache_last = procmsg_get_last_num_in_msg_list(alist);
-               newlist = news_get_uncached_articles
-                       (session, item, cache_last, &first, &last);
-               if (first == 0 && last == 0) {
-                       news_delete_all_articles(item);
-                       procmsg_msg_list_free(alist);
-                       alist = NULL;
-               } else {
-                       alist = news_delete_old_articles(alist, item, first);
-                       news_delete_expired_caches(alist, item);
-               }
-
-               alist = g_slist_concat(alist, newlist);
-
-               item->last_num = last;
-       } else {
-               gint last;
-
-               alist = news_get_uncached_articles
-                       (session, item, 0, NULL, &last);
-               news_delete_all_articles(item);
-               item->last_num = last;
-       }
-
-       procmsg_set_flags(alist, item);
-
-       return alist;
-}
-
 gchar *news_fetch_msg(Folder *folder, FolderItem *item, gint num)
 {
        gchar *path, *filename;
 gchar *news_fetch_msg(Folder *folder, FolderItem *item, gint num)
 {
        gchar *path, *filename;
@@ -699,143 +636,6 @@ static gint news_select_group(NNTPSession *session, const gchar *group,
        return ok;
 }
 
        return ok;
 }
 
-static GSList *news_get_uncached_articles(NNTPSession *session,
-                                         FolderItem *item, gint cache_last,
-                                         gint *rfirst, gint *rlast)
-{
-       gint ok;
-       gint num = 0, first = 0, last = 0, begin = 0, end = 0;
-       gchar buf[NNTPBUFSIZE];
-       GSList *newlist = NULL;
-       GSList *llast = NULL;
-       MsgInfo *msginfo;
-
-       if (rfirst) *rfirst = -1;
-       if (rlast)  *rlast  = -1;
-
-       g_return_val_if_fail(session != NULL, NULL);
-       g_return_val_if_fail(item != NULL, NULL);
-       g_return_val_if_fail(item->folder != NULL, NULL);
-       g_return_val_if_fail(item->folder->type == F_NEWS, NULL);
-
-       ok = news_select_group(session, item->path, &num, &first, &last);
-       if (ok != NN_SUCCESS) {
-               log_warning("can't set group: %s\n", item->path);
-               return NULL;
-       }
-
-       /* calculate getting overview range */
-       if (first > last) {
-               log_warning("invalid article range: %d - %d\n",
-                           first, last);
-               return NULL;
-       }
-
-       if (rfirst) *rfirst = first;
-       if (rlast)  *rlast  = last;
-
-       if (cache_last < first)
-               begin = first;
-       else if (last < cache_last)
-               begin = first;
-       else if (last == cache_last) {
-               debug_print("no new articles.\n");
-               return NULL;
-       } else
-               begin = cache_last + 1;
-       end = last;
-
-       if (item->account->max_articles > 0 &&
-           end - begin + 1 > item->account->max_articles)
-               begin = end - item->account->max_articles + 1;
-
-       log_message(_("getting xover %d - %d in %s...\n"),
-                   begin, end, item->path);
-       if (nntp_xover(session->nntp_sock, begin, end) != NN_SUCCESS) {
-               log_warning("can't get xover\n");
-               return NULL;
-       }
-
-       for (;;) {
-               if (sock_gets(SESSION(session)->sock, buf, sizeof(buf)) < 0) {
-                       log_warning("error occurred while getting xover.\n");
-                       return newlist;
-               }
-
-               if (buf[0] == '.' && buf[1] == '\r') break;
-
-               msginfo = news_parse_xover(buf);
-               if (!msginfo) {
-                       log_warning("invalid xover line: %s\n", buf);
-                       continue;
-               }
-
-               msginfo->folder = item;
-               msginfo->flags.perm_flags = MSG_NEW|MSG_UNREAD;
-               msginfo->flags.tmp_flags = MSG_NEWS;
-               msginfo->newsgroups = g_strdup(item->path);
-
-               if (!newlist)
-                       llast = newlist = g_slist_append(newlist, msginfo);
-               else {
-                       llast = g_slist_append(llast, msginfo);
-                       llast = llast->next;
-               }
-       }
-
-       if (nntp_xhdr(session->nntp_sock, "to", begin, end) != NN_SUCCESS) {
-               log_warning("can't get xhdr\n");
-               return newlist;
-       }
-
-       llast = newlist;
-
-       for (;;) {
-               if (sock_gets(SESSION(session)->sock, buf, sizeof(buf)) < 0) {
-                       log_warning("error occurred while getting xhdr.\n");
-                       return newlist;
-               }
-
-               if (buf[0] == '.' && buf[1] == '\r') break;
-               if (!llast) {
-                       g_warning("llast == NULL\n");
-                       continue;
-               }
-
-               msginfo = (MsgInfo *)llast->data;
-               msginfo->to = news_parse_xhdr(buf, msginfo);
-
-               llast = llast->next;
-       }
-
-       if (nntp_xhdr(session->nntp_sock, "cc", begin, end) != NN_SUCCESS) {
-               log_warning("can't get xhdr\n");
-               return newlist;
-       }
-
-       llast = newlist;
-
-       for (;;) {
-               if (sock_gets(SESSION(session)->sock, buf, sizeof(buf)) < 0) {
-                       log_warning("error occurred while getting xhdr.\n");
-                       return newlist;
-               }
-
-               if (buf[0] == '.' && buf[1] == '\r') break;
-               if (!llast) {
-                       g_warning("llast == NULL\n");
-                       continue;
-               }
-
-               msginfo = (MsgInfo *)llast->data;
-               msginfo->cc = news_parse_xhdr(buf, msginfo);
-
-               llast = llast->next;
-       }
-
-       return newlist;
-}
-
 #define PARSE_ONE_PARAM(p, srcp) \
 { \
        p = strchr(srcp, '\t'); \
 #define PARSE_ONE_PARAM(p, srcp) \
 { \
        p = strchr(srcp, '\t'); \
@@ -936,70 +736,6 @@ static gchar *news_parse_xhdr(const gchar *xhdr_str, MsgInfo *msginfo)
                return g_strdup(p);
 }
 
                return g_strdup(p);
 }
 
-static GSList *news_delete_old_articles(GSList *alist, FolderItem *item,
-                                       gint first)
-{
-       GSList *cur, *next;
-       MsgInfo *msginfo;
-       gchar *dir;
-
-       g_return_val_if_fail(item != NULL, alist);
-       g_return_val_if_fail(item->folder != NULL, alist);
-       g_return_val_if_fail(item->folder->type == F_NEWS, alist);
-
-       if (first < 2) return alist;
-
-       debug_print("Deleting cached articles 1 - %d ...\n", first - 1);
-
-       dir = folder_item_get_path(item);
-       remove_numbered_files(dir, 1, first - 1);
-       g_free(dir);
-
-       for (cur = alist; cur != NULL; ) {
-               next = cur->next;
-
-               msginfo = (MsgInfo *)cur->data;
-               if (msginfo && msginfo->msgnum < first) {
-                       procmsg_msginfo_free(msginfo);
-                       alist = g_slist_remove(alist, msginfo);
-               }
-
-               cur = next;
-       }
-
-       return alist;
-}
-
-static void news_delete_all_articles(FolderItem *item)
-{
-       gchar *dir;
-
-       g_return_if_fail(item != NULL);
-       g_return_if_fail(item->folder != NULL);
-       g_return_if_fail(item->folder->type == F_NEWS);
-
-       debug_print("Deleting all cached articles...\n");
-
-       dir = folder_item_get_path(item);
-       remove_all_numbered_files(dir);
-       g_free(dir);
-}
-
-static void news_delete_expired_caches(GSList *alist, FolderItem *item)
-{
-       gchar *dir;
-
-       g_return_if_fail(item != NULL);
-       g_return_if_fail(item->folder != NULL);
-       g_return_if_fail(item->folder->type == F_NEWS);
-
-       debug_print("Deleting expired cached articles...\n");
-
-       dir = folder_item_get_path(item);
-       remove_expired_files(dir, 24 * 7);
-       g_free(dir);
-}
-
 gint news_cancel_article(Folder * folder, MsgInfo * msginfo)
 {
        gchar * tmp;
 gint news_cancel_article(Folder * folder, MsgInfo * msginfo)
 {
        gchar * tmp;
index 165b0c85c3c8fd2dc737e78b09347de8768659cd..82bc8a0f1c9b61c79dddd4bfddfb03c8321455c2 100644 (file)
@@ -452,7 +452,7 @@ static ItemEMail *pine_insert_table(
        ItemEMail *email;
        gchar *key;
 
        ItemEMail *email;
        gchar *key;
 
-       g_return_if_fail( address != NULL );
+       g_return_val_if_fail( address != NULL, NULL );
 
        /* create an entry with empty name if needed */
        if ( name == NULL )
 
        /* create an entry with empty name if needed */
        if ( name == NULL )
index c9da35ed5149c57330adfdef8f39fad2c87775ea..e92108f21d9216f52ea6bcbe1c3daa8774e51fd3 100644 (file)
@@ -1738,7 +1738,6 @@ static void prefs_compose_create(void)
 {
        GtkWidget *vbox1;
        GtkWidget *vbox2;
 {
        GtkWidget *vbox1;
        GtkWidget *vbox2;
-       GtkWidget *hbox1;
 
        GtkWidget *checkbtn_autoextedit;
 
 
        GtkWidget *checkbtn_autoextedit;
 
index 02d4cb9a5541c30e4a5b782264d6bd45b8dfc150..39192aa3f03a6e0a3b02643d2962008652b3e7fd 100644 (file)
@@ -1642,8 +1642,6 @@ static void prefs_matcher_ok(void)
        MatcherList *matchers;
        MatcherProp *matcherprop;
        AlertValue val;
        MatcherList *matchers;
        MatcherProp *matcherprop;
        AlertValue val;
-       gint criteria;
-       gint value_criteria;
        gchar *matcher_str;
        gchar *str;
        gint row = 1;
        gchar *matcher_str;
        gchar *str;
        gint row = 1;
index 9bd66a78afd6140ceecf201209310b297c57806c..39f9caf3d77d7adab7d5885b5f31a76e40add37c 100644 (file)
@@ -521,7 +521,7 @@ static HeaderEntry hentry_short[] = {{"Date:",              NULL, FALSE},
                                    {"From ",           NULL, FALSE},
                                    {NULL,              NULL, FALSE}};
 
                                    {"From ",           NULL, FALSE},
                                    {NULL,              NULL, FALSE}};
 
-const HeaderEntry* procheader_get_headernames(gboolean full)
+HeaderEntry* procheader_get_headernames(gboolean full)
 {
        return full ? hentry_full : hentry_short;
 }
 {
        return full ? hentry_full : hentry_short;
 }
@@ -534,7 +534,7 @@ MsgInfo *procheader_parse_stream(FILE *fp, MsgFlags flags, gboolean full,
        gchar *reference = NULL;
        gchar *p;
        gchar *hp;
        gchar *reference = NULL;
        gchar *p;
        gchar *hp;
-       const HeaderEntry *hentry;
+       HeaderEntry *hentry;
        gint hnum;
 
        hentry = procheader_get_headernames(full);
        gint hnum;
 
        hentry = procheader_get_headernames(full);
index 71f5b2d9eb2ee3237f49036b7d4b9c44c0bbf504..112af72423264e7945147b7bc215c7892690300d 100644 (file)
@@ -58,7 +58,7 @@ void procheader_header_list_destroy           (GSList         *hlist);
 void procheader_header_array_destroy           (GPtrArray      *harray);
 void procheader_header_free                    (Header         *header);
 
 void procheader_header_array_destroy           (GPtrArray      *harray);
 void procheader_header_free                    (Header         *header);
 
-const HeaderEntry* procheader_get_headernames  (gboolean       full);
+HeaderEntry* procheader_get_headernames        (gboolean       full);
 
 void procheader_get_header_fields      (FILE           *fp,
                                         HeaderEntry     hentry[]);
 
 void procheader_get_header_fields      (FILE           *fp,
                                         HeaderEntry     hentry[]);
index 2d51337501d76d205a4dd015fd62bb1bec35da05..95e1415600ac7b8ac9323bbc3e5b6501f1828dce 100644 (file)
@@ -41,6 +41,7 @@
 #include "news.h"
 #include "imap.h"
 #include "hooks.h"
 #include "news.h"
 #include "imap.h"
 #include "hooks.h"
+#include "msgcache.h"
 
 typedef struct _FlagInfo       FlagInfo;
 
 
 typedef struct _FlagInfo       FlagInfo;
 
@@ -50,9 +51,6 @@ struct _FlagInfo
        MsgFlags flags;
 };
 
        MsgFlags flags;
 };
 
-static GHashTable *procmsg_read_mark_file      (const gchar    *folder);
-void   procmsg_msginfo_write_flags             (MsgInfo        *msginfo);
-
 GHashTable *procmsg_msg_hash_table_create(GSList *mlist)
 {
        GHashTable *msg_table;
 GHashTable *procmsg_msg_hash_table_create(GSList *mlist)
 {
        GHashTable *msg_table;
@@ -99,241 +97,6 @@ GHashTable *procmsg_to_folder_hash_table_create(GSList *mlist)
        return msg_table;
 }
 
        return msg_table;
 }
 
-static gint procmsg_read_cache_data_str(FILE *fp, gchar **str)
-{
-       gchar buf[BUFFSIZE];
-       gint ret = 0;
-       size_t len;
-
-       if (fread(&len, sizeof(len), 1, fp) == 1) {
-               if (len < 0)
-                       ret = -1;
-               else {
-                       gchar *tmp = NULL;
-
-                       while (len > 0) {
-                               size_t size = MIN(len, BUFFSIZE - 1);
-
-                               if (fread(buf, size, 1, fp) != 1) {
-                                       ret = -1;
-                                       if (tmp) g_free(tmp);
-                                       *str = NULL;
-                                       break;
-                               }
-
-                               buf[size] = '\0';
-                               if (tmp) {
-                                       *str = g_strconcat(tmp, buf, NULL);
-                                       g_free(tmp);
-                                       tmp = *str;
-                               } else
-                                       tmp = *str = g_strdup(buf);
-
-                               len -= size;
-                       }
-               }
-       } else
-               ret = -1;
-
-       if (ret < 0)
-               g_warning("Cache data is corrupted\n");
-
-       return ret;
-}
-
-#define READ_CACHE_DATA(data, fp) \
-{ \
-       if (procmsg_read_cache_data_str(fp, &data) < 0) { \
-               procmsg_msginfo_free(msginfo); \
-               break; \
-       } \
-}
-
-#define READ_CACHE_DATA_INT(n, fp) \
-{ \
-       if (fread(&n, sizeof(n), 1, fp) != 1) { \
-               g_warning("Cache data is corrupted\n"); \
-               procmsg_msginfo_free(msginfo); \
-               break; \
-       } \
-}
-
-GSList *procmsg_read_cache(FolderItem *item, gboolean scan_file)
-{
-       GSList *mlist = NULL;
-       GSList *last = NULL;
-       gchar *cache_file;
-       FILE *fp;
-       MsgInfo *msginfo;
-       MsgFlags default_flags;
-       gchar file_buf[BUFFSIZE];
-       gint ver;
-       guint num;
-       FolderType type;
-
-       g_return_val_if_fail(item != NULL, NULL);
-       g_return_val_if_fail(item->folder != NULL, NULL);
-       type = item->folder->type;
-
-       default_flags.perm_flags = MSG_NEW|MSG_UNREAD;
-       default_flags.tmp_flags = MSG_CACHED;
-       if (type == F_MH || type == F_IMAP) {
-               if (item->stype == F_QUEUE) {
-                       MSG_SET_TMP_FLAGS(default_flags, MSG_QUEUED);
-               } else if (item->stype == F_DRAFT) {
-                       MSG_SET_TMP_FLAGS(default_flags, MSG_DRAFT);
-               }
-       }
-       if (type == F_IMAP) {
-               MSG_SET_TMP_FLAGS(default_flags, MSG_IMAP);
-       } else if (type == F_NEWS) {
-               MSG_SET_TMP_FLAGS(default_flags, MSG_NEWS);
-       }
-
-       if (type == F_MH) {
-               gchar *path;
-
-               path = folder_item_get_path(item);
-               if (change_dir(path) < 0) {
-                       g_free(path);
-                       return NULL;
-               }
-               g_free(path);
-       }
-       cache_file = folder_item_get_cache_file(item);
-       if ((fp = fopen(cache_file, "rb")) == NULL) {
-               debug_print("\tNo cache file\n");
-               g_free(cache_file);
-               return NULL;
-       }
-       setvbuf(fp, file_buf, _IOFBF, sizeof(file_buf));
-       g_free(cache_file);
-
-       debug_print("\tReading summary cache...\n");
-
-       /* compare cache version */
-       if (fread(&ver, sizeof(ver), 1, fp) != 1 ||
-           CACHE_VERSION != ver) {
-               debug_print("Cache version is different. Discarding it.\n");
-               fclose(fp);
-               return NULL;
-       }
-
-       while (fread(&num, sizeof(num), 1, fp) == 1) {
-               msginfo = procmsg_msginfo_new();
-               msginfo->msgnum = num;
-               READ_CACHE_DATA_INT(msginfo->size, fp);
-               READ_CACHE_DATA_INT(msginfo->mtime, fp);
-               READ_CACHE_DATA_INT(msginfo->date_t, fp);
-               READ_CACHE_DATA_INT(msginfo->flags.tmp_flags, fp);
-
-               READ_CACHE_DATA(msginfo->fromname, fp);
-
-               READ_CACHE_DATA(msginfo->date, fp);
-               READ_CACHE_DATA(msginfo->from, fp);
-               READ_CACHE_DATA(msginfo->to, fp);
-               READ_CACHE_DATA(msginfo->cc, fp);
-               READ_CACHE_DATA(msginfo->newsgroups, fp);
-               READ_CACHE_DATA(msginfo->subject, fp);
-               READ_CACHE_DATA(msginfo->msgid, fp);
-               READ_CACHE_DATA(msginfo->inreplyto, fp);
-               READ_CACHE_DATA(msginfo->references, fp);
-                READ_CACHE_DATA(msginfo->xref, fp);
-
-
-               MSG_SET_PERM_FLAGS(msginfo->flags, default_flags.perm_flags);
-               MSG_SET_TMP_FLAGS(msginfo->flags, default_flags.tmp_flags);
-
-               /* if the message file doesn't exist or is changed,
-                  don't add the data */
-               if (type == F_MH && scan_file &&
-                   folder_item_is_msg_changed(item, msginfo))
-                       procmsg_msginfo_free(msginfo);
-               else {
-                       msginfo->folder = item;
-
-                       if (!mlist)
-                               last = mlist = g_slist_append(NULL, msginfo);
-                       else {
-                               last = g_slist_append(last, msginfo);
-                               last = last->next;
-                       }
-               }
-       }
-
-       fclose(fp);
-       debug_print("done.\n");
-
-       return mlist;
-}
-
-#undef READ_CACHE_DATA
-#undef READ_CACHE_DATA_INT
-
-void procmsg_set_flags(GSList *mlist, FolderItem *item)
-{
-       GSList *cur, *tmp;
-       gint newmsg = 0;
-       gint lastnum = 0;
-       gchar *markdir;
-       MsgInfo *msginfo;
-       GHashTable *mark_table;
-       MsgFlags *flags;
-
-       if (!mlist) return;
-       g_return_if_fail(item != NULL);
-       g_return_if_fail(item->folder != NULL);
-
-       debug_print("\tMarking the messages...\n");
-
-       markdir = folder_item_get_path(item);
-       if (!is_dir_exist(markdir))
-               make_dir_hier(markdir);
-
-       mark_table = procmsg_read_mark_file(markdir);
-       g_free(markdir);
-
-       if (!mark_table) return;
-
-       for (cur = mlist; cur != NULL; cur = cur->next) {
-               msginfo = (MsgInfo *)cur->data;
-
-               if (lastnum < msginfo->msgnum)
-                       lastnum = msginfo->msgnum;
-
-               flags = g_hash_table_lookup
-                       (mark_table, GUINT_TO_POINTER(msginfo->msgnum));
-
-               if (flags != NULL) {
-                       /* add the permanent flags only */
-                       msginfo->flags.perm_flags = flags->perm_flags;
-                       if (item->folder->type == F_IMAP) {
-                               MSG_SET_TMP_FLAGS(msginfo->flags, MSG_IMAP);
-                       } else if (item->folder->type == F_NEWS) {
-                               MSG_SET_TMP_FLAGS(msginfo->flags, MSG_NEWS);
-                       }
-               } else {
-                       /* not found (new message) */
-                       if (newmsg == 0) {
-                               for (tmp = mlist; tmp != cur; tmp = tmp->next)
-                                       MSG_UNSET_PERM_FLAGS
-                                               (((MsgInfo *)tmp->data)->flags,
-                                                MSG_NEW);
-                       }
-                       newmsg++;
-               }
-       }
-
-       item->last_num = lastnum;
-
-       debug_print("done.\n");
-       if (newmsg)
-               debug_print("\t%d new message(s)\n", newmsg);
-
-       hash_free_value_mem(mark_table);
-       g_hash_table_destroy(mark_table);
-}
-
 gint procmsg_get_last_num_in_msg_list(GSList *mlist)
 {
        GSList *cur;
 gint procmsg_get_last_num_in_msg_list(GSList *mlist)
 {
        GSList *cur;
@@ -361,90 +124,6 @@ void procmsg_msg_list_free(GSList *mlist)
        g_slist_free(mlist);
 }
 
        g_slist_free(mlist);
 }
 
-void procmsg_write_cache(MsgInfo *msginfo, FILE *fp)
-{
-       MsgTmpFlags flags = msginfo->flags.tmp_flags & MSG_CACHED_FLAG_MASK;
-
-       WRITE_CACHE_DATA_INT(msginfo->msgnum, fp);
-       WRITE_CACHE_DATA_INT(msginfo->size, fp);
-       WRITE_CACHE_DATA_INT(msginfo->mtime, fp);
-       WRITE_CACHE_DATA_INT(msginfo->date_t, fp);
-       WRITE_CACHE_DATA_INT(flags, fp);
-
-       WRITE_CACHE_DATA(msginfo->fromname, fp);
-
-       WRITE_CACHE_DATA(msginfo->date, fp);
-       WRITE_CACHE_DATA(msginfo->from, fp);
-       WRITE_CACHE_DATA(msginfo->to, fp);
-       WRITE_CACHE_DATA(msginfo->cc, fp);
-       WRITE_CACHE_DATA(msginfo->newsgroups, fp);
-       WRITE_CACHE_DATA(msginfo->subject, fp);
-       WRITE_CACHE_DATA(msginfo->msgid, fp);
-       WRITE_CACHE_DATA(msginfo->inreplyto, fp);
-       WRITE_CACHE_DATA(msginfo->references, fp);
-       WRITE_CACHE_DATA(msginfo->xref, fp);
-
-}
-
-void procmsg_write_flags(MsgInfo *msginfo, FILE *fp)
-{
-       MsgPermFlags flags = msginfo->flags.perm_flags;
-
-       WRITE_CACHE_DATA_INT(msginfo->msgnum, fp);
-       WRITE_CACHE_DATA_INT(flags, fp);
-}
-
-void procmsg_flush_mark_queue(FolderItem *item, FILE *fp)
-{
-       MsgInfo *flaginfo;
-
-       g_return_if_fail(item != NULL);
-       g_return_if_fail(fp != NULL);
-
-       while (item->mark_queue != NULL) {
-               flaginfo = (MsgInfo *)item->mark_queue->data;
-               procmsg_write_flags(flaginfo, fp);
-               procmsg_msginfo_free(flaginfo);
-               item->mark_queue = g_slist_remove(item->mark_queue, flaginfo);
-       }
-}
-
-void procmsg_add_flags(FolderItem *item, gint num, MsgFlags flags)
-{
-       FILE *fp;
-       gchar *path;
-       MsgInfo msginfo;
-
-       g_return_if_fail(item != NULL);
-
-       if (item->opened) {
-               MsgInfo *queue_msginfo;
-
-               queue_msginfo = g_new0(MsgInfo, 1);
-               queue_msginfo->msgnum = num;
-               queue_msginfo->flags = flags;
-               item->mark_queue = g_slist_append
-                       (item->mark_queue, queue_msginfo);
-               return;
-       }
-
-       path = folder_item_get_path(item);
-       g_return_if_fail(path != NULL);
-
-       if ((fp = procmsg_open_mark_file(path, TRUE)) == NULL) {
-               g_warning("can't open mark file\n");
-               g_free(path);
-               return;
-       }
-       g_free(path);
-
-       msginfo.msgnum = num;
-       msginfo.flags = flags;
-
-       procmsg_write_flags(&msginfo, fp);
-       fclose(fp);
-}
-
 struct MarkSum {
        gint *new;
        gint *unread;
 struct MarkSum {
        gint *new;
        gint *unread;
@@ -454,83 +133,6 @@ struct MarkSum {
        gint first;
 };
 
        gint first;
 };
 
-static GHashTable *procmsg_read_mark_file(const gchar *folder)
-{
-       FILE *fp;
-       GHashTable *mark_table = NULL;
-       gint num;
-       MsgFlags *flags;
-       MsgPermFlags perm_flags;
-
-       if ((fp = procmsg_open_mark_file(folder, FALSE)) == NULL)
-               return NULL;
-
-       mark_table = g_hash_table_new(NULL, g_direct_equal);
-
-       while (fread(&num, sizeof(num), 1, fp) == 1) {
-               if (fread(&perm_flags, sizeof(perm_flags), 1, fp) != 1) break;
-
-               flags = g_hash_table_lookup(mark_table, GUINT_TO_POINTER(num));
-               if (flags != NULL)
-                       g_free(flags);
-
-               flags = g_new0(MsgFlags, 1);
-               flags->perm_flags = perm_flags;
-    
-               if (!MSG_IS_REALLY_DELETED(*flags)) {
-                       g_hash_table_insert(mark_table, GUINT_TO_POINTER(num), flags);
-               } else {
-                       g_hash_table_remove(mark_table, GUINT_TO_POINTER(num));
-               }
-       }
-
-       fclose(fp);
-       return mark_table;
-}
-
-FILE *procmsg_open_mark_file(const gchar *folder, gboolean append)
-{
-       gchar *markfile;
-       FILE *fp;
-       gint ver;
-
-       markfile = g_strconcat(folder, G_DIR_SEPARATOR_S, MARK_FILE, NULL);
-
-       if ((fp = fopen(markfile, "rb")) == NULL)
-               debug_print("Mark file not found.\n");
-       else if (fread(&ver, sizeof(ver), 1, fp) != 1 || MARK_VERSION != ver) {
-               debug_print("Mark version is different (%d != %d). "
-                             "Discarding it.\n", ver, MARK_VERSION);
-               fclose(fp);
-               fp = NULL;
-       }
-
-       /* read mode */
-       if (append == FALSE) {
-               g_free(markfile);
-               return fp;
-       }
-
-       if (fp) {
-               /* reopen with append mode */
-               fclose(fp);
-               if ((fp = fopen(markfile, "ab")) == NULL)
-                       g_warning("Can't open mark file with append mode.\n");
-       } else {
-               /* open with overwrite mode if mark file doesn't exist or
-                  version is different */
-               if ((fp = fopen(markfile, "wb")) == NULL)
-                       g_warning("Can't open mark file with write mode.\n");
-               else {
-                       ver = MARK_VERSION;
-                       WRITE_CACHE_DATA_INT(ver, fp);
-               }
-       }
-
-       g_free(markfile);
-       return fp;
-}
-
 static gboolean procmsg_ignore_node(GNode *node, gpointer data)
 {
        MsgInfo *msginfo = (MsgInfo *)node->data;
 static gboolean procmsg_ignore_node(GNode *node, gpointer data)
 {
        MsgInfo *msginfo = (MsgInfo *)node->data;
@@ -1525,7 +1127,6 @@ void procmsg_msginfo_set_flags(MsgInfo *msginfo, MsgPermFlags perm_flags, MsgTmp
        folder_item_update(msginfo->folder, F_ITEM_UPDATE_MSGCNT);
 
        CHANGE_FLAGS(msginfo);
        folder_item_update(msginfo->folder, F_ITEM_UPDATE_MSGCNT);
 
        CHANGE_FLAGS(msginfo);
-       procmsg_msginfo_write_flags(msginfo);
 }
 
 void procmsg_msginfo_unset_flags(MsgInfo *msginfo, MsgPermFlags perm_flags, MsgTmpFlags tmp_flags)
 }
 
 void procmsg_msginfo_unset_flags(MsgInfo *msginfo, MsgPermFlags perm_flags, MsgTmpFlags tmp_flags)
@@ -1591,26 +1192,6 @@ void procmsg_msginfo_unset_flags(MsgInfo *msginfo, MsgPermFlags perm_flags, MsgT
        folder_item_update(msginfo->folder, F_ITEM_UPDATE_MSGCNT);
 
        CHANGE_FLAGS(msginfo);
        folder_item_update(msginfo->folder, F_ITEM_UPDATE_MSGCNT);
 
        CHANGE_FLAGS(msginfo);
-       procmsg_msginfo_write_flags(msginfo);
-}
-
-void procmsg_msginfo_write_flags(MsgInfo *msginfo)
-{
-       gchar *destdir;
-       FILE *fp;
-
-       destdir = folder_item_get_path(msginfo->folder);
-       if (!is_dir_exist(destdir))
-               make_dir_hier(destdir);
-
-       if ((fp = procmsg_open_mark_file(destdir, TRUE))) {
-               procmsg_write_flags(msginfo, fp);
-               fclose(fp);
-       } else {
-               g_warning("Can't open mark file.\n");
-       }
-       
-       g_free(destdir);
 }
 
 /*!
 }
 
 /*!
index a83d9471f1f97585d757adaae601f39c63cab829..ba70b7d5db6c1f81b06177a06304b21b15c13214 100644 (file)
@@ -143,25 +143,6 @@ typedef enum
 #define MSG_IS_IGNORE_THREAD(msg)      (((msg).perm_flags & MSG_IGNORE_THREAD) != 0)
 #define MSG_IS_RETRCPT_PENDING(msg)    (((msg).perm_flags & MSG_RETRCPT_PENDING) != 0)
 
 #define MSG_IS_IGNORE_THREAD(msg)      (((msg).perm_flags & MSG_IGNORE_THREAD) != 0)
 #define MSG_IS_RETRCPT_PENDING(msg)    (((msg).perm_flags & MSG_RETRCPT_PENDING) != 0)
 
-
-#define WRITE_CACHE_DATA_INT(n, fp) \
-       fwrite(&n, sizeof(n), 1, fp)
-
-#define WRITE_CACHE_DATA(data, fp)                     \
-{                                                      \
-       gint len;                                       \
-                                                       \
-       if (data == NULL) {                             \
-               len = 0;                                \
-               WRITE_CACHE_DATA_INT(len, fp);          \
-       } else {                                        \
-               len = strlen(data);                     \
-               WRITE_CACHE_DATA_INT(len, fp);          \
-               if (len > 0)                            \
-                       fwrite(data, len, 1, fp);       \
-       }                                               \
-}
-
 struct _MsgFlags
 {
        MsgPermFlags perm_flags;
 struct _MsgFlags
 {
        MsgPermFlags perm_flags;
@@ -225,19 +206,8 @@ GHashTable *procmsg_to_folder_hash_table_create    (GSList         *mlist);
 
 GSList *procmsg_read_cache             (FolderItem     *item,
                                         gboolean        scan_file);
 
 GSList *procmsg_read_cache             (FolderItem     *item,
                                         gboolean        scan_file);
-void   procmsg_set_flags               (GSList         *mlist,
-                                        FolderItem     *item);
 gint   procmsg_get_last_num_in_msg_list(GSList         *mlist);
 void   procmsg_msg_list_free           (GSList         *mlist);
 gint   procmsg_get_last_num_in_msg_list(GSList         *mlist);
 void   procmsg_msg_list_free           (GSList         *mlist);
-void   procmsg_write_cache             (MsgInfo        *msginfo,
-                                        FILE           *fp);
-void   procmsg_write_flags             (MsgInfo        *msginfo,
-                                        FILE           *fp);
-void   procmsg_flush_mark_queue        (FolderItem     *item,
-                                        FILE           *fp);
-void   procmsg_add_flags               (FolderItem     *item,
-                                        gint            num,
-                                        MsgFlags        flags);
 void   procmsg_get_mark_sum            (const gchar    *folder,
                                         gint           *new,
                                         gint           *unread,
 void   procmsg_get_mark_sum            (const gchar    *folder,
                                         gint           *new,
                                         gint           *unread,
@@ -245,8 +215,6 @@ void        procmsg_get_mark_sum            (const gchar    *folder,
                                         gint           *min,
                                         gint           *max,
                                         gint            first);
                                         gint           *min,
                                         gint           *max,
                                         gint            first);
-FILE   *procmsg_open_mark_file         (const gchar    *folder,
-                                        gboolean        append);
 
 GNode  *procmsg_get_thread_tree                (GSList         *mlist);
 
 
 GNode  *procmsg_get_thread_tree                (GSList         *mlist);
 
index 21f17e534436b5994acaea0f965153ccad8b0c67..7bafc9e39f8aa576635050fcbe560b39b005eb8c 100644 (file)
@@ -1960,7 +1960,6 @@ void toolbar_reply(gpointer data, guint action)
        GList *sel = NULL;
        MsgInfo *msginfo = NULL;
        gchar *text;
        GList *sel = NULL;
        MsgInfo *msginfo = NULL;
        gchar *text;
-       gchar *path;
 
        switch (toolbar_item->type) {
        case TOOLBAR_MAIN:
 
        switch (toolbar_item->type) {
        case TOOLBAR_MAIN: