+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
+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]
+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(): ²þ¹Ô»þ¤Î;ʬ¤Ê¶õÇò¤Î½¤Àµ¡£
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)
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
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)
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/
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)
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
¤½¤Î¾¾¦ÍÑ 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)
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/
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
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
o X-Face Âбþ
o Ê£¿ô¤Î MH ¥Õ¥©¥ë¥À¤ËÂбþ
o mbox ¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥Ý¡¼¥È / ¥¨¥¯¥¹¥Ý¡¼¥È
+ o ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤è¤ë¥ê¥â¡¼¥ÈÁàºî
+ o ¥Õ¥©¥ë¥ÀËè¤ÎÀßÄê
o ³°Éô¥¨¥Ç¥£¥¿Âбþ
o Á÷¿®ÂÔµ¡µ¡Ç½
o ¼«Æ°¥á¡¼¥ë¥Á¥§¥Ã¥¯µ¡Ç½
°ìÈÌŪ¤Ê»ÈÍÑË¡¤Ë´Ø¤·¤Æ¤Ï¤³¤Î¥×¥í¥°¥é¥à¤ËÉÕ°¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
+±£¤·ÀßÄê
+--------
+
+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]
+
¾ðÊó
====
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
}
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";
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)
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)
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")) {
"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);
SORT_BY_MARK,
SORT_BY_UNREAD,
SORT_BY_MIME,
+ SORT_BY_TO,
SORT_BY_LOCKED
} FolderSortKey;
{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"},
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:
return NULL;
}
- debug_print("\tSearching uncached messages... ");
+ debug_print("Searching uncached messages...\n");
if (msg_table) {
while ((d = readdir(dp)) != NULL) {
/* 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");
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);
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)
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;