From: Paul Mangan Date: Thu, 26 Dec 2002 00:40:41 +0000 (+0000) Subject: partial sync with 0.8.8 release X-Git-Tag: rel_0_8_8~4 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=c2bd9fa7b8a1c6de71590f37f66bdda80d69d1eb partial sync with 0.8.8 release --- diff --git a/ChangeLog b/ChangeLog index 813ed1b93..54e79bdb2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,32 @@ +2002-12-25 + + * version 0.8.8 + +2002-12-25 + + * src/codeconv.c: conv_encode_header(): fixed a bug which will run + into infinite loop when encountering invalid characters. + +2002-12-25 + + * src/procmsg.[ch]: procmsg_sort_msg_list(): new. It sorts message + list. + * src/summaryview.c: summary_show(): removed summary_sort() because + it is done inside folder_item_get_msg_list(). This will improve + the performance of summary display. + Sorted out the summary sort functions using macros. + * src/mh.c + src/imap.c + src/news.c + src/folder.[ch]: folder_item_get_msg_list(): return pre-sorted + list if FolderItem::sort_key is set. + Added SORT_BY_TO to FolderSortKey enum. + * src/mainwindow.c: added "View/Sort/by recipient". + +2002-12-20 + + * version 0.8.7 + 2002-12-20 * src/codeconv.c: conv_encode_header(): fix for redundant space on diff --git a/ChangeLog.claws b/ChangeLog.claws index e2259c007..39c7e4966 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,15 @@ +2002-12-26 [paul] 0.8.7claws10 + + * src/codeconv.c + src/mainwindow.c + sync with 0.8.8 release + + * src/folder.[ch] + src/mh.c + src/summaryview.c + partial sync with 0.8.8 release + + 2002-12-25 [alfons] 0.8.7claws9 * src/matcher.[ch] diff --git a/ChangeLog.jp b/ChangeLog.jp index 141167070..a9fd61902 100644 --- a/ChangeLog.jp +++ b/ChangeLog.jp @@ -1,3 +1,32 @@ +2002-12-25 + + * version 0.8.8 + +2002-12-25 + + * src/codeconv.c: conv_encode_header(): ̵¸ú¤Êʸ»ú¤¬¸½¤ï¤ì¤ë¤È̵¸Â + ¥ë¡¼¥×¤Ë´Ù¤ë¥Ð¥°¤ò½¤Àµ¡£ + +2002-12-25 + + * src/procmsg.[ch]: procmsg_sort_msg_list(): ¿·µ¬¡£¥á¥Ã¥»¡¼¥¸¥ê¥¹¥È + ¤ò¥½¡¼¥È¤¹¤ë¡£ + * src/summaryview.c: summary_show(): summary_sort() ¤òºï½ü + (folder_item_get_msg_list() ÆâÉô¤Ç¹Ô¤ï¤ì¤ë¤¿¤á)¡£¤³¤ì¤Ë¤è¤ê + ¥µ¥Þ¥êɽ¼¨¤Î®ÅÙ¤ò¸þ¾å¡£ + ¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥µ¥Þ¥ê¤Î¥½¡¼¥È´Ø¿ô¤òÀ°Íý¡£ + * src/mh.c + src/imap.c + src/news.c + src/folder.[ch]: folder_item_get_msg_list(): FolderItem::sort_key + ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¤¢¤é¤«¤¸¤á¥½¡¼¥È¤·¤¿¥ê¥¹¥È¤òÊÖ¤¹¤è¤¦¤Ë¤·¤¿¡£ + FolderSortKey enum ¤Ë SORT_BY_TO ¤òÄɲᣠ+ * src/mainwindow.c: ¡Öɽ¼¨/¥½¡¼¥È/°¸Àè½ç¡×¤òÄɲᣠ+ +2002-12-20 + + * version 0.8.7 + 2002-12-20 * src/codeconv.c: conv_encode_header(): ²þ¹Ô»þ¤Î;ʬ¤Ê¶õÇò¤Î½¤Àµ¡£ diff --git a/INSTALL b/INSTALL index 846bbe646..986b5bd37 100644 --- a/INSTALL +++ b/INSTALL @@ -11,16 +11,15 @@ It is confirmed to work on the following environments: Linux -o Debian GNU/Linux unstable (sid) (glibc 2.2.x) -o Debian GNU/Linux testing (woody) (glibc 2.2.x) +o Debian GNU/Linux unstable (sid) (glibc 2.3.x) +o Debian GNU/Linux 3.0 (woody) (glibc 2.2.5) o Debian GNU/Linux 2.2 (potato) (glibc 2.1.3) o Kondara MNU/Linux (glibc 2.1.x) o Kondara MNU/Linux 1.2 o Kondara MNU/Linux 2.0 o Vine Linux 1.1 (glibc 2.0.x + libwcsmbs) o Vine Linux 2.0 (glibc 2.1.x) (Intel, PPC) -o Vine Linux 2.1 -o Vine Linux 2.1.5 +o Vine Linux 2.1 / 2.1.5 / 2.5 / 2.6 o Laser5 Linux 6.0 / 6.2 / 6.4 (glibc 2.1.x) o TurboLinux 4.0 (glibc 2.0.7 + libwcsmbs) o TurboLinux 6.0 (glibc 2.1.2) @@ -41,9 +40,9 @@ o Linux for PPC Japanese Edition 3.0 (glibc 2.1.x) o LinuxPPC Q4 2000 (glibc 2.1.x) o Linux MLD4 o Linux MLD5 -o Plamo Linux 2.0 / 2.1 / 2.2.x / 3.0-alpha -o Slackware 7.0 / 7.1 / 8.0 -o Linux Mandrake 7.0 / 7.1 / 7.2 / 8.0 / 8.1 +o Plamo Linux 2.0 / 2.1 / 2.2.x / 3.0 +o Slackware 7.0 / 7.1 / 8.0 / 8.1 +o Linux Mandrake 7.0 / 7.1 / 7.2 / 8.0 / 8.1 / 9.0 o SuSE Linux 6.3 (glibc 2.1.2) o SuSE Linux 6.4 o SuSE Linux 7.0 / 7.1 / 7.2 / 7.3 @@ -75,7 +74,7 @@ o BSD/OS 4.0.1 Other commercial Unix o Solaris 2.5 / 2.5.1 / 2.6 -o Solaris 7 / 8 +o Solaris 7 / 8 / 9 o IRIX 6.3 / 6.4 / 6.5 6.5.8m o HP-UX 10.20 / 11.0 / 11i o Tru64 Unix 5.0 (OSF1 V5.0) @@ -119,7 +118,7 @@ iconv(). You can obtain it from the following location: http://ghost.math.sci.hokudai.ac.jp/misc/libjconv/ -GnuPG (>= 1.0.7) and GPGME (>= 0.3.5) are required for GnuPG (PGP) support. +GnuPG (>= 1.0.7) and GPGME (>= 0.3.10) are required for GnuPG (PGP) support. You can get GnuPG and GPGME from the following location: ftp://ftp.gnupg.org/pub/gcrypt/alpha/gpgme/ diff --git a/INSTALL.jp b/INSTALL.jp index 6062d39d3..b38fb535b 100644 --- a/INSTALL.jp +++ b/INSTALL.jp @@ -10,16 +10,15 @@ Linux -o Debian GNU/Linux unstable (sid) (glibc 2.2.x) -o Debian GNU/Linux testing (woody) (glibc 2.2.x) +o Debian GNU/Linux unstable (sid) (glibc 2.3.x) +o Debian GNU/Linux 3.0 (woody) (glibc 2.2.5) o Debian GNU/Linux 2.2 (potato) (glibc 2.1.3) o Kondara MNU/Linux (glibc 2.1.x) o Kondara MNU/Linux 1.2 o Kondara MNU/Linux 2.0 o Vine Linux 1.1 (glibc 2.0.x + libwcsmbs) o Vine Linux 2.0 (glibc 2.1.x) (Intel, PPC) -o Vine Linux 2.1 -o Vine Linux 2.1.5 +o Vine Linux 2.1 / 2.1.5 / 2.5 / 2.6 o Laser5 Linux 6.0 / 6.2 / 6.4 (glibc 2.1.x) o TurboLinux 4.0 (glibc 2.0.7 + libwcsmbs) o TurboLinux 6.0 (glibc 2.1.2) @@ -40,9 +39,9 @@ o Linux for PPC Japanese Edition 3.0 (glibc 2.1.x) o LinuxPPC Q4 2000 (glibc 2.1.x) o Linux MLD4 o Linux MLD5 -o Plamo Linux 2.0 / 2.1 / 2.2.x / 3.0-alpha -o Slackware 7.0 / 7.1 / 8.0 -o Linux Mandrake 7.0 / 7.1 / 7.2 / 8.0 / 8.1 +o Plamo Linux 2.0 / 2.1 / 2.2.x / 3.0 +o Slackware 7.0 / 7.1 / 8.0 / 8.1 +o Linux Mandrake 7.0 / 7.1 / 7.2 / 8.0 / 8.1 / 9.0 o SuSE Linux 6.3 (glibc 2.1.2) o SuSE Linux 6.4 o SuSE Linux 7.0 / 7.1 / 7.2 / 7.3 @@ -75,7 +74,7 @@ o BSD/OS 4.0.1 ¤½¤Î¾¾¦ÍÑ Unix o Solaris 2.5 / 2.5.1 / 2.6 -o Solaris 7 / 8 +o Solaris 7 / 8 / 9 o IRIX 6.3 / 6.4 / 6.5 6.5.8m o HP-UX 10.20 / 11.0 / 11i o Tru64 Unix 5.0 (OSF1 V5.0) @@ -119,7 +118,7 @@ Sylpheed http://ghost.math.sci.hokudai.ac.jp/misc/libjconv/ -GnuPG (PGP)Âбþ¤òÍ­¸ú¤Ë¤·¤¿¤¤¾ì¹ç¤Ï¡¢ GPGME 0.3.5 °Ê¹ß¤È GnuPG 1.0.7 °Ê¹ß¤¬ +GnuPG (PGP)Âбþ¤òÍ­¸ú¤Ë¤·¤¿¤¤¾ì¹ç¤Ï¡¢ GPGME 0.3.10 °Ê¹ß¤È GnuPG 1.0.7 °Ê¹ß¤¬ ɬÍפǤ¹¡£°Ê²¼¤Î¾ì½ê¤«¤é¼èÆÀ¤Ç¤­¤Þ¤¹: ftp://ftp.gnupg.org/pub/gcrypt/alpha/gpgme/ diff --git a/README b/README index ab5e2402e..e8129b766 100644 --- a/README +++ b/README @@ -54,6 +54,8 @@ Currently implemented features are: o X-Face support o multiple MH folder support o mbox importing / exporting + o remote operation by command line + o per-folder configuration o external editor support o message queueing o automatic mail checking @@ -71,7 +73,7 @@ Currently implemented features are: o SSL support (POP3, SMTP, IMAP4rev1) o IPv6 support o drag & drop (partially implemented) - o GnuPG support (currently implementing) + o GnuPG support (currently in progress) o automake + autoconf support o internationalization of messages by gettext o support of many code sets, including UTF-8 (Unicode) (when using diff --git a/README.jp b/README.jp index 571c6cd89..49064d458 100644 --- a/README.jp +++ b/README.jp @@ -72,6 +72,8 @@ Wanderlust o X-Face Âбþ o Ê£¿ô¤Î MH ¥Õ¥©¥ë¥À¤ËÂбþ o mbox ¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥Ý¡¼¥È / ¥¨¥¯¥¹¥Ý¡¼¥È + o ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤è¤ë¥ê¥â¡¼¥ÈÁàºî + o ¥Õ¥©¥ë¥ÀËè¤ÎÀßÄê o ³°Éô¥¨¥Ç¥£¥¿Âбþ o Á÷¿®ÂÔµ¡µ¡Ç½ o ¼«Æ°¥á¡¼¥ë¥Á¥§¥Ã¥¯µ¡Ç½ @@ -147,6 +149,26 @@ Wanderlust °ìÈÌŪ¤Ê»ÈÍÑË¡¤Ë´Ø¤·¤Æ¤Ï¤³¤Î¥×¥í¥°¥é¥à¤ËÉÕ°¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +±£¤·ÀßÄê +-------- + +Sylpheed ¤Î¤Û¤È¤ó¤É¤Îµ¡Ç½¤ÏÀßÄê¥À¥¤¥¢¥í¥°¤«¤éÀßÄê¤Ç¤­¤Þ¤¹¤¬¡¢¥æ¡¼¥¶¥¤¥ó¥¿ +¥Õ¥§¡¼¥¹¤ò»ý¤¿¤Ê¤¤ÀßÄê¹àÌܤ¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹(Ä̾ï¤ÏÊѹ¹¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó)¡£ +Sylpheed ¤¬µ¯Æ°¤·¤Æ¤¤¤Ê¤¤¤È¤­¤Ë ~/.sylpheed/sylpheedrc ¤ò¥¨¥Ç¥£¥¿¤ÇÊÔ½¸ +¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + +bold_font ¥Õ¥©¥ë¥À¡¢¥µ¥Þ¥ê¡¢¥Æ¥­¥¹¥È¥Ó¥å¡¼¤Ç»ÈÍѤµ¤ì¤ë + ¥Ü¡¼¥ë¥É¥Õ¥©¥ó¥È +small_font ¥µ¥Þ¥ê¥Ó¥å¡¼Åù¤Ç»ÈÍѤµ¤ì¤ë¾®¥Õ¥©¥ó¥È +enable_hscrollbar ¥µ¥Þ¥ê¥Ó¥å¡¼¤Ç¿åÊ¿¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤òÍ­¸ú¤Ë¤¹¤ë + 0: off 1: on [¥Ç¥Õ¥©¥ë¥È: 1] +bold_unread ¥µ¥Þ¥ê¥Ó¥å¡¼¤Ç̤ÆÉ¥á¥Ã¥»¡¼¥¸¤ò¥Ü¡¼¥ë¥É + ¥Õ¥©¥ó¥È¤ò»ÈÍѤ·¤Æɽ¼¨ + 0: off 1: on [¥Ç¥Õ¥©¥ë¥È: 1] +folderview_vscrollbar_policy ¥Õ¥©¥ë¥À¥Ó¥å¡¼¤Î¿âľ¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤Î¥Ý¥ê¥·¡¼ + ¤ò»ØÄê + 0: ¾ï¤Ëɽ¼¨ 1: ¼«Æ° 2: Èóɽ¼¨ [¥Ç¥Õ¥©¥ë¥È: 0] + ¾ðÊó ==== diff --git a/configure.in b/configure.in index 37fa2838d..f87269c3b 100644 --- a/configure.in +++ b/configure.in @@ -11,7 +11,7 @@ MINOR_VERSION=8 MICRO_VERSION=7 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws9 +EXTRA_VERSION=claws10 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/codeconv.c b/src/codeconv.c index aaddd2694..123e5733a 100644 --- a/src/codeconv.c +++ b/src/codeconv.c @@ -1095,6 +1095,8 @@ void conv_encode_header(gchar *dest, gint len, const gchar *src, } cur_encoding = conv_get_current_charset_str(); + if (!strcmp(cur_encoding, "US-ASCII")) + cur_encoding = "ISO-8859-1"; out_encoding = conv_get_outgoing_charset_str(); if (!strcmp(out_encoding, "US-ASCII")) out_encoding = "ISO-8859-1"; @@ -1144,15 +1146,22 @@ void conv_encode_header(gchar *dest, gint len, const gchar *src, if (isspace(*p) && !is_next_nonascii(p + 1)) break; - mb_len = mblen(p, MB_CUR_MAX); - if (mb_len < 0) { - g_warning("invalid multibyte character encountered\n"); - break; - } + if (MB_CUR_MAX > 1) { + mb_len = mblen(p, MB_CUR_MAX); + if (mb_len < 0) { + g_warning("conv_encode_header(): invalid multibyte character encountered\n"); + mb_len = 1; + } + } else + mb_len = 1; Xstrndup_a(part_str, srcp, cur_len + mb_len, ); out_str = conv_codeset_strdup (part_str, cur_encoding, out_encoding); + if (!out_str) { + g_warning("conv_encode_header(): code conversion failed\n"); + out_str = g_strdup(out_str); + } out_str_len = strlen(out_str); if (use_base64) @@ -1179,6 +1188,10 @@ void conv_encode_header(gchar *dest, gint len, const gchar *src, Xstrndup_a(part_str, srcp, cur_len, ); out_str = conv_codeset_strdup (part_str, cur_encoding, out_encoding); + if (!out_str) { + g_warning("conv_encode_header(): code conversion failed\n"); + out_str = g_strdup(out_str); + } out_str_len = strlen(out_str); if (use_base64) diff --git a/src/folder.c b/src/folder.c index 962fd2099..85aae92c8 100644 --- a/src/folder.c +++ b/src/folder.c @@ -2245,6 +2245,8 @@ static gboolean folder_build_tree(GNode *node, gpointer data) sort_key = SORT_BY_UNREAD; else if (!strcmp(attr->value, "mime")) sort_key = SORT_BY_MIME; + else if (!strcmp(attr->value, "to")) + sort_key = SORT_BY_TO; else if (!strcmp(attr->value, "locked")) sort_key = SORT_BY_LOCKED; } else if (!strcmp(attr->name, "sort_type")) { @@ -2400,7 +2402,8 @@ static void folder_write_list_recursive(GNode *node, gpointer data) "draft", "queue", "trash"}; static gchar *sort_key_str[] = {"none", "number", "size", "date", "from", "subject", "score", "label", - "mark", "unread", "mime", "locked" }; + "mark", "unread", "mime", "to", + "locked"}; g_return_if_fail(node != NULL); g_return_if_fail(fp != NULL); diff --git a/src/folder.h b/src/folder.h index 3472aa9d8..2b12de6d6 100644 --- a/src/folder.h +++ b/src/folder.h @@ -90,6 +90,7 @@ typedef enum SORT_BY_MARK, SORT_BY_UNREAD, SORT_BY_MIME, + SORT_BY_TO, SORT_BY_LOCKED } FolderSortKey; diff --git a/src/mainwindow.c b/src/mainwindow.c index da6e94155..bf29aea33 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -452,6 +452,7 @@ static GtkItemFactoryEntry mainwin_entries[] = {N_("/_View/_Sort/by s_ize"), NULL, sort_summary_cb, SORT_BY_SIZE, "/View/Sort/by number"}, {N_("/_View/_Sort/by _date"), NULL, sort_summary_cb, SORT_BY_DATE, "/View/Sort/by number"}, {N_("/_View/_Sort/by _from"), NULL, sort_summary_cb, SORT_BY_FROM, "/View/Sort/by number"}, + {N_("/_View/_Sort/by _recipient"), NULL, sort_summary_cb, SORT_BY_TO, "/View/Sort/by number"}, {N_("/_View/_Sort/by _subject"), NULL, sort_summary_cb, SORT_BY_SUBJECT, "/View/Sort/by number"}, {N_("/_View/_Sort/by _color label"), NULL, sort_summary_cb, SORT_BY_LABEL, "/View/Sort/by number"}, @@ -1599,6 +1600,8 @@ void main_window_set_menu_sensitive(MainWindow *mainwin) menu_path = "/View/Sort/by date"; break; case SORT_BY_FROM: menu_path = "/View/Sort/by from"; break; + case SORT_BY_TO: + menu_path = "/View/Sort/by recipient"; break; case SORT_BY_SUBJECT: menu_path = "/View/Sort/by subject"; break; case SORT_BY_LABEL: diff --git a/src/mh.c b/src/mh.c index 7b9d47c2d..be3a0cb97 100644 --- a/src/mh.c +++ b/src/mh.c @@ -1037,7 +1037,7 @@ static GSList *mh_get_uncached_msgs(GHashTable *msg_table, FolderItem *item) return NULL; } - debug_print("\tSearching uncached messages... "); + debug_print("Searching uncached messages...\n"); if (msg_table) { while ((d = readdir(dp)) != NULL) { @@ -1098,7 +1098,7 @@ static GSList *mh_get_uncached_msgs(GHashTable *msg_table, FolderItem *item) /* sort new messages in numerical order */ if (newlist) { - debug_print("\tSorting uncached messages in numerical order... "); + debug_print("Sorting uncached messages in numerical order...\n"); newlist = g_slist_sort (newlist, (GCompareFunc)procmsg_cmp_msgnum_for_sort); debug_print("done.\n"); diff --git a/src/summaryview.c b/src/summaryview.c index 3d40b25ca..155e25ee9 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -361,22 +361,25 @@ static gint summary_cmp_by_date (GtkCList *clist, static gint summary_cmp_by_from (GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2); -static gint summary_cmp_by_to (GtkCList *clist, - gconstpointer ptr1, - gconstpointer ptr2); static gint summary_cmp_by_subject (GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2); static gint summary_cmp_by_simplified_subject - (GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2); + (GtkCList *clist, + gconstpointer ptr1, + gconstpointer ptr2); static gint summary_cmp_by_score (GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2); -static gint summary_cmp_by_locked (GtkCList *clist, - gconstpointer ptr1, gconstpointer ptr2); static gint summary_cmp_by_label (GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2); +static gint summary_cmp_by_to (GtkCList *clist, + gconstpointer ptr1, + gconstpointer ptr2); +static gint summary_cmp_by_locked (GtkCList *clist, + gconstpointer ptr1, + gconstpointer ptr2); static void news_flag_crosspost (MsgInfo *msginfo); @@ -2046,10 +2049,7 @@ void summary_sort(SummaryView *summaryview, cmp_func = (GtkCListCompareFunc)summary_cmp_by_date; break; case SORT_BY_FROM: - if (summaryview->folder_item && summaryview->folder_item->stype != F_OUTBOX) - cmp_func = (GtkCListCompareFunc) summary_cmp_by_from; - else - cmp_func = (GtkCListCompareFunc) summary_cmp_by_to; + cmp_func = (GtkCListCompareFunc)summary_cmp_by_from; break; case SORT_BY_SUBJECT: if (summaryview->simplify_subject_preg) @@ -2060,12 +2060,15 @@ void summary_sort(SummaryView *summaryview, case SORT_BY_SCORE: cmp_func = (GtkCListCompareFunc)summary_cmp_by_score; break; - case SORT_BY_LOCKED: - cmp_func = (GtkCListCompareFunc)summary_cmp_by_locked; - break; case SORT_BY_LABEL: cmp_func = (GtkCListCompareFunc)summary_cmp_by_label; break; + case SORT_BY_TO: + cmp_func = (GtkCListCompareFunc)summary_cmp_by_to; + break; + case SORT_BY_LOCKED: + cmp_func = (GtkCListCompareFunc)summary_cmp_by_locked; + break; case SORT_BY_NONE: cmp_func = NULL; return;