sync with 0.9.5cvs8
authorPaul Mangan <paul@claws-mail.org>
Wed, 17 Sep 2003 07:52:30 +0000 (07:52 +0000)
committerPaul Mangan <paul@claws-mail.org>
Wed, 17 Sep 2003 07:52:30 +0000 (07:52 +0000)
ChangeLog
ChangeLog.claws
ChangeLog.jp
configure.ac
src/addressbook.c
src/folderview.c
src/grouplistdialog.c
src/headerview.c
src/imap.c
src/recv.c
src/summaryview.c

index 2d599ffd848ef8751e347956e1fdb1e5fb058782..cf8b4918a2da9d6f72bd38b204594924e78b95ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2003-09-17
+
+       * src/addressbook.c:
+         addressbook_folder_load_person()
+         addressbook_folder_load_group(): sort the ctree after the end of
+         the loop (fixes performance issue when many addresses are in one
+         folder) (thanks to christian mock).
+
+2003-09-16
+
+       * src/folderview.c: folder_init(): code cleanup.
+       * src/summaryview.c: summary_init(): check if boldfont is
+         successfully loaded.
+       * src/grouplistdialog.c: use proper callback for delete_event (thanks
+         to Takuro Ashie).
+       * src/imap.c: allow zero-length messages.
+       * src/recv.c: recv_bytes_write(): return immediately if size == 0.
+
 2003-09-16
 
        * src/folderview.c: folderview_init(): if font can't be loaded, fall
 2003-09-16
 
        * src/folderview.c: folderview_init(): if font can't be loaded, fall
index ea789ef5713b7af4512943cc88254e0b2999e4aa..2cbc072b5dfcf7e213bb41682cf7ac532db9b5be 100644 (file)
@@ -1,3 +1,8 @@
+2003-09-17 [paul]      0.9.5claws17
+
+       * sync with 0.9.5cvs8
+               see ChangeLog 2003-09-16 and 2003-09-17
+
 2003-09-16 [paul]      0.9.5claws16
 
        * sync with 0.9.5cvs6
 2003-09-16 [paul]      0.9.5claws16
 
        * sync with 0.9.5cvs6
index 3c303e4a59775f20b6c53d4b9343d3b1bf7ce1d4..ff0b695ab601fe1b0d83b12eab7146fb916afb0f 100644 (file)
@@ -1,3 +1,22 @@
+2003-09-17
+
+       * src/addressbook.c:
+         addressbook_folder_load_person()
+         addressbook_folder_load_group(): ¥ë¡¼¥×¤Î¸å¤Ç ctree ¤ò¥½¡¼¥È¤¹¤ë
+         ¤è¤¦¤Ë¤·¤¿(°ì¤Ä¤Î¥Õ¥©¥ë¥À¤Ë¿¤¯¤Î¥¢¥É¥ì¥¹¤¬¤¢¤ë¾ì¹ç¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹
+         ¤ÎÌäÂê¤ò²ò·è)(christian mock ¤µ¤ó thanks)¡£
+
+2003-09-16
+
+       * src/folderview.c: folder_init(): ¥³¡¼¥É¤òÀ°Íý¡£
+       * src/summaryview.c: summary_init(): boldfont ¤¬Àµ¤·¤¯¥í¡¼¥É¤µ¤ì¤¿¤«
+         ¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¡£
+       * src/grouplistdialog.c: delete_event ¤ËŬÀڤʥ³¡¼¥ë¥Ð¥Ã¥¯¤ò»ÈÍѤ¹¤ë
+         ¤è¤¦¤Ë¤·¤¿(­±Ê¤µ¤ó thanks)¡£
+       * src/imap.c: ¥¼¥íĹ¥á¥Ã¥»¡¼¥¸¤òµö¤¹¤è¤¦¤Ë¤·¤¿¡£
+       * src/recv.c: recv_bytes_write(): size == 0 ¤Î¾ì¹ç¤Ï¤¹¤°¤ËÌá¤ë¤è¤¦¤Ë
+         ¤·¤¿¡£
+
 2003-09-16
 
        * src/folderview.c: folderview_init(): ¥Õ¥©¥ó¥È¤¬Æɤ߹þ¤á¤Ê¤¤¾ì¹ç¤Ï
 2003-09-16
 
        * src/folderview.c: folderview_init(): ¥Õ¥©¥ó¥È¤¬Æɤ߹þ¤á¤Ê¤¤¾ì¹ç¤Ï
index 5cf59699f759e3a19fb2a202c9dea414015ded2b..5f1b36e159b8c067d4102406ed9c817947624e31 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=16
+EXTRA_VERSION=17
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
index 6daf690400b23cea8561f065e2526b091d7c92ab..7616785bea62f2bbe2066790cd815f85a5e3c01b 100644 (file)
@@ -2669,8 +2669,9 @@ static void addressbook_folder_load_group( GtkCTree *clist, ItemFolder *itemFold
                                      atci->iconXpmOpen, atci->maskXpmOpen,
                                      FALSE, FALSE);
                gtk_ctree_node_set_row_data(clist, nodeGroup, group );
                                      atci->iconXpmOpen, atci->maskXpmOpen,
                                      FALSE, FALSE);
                gtk_ctree_node_set_row_data(clist, nodeGroup, group );
-               gtk_sctree_sort_node(clist, NULL);
        }
        }
+       gtk_sctree_sort_node(clist, NULL);
+
        /* Free up the list */
        mgu_clear_list( items );
        g_list_free( items );
        /* Free up the list */
        mgu_clear_list( items );
        g_list_free( items );
index 114863013e8764d4c4eaf149b23d387def8f0f6b..248493fe73beb81e21791c658906fc713b5a448f 100644 (file)
@@ -587,36 +587,22 @@ void folderview_init(FolderView *folderview)
        gtk_clist_set_column_widget(GTK_CLIST(ctree),COL_NEW,hbox_new);
        gtk_clist_set_column_widget(GTK_CLIST(ctree),COL_UNREAD,hbox_unread);
                        
        gtk_clist_set_column_widget(GTK_CLIST(ctree),COL_NEW,hbox_new);
        gtk_clist_set_column_widget(GTK_CLIST(ctree),COL_UNREAD,hbox_unread);
                        
-       if (!normalfont) {
-               normalfont = gtkut_font_load(prefs_common.normalfont);
-               if (!normalfont) {
-                       GtkStyle *style;
-                       style = gtk_widget_get_style(ctree);
-                       normalfont = style->font;
-                       gdk_font_ref(normalfont);
-               } 
-       }
-       
        if (!normal_style) {
                normal_style = gtk_style_copy(gtk_widget_get_style(ctree));
        if (!normal_style) {
                normal_style = gtk_style_copy(gtk_widget_get_style(ctree));
-               normal_style->font = normalfont;
+               if (!normalfont)
+                       normalfont = gtkut_font_load(prefs_common.normalfont);
+               if (normalfont)
+                       normal_style->font = normalfont;
                normal_color_style = gtk_style_copy(normal_style);
                normal_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
        }
 
                normal_color_style = gtk_style_copy(normal_style);
                normal_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
        }
 
-       if (!boldfont) {
-               boldfont = gtkut_font_load(prefs_common.boldfont);
-               if (!boldfont) {
-                       GtkStyle *style;
-                       style = gtk_widget_get_style(ctree);
-                       boldfont = style->font;
-                       gdk_font_ref(boldfont);
-               }
-       }
-
        if (!bold_style) {
                bold_style = gtk_style_copy(gtk_widget_get_style(ctree));
        if (!bold_style) {
                bold_style = gtk_style_copy(gtk_widget_get_style(ctree));
-               bold_style->font = boldfont;
+               if (!boldfont)
+                       boldfont = gtkut_font_load(prefs_common.boldfont);
+               if (boldfont)
+                       bold_style->font = boldfont;
                bold_color_style = gtk_style_copy(bold_style);
                bold_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
 
                bold_color_style = gtk_style_copy(bold_style);
                bold_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
 
index c06a2436c76259dbd75d7542abaa530b46dbaa72..6f0b297eaccfff308fb31bd4d7e968fa000122e0 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2002 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2003 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
  *
  * 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
@@ -79,6 +79,9 @@ static gboolean grouplist_recv_func   (SockInfo       *sock,
                                         gint            read_bytes,
                                         gpointer        data);
 
                                         gint            read_bytes,
                                         gpointer        data);
 
+static gint window_deleted     (GtkWidget      *widget,
+                                GdkEventAny    *event,
+                                gpointer        data);
 static void ok_clicked         (GtkWidget      *widget,
                                 gpointer        data);
 static void cancel_clicked     (GtkWidget      *widget,
 static void ok_clicked         (GtkWidget      *widget,
                                 gpointer        data);
 static void cancel_clicked     (GtkWidget      *widget,
@@ -172,7 +175,7 @@ static void grouplist_dialog_create(void)
        gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
        gtk_window_set_title(GTK_WINDOW(dialog), _("Newsgroup subscription"));
        gtk_signal_connect(GTK_OBJECT(dialog), "delete_event",
        gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
        gtk_window_set_title(GTK_WINDOW(dialog), _("Newsgroup subscription"));
        gtk_signal_connect(GTK_OBJECT(dialog), "delete_event",
-                          GTK_SIGNAL_FUNC(cancel_clicked), NULL);
+                          GTK_SIGNAL_FUNC(window_deleted), NULL);
        gtk_signal_connect(GTK_OBJECT(dialog), "key_press_event",
                           GTK_SIGNAL_FUNC(key_pressed), NULL);
        MANAGE_WINDOW_SIGNALS_CONNECT(dialog);
        gtk_signal_connect(GTK_OBJECT(dialog), "key_press_event",
                           GTK_SIGNAL_FUNC(key_pressed), NULL);
        MANAGE_WINDOW_SIGNALS_CONNECT(dialog);
@@ -484,6 +487,15 @@ static gboolean grouplist_recv_func(SockInfo *sock, gint count, gint read_bytes,
                return TRUE;
 }
 
                return TRUE;
 }
 
+static gint window_deleted(GtkWidget *widget, GdkEventAny *event, gpointer data)
+{
+       ack = FALSE;
+       if (gtk_main_level() > 1)
+               gtk_main_quit();
+
+       return TRUE;
+}
+
 static void ok_clicked(GtkWidget *widget, gpointer data)
 {
        ack = TRUE;
 static void ok_clicked(GtkWidget *widget, gpointer data)
 {
        ack = TRUE;
index e98c7484e823d3c42ad86448fe8fe5b6ec05617b..c4e4d127f775adf9b391d42f3fe697b98ece9538 100644 (file)
@@ -46,8 +46,6 @@
 #include "gtkutils.h"
 #include "utils.h"
 
 #include "gtkutils.h"
 #include "utils.h"
 
-static GdkFont *boldfont;
-
 #define TR(str)        (prefs_common.trans_hdr ? gettext(str) : str)
 
 #if 0
 #define TR(str)        (prefs_common.trans_hdr ? gettext(str) : str)
 
 #if 0
@@ -133,6 +131,8 @@ HeaderView *headerview_create(void)
 
 void headerview_init(HeaderView *headerview)
 {
 
 void headerview_init(HeaderView *headerview)
 {
+       static GdkFont *boldfont = NULL;
+
        if (!boldfont)
                boldfont = gtkut_font_load(BOLD_FONT);
 
        if (!boldfont)
                boldfont = gtkut_font_load(BOLD_FONT);
 
index be3fc8aa3bdd5ff866effeb76b6a6bda10e29517..01cd4d1d30c4493a5955d1f98e2684809811162a 100644 (file)
@@ -2147,7 +2147,7 @@ static gchar *imap_parse_atom(SockInfo *sock, gchar *src,
 
                cur_pos = strchr_cpy(cur_pos + 1, '}', buf, sizeof(buf));
                len = atoi(buf);
 
                cur_pos = strchr_cpy(cur_pos + 1, '}', buf, sizeof(buf));
                len = atoi(buf);
-               g_return_val_if_fail(len > 0, cur_pos);
+               g_return_val_if_fail(len >= 0, cur_pos);
 
                g_string_truncate(str, 0);
                cur_pos = str->str;
 
                g_string_truncate(str, 0);
                cur_pos = str->str;
@@ -2190,7 +2190,7 @@ static gchar *imap_get_header(SockInfo *sock, gchar *cur_pos, gchar **headers,
 
        cur_pos = strchr_cpy(cur_pos + 1, '}', buf, sizeof(buf));
        len = atoi(buf);
 
        cur_pos = strchr_cpy(cur_pos + 1, '}', buf, sizeof(buf));
        len = atoi(buf);
-       g_return_val_if_fail(len > 0, cur_pos);
+       g_return_val_if_fail(len >= 0, cur_pos);
 
        g_string_truncate(str, 0);
        cur_pos = str->str;
 
        g_string_truncate(str, 0);
        cur_pos = str->str;
@@ -2841,7 +2841,7 @@ static gint imap_cmd_fetch(IMAPSession *session, guint32 uid, const gchar *filen
        cur_pos = strchr_cpy(cur_pos + 1, '}', size_str, sizeof(size_str));
        RETURN_ERROR_IF_FAIL(cur_pos != NULL);
        size_num = atol(size_str);
        cur_pos = strchr_cpy(cur_pos + 1, '}', size_str, sizeof(size_str));
        RETURN_ERROR_IF_FAIL(cur_pos != NULL);
        size_num = atol(size_str);
-       RETURN_ERROR_IF_FAIL(size_num > 0);
+       RETURN_ERROR_IF_FAIL(size_num >= 0);
 
        RETURN_ERROR_IF_FAIL(*cur_pos == '\0');
 
 
        RETURN_ERROR_IF_FAIL(*cur_pos == '\0');
 
index ff135a293f139b77fa3aa981bf71c61a362efb09..3c4597b362ac27a0d4cac7a634d28db0392157c4 100644 (file)
@@ -41,7 +41,7 @@ gint recv_write_to_file(SockInfo *sock, const gchar *filename)
 {
        FILE *fp;
        gint ret;
 {
        FILE *fp;
        gint ret;
-       
+
        g_return_val_if_fail(filename != NULL, -1);
 
        if ((fp = fopen(filename, "wb")) == NULL) {
        g_return_val_if_fail(filename != NULL, -1);
 
        if ((fp = fopen(filename, "wb")) == NULL) {
@@ -169,6 +169,9 @@ gint recv_bytes_write(SockInfo *sock, glong size, FILE *fp)
        glong count = 0;
        gchar *prev, *cur;
 
        glong count = 0;
        gchar *prev, *cur;
 
+       if (size == 0)
+               return 0;
+
        buf = g_malloc(size);
 
        do {
        buf = g_malloc(size);
 
        do {
index 2208266592a63978bf4f802f565e525bdfea4ad5..ac2fbda191d68b3e3e483cd5e04f8c9a3d36a83c 100644 (file)
@@ -91,8 +91,6 @@
 #define SUMMARY_COL_LOCKED_WIDTH       13
 #define SUMMARY_COL_MIME_WIDTH         11
 
 #define SUMMARY_COL_LOCKED_WIDTH       13
 #define SUMMARY_COL_MIME_WIDTH         11
 
-static GdkFont *boldfont;
-static GdkFont *smallfont;
 
 static GtkStyle *bold_style;
 static GtkStyle *bold_marked_style;
 
 static GtkStyle *bold_style;
 static GtkStyle *bold_marked_style;
@@ -722,6 +720,8 @@ SummaryView *summary_create(void)
 
 void summary_init(SummaryView *summaryview)
 {
 
 void summary_init(SummaryView *summaryview)
 {
+       static GdkFont *boldfont = NULL;
+       static GdkFont *smallfont = NULL;
        GtkStyle *style;
        GtkWidget *pixmap;
 
        GtkStyle *style;
        GtkWidget *pixmap;
 
@@ -751,6 +751,21 @@ void summary_init(SummaryView *summaryview)
        stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_GPG_SIGNED,
                         &gpgsignedxpm, &gpgsignedxpmmask);
 
        stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_GPG_SIGNED,
                         &gpgsignedxpm, &gpgsignedxpmmask);
 
+       if (!bold_style) {
+               bold_style = gtk_style_copy
+                       (gtk_widget_get_style(summaryview->ctree));
+               if (!boldfont)
+                       boldfont = gtkut_font_load(BOLD_FONT);
+               if (boldfont)
+                       bold_style->font = boldfont;
+               bold_marked_style = gtk_style_copy(bold_style);
+               bold_marked_style->fg[GTK_STATE_NORMAL] =
+                       summaryview->color_marked;
+               bold_deleted_style = gtk_style_copy(bold_style);
+               bold_deleted_style->fg[GTK_STATE_NORMAL] =
+                       summaryview->color_dim;
+       }
+       
        if (!small_style) {
                small_style = gtk_style_copy
                        (gtk_widget_get_style(summaryview->ctree));
        if (!small_style) {
                small_style = gtk_style_copy
                        (gtk_widget_get_style(summaryview->ctree));
@@ -764,23 +779,11 @@ void summary_init(SummaryView *summaryview)
                small_deleted_style->fg[GTK_STATE_NORMAL] =
                        summaryview->color_dim;
        }
                small_deleted_style->fg[GTK_STATE_NORMAL] =
                        summaryview->color_dim;
        }
-       if (!bold_style) {
-               bold_style = gtk_style_copy
-                       (gtk_widget_get_style(summaryview->ctree));
-               if (!boldfont)
-                       boldfont = gtkut_font_load(BOLD_FONT);
-               bold_style->font = boldfont;
-               bold_marked_style = gtk_style_copy(bold_style);
-               bold_marked_style->fg[GTK_STATE_NORMAL] =
-                       summaryview->color_marked;
-               bold_deleted_style = gtk_style_copy(bold_style);
-               bold_deleted_style->fg[GTK_STATE_NORMAL] =
-                       summaryview->color_dim;
-       }
 
        style = gtk_style_copy(gtk_widget_get_style
                                (summaryview->statlabel_folder));
 
        style = gtk_style_copy(gtk_widget_get_style
                                (summaryview->statlabel_folder));
-
+       if (smallfont)
+               style->font = smallfont;
        gtk_widget_set_style(summaryview->statlabel_folder, style);
        gtk_widget_set_style(summaryview->statlabel_select, style);
        gtk_widget_set_style(summaryview->statlabel_msgs, style);
        gtk_widget_set_style(summaryview->statlabel_folder, style);
        gtk_widget_set_style(summaryview->statlabel_select, style);
        gtk_widget_set_style(summaryview->statlabel_msgs, style);