sync with sylpheed 0.4.66cvs3-5
authorAlfons Hoogervorst <alfons@proteus.demon.nl>
Sun, 6 May 2001 20:06:56 +0000 (20:06 +0000)
committerAlfons Hoogervorst <alfons@proteus.demon.nl>
Sun, 6 May 2001 20:06:56 +0000 (20:06 +0000)
30 files changed:
COPYING
ChangeLog
ChangeLog.claws
ChangeLog.jp
TODO
TODO.jp
configure.in
po/POTFILES.in
po/ja.po
src/Makefile.am
src/account.c
src/defs.h
src/filter.c
src/headerview.c
src/inc.c
src/inc.h
src/main.c
src/main.h
src/pop.c
src/prefs_account.c
src/prefs_common.c
src/prefs_common.h
src/prefs_filter.c
src/procheader.c
src/procheader.h
src/recv.c
src/recv.h
src/textview.c
src/utils.c
src/utils.h

diff --git a/COPYING b/COPYING
index 8daa321..9a799a5 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,13 +1,10 @@
-The code in this distribution is Copyright 1999,2000 by Hiroyuki Yamamoto.
+The code in this distribution is Copyright 1999-2001 by Hiroyuki Yamamoto.
 
 The portions applied from fetchmail is Copyright 1997 by Eric S. Raymond.
 Portions of those are also copyrighted by Carl Harris, 1993 and 1995.
 Copyright retained for the purpose of protecting free redistribution of
 source.
 
-The MD5 support is copyright by RSA Data Security, Inc.  See the header
-comment of the md5.c module for license terms.
-
 Kcc is copyright by Yasuhiro Tonooka (tonooka@msi.co.jp),
 and libkcc is copyright by takeshi@SoftAgency.co.jp.
 
index d540e7b..40a0086 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,76 @@
+2001-05-06
+
+       * src/prefs_display_header.c: merged some changes from claws branch:
+         prefs_display_header_create(): allow reordering of headers by
+         dragging.
+         prefs_display_header_find_header(): new function.
+         prefs_display_header_clist_set_row(): don't allow duplicates.
+       * src/prefs_account.c: prefs_account_receive_create(): changed
+         the label of the check button.
+
+2001-05-05
+
+       * src/pop.c: pop3_getsize_list_recv(): if sscanf() failed, break
+         immediately.
+       * src/inc.h: removed cur_msg_bytes from Pop3State.
+       * src/inc.c: pop3_recv_func()
+         src/recv.[ch]: made the second arguments of RecvUIFunc current
+         total read bytes.
+         recv_write(): made it call UI func if elapsed time is greater
+         than 0.1 sec.
+       * src/recv.c: recv_write(): changed the interval to 300 usec.
+       * src/textview.c: textview_show_header(): if header is Subject,
+         unfold it.
+       * src/utils.[ch]: unfold_line(): new.
+       * src/procheader.[ch]: procheader_get_header_array(): new.
+       * src/prefs_display_header.c: updated defaults.
+
+2001-05-05
+
+       * some merge from the sylpheed-claws branch.
+         It allows user to specify displayed headers in message view.
+         (symbol names were also changed.)
+       * src/prefs_display_header.[ch]
+         src/displayheader.[ch]: new.
+       * src/prefs_display_header.c:
+         removed prefs_display_headers_other_headers_toggled().
+         removed "(New)" row from the list.
+       * src/defs.h: added DISPLAY_HEADER_RC.
+       * src/prefs_common.c: prefs_message_create(): added a button for
+         opening the display header setting dialog.
+       * src/prefs_common.h: added show_other_header and disphdr_list
+         to PrefsCommon.
+       * src/procheader.[ch]: procheader_get_header_list_from_file(),
+         procheader_get_header_array_asis(): new.
+         procheader_get_header_list(): modified so that it takes FILE
+         pointer for its argument.
+         procheader_header_array_destroy(), procheader_header_free(): new.
+       * src/main.c: main(): made it call prefs_display_header_*_config().
+       * src/textview.c: textview_scan_header(): modified so that it
+         sorts headers according to user setting.
+         src/textview_show_header(): made it call
+         textview_make_clickable_parts().
+         textview_make_clickable_parts(): added GdkFont to its arguments,
+         and removed GtkText from them.
+
+2001-05-04
+
+       * implemented auto-checking of new mail based on the patch from
+         Pierric Descamps (thanks!).
+       * src/inc.c: added inc_autocheck_timer_init(),
+         inc_autocheck_timer_set(), inc_autocheck_timer_remove(),
+         inc_autocheck_func() for auto-checking of new mail.
+       * src/main.c: main(): call inc_autocheck_timer_init().
+       * src/prefs_common.c: prefs_receive_create(): activated the
+         auto-checking UI. Added prefs_common_cancel(), and connected
+         some signals to that.
+       * src/prefs_common.c
+         src/prefs_account.c
+         src/prefs_filter.c
+         src/account.c: Disabled auto-checking while opening the dialog.
+       * src/headerview.c: headerview_show_xface(): fixed a bug that
+         showed a warning when header pane was hidden.
+
 2001-05-03
 
        * src/inc.c
index 624e998..24c6e21 100644 (file)
@@ -1,3 +1,9 @@
+2001-05-06 [alfons]
+
+       0.4.66claws3
+
+       * sync with sylpheed 0.4.66cvs3-5
+
 2001-05-06 [hoa]
 
        * src/utils.[ch]
index 6078094..b9bda37 100644 (file)
@@ -1,3 +1,78 @@
+2001-05-06
+
+       * src/prefs_display_header.c: claws ¥Ö¥é¥ó¥Á¤«¤é¤¤¤¯¤Ä¤«¤ÎÊѹ¹¤ò
+         ¥Þ¡¼¥¸:
+         prefs_display_header_create(): ¥É¥é¥Ã¥°¤Ë¤è¤ë¥Ø¥Ã¥À¤ÎʤӴ¹¤¨¤¬
+         ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¡£
+         prefs_display_header_find_header(): ¿·µ¬´Ø¿ô¡£
+         prefs_display_header_clist_set_row(): ½ÅÊ£¤òǧ¤á¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+       * src/prefs_account.c: prefs_account_receive_create(): ¥Á¥§¥Ã¥¯
+         ¥Ü¥¿¥ó¤Î¥é¥Ù¥ë¤òÊѹ¹¡£
+
+2001-05-05
+
+       * src/pop.c: pop3_getsize_list_recv(): sscanf() ¤¬¼ºÇÔ¤·¤¿¤é¡¢
+         ¤¹¤°¤Ë break ¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+       * src/inc.h: Pop3State ¤«¤é cur_msg_bytes ¤òºï½ü¡£
+       * src/inc.c: pop3_recv_func()
+         src/recv.[ch]: RecvUIFunc ¤ÎÂèÆó°ú¿ô¤ò¸½ºß¤Î¹ç·×¥Ð¥¤¥È¿ô¤Ë¤·¤¿¡£
+         recv_write(): ·Ð²á»þ´Ö¤¬0.1Éäè¤êÂ礭¤±¤ì¤Ð UI ´Ø¿ô¤ò¸Æ¤Ö¤è¤¦¤Ë
+         ¤·¤¿¡£
+       * src/recv.c: recv_write(): ´Ö³Ö¤ò300 usec ¤Ë¤·¤¿¡£
+       * src/textview.c: textview_show_header(): ¥Ø¥Ã¥À¤¬ Subject ¤Î¾ì¹ç¡¢
+         °ì¹Ô¤Ë¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+       * src/utils.[ch]: unfold_line(): ¿·µ¬¡£
+       * src/procheader.[ch]: procheader_get_header_array(): ¿·µ¬¡£
+       * src/prefs_display_header.c: ¥Ç¥Õ¥©¥ë¥È¤ò¹¹¿·¡£
+
+2001-05-05
+
+       * sylpheed-claws ¥Ö¥é¥ó¥Á¤«¤é¤¤¤¯¤Ä¤«¥Þ¡¼¥¸¡£
+         ¥á¥Ã¥»¡¼¥¸¥Ó¥å¡¼¤Ëɽ¼¨¤µ¤ì¤ë¥Ø¥Ã¥À¤ò¥æ¡¼¥¶¤¬»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
+         (¥·¥ó¥Ü¥ë̾¤ÏÊѹ¹¡£)
+       * src/prefs_display_header.[ch]
+         src/displayheader.[ch]: ¿·µ¬¡£
+       * src/prefs_display_header.c:
+         prefs_display_headers_other_headers_toggled() ¤òºï½ü¡£
+         ¥ê¥¹¥È¤«¤é "(¿·µ¬)" ¹Ô¤òºï½ü¡£
+       * src/defs.h: DISPLAY_HEADER_RC ¤òÄɲá£
+       * src/prefs_common.c: prefs_message_create(): É½¼¨¥Ø¥Ã¥À¤ÎÀßÄê
+         ¥À¥¤¥¢¥í¥°¤ò³«¤¯¥Ü¥¿¥ó¤òÄɲá£
+       * src/prefs_common.h: PrefsCommon ¤Ë show_other_header ¤È
+         disphdr_list ¤òÄɲá£
+       * src/procheader.[ch]: procheader_get_header_list_from_file(),
+         procheader_get_header_array_asis(): ¿·µ¬¡£
+         procheader_get_header_list(): °ú¿ô¤Ë FILE ¥Ý¥¤¥ó¥¿¤ò¤È¤ë¤è¤¦¤Ë
+         ½¤Àµ¡£
+         procheader_header_array_destroy(), procheader_header_free() ¿·µ¬¡£
+       * src/main.c: main(): prefs_display_header_*_config() ¤ò¸Æ¤Ö¤è¤¦¤Ë
+         ¤·¤¿¡£
+       * src/textview.c: textview_scan_header(): ¥æ¡¼¥¶¤ÎÀßÄê¤Ë¤è¤Ã¤Æ
+         ¥Ø¥Ã¥À¤òʤӴ¹¤¨¤ë¤è¤¦¤Ë½¤Àµ¡£
+         src/textview_show_header(): textview_make_clickable_parts() ¤ò
+         ¸Æ¤Ö¤è¤¦¤Ë¤·¤¿¡£
+         textview_make_clickable_parts(): °ú¿ô¤Ë GdkFont ¤ò¤È¤ë¤è¤¦¤Ë¤·¡¢
+         °ú¿ô¤«¤é GtkText ¤ò½ü¤¤¤¿¡£
+
+2001-05-04
+
+       * Pierric Descamps ¤µ¤ó¤Î¥Ñ¥Ã¥Á¤Ë´ð¤Å¤¤¤Æ¿·Ãå¥á¡¼¥ë¤Î¼«Æ°¥Á¥§¥Ã¥¯
+         ¤ò¼ÂÁõ(thanks!)¡£
+       * src/inc.c: inc_autocheck_timer_init(), inc_autocheck_timer_set(),
+         inc_autocheck_timer_remove(), inc_autocheck_func() ¤ò¿·Ãå¥á¡¼¥ë
+         ¤Î¼«Æ°¥Á¥§¥Ã¥¯¤Î¤¿¤á¤ËÄɲá£
+       * src/main.c: main(): inc_autocheck_timer_init() ¤ò¸Æ¤Ö¤è¤¦¤Ë¤·¤¿¡£
+       * src/prefs_common.c: prefs_receive_create(): ¼«Æ°¥Á¥§¥Ã¥¯¤Î UI
+         ¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤·¤¿¡£ prefs_common_cancel() ¤òÄɲä·¡¢¤¤¤¯¤Ä¤«¤Î
+         ¥·¥°¥Ê¥ë¤ò¤½¤ì¤ËÀܳ¡£
+       * src/prefs_common.c
+         src/prefs_account.c
+         src/prefs_filter.c
+         src/account.c: ¥À¥¤¥¢¥í¥°¤ò³«¤¤¤Æ¤¤¤ë¤È¤­¤Ï¼«Æ°¥Á¥§¥Ã¥¯¤ò̵¸ú¤Ë
+         ¤·¤¿¡£
+       * src/headerview.c: headerview_show_xface(): ¥Ø¥Ã¥À¥Ú¥¤¥ó¤òÈóɽ¼¨
+         ¤Ë¤·¤Æ¤¤¤ë¾ì¹ç¤Ë·Ù¹ð¤¬½Ð¤Æ¤¤¤¿¥Ð¥°¤ò½¤Àµ¡£
+
 2001-05-03
 
        * src/inc.c
diff --git a/TODO b/TODO
index 3662141..5f9e25c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -3,11 +3,9 @@ TODO
 
 (The upper item has the greater priority or feasibility... maybe :-)
 
-o periodical check of newly arrived mails
 o POP before SMTP
 o list view of newsgroups and subscription of groups from there
 o full-text search of messages (plain, or hooking up with Namazu)
-o progress display of time-consuming processes
 o original icons and logos
 o designate the displayed headers
 o user-defined headers
@@ -44,6 +42,7 @@ Partially implemented features
 . IMAP4 support
 . PGP/GPG support
 . display of HTML messages (composition of HTML message is not scheduled :-P)
+. progress display of time-consuming processes
 
 Implemented features
 ====================
@@ -64,3 +63,4 @@ Implemented features
 * posting to newsgroups
 * completion of mail address
 * prohibition of multiple execution (with Unix domain socket)
+* periodical check of newly arrived mails
diff --git a/TODO.jp b/TODO.jp
index c48a75d..f762646 100644 (file)
--- a/TODO.jp
+++ b/TODO.jp
@@ -3,11 +3,9 @@ TODO
 
 (¾å¤Î¤â¤Î¤Û¤É½ÅÍ×ÅÙ¡¢¼Â¸½²ÄǽÀ­¤¬¹â¤¯¤Ê¤ë¡¢¤«¤â(^^;)
 
-o ¿·Ãå¥á¡¼¥ë¤ÎÄê´üŪ¥Á¥§¥Ã¥¯
 o POP before SMTP
 o ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Î¥ê¥¹¥Èɽ¼¨¤È¤½¤³¤«¤é¤Î¹ØÆÉ¥°¥ë¡¼¥×ÄɲÃ
 o ¥á¥Ã¥»¡¼¥¸¤ÎÁ´Ê¸¸¡º÷ (¥Ù¥¿¡¢ Namazu ¤È¤ÎÏ¢·È)
-o »þ´Ö¤¬³Ý¤«¤ë½èÍý¤Î¿ÊĽ¾õ¶·É½¼¨
 o ¥ª¥ê¥¸¥Ê¥ë¤Î¥¢¥¤¥³¥ó¤È¥í¥´
 o É½¼¨¤µ¤ì¤ë¥Ø¥Ã¥À¤Î»ØÄê
 o ¥æ¡¼¥¶ÄêµÁ¤Î¥Ø¥Ã¥À
@@ -44,6 +42,7 @@ o 
 . IMAP4Âбþ
 . PGP/GPGÂбþ
 . HTML¥á¡¼¥ë¤Îɽ¼¨ (HTML¥á¡¼¥ë¤ÎºîÀ®¤ÏͽÄê¤Ê¤·:-P)
+. »þ´Ö¤¬³Ý¤«¤ë½èÍý¤Î¿ÊĽ¾õ¶·É½¼¨
 
 ¼ÂÁõºÑ¤Îµ¡Ç½
 ============
@@ -65,3 +64,4 @@ o 
 * ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Ø¤ÎÅê¹Æ
 * ¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÎÊä´°
 * Æó½Åµ¯Æ°Ëɻߠ(with Unix domain socket)
+* ¿·Ãå¥á¡¼¥ë¤ÎÄê´üŪ¥Á¥§¥Ã¥¯
index cba48bf..288f5f5 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=4
 MICRO_VERSION=66
 INTERFACE_AGE=66
 BINARY_AGE=66
-EXTRA_VERSION=claws2
+EXTRA_VERSION=claws3
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl
index 54ac400..c0e726c 100644 (file)
@@ -36,6 +36,7 @@ src/pop.c
 src/prefs.c
 src/prefs_account.c
 src/prefs_common.c
+src/prefs_display_header.c
 src/prefs_filter.c
 src/procheader.c
 src/procmime.c
index c673af3..8d4502f 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: sylpheed\n"
-"POT-Creation-Date: 2001-05-03 13:29+0900\n"
+"POT-Creation-Date: 2001-05-06 14:28+0900\n"
 "PO-Revision-Date: 1999-10-12\n"
 "Last-Translator: Hiroyuki Yamamoto <hiro-y@kcn.ne.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
@@ -89,23 +89,24 @@ msgstr ""
 
 #: src/about.c:234 src/addressbook.c:1293 src/alertpanel.c:209
 #: src/compose.c:1460 src/compose.c:3071 src/export.c:184 src/foldersel.c:175
-#: src/import.c:188 src/inputdialog.c:155 src/main.c:314 src/main.c:322
+#: src/import.c:188 src/inputdialog.c:155 src/main.c:319 src/main.c:327
 #: src/mainwindow.c:1655 src/mimeview.c:705 src/passphrase.c:115
-#: src/prefs.c:467 src/prefs_common.c:1772 src/prefs_common.c:1991
-#: src/prefs_common.c:2107 src/summaryview.c:2016 src/summaryview.c:2524
+#: src/prefs.c:467 src/prefs_common.c:1793 src/prefs_common.c:2012
+#: src/prefs_common.c:2128 src/prefs_display_header.c:188
+#: src/summaryview.c:2016 src/summaryview.c:2524
 msgid "OK"
 msgstr "OK"
 
-#: src/account.c:97
+#: src/account.c:98
 msgid "Reading all config for each account...\n"
 msgstr "Á´¤Æ¤Î¥¢¥«¥¦¥ó¥ÈËè¤ÎÀßÄê¤òÆɤ߹þ¤ßÃæ...\n"
 
-#: src/account.c:112
+#: src/account.c:113
 #, c-format
 msgid "Found label: %s\n"
 msgstr "¥é¥Ù¥ëȯ¸«: %s\n"
 
-#: src/account.c:202
+#: src/account.c:205
 msgid ""
 "Some composing windows are open.\n"
 "Please close all the composing windows before editing the accounts."
@@ -113,76 +114,77 @@ msgstr ""
 "¥á¥Ã¥»¡¼¥¸ºîÀ®¥¦¥£¥ó¥É¥¦¤¬³«¤¤¤Æ¤¤¤Þ¤¹¡£\n"
 "¥¢¥«¥¦¥ó¥È¤òÊÔ½¸¤¹¤ëÁ°¤ËÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸ºîÀ®¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤Æ¤¯¤À¤µ¤¤¡£"
 
-#: src/account.c:207
+#: src/account.c:211
 msgid "Opening account edit window...\n"
 msgstr "¥¢¥«¥¦¥ó¥ÈÊÔ½¸¥¦¥£¥ó¥É¥¦¤ò³«¤¤¤Æ¤¤¤Þ¤¹...\n"
 
-#: src/account.c:347
+#: src/account.c:352
 msgid "Creating account edit window...\n"
 msgstr "¥¢¥«¥¦¥ó¥ÈÊÔ½¸¥¦¥£¥ó¥É¥¦¤òºîÀ®Ãæ...\n"
 
-#: src/account.c:352
+#: src/account.c:357
 msgid "Edit accounts"
 msgstr "¥¢¥«¥¦¥ó¥È¤ÎÊÔ½¸"
 
-#: src/account.c:380 src/addressbook.c:318 src/addressbook.c:1289
+#: src/account.c:385 src/addressbook.c:318 src/addressbook.c:1289
 #: src/compose.c:2188 src/mimeview.c:135 src/select-keys.c:299
 msgid "Name"
 msgstr "̾Á°"
 
-#: src/account.c:381 src/prefs_account.c:616
+#: src/account.c:386 src/prefs_account.c:621
 msgid "Protocol"
 msgstr "¥×¥í¥È¥³¥ë"
 
-#: src/account.c:382
+#: src/account.c:387
 msgid "Server"
 msgstr "¥µ¡¼¥Ð"
 
-#: src/account.c:401 src/addressbook.c:439
+#: src/account.c:406 src/addressbook.c:439 src/prefs_display_header.c:265
+#: src/prefs_display_header.c:316
 msgid "Add"
 msgstr "ÄɲÃ"
 
-#: src/account.c:407
+#: src/account.c:412
 msgid "Edit"
 msgstr "ÊÔ½¸"
 
-#: src/account.c:413
+#: src/account.c:418
 msgid " Delete "
 msgstr "  ºï½ü  "
 
-#: src/account.c:419 src/prefs_filter.c:432
+#: src/account.c:424 src/prefs_display_header.c:284 src/prefs_filter.c:435
 msgid "Down"
 msgstr "  ¢­  "
 
-#: src/account.c:425 src/prefs_filter.c:426
+#: src/account.c:430 src/prefs_display_header.c:278 src/prefs_filter.c:429
 msgid "Up"
 msgstr "  ¢¬  "
 
-#: src/account.c:439
+#: src/account.c:444
 msgid " Set as usually used account "
 msgstr " Ä̾ï»ÈÍѤ¹¤ë¥¢¥«¥¦¥ó¥È¤Ë»ØÄê "
 
-#: src/account.c:445 src/prefs_filter.c:192 src/summary_search.c:192
+#: src/account.c:450 src/prefs_filter.c:195 src/summary_search.c:192
 msgid "Close"
 msgstr "ÊĤ¸¤ë"
 
-#: src/account.c:498
+#: src/account.c:504
 msgid "Delete account"
 msgstr "¥¢¥«¥¦¥ó¥È¤Îºï½ü"
 
-#: src/account.c:499
+#: src/account.c:505
 msgid "Do you really want to delete this account?"
 msgstr "ËÜÅö¤Ë¤³¤Î¥¢¥«¥¦¥ó¥È¤òºï½ü¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
 
-#: src/account.c:500 src/addressbook.c:579 src/addressbook.c:1224
+#: src/account.c:506 src/addressbook.c:579 src/addressbook.c:1224
 #: src/compose.c:3243 src/folderview.c:1273 src/folderview.c:1315
 #: src/folderview.c:1404 src/folderview.c:1444 src/folderview.c:1543
-#: src/folderview.c:1576 src/mainwindow.c:944 src/prefs_filter.c:715
+#: src/folderview.c:1576 src/mainwindow.c:944 src/prefs_filter.c:718
 #: src/summary_search.c:297 src/summaryview.c:573 src/summaryview.c:813
 msgid "Yes"
 msgstr "¤Ï¤¤"
 
-#: src/account.c:500 src/compose.c:3243 src/folderview.c:1273
+#: src/account.c:506 src/compose.c:3243 src/folderview.c:1273
 #: src/folderview.c:1315 src/folderview.c:1404 src/folderview.c:1444
 #: src/folderview.c:1543 src/folderview.c:1576
 msgid "+No"
@@ -275,7 +277,8 @@ msgid "Name:"
 msgstr "̾Á°:"
 
 #: src/addressbook.c:436 src/addressbook.c:1224 src/mainwindow.c:1398
-#: src/prefs_filter.c:392
+#: src/prefs_display_header.c:271 src/prefs_display_header.c:323
+#: src/prefs_filter.c:395
 msgid "Delete"
 msgstr "ºï½ü"
 
@@ -312,7 +315,7 @@ msgid "Really delete the address(es)?"
 msgstr "ËÜÅö¤Ë¤³¤Î¥¢¥É¥ì¥¹¤òºï½ü¤·¤Þ¤¹¤«?"
 
 #: src/addressbook.c:579 src/addressbook.c:1224 src/mainwindow.c:944
-#: src/prefs_filter.c:715 src/summary_search.c:297 src/summaryview.c:573
+#: src/prefs_filter.c:718 src/summary_search.c:297 src/summaryview.c:573
 #: src/summaryview.c:813
 msgid "No"
 msgstr "¤¤¤¤¤¨"
@@ -377,10 +380,11 @@ msgstr "
 
 #: src/addressbook.c:1294 src/compose.c:1460 src/compose.c:3072
 #: src/compose.c:3641 src/export.c:185 src/foldersel.c:176 src/import.c:189
-#: src/inputdialog.c:156 src/main.c:314 src/main.c:322 src/mainwindow.c:1655
+#: src/inputdialog.c:156 src/main.c:319 src/main.c:327 src/mainwindow.c:1655
 #: src/mimeview.c:705 src/passphrase.c:119 src/prefs.c:468
-#: src/prefs_common.c:2108 src/progressdialog.c:75 src/select-keys.c:324
-#: src/summaryview.c:573 src/summaryview.c:2016 src/summaryview.c:2524
+#: src/prefs_common.c:2129 src/prefs_display_header.c:189
+#: src/progressdialog.c:75 src/select-keys.c:324 src/summaryview.c:573
+#: src/summaryview.c:2016 src/summaryview.c:2524
 msgid "Cancel"
 msgstr "¥­¥ã¥ó¥»¥ë"
 
@@ -410,7 +414,7 @@ msgstr "
 msgid "failed to write addressbook data.\n"
 msgstr "¥¢¥É¥ì¥¹Ä¢¤Î¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
 
-#: src/alertpanel.c:98 src/compose.c:3243 src/main.c:312
+#: src/alertpanel.c:98 src/compose.c:3243 src/main.c:317
 msgid "Notice"
 msgstr "Ãí°Õ"
 
@@ -418,7 +422,7 @@ msgstr "
 msgid "Warning"
 msgstr "·Ù¹ð"
 
-#: src/alertpanel.c:124 src/inc.c:403
+#: src/alertpanel.c:124 src/inc.c:415
 msgid "Error"
 msgstr "¥¨¥é¡¼"
 
@@ -657,7 +661,7 @@ msgstr "
 msgid "Can't save the message to outbox."
 msgstr "¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¹µ¤ËÊݸ¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/compose.c:1500 src/compose.c:1621 src/compose.c:1707 src/utils.c:1477
+#: src/compose.c:1500 src/compose.c:1621 src/compose.c:1707 src/utils.c:1495
 msgid "can't change file mode\n"
 msgstr "¥Õ¥¡¥¤¥ë¥â¡¼¥É¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó\n"
 
@@ -703,7 +707,7 @@ msgstr "
 msgid "MIME type"
 msgstr "MIME ¥¿¥¤¥×"
 
-#: src/compose.c:2188 src/mimeview.c:135 src/prefs_common.c:2102
+#: src/compose.c:2188 src/mimeview.c:135 src/prefs_common.c:2123
 #: src/select-keys.c:297 src/summaryview.c:361
 msgid "Size"
 msgstr "¥µ¥¤¥º"
@@ -716,8 +720,8 @@ msgstr "
 msgid "From:"
 msgstr "º¹½Ð¿Í:"
 
-#: src/compose.c:2671 src/mainwindow.c:1352 src/prefs_account.c:486
-#: src/prefs_common.c:611
+#: src/compose.c:2671 src/mainwindow.c:1352 src/prefs_account.c:491
+#: src/prefs_common.c:618
 msgid "Send"
 msgstr "Á÷¿®"
 
@@ -757,7 +761,7 @@ msgstr "ź
 msgid "Attach file"
 msgstr "¥Õ¥¡¥¤¥ë¤òźÉÕ"
 
-#: src/compose.c:2715 src/prefs_common.c:1012
+#: src/compose.c:2715 src/prefs_common.c:1017
 msgid "Signature"
 msgstr "½ð̾"
 
@@ -889,7 +893,7 @@ msgid "Exporting file:"
 msgstr "¥¨¥¯¥¹¥Ý¡¼¥È¥Õ¥¡¥¤¥ë:"
 
 #: src/export.c:171 src/export.c:177 src/import.c:175 src/import.c:181
-#: src/prefs_filter.c:343
+#: src/prefs_filter.c:346
 msgid " Select... "
 msgstr " ÁªÂò... "
 
@@ -941,7 +945,7 @@ msgstr "
 msgid "New"
 msgstr "¿·Ãå"
 
-#: src/folderview.c:235 src/prefs_common.c:2099
+#: src/folderview.c:235 src/prefs_common.c:2120
 msgid "Unread"
 msgstr "̤ÆÉ"
 
@@ -975,7 +979,7 @@ msgstr "
 msgid "Updating all folders..."
 msgstr "Á´¥Õ¥©¥ë¥À¤ò¹¹¿·Ãæ..."
 
-#: src/folderview.c:597 src/prefs_account.c:639
+#: src/folderview.c:597 src/prefs_account.c:644
 msgid "Inbox"
 msgstr "¼õ¿®È¢"
 
@@ -1268,111 +1272,111 @@ msgstr "
 msgid "Select importing file"
 msgstr "¥¤¥ó¥Ý¡¼¥È¤¹¤ë¥Õ¥¡¥¤¥ë¤òÁªÂò"
 
-#: src/inc.c:183 src/inc.c:225
+#: src/inc.c:187 src/inc.c:236
 msgid "Standby"
 msgstr "ÂÔµ¡Ãæ"
 
-#: src/inc.c:243
+#: src/inc.c:255
 msgid "Retrieving new messages"
 msgstr "¿·Ãå¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®Ãæ"
 
-#: src/inc.c:372
+#: src/inc.c:384
 #, c-format
 msgid "Input password for %s on %s:"
 msgstr "%s (%s) ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤:"
 
-#: src/inc.c:376
+#: src/inc.c:388
 msgid "Input password"
 msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎÏ"
 
-#: src/inc.c:393
+#: src/inc.c:405
 msgid "Retrieving"
 msgstr "¼õ¿®Ãæ"
 
-#: src/inc.c:400
+#: src/inc.c:412
 msgid "Done"
 msgstr "´°Î»"
 
-#: src/inc.c:409
+#: src/inc.c:421
 #, c-format
 msgid "Authorization for %s on %s failed"
 msgstr "%s (%s) ¤Îǧ¾Ú¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
 
-#: src/inc.c:475
+#: src/inc.c:487
 #, c-format
 msgid "getting new messages of account %s...\n"
 msgstr "¥¢¥«¥¦¥ó¥È %s ¤Î¿·Ãå¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê¹þ¤ó¤Ç¤¤¤Þ¤¹...\n"
 
-#: src/inc.c:483
+#: src/inc.c:495
 #, c-format
 msgid "%s: Retrieving new messages"
 msgstr "%s: ¿·Ãå¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®Ãæ"
 
-#: src/inc.c:504
+#: src/inc.c:516
 #, c-format
 msgid "Connecting to POP3 server: %s ..."
 msgstr "POP3¥µ¡¼¥Ð: %s ¤ËÀܳÃæ..."
 
-#: src/inc.c:515 src/inc.c:649
+#: src/inc.c:527 src/inc.c:661
 #, c-format
 msgid "Can't connect to POP3 server: %s:%d\n"
 msgstr "POP3¥µ¡¼¥Ð: %s:%d ¤ËÀܳ¤Ç¤­¤Þ¤»¤ó\n"
 
-#: src/inc.c:518 src/inc.c:652
+#: src/inc.c:530 src/inc.c:664
 #, c-format
 msgid "Can't connect to POP3 server: %s:%d"
 msgstr "POP3¥µ¡¼¥Ð: %s:%d ¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/inc.c:683 src/inc.c:733
+#: src/inc.c:694 src/inc.c:744
 #, c-format
 msgid "Retrieving message (%d / %d) (%d / %d bytes)"
 msgstr "¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®Ãæ (%d / %d) (%d / %d bytes)"
 
-#: src/inc.c:708
+#: src/inc.c:719
 msgid "Authorizing..."
 msgstr "ǧ¾ÚÃæ..."
 
-#: src/inc.c:713
+#: src/inc.c:724
 msgid "Getting the number of new messages (STAT)..."
 msgstr "¿·Ãå¥á¥Ã¥»¡¼¥¸¤Î¿ô¤ò¼èÆÀÃæ (STAT)..."
 
-#: src/inc.c:718
+#: src/inc.c:729
 msgid "Getting the number of new messages (LAST)..."
 msgstr "¿·Ãå¥á¥Ã¥»¡¼¥¸¤Î¿ô¤ò¼èÆÀÃæ (LAST)..."
 
-#: src/inc.c:723
+#: src/inc.c:734
 msgid "Getting the number of new messages (UIDL)..."
 msgstr "¿·Ãå¥á¥Ã¥»¡¼¥¸¤Î¿ô¤ò¼èÆÀÃæ (UIDL)..."
 
-#: src/inc.c:728
+#: src/inc.c:739
 msgid "Getting the size of messages (LIST)..."
 msgstr "¥á¥Ã¥»¡¼¥¸¤Î¥µ¥¤¥º¤ò¼èÆÀÃæ (LIST)..."
 
-#: src/inc.c:744
+#: src/inc.c:755
 msgid "Deleting message"
 msgstr "¥á¥Ã¥»¡¼¥¸¤òºï½üÃæ"
 
-#: src/inc.c:748
+#: src/inc.c:759
 msgid "Quitting"
 msgstr "ÀÚÃÇÃæ"
 
-#: src/inc.c:776
+#: src/inc.c:787
 msgid "a message won't be received\n"
 msgstr "¥á¥Ã¥»¡¼¥¸¤Ï¼õ¿®¤µ¤ì¤Þ¤»¤ó\n"
 
-#: src/inc.c:803
+#: src/inc.c:814
 msgid "Error occurred while processing mail."
 msgstr "¥á¡¼¥ë¤Î½èÍýÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
 
-#: src/inc.c:806
+#: src/inc.c:817
 msgid "No disk space left."
 msgstr "¥Ç¥£¥¹¥¯¤Î¶õ¤­ÍÆÎ̤¬¤¢¤ê¤Þ¤»¤ó¡£"
 
-#: src/inc.c:857
+#: src/inc.c:868
 msgid "no messages in local mailbox.\n"
 msgstr "¥í¡¼¥«¥ë¤Î¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
 
-#: src/inc.c:868
+#: src/inc.c:879
 #, c-format
 msgid "Getting new messages from %s into %s...\n"
 msgstr "¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤ò %s ¤«¤é %s ¤Ë¼è¤ê¹þ¤ó¤Ç¤¤¤Þ¤¹...\n"
@@ -1386,7 +1390,7 @@ msgid "Protocol log"
 msgstr "¥×¥í¥È¥³¥ë¥í¥°"
 
 #. for gettext
-#: src/main.c:103
+#: src/main.c:104
 #, c-format
 msgid ""
 "File `%s' already exists.\n"
@@ -1395,11 +1399,11 @@ msgstr ""
 "¥Õ¥¡¥¤¥ë `%s' ¤¬¤¹¤Ç¤Ë¸ºß¤·¤Þ¤¹¡£\n"
 "¥Õ¥©¥ë¥À¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/main.c:142
+#: src/main.c:143
 msgid "g_thread is not supported by glib.\n"
 msgstr "g_thread ¤Ï glib ¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
 
-#: src/main.c:206
+#: src/main.c:207
 msgid ""
 "GnuPG is not installed properly.\n"
 "OpenPGP support disabled."
@@ -1407,49 +1411,49 @@ msgstr ""
 "GnuPG ¤¬Àµ¤·¤¯¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
 "OpenPGP ¥µ¥Ý¡¼¥È¤Ï̵¸ú¤Ç¤¹¡£"
 
-#: src/main.c:281
+#: src/main.c:286
 #, c-format
 msgid "Usage: %s [OPTION]...\n"
 msgstr "»ÈÍÑË¡: %s [¥ª¥×¥·¥ç¥ó]...\n"
 
-#: src/main.c:283
+#: src/main.c:288
 msgid "  --compose [address]    open composition window"
 msgstr "  --compose [address]    ¥á¥Ã¥»¡¼¥¸ºîÀ®¥¦¥£¥ó¥É¥¦¤ò³«¤¯"
 
-#: src/main.c:284
+#: src/main.c:289
 msgid "  --receive              receive new messages"
 msgstr "  --receive              ¿·Ãå¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë"
 
-#: src/main.c:285
+#: src/main.c:290
 msgid "  --receive-all          receive new messages of all accounts"
 msgstr "  --receive-all          Á´¥¢¥«¥¦¥ó¥È¤Î¿·Ãå¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë"
 
-#: src/main.c:286
+#: src/main.c:291
 msgid "  --debug                debug mode"
 msgstr "  --debug                ¥Ç¥Ð¥Ã¥°¥â¡¼¥É"
 
-#: src/main.c:287
+#: src/main.c:292
 msgid "  --help                 display this help and exit"
 msgstr "  --help                 ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë"
 
-#: src/main.c:288
+#: src/main.c:293
 msgid "  --version              output version information and exit"
 msgstr "  --version              ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë"
 
-#: src/main.c:313
+#: src/main.c:318
 msgid "Composing message exists. Really quit?"
 msgstr "ºîÀ®Ãæ¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Þ¤¹¡£ËÜÅö¤Ë½ªÎ»¤·¤Þ¤¹¤«?"
 
-#: src/main.c:320
+#: src/main.c:325
 msgid "Queued messages"
 msgstr "Á÷¿®ÂÔµ¡Ãæ¤Î¥á¥Ã¥»¡¼¥¸"
 
-#: src/main.c:321
+#: src/main.c:326
 msgid "Some unsent messages are queued. Exit now?"
 msgstr "Á÷¿®ÂÔµ¡Ãæ¤Î̤Á÷¿®¥á¥Ã¥»¡¼¥¸¤¬¤¢¤ê¤Þ¤¹¡£½ªÎ»¤·¤Þ¤¹¤«?"
 
 #. remote command mode
-#: src/main.c:392
+#: src/main.c:397
 msgid "another Sylpheed is already running.\n"
 msgstr "Ê̤ΠSylpheed ¤¬¤¹¤Ç¤Ëµ¯Æ°¤·¤Æ¤¤¤Þ¤¹¡£\n"
 
@@ -1959,7 +1963,7 @@ msgstr "
 msgid "Send queued message(s)"
 msgstr "Á÷¿®ÂÔµ¡Ãæ¤Î¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë"
 
-#: src/mainwindow.c:1363 src/prefs_account.c:488 src/prefs_common.c:613
+#: src/mainwindow.c:1363 src/prefs_account.c:493 src/prefs_common.c:620
 msgid "Compose"
 msgstr "ºîÀ®"
 
@@ -2371,8 +2375,10 @@ msgstr "%s 
 msgid "Finished reading configuration.\n"
 msgstr "ÀßÄê¤ÎÆɤ߹þ¤ß¤ò´°Î»¤·¤Þ¤·¤¿¡£\n"
 
-#: src/prefs.c:168 src/prefs.c:213 src/prefs_account.c:353
-#: src/prefs_account.c:367 src/prefs_filter.c:512 src/prefs_filter.c:536
+#: src/prefs.c:168 src/prefs.c:213 src/prefs_account.c:354
+#: src/prefs_account.c:368 src/prefs_display_header.c:399
+#: src/prefs_display_header.c:424 src/prefs_filter.c:515
+#: src/prefs_filter.c:539
 msgid "failed to write configuration to file\n"
 msgstr "ÀßÄê¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿\n"
 
@@ -2384,312 +2390,312 @@ msgstr "
 msgid "Apply"
 msgstr "ŬÍÑ"
 
-#: src/prefs_account.c:398
+#: src/prefs_account.c:399
 msgid "Opening account preferences window...\n"
 msgstr "¥¢¥«¥¦¥ó¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥¦¥£¥ó¥É¥¦¤ò³«¤¤¤Æ¤¤¤Þ¤¹...\n"
 
-#: src/prefs_account.c:423
+#: src/prefs_account.c:426
 #, c-format
 msgid "Account%d"
 msgstr "Account%d"
 
-#: src/prefs_account.c:436
+#: src/prefs_account.c:439
 msgid "Preferences for new account"
 msgstr "¿·µ¬¥¢¥«¥¦¥ó¥È¤ÎÀßÄê"
 
-#: src/prefs_account.c:441
+#: src/prefs_account.c:444
 msgid "Preferences for each account"
 msgstr "¥¢¥«¥¦¥ó¥ÈËè¤ÎÀßÄê"
 
-#: src/prefs_account.c:462
+#: src/prefs_account.c:467
 msgid "Creating account preferences window...\n"
 msgstr "¥¢¥«¥¦¥ó¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥¦¥£¥ó¥É¥¦¤òºîÀ®Ãæ...\n"
 
-#: src/prefs_account.c:482
+#: src/prefs_account.c:487
 msgid "Basic"
 msgstr "´ðËÜ"
 
-#: src/prefs_account.c:484 src/prefs_common.c:609
+#: src/prefs_account.c:489 src/prefs_common.c:616
 msgid "Receive"
 msgstr "¼õ¿®"
 
-#: src/prefs_account.c:491 src/prefs_common.c:620
+#: src/prefs_account.c:496 src/prefs_common.c:627
 msgid "Privacy"
 msgstr "µ¡Ì©"
 
-#: src/prefs_account.c:494
+#: src/prefs_account.c:499
 msgid "Advanced"
 msgstr "¹âÅÙ¤ÊÀßÄê"
 
-#: src/prefs_account.c:547
+#: src/prefs_account.c:552
 msgid "Name of this account"
 msgstr "¤³¤Î¥¢¥«¥¦¥ó¥È¤Î̾¾Î"
 
-#: src/prefs_account.c:556
+#: src/prefs_account.c:561
 msgid "Usually used"
 msgstr "Ä̾ï»ÈÍÑ"
 
-#: src/prefs_account.c:560
+#: src/prefs_account.c:565
 msgid "Personal information"
 msgstr "¸Ä¿Í¾ðÊó"
 
-#: src/prefs_account.c:569
+#: src/prefs_account.c:574
 msgid "Full name"
 msgstr "̾Á°"
 
-#: src/prefs_account.c:575
+#: src/prefs_account.c:580
 msgid "Mail address"
 msgstr "¥á¡¼¥ë¥¢¥É¥ì¥¹"
 
-#: src/prefs_account.c:581
+#: src/prefs_account.c:586
 msgid "Organization"
 msgstr "ÁÈ¿¥"
 
-#: src/prefs_account.c:605
+#: src/prefs_account.c:610
 msgid "Server information"
 msgstr "¥µ¡¼¥Ð¾ðÊó"
 
-#: src/prefs_account.c:626
+#: src/prefs_account.c:631
 msgid "POP3 (normal)"
 msgstr "POP3 (ɸ½à)"
 
-#: src/prefs_account.c:628
+#: src/prefs_account.c:633
 msgid "POP3 (APOP auth)"
 msgstr "POP3 (APOPǧ¾Ú)"
 
-#: src/prefs_account.c:630
+#: src/prefs_account.c:635
 msgid "IMAP4"
 msgstr "IMAP4"
 
-#: src/prefs_account.c:632
+#: src/prefs_account.c:637
 msgid "News (NNTP)"
 msgstr "¥Ë¥å¡¼¥¹ (NNTP)"
 
-#: src/prefs_account.c:634
+#: src/prefs_account.c:639
 msgid "None (local)"
 msgstr "¤Ê¤· (¥í¡¼¥«¥ë)"
 
-#: src/prefs_account.c:688
+#: src/prefs_account.c:693
 msgid "News server"
 msgstr "¥Ë¥å¡¼¥¹¥µ¡¼¥Ð"
 
-#: src/prefs_account.c:694
+#: src/prefs_account.c:699
 msgid "Server for receiving"
 msgstr "¼õ¿®ÍÑ¥µ¡¼¥Ð"
 
-#: src/prefs_account.c:700
+#: src/prefs_account.c:705
 msgid "SMTP server (send)"
 msgstr "SMTP¥µ¡¼¥Ð (Á÷¿®)"
 
-#: src/prefs_account.c:707
+#: src/prefs_account.c:712
 msgid "User ID"
 msgstr "¥æ¡¼¥¶ID"
 
-#: src/prefs_account.c:713
+#: src/prefs_account.c:718
 msgid "Password"
 msgstr "¥Ñ¥¹¥ï¡¼¥É"
 
-#: src/prefs_account.c:757
+#: src/prefs_account.c:762
 msgid "POP3"
 msgstr "POP3"
 
-#: src/prefs_account.c:765
+#: src/prefs_account.c:770
 msgid "Remove messages on server when received"
 msgstr "¼õ¿®»þ¤Ë¥µ¡¼¥Ð¾å¤Î¥á¥Ã¥»¡¼¥¸¤òºï½ü¤¹¤ë"
 
-#: src/prefs_account.c:767
+#: src/prefs_account.c:772
 msgid "Receive all messages on server"
 msgstr "¥µ¡¼¥Ð¾å¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë"
 
-#: src/prefs_account.c:769
-msgid "Receive at getting from all accounts"
-msgstr "¡ÖÁ´¥¢¥«¥¦¥ó¥È¤«¤é¼õ¿®¡×¤Ç¼õ¿®¤¹¤ë"
+#: src/prefs_account.c:775
+msgid "`Receive all' checks for new mail on this account"
+msgstr "¡ÖÁ´¼õ¿®¡×¤Ç¤³¤Î¥¢¥«¥¦¥ó¥È¤Î¿·Ãå¥á¡¼¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë"
 
-#: src/prefs_account.c:771
+#: src/prefs_account.c:777
 msgid "Filter messages on receiving"
 msgstr "¼õ¿®»þ¤Ë¥á¥Ã¥»¡¼¥¸¤ò¿¶¤êʬ¤±¤ë"
 
-#: src/prefs_account.c:808 src/prefs_filter.c:238
+#: src/prefs_account.c:814 src/prefs_filter.c:241
 msgid "Header"
 msgstr "¥Ø¥Ã¥À"
 
-#: src/prefs_account.c:815
+#: src/prefs_account.c:821
 msgid "Add Date header field"
 msgstr "Date¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¤òÉÕ¤±¤ë"
 
-#: src/prefs_account.c:816
+#: src/prefs_account.c:822
 msgid "Generate Message-ID"
 msgstr "¥á¥Ã¥»¡¼¥¸ID¤òÀ¸À®¤¹¤ë"
 
-#: src/prefs_account.c:825
+#: src/prefs_account.c:831
 msgid "Add user-defined header"
 msgstr "¥æ¡¼¥¶ÄêµÁ¤Î¥Ø¥Ã¥À¤òÄɲ乤ë"
 
-#: src/prefs_account.c:827 src/prefs_common.c:1259
+#: src/prefs_account.c:833 src/prefs_common.c:1265 src/prefs_common.c:1290
 msgid " Edit... "
 msgstr " ÊÔ½¸... "
 
-#: src/prefs_account.c:834
+#: src/prefs_account.c:840
 msgid "Automatically set following addresses"
 msgstr "°Ê²¼¤Î¥¢¥É¥ì¥¹¤ò¼«Æ°»ØÄê"
 
-#: src/prefs_account.c:843
+#: src/prefs_account.c:849
 msgid "Cc"
 msgstr "Cc"
 
-#: src/prefs_account.c:856
+#: src/prefs_account.c:862
 msgid "Bcc"
 msgstr "Bcc"
 
-#: src/prefs_account.c:869
+#: src/prefs_account.c:875
 msgid "Reply-To"
 msgstr "Reply-To"
 
-#: src/prefs_account.c:882
+#: src/prefs_account.c:888
 msgid "Authentication"
 msgstr "ǧ¾Ú"
 
-#: src/prefs_account.c:890
+#: src/prefs_account.c:896
 msgid "SMTP Authentication (SMTP AUTH)"
 msgstr "SMTPǧ¾Ú (SMTP AUTH)"
 
-#: src/prefs_account.c:892
+#: src/prefs_account.c:898
 msgid "Authenticate with POP3 before sending"
 msgstr "Á÷¿®Á°¤ËPOP3ǧ¾Ú¤ò¹Ô¤¦"
 
-#: src/prefs_account.c:926
+#: src/prefs_account.c:932
 msgid "Signature file"
 msgstr "½ð̾¥Õ¥¡¥¤¥ë"
 
-#: src/prefs_account.c:955
+#: src/prefs_account.c:961
 msgid "Sign key"
 msgstr "½ð̾¸°"
 
-#: src/prefs_account.c:963
+#: src/prefs_account.c:969
 msgid "Use default GnuPG key"
 msgstr "ɸ½à¤ÎGnuPG¸°¤ò»ÈÍѤ¹¤ë"
 
-#: src/prefs_account.c:972
+#: src/prefs_account.c:978
 msgid "Select key by your email address"
 msgstr "¼«Ê¬¤ÎÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤Ç¸°¤òÁªÂò¤¹¤ë"
 
-#: src/prefs_account.c:981
+#: src/prefs_account.c:987
 msgid "Specify key manually"
 msgstr "¸°¤ò¼êÆ°¤Ç»ØÄꤹ¤ë"
 
-#: src/prefs_account.c:997
+#: src/prefs_account.c:1003
 msgid "User or key ID:"
 msgstr "¥æ¡¼¥¶¤Þ¤¿¤Ï¸°ID:"
 
-#: src/prefs_account.c:1042
+#: src/prefs_account.c:1048
 msgid "Specify SMTP port"
 msgstr "SMTP¥Ý¡¼¥È¤ò»ØÄê"
 
-#: src/prefs_account.c:1054
+#: src/prefs_account.c:1060
 msgid "Specify POP3 port"
 msgstr "POP3¥Ý¡¼¥È¤ò»ØÄê"
 
-#: src/prefs_account.c:1066
+#: src/prefs_account.c:1072
 msgid "Specify domain name"
 msgstr "¥É¥á¥¤¥ó̾¤ò»ØÄê"
 
-#: src/prefs_account.c:1106
+#: src/prefs_account.c:1112
 msgid "Mail address is not entered."
 msgstr "¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_account.c:1111
+#: src/prefs_account.c:1117
 msgid "SMTP server is not entered."
 msgstr "SMTP¥µ¡¼¥Ð¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_account.c:1116
+#: src/prefs_account.c:1122
 msgid "User ID is not entered."
 msgstr "¥æ¡¼¥¶ID¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_account.c:1121
+#: src/prefs_account.c:1127
 msgid "POP3 server is not entered."
 msgstr "POP3¥µ¡¼¥Ð¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_account.c:1126
+#: src/prefs_account.c:1132
 msgid "IMAP4 server is not entered."
 msgstr "IMAP4¥µ¡¼¥Ð¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_account.c:1131
+#: src/prefs_account.c:1137
 msgid "NNTP server is not entered."
 msgstr "NNTP¥µ¡¼¥Ð¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_common.c:586
+#: src/prefs_common.c:594
 msgid "Creating common preferences window...\n"
 msgstr "Á´ÈÌ¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥¦¥£¥ó¥É¥¦¤òºîÀ®Ãæ...\n"
 
-#: src/prefs_common.c:590
+#: src/prefs_common.c:598
 msgid "Common Preferences"
 msgstr "Á´È̤ÎÀßÄê"
 
-#: src/prefs_common.c:615
+#: src/prefs_common.c:622
 msgid "Display"
 msgstr "ɽ¼¨"
 
-#: src/prefs_common.c:617
+#: src/prefs_common.c:624
 msgid "Message"
 msgstr "¥á¥Ã¥»¡¼¥¸"
 
-#: src/prefs_common.c:623
+#: src/prefs_common.c:630
 msgid "Interface"
 msgstr "¥¤¥ó¥¿¥Õ¥§¡¼¥¹"
 
-#: src/prefs_common.c:625 src/select-keys.c:322
+#: src/prefs_common.c:632 src/select-keys.c:322
 msgid "Other"
 msgstr "¤½¤Î¾"
 
-#: src/prefs_common.c:665 src/prefs_common.c:825
+#: src/prefs_common.c:672 src/prefs_common.c:830
 msgid "External program"
 msgstr "³°Éô¥×¥í¥°¥é¥à"
 
-#: src/prefs_common.c:674
+#: src/prefs_common.c:681
 msgid "Use external program for incorporation"
 msgstr "¥á¡¼¥ë¤Î¼õ¿®¤Ë³°Éô¥×¥í¥°¥é¥à¤ò»ÈÍѤ¹¤ë"
 
-#: src/prefs_common.c:681 src/prefs_common.c:842
+#: src/prefs_common.c:688 src/prefs_common.c:847
 msgid "Program path"
 msgstr "¥×¥í¥°¥é¥à¤Î¥Ñ¥¹"
 
-#: src/prefs_common.c:693
+#: src/prefs_common.c:700
 msgid "Local spool"
 msgstr "¥í¡¼¥«¥ë¥¹¥×¡¼¥ë"
 
-#: src/prefs_common.c:704
+#: src/prefs_common.c:711
 msgid "Incorporate from spool"
 msgstr "¥¹¥×¡¼¥ë¤«¤é¼è¤ê¹þ¤à"
 
-#: src/prefs_common.c:706
+#: src/prefs_common.c:713
 msgid "Filter on incorporation"
 msgstr "¼è¹þ»þ¤Ë¿¶¤êʬ¤±¤ë"
 
-#: src/prefs_common.c:714
+#: src/prefs_common.c:721
 msgid "Spool directory"
 msgstr "¥¹¥×¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê"
 
-#: src/prefs_common.c:734
+#: src/prefs_common.c:739
 msgid "Auto-check new mail"
 msgstr "¿·Ãå¥á¡¼¥ë¤ò¼«Æ°¥Á¥§¥Ã¥¯¤¹¤ë"
 
-#: src/prefs_common.c:736
+#: src/prefs_common.c:741
 msgid "each"
 msgstr " "
 
-#: src/prefs_common.c:748
+#: src/prefs_common.c:753
 msgid "minute(s)"
 msgstr "ʬ¤´¤È"
 
-#: src/prefs_common.c:757
+#: src/prefs_common.c:762
 msgid "Check new mail on startup"
 msgstr "µ¯Æ°»þ¤Ë¿·Ãå¥á¡¼¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë"
 
-#: src/prefs_common.c:759
+#: src/prefs_common.c:764
 msgid "News"
 msgstr "¥Ë¥å¡¼¥¹"
 
-#: src/prefs_common.c:767
+#: src/prefs_common.c:772
 msgid ""
 "Maximum article number to download\n"
 "(unlimited if 0 is specified)"
@@ -2697,184 +2703,184 @@ msgstr ""
 "¥À¥¦¥ó¥í¡¼¥É¤¹¤ëµ­»ö¿ô¤Î¾å¸Â\n"
 "(0¤Ç̵À©¸Â)"
 
-#: src/prefs_common.c:835
+#: src/prefs_common.c:840
 msgid "Use external program for sending"
 msgstr "¥á¡¼¥ë¤ÎÁ÷¿®¤Ë³°Éô¥×¥í¥°¥é¥à¤ò»ÈÍѤ¹¤ë"
 
-#: src/prefs_common.c:859
+#: src/prefs_common.c:864
 msgid "Save sent message to outbox"
 msgstr "Á÷¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¹µ¤ËÊݸ¤¹¤ë"
 
-#: src/prefs_common.c:861
+#: src/prefs_common.c:866
 msgid "Queue message that failed to send"
 msgstr "Á÷¿®¤Ë¼ºÇÔ¤·¤¿¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®ÂÔ¤Á¤ËÆþ¤ì¤ë"
 
-#: src/prefs_common.c:867
+#: src/prefs_common.c:872
 msgid "Outgoing codeset"
 msgstr "Á÷¿®¥³¡¼¥É¥»¥Ã¥È"
 
-#: src/prefs_common.c:882
+#: src/prefs_common.c:887
 msgid "Automatic"
 msgstr "¼«Æ°ÀßÄê"
 
-#: src/prefs_common.c:883
+#: src/prefs_common.c:888
 msgid "7bit ascii (US-ASCII)"
 msgstr "7bit ascii (US-ASCII)"
 
-#: src/prefs_common.c:885
+#: src/prefs_common.c:890
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/prefs_common.c:887
+#: src/prefs_common.c:892
 msgid "Western European (ISO-8859-1)"
 msgstr "²¤ÊÆ (ISO-8859-1)"
 
-#: src/prefs_common.c:889
+#: src/prefs_common.c:894
 msgid "Central European (ISO-8859-2)"
 msgstr "Ã沤 (ISO-8859-2)"
 
-#: src/prefs_common.c:890
+#: src/prefs_common.c:895
 msgid "Baltic (ISO-8859-13)"
 msgstr "¥Ð¥ë¥È½ô¹ñ (ISO-8859-13)"
 
-#: src/prefs_common.c:891
+#: src/prefs_common.c:896
 msgid "Baltic (ISO-8859-4)"
 msgstr "¥Ð¥ë¥È½ô¹ñ (ISO-8859-4)"
 
-#: src/prefs_common.c:892
+#: src/prefs_common.c:897
 msgid "Greek (ISO-8859-7)"
 msgstr "¥®¥ê¥·¥ã¸ì (ISO-8859-7)"
 
-#: src/prefs_common.c:893
+#: src/prefs_common.c:898
 msgid "Turkish (ISO-8859-9)"
 msgstr "¥È¥ë¥³¸ì (ISO-8859-9)"
 
-#: src/prefs_common.c:894
+#: src/prefs_common.c:899
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "¥­¥ê¥ëʸ»ú (ISO-8859-5)"
 
-#: src/prefs_common.c:895
+#: src/prefs_common.c:900
 msgid "Cyrillic (KOI8-R)"
 msgstr "¥­¥ê¥ëʸ»ú (KOI8-R)"
 
-#: src/prefs_common.c:896
+#: src/prefs_common.c:901
 msgid "Cyrillic (Windows-1251)"
 msgstr "¥­¥ê¥ëʸ»ú (Windows-1251)"
 
-#: src/prefs_common.c:897
+#: src/prefs_common.c:902
 msgid "Cyrillic (KOI8-U)"
 msgstr "¥­¥ê¥ëʸ»ú (KOI8-U)"
 
-#: src/prefs_common.c:899
+#: src/prefs_common.c:904
 msgid "Japanese (ISO-2022-JP)"
 msgstr "ÆüËܸì (ISO-2022-JP)"
 
-#: src/prefs_common.c:901
+#: src/prefs_common.c:906
 msgid "Japanese (EUC-JP)"
 msgstr "ÆüËܸì (EUC-JP)"
 
-#: src/prefs_common.c:902
+#: src/prefs_common.c:907
 msgid "Japanese (Shift_JIS)"
 msgstr "ÆüËܸì (Shift_JIS)"
 
-#: src/prefs_common.c:905
+#: src/prefs_common.c:910
 msgid "Simplified Chinese (GB2312)"
 msgstr "´ÊÂλúÃæ¹ñ¸ì (GB2312)"
 
-#: src/prefs_common.c:906
+#: src/prefs_common.c:911
 msgid "Traditional Chinese (Big5)"
 msgstr "ÈËÂλúÃæ¹ñ¸ì (Big5)"
 
-#: src/prefs_common.c:908
+#: src/prefs_common.c:913
 msgid "Traditional Chinese (EUC-TW)"
 msgstr "ÈËÂλúÃæ¹ñ¸ì (EUC-TW)"
 
-#: src/prefs_common.c:909
+#: src/prefs_common.c:914
 msgid "Chinese (ISO-2022-CN)"
 msgstr "Ãæ¹ñ¸ì (ISO-2022-CN)"
 
-#: src/prefs_common.c:911
+#: src/prefs_common.c:916
 msgid "Korean (EUC-KR)"
 msgstr "´Ú¹ñ¸ì (EUC-KR)"
 
-#: src/prefs_common.c:961
+#: src/prefs_common.c:966
 msgid "Quotation"
 msgstr "°úÍÑ"
 
-#: src/prefs_common.c:969
+#: src/prefs_common.c:974
 msgid "Quote message when replying"
 msgstr "ÊÖ¿®»þ¤Ë¥á¥Ã¥»¡¼¥¸¤ò°úÍѤ¹¤ë"
 
-#: src/prefs_common.c:975
+#: src/prefs_common.c:980
 msgid "Quotation mark"
 msgstr "°úÍÑÉä"
 
-#: src/prefs_common.c:988
+#: src/prefs_common.c:993
 msgid "Quotation format:"
 msgstr "°úÍѤηÁ¼°:"
 
-#: src/prefs_common.c:993
+#: src/prefs_common.c:998
 msgid " Description of symbols "
 msgstr " µ­¹æ¤ÎÀâÌÀ "
 
-#: src/prefs_common.c:1020
+#: src/prefs_common.c:1025
 msgid "Insert signature automatically"
 msgstr "¼«Æ°Åª¤Ë½ð̾¤òÁÞÆþ¤¹¤ë"
 
-#: src/prefs_common.c:1026
+#: src/prefs_common.c:1031
 msgid "Signature separator"
 msgstr "½ð̾¤Î¶èÀÚ¤ê"
 
-#: src/prefs_common.c:1044
+#: src/prefs_common.c:1049
 msgid "Wrap messages at"
 msgstr "¥á¥Ã¥»¡¼¥¸¤òȾ³Ñ"
 
-#: src/prefs_common.c:1056
+#: src/prefs_common.c:1061
 msgid "characters"
 msgstr "ʸ»ú¤Ç²þ¹Ô"
 
-#: src/prefs_common.c:1064
+#: src/prefs_common.c:1069
 msgid "Wrap quotation"
 msgstr "°úÍÑÉô¤ò¼«Æ°²þ¹Ô¤¹¤ë"
 
-#: src/prefs_common.c:1066
+#: src/prefs_common.c:1071
 msgid "Wrap before sending"
 msgstr "Á÷¿®»þ¤Ë¼«Æ°²þ¹Ô¤¹¤ë"
 
-#: src/prefs_common.c:1105
+#: src/prefs_common.c:1110
 msgid "Font"
 msgstr "¥Õ¥©¥ó¥È"
 
-#: src/prefs_common.c:1114
+#: src/prefs_common.c:1119
 msgid "Text"
 msgstr "¥Æ¥­¥¹¥È"
 
-#: src/prefs_common.c:1137
+#: src/prefs_common.c:1142
 msgid "Translate header name (such as `From:', `Subject:')"
 msgstr "¥Ø¥Ã¥À¤Î¹àÌܤòËÝÌõ¤¹¤ë (Î㤨¤Ð `From:', `Subject:' Åù)"
 
-#: src/prefs_common.c:1140
+#: src/prefs_common.c:1145
 msgid "Display unread number next to folder name"
 msgstr "¥Õ¥©¥ë¥À̾¤Î²£¤Ë̤ÆÉ¿ô¤òɽ¼¨¤¹¤ë"
 
 #. ---- Summary ----
-#: src/prefs_common.c:1144
+#: src/prefs_common.c:1149
 msgid "Summary View"
 msgstr "¥µ¥Þ¥ê¥Ó¥å¡¼"
 
-#: src/prefs_common.c:1153
+#: src/prefs_common.c:1158
 msgid "Display recipient on `From' column if sender is yourself"
 msgstr "º¹½Ð¿Í¤¬¼«Ê¬¤Î¾ì¹ç¤Ï `º¹½Ð¿Í' ¥«¥é¥à¤Ë°¸Àè¤òɽ¼¨¤¹¤ë"
 
-#: src/prefs_common.c:1155
+#: src/prefs_common.c:1160
 msgid "Enable horizontal scroll bar"
 msgstr "¿åÊ¿¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤òÍ­¸ú¤Ë¤¹¤ë"
 
-#: src/prefs_common.c:1161
+#: src/prefs_common.c:1166
 msgid "Date format"
 msgstr "ÆüÉդνñ¼°"
 
-#: src/prefs_common.c:1172
+#: src/prefs_common.c:1177
 msgid ""
 "Ordinary characters placed in the format string are copied without "
 "conversion. Conversion specifiers are introduced by a % character, and are "
@@ -2921,76 +2927,76 @@ msgstr ""
 "%Y: (4·å¤Î)À¾Îñǯ\n"
 "%Z: ¥¿¥¤¥à¥¾¡¼¥ó¤Þ¤¿¤Ï¥¾¡¼¥ó̾¤Þ¤¿¤Ï¾Êά̾"
 
-#: src/prefs_common.c:1201
+#: src/prefs_common.c:1206
 msgid " Set display item of summary... "
 msgstr " ¥µ¥Þ¥ê¤Îɽ¼¨¹àÌܤòÀßÄê... "
 
-#: src/prefs_common.c:1254
+#: src/prefs_common.c:1260
 msgid "Enable coloration of message"
 msgstr "¥á¥Ã¥»¡¼¥¸¤Î¿§¤òÍ­¸ú¤Ë¤¹¤ë"
 
-#: src/prefs_common.c:1273
+#: src/prefs_common.c:1279
 msgid "Display 2-byte alphabet and numeric with 1-byte character"
 msgstr "2¥Ð¥¤¥È±Ñ¿ô»ú¤ò1¥Ð¥¤¥Èʸ»ú¤Çɽ¼¨¤¹¤ë"
 
-#: src/prefs_common.c:1275
+#: src/prefs_common.c:1281
 msgid "Display header pane above message view"
 msgstr "¥á¥Ã¥»¡¼¥¸¥Ó¥å¡¼¤Î¾åÉô¤Ë¥Ø¥Ã¥À¥Ú¥¤¥ó¤òɽ¼¨¤¹¤ë"
 
-#: src/prefs_common.c:1277
+#: src/prefs_common.c:1288
 msgid "Display short headers on message view"
 msgstr "¥á¥Ã¥»¡¼¥¸¥Ó¥å¡¼¤Ë´Êά¥Ø¥Ã¥À¤òɽ¼¨¤¹¤ë"
 
-#: src/prefs_common.c:1287
+#: src/prefs_common.c:1308
 msgid "Line space"
 msgstr "¹Ô´Ö¤ò¶õ¤±¤ë"
 
-#: src/prefs_common.c:1301 src/prefs_common.c:1341
+#: src/prefs_common.c:1322 src/prefs_common.c:1362
 msgid "pixel(s)"
 msgstr "¥Ô¥¯¥»¥ë"
 
-#: src/prefs_common.c:1306
+#: src/prefs_common.c:1327
 msgid "Leave space on head"
 msgstr "¹ÔƬ¤ò¶õ¤±¤ë"
 
-#: src/prefs_common.c:1308
+#: src/prefs_common.c:1329
 msgid "Scroll"
 msgstr "¥¹¥¯¥í¡¼¥ë"
 
-#: src/prefs_common.c:1315
+#: src/prefs_common.c:1336
 msgid "Half page"
 msgstr "Ⱦ¥Ú¡¼¥¸Ã±°Ì"
 
-#: src/prefs_common.c:1321
+#: src/prefs_common.c:1342
 msgid "Smooth scroll"
 msgstr "¥¹¥à¡¼¥º¥¹¥¯¥í¡¼¥ë"
 
-#: src/prefs_common.c:1327
+#: src/prefs_common.c:1348
 msgid "Step"
 msgstr "´Ö³Ö"
 
-#: src/prefs_common.c:1386
+#: src/prefs_common.c:1407
 msgid "Encrypt message by default"
 msgstr "ɸ½à¤Ç¥á¥Ã¥»¡¼¥¸¤ò°Å¹æ²½¤¹¤ë"
 
-#: src/prefs_common.c:1389
+#: src/prefs_common.c:1410
 msgid "Sign message by default"
 msgstr "ɸ½à¤Ç¥á¥Ã¥»¡¼¥¸¤Ë½ð̾¤¹¤ë"
 
-#: src/prefs_common.c:1392
+#: src/prefs_common.c:1413
 msgid "Automatically check signatures"
 msgstr "½ð̾¤ò¼«Æ°Åª¤Ë¸¡¾Ú"
 
-#: src/prefs_common.c:1396
+#: src/prefs_common.c:1417
 msgid "Grab input while entering a passphrase"
 msgstr "¥Ñ¥¹¥Õ¥ì¡¼¥º¤ÎÆþÎÏ»þ¤ËÆþÎϤòÊ᪤¹¤ë"
 
 #. create default signkey box
-#: src/prefs_common.c:1404
+#: src/prefs_common.c:1425
 msgid "Default Sign Key"
 msgstr "ɸ½à¤Î½ð̾¸°"
 
-#: src/prefs_common.c:1503
+#: src/prefs_common.c:1524
 msgid ""
 "Emulate the behavior of mouse operation of\n"
 "Emacs-based mailer"
@@ -2998,19 +3004,19 @@ msgstr ""
 "Emacs¾å¤Î¥á¡¼¥é¤Î¥Þ¥¦¥¹Áàºî»þ¤ÎµóÆ°¤ò\n"
 "¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë"
 
-#: src/prefs_common.c:1510
+#: src/prefs_common.c:1531
 msgid "Open first unread message when entering a folder"
 msgstr "¥Õ¥©¥ë¥À¤ËÆþ¤Ã¤¿¤È¤­¤ËºÇ½é¤Î̤ÆÉ¥á¥Ã¥»¡¼¥¸¤ò³«¤¯"
 
-#: src/prefs_common.c:1514
+#: src/prefs_common.c:1535
 msgid "Go to inbox after receiving new mail"
 msgstr "¿·Ãå¥á¡¼¥ë¤ò¼õ¿®¤·¤¿¸å¼õ¿®È¢¤Ë°ÜÆ°¤¹¤ë"
 
-#: src/prefs_common.c:1522
+#: src/prefs_common.c:1543
 msgid "Execute immediately when moving or deleting messages"
 msgstr "¥á¥Ã¥»¡¼¥¸¤ò°ÜÆ°¤Þ¤¿¤Ïºï½ü¤·¤¿¤é¨ºÂ¤Ë¼Â¹Ô¤¹¤ë"
 
-#: src/prefs_common.c:1529
+#: src/prefs_common.c:1550
 msgid ""
 "(Messages will be just marked till execution\n"
 " if this is turned off)"
@@ -3018,98 +3024,98 @@ msgstr ""
 "(¤³¤ì¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢¥á¥Ã¥»¡¼¥¸¤Ï¼Â¹Ô¤µ¤ì¤ë¤Þ¤Ç\n"
 " ¥Þ¡¼¥¯¤µ¤ì¤¿¾õÂ֤ˤʤê¤Þ¤¹)"
 
-#: src/prefs_common.c:1536
+#: src/prefs_common.c:1557
 msgid "Add address to destination when double-clicked"
 msgstr "¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤¿¤È¤­¤Ë¥¢¥É¥ì¥¹¤ò°¸Àè¤ËÄɲ乤ë"
 
-#: src/prefs_common.c:1538
+#: src/prefs_common.c:1559
 msgid "On exit"
 msgstr "½ªÎ»»þ"
 
-#: src/prefs_common.c:1546
+#: src/prefs_common.c:1567
 msgid "Confirm on exit"
 msgstr "½ªÎ»»þ¤Ë³Îǧ¤¹¤ë"
 
-#: src/prefs_common.c:1553
+#: src/prefs_common.c:1574
 msgid "Empty trash on exit"
 msgstr "½ªÎ»»þ¤Ë¤´¤ßÈ¢¤ò¶õ¤Ë¤¹¤ë"
 
-#: src/prefs_common.c:1555
+#: src/prefs_common.c:1576
 msgid "Ask before emptying"
 msgstr "¶õ¤Ë¤¹¤ëÁ°¤Ë¿Ò¤Í¤ë"
 
-#: src/prefs_common.c:1559
+#: src/prefs_common.c:1580
 msgid "Warn if there are queued messages"
 msgstr "Á÷¿®ÂÔµ¡Ãæ¤Î¥á¥Ã¥»¡¼¥¸¤¬¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
 
-#: src/prefs_common.c:1597
+#: src/prefs_common.c:1618
 #, c-format
 msgid "External Web browser (%s will be replaced with URI)"
 msgstr "³°ÉôWeb¥Ö¥é¥¦¥¶ (%s ¤ÏURI¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹)"
 
-#: src/prefs_common.c:1604 src/prefs_common.c:1628 src/prefs_common.c:1644
+#: src/prefs_common.c:1625 src/prefs_common.c:1649 src/prefs_common.c:1665
 msgid "Command"
 msgstr "¥³¥Þ¥ó¥É"
 
-#: src/prefs_common.c:1621
+#: src/prefs_common.c:1642
 #, c-format
 msgid "Printing (%s will be replaced with file name)"
 msgstr "°õºþ (%s ¤Ï¥Õ¥¡¥¤¥ë̾¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹)"
 
-#: src/prefs_common.c:1637
+#: src/prefs_common.c:1658
 #, c-format
 msgid "External editor (%s will be replaced with file name)"
 msgstr "³°Éô¥¨¥Ç¥£¥¿ (%s ¤Ï¥Õ¥¡¥¤¥ë̾¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹)"
 
-#: src/prefs_common.c:1699
+#: src/prefs_common.c:1720
 msgid "Set message colors"
 msgstr "¥á¥Ã¥»¡¼¥¸¤Î¿§¤ò»ØÄê"
 
-#: src/prefs_common.c:1707
+#: src/prefs_common.c:1728
 msgid "Colors"
 msgstr "¿§"
 
-#: src/prefs_common.c:1745
+#: src/prefs_common.c:1766
 msgid "Quoted Text - First Level"
 msgstr "°úÍÑʸ - 1Ãʳ¬"
 
-#: src/prefs_common.c:1751
+#: src/prefs_common.c:1772
 msgid "Quoted Text - Second Level"
 msgstr "°úÍÑʸ - 2Ãʳ¬"
 
-#: src/prefs_common.c:1757
+#: src/prefs_common.c:1778
 msgid "Quoted Text - Third Level"
 msgstr "°úÍÑʸ - 3Ãʳ¬"
 
-#: src/prefs_common.c:1763
+#: src/prefs_common.c:1784
 msgid "URI link"
 msgstr "URI ¥ê¥ó¥¯"
 
-#: src/prefs_common.c:1770
+#: src/prefs_common.c:1791
 msgid "Recycle quote colors"
 msgstr "°úÍÑ¿§¤ò½Û´Ä"
 
-#: src/prefs_common.c:1818
+#: src/prefs_common.c:1839
 msgid "Pick color for quotation level 1"
 msgstr "°úÍÑ¥ì¥Ù¥ë1¤Î¿§¤òÁªÂò"
 
-#: src/prefs_common.c:1821
+#: src/prefs_common.c:1842
 msgid "Pick color for quotation level 2"
 msgstr "°úÍÑ¥ì¥Ù¥ë2¤Î¿§¤òÁªÂò"
 
-#: src/prefs_common.c:1824
+#: src/prefs_common.c:1845
 msgid "Pick color for quotation level 3"
 msgstr "°úÍÑ¥ì¥Ù¥ë3¤Î¿§¤òÁªÂò"
 
-#: src/prefs_common.c:1827
+#: src/prefs_common.c:1848
 msgid "Pick color for URI"
 msgstr "URI ¤Î¿§¤òÁªÂò"
 
-#: src/prefs_common.c:1951
+#: src/prefs_common.c:1972
 msgid "Description of symbols"
 msgstr "µ­¹æ¤ÎÀâÌÀ"
 
-#: src/prefs_common.c:1978
+#: src/prefs_common.c:1999
 #, c-format
 msgid ""
 "Date\n"
@@ -3132,122 +3138,158 @@ msgstr ""
 "¥á¥Ã¥»¡¼¥¸ID\n"
 "%"
 
-#: src/prefs_common.c:2081
+#: src/prefs_common.c:2102
 msgid "Set display item"
 msgstr "ɽ¼¨¹àÌܤÎÀßÄê"
 
-#: src/prefs_common.c:2098
+#: src/prefs_common.c:2119
 msgid "Mark"
 msgstr "¥Þ¡¼¥¯"
 
-#: src/prefs_common.c:2100
+#: src/prefs_common.c:2121
 msgid "MIME"
 msgstr "MIME"
 
-#: src/prefs_common.c:2101
+#: src/prefs_common.c:2122
 msgid "Number"
 msgstr "ÈÖ¹æ"
 
-#: src/prefs_common.c:2103 src/summaryview.c:352
+#: src/prefs_common.c:2124 src/summaryview.c:352
 msgid "Date"
 msgstr "ÆüÉÕ"
 
-#: src/prefs_common.c:2104 src/summaryview.c:353
+#: src/prefs_common.c:2125 src/summaryview.c:353
 msgid "From"
 msgstr "º¹½Ð¿Í"
 
-#: src/prefs_common.c:2105 src/summaryview.c:354
+#: src/prefs_common.c:2126 src/summaryview.c:354
 msgid "Subject"
 msgstr "·ï̾"
 
-#: src/prefs_common.c:2158
+#: src/prefs_common.c:2179
 msgid "Font selection"
 msgstr "¥Õ¥©¥ó¥È¤ÎÁªÂò"
 
-#: src/prefs_filter.c:178
+#: src/prefs_display_header.c:176
+msgid "Creating display header setting window...\n"
+msgstr "ɽ¼¨¥Ø¥Ã¥ÀÀßÄꥦ¥£¥ó¥É¥¦¤òºîÀ®Ãæ...\n"
+
+#: src/prefs_display_header.c:195
+msgid "Display header setting"
+msgstr "ɽ¼¨¥Ø¥Ã¥À¤ÎÀßÄê"
+
+#: src/prefs_display_header.c:221
+msgid "Header name"
+msgstr "¥Ø¥Ã¥À̾"
+
+#: src/prefs_display_header.c:250
+msgid "Displayed Headers"
+msgstr "ɽ¼¨¤¹¤ë¥Ø¥Ã¥À"
+
+#: src/prefs_display_header.c:301
+msgid "Hidden headers"
+msgstr "ɽ¼¨¤·¤Ê¤¤¥Ø¥Ã¥À"
+
+#: src/prefs_display_header.c:331
+msgid "Show other headers"
+msgstr "¾¤Î¥Ø¥Ã¥À¤òɽ¼¨"
+
+#: src/prefs_display_header.c:355
+msgid "Reading configuration for displaying headers...\n"
+msgstr "ɽ¼¨¥Ø¥Ã¥À¤ÎÀßÄê¤òÆɤ߹þ¤ßÃæ...\n"
+
+#: src/prefs_display_header.c:393
+msgid "Writing configuration for displaying headers...\n"
+msgstr "ɽ¼¨¥Ø¥Ã¥À¤ÎÀßÄê¤ò½ñ¤­½Ð¤·Ãæ...\n"
+
+#: src/prefs_display_header.c:515 src/prefs_filter.c:610
+msgid "Header name is not set."
+msgstr "¥Ø¥Ã¥À̾¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: src/prefs_display_header.c:525
+msgid "This header is already in the list."
+msgstr "¤³¤Î¥Ø¥Ã¥À¤Ï¤¹¤Ç¤Ë¥ê¥¹¥ÈÃæ¤Ë¸ºß¤·¤Þ¤¹¡£"
+
+#: src/prefs_filter.c:181
 msgid "Registered rules"
 msgstr "ÅÐÏ¿ºÑ¤ß¥ë¡¼¥ë"
 
-#: src/prefs_filter.c:180
+#: src/prefs_filter.c:183
 msgid "Creating filter setting window...\n"
 msgstr "¿¶¤êʬ¤±ÀßÄꥦ¥£¥ó¥É¥¦¤òºîÀ®Ãæ...\n"
 
-#: src/prefs_filter.c:199
+#: src/prefs_filter.c:202
 msgid "Filter setting"
 msgstr "¿¶¤êʬ¤±¤ÎÀßÄê"
 
-#: src/prefs_filter.c:222
+#: src/prefs_filter.c:225
 msgid "Operator"
 msgstr "±é»»»Ò"
 
-#: src/prefs_filter.c:260 src/prefs_filter.c:620 src/prefs_filter.c:759
-#: src/prefs_filter.c:771
+#: src/prefs_filter.c:263 src/prefs_filter.c:623 src/prefs_filter.c:762
+#: src/prefs_filter.c:774
 msgid "(none)"
 msgstr "(¤Ê¤·)"
 
-#: src/prefs_filter.c:266
+#: src/prefs_filter.c:269
 msgid "Keyword"
 msgstr "¥­¡¼¥ï¡¼¥É"
 
-#: src/prefs_filter.c:287
+#: src/prefs_filter.c:290
 msgid "Predicate"
 msgstr "½Ò¸ì"
 
-#: src/prefs_filter.c:299 src/prefs_filter.c:310 src/prefs_filter.c:629
-#: src/prefs_filter.c:632 src/prefs_filter.c:776 src/prefs_filter.c:779
+#: src/prefs_filter.c:302 src/prefs_filter.c:313 src/prefs_filter.c:632
+#: src/prefs_filter.c:635 src/prefs_filter.c:779 src/prefs_filter.c:782
 msgid "contains"
 msgstr "´Þ¤à"
 
-#: src/prefs_filter.c:299 src/prefs_filter.c:310 src/prefs_filter.c:776
-#: src/prefs_filter.c:779
+#: src/prefs_filter.c:302 src/prefs_filter.c:313 src/prefs_filter.c:779
+#: src/prefs_filter.c:782
 msgid "not contain"
 msgstr "´Þ¤Þ¤Ê¤¤"
 
-#: src/prefs_filter.c:326
+#: src/prefs_filter.c:329
 msgid "Destination"
 msgstr "¿¶¤êʬ¤±Àè"
 
-#: src/prefs_filter.c:350
+#: src/prefs_filter.c:353
 msgid "Use regex"
 msgstr "Àµµ¬É½¸½¤ò»ÈÍÑ"
 
-#: src/prefs_filter.c:354
+#: src/prefs_filter.c:357
 msgid "Don't receive"
 msgstr "¼õ¿®¤·¤Ê¤¤"
 
-#: src/prefs_filter.c:379
+#: src/prefs_filter.c:382
 msgid "Register"
 msgstr "ÅÐÏ¿"
 
-#: src/prefs_filter.c:385
+#: src/prefs_filter.c:388
 msgid " Substitute "
 msgstr "  ÃÖ´¹  "
 
-#: src/prefs_filter.c:472
+#: src/prefs_filter.c:475
 msgid "Reading filter configuration...\n"
 msgstr "¿¶¤êʬ¤±¤ÎÀßÄê¤òÆɤ߹þ¤ßÃæ...\n"
 
-#: src/prefs_filter.c:508
+#: src/prefs_filter.c:511
 msgid "Writing filter configuration...\n"
 msgstr "¿¶¤êʬ¤±¤ÎÀßÄê¤ò½ñ¤­½Ð¤·Ãæ...\n"
 
-#: src/prefs_filter.c:551
+#: src/prefs_filter.c:554
 msgid "(New)"
 msgstr "(¿·µ¬)"
 
-#: src/prefs_filter.c:602
+#: src/prefs_filter.c:605
 msgid "Destination is not set."
 msgstr "¿¶¤êʬ¤±À褬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/prefs_filter.c:607
-msgid "Header name is not set."
-msgstr "¥Ø¥Ã¥À̾¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-
-#: src/prefs_filter.c:713
+#: src/prefs_filter.c:716
 msgid "Delete rule"
 msgstr "¥ë¡¼¥ë¤Îºï½ü"
 
-#: src/prefs_filter.c:714
+#: src/prefs_filter.c:717
 msgid "Do you really want to delete this rule?"
 msgstr "ËÜÅö¤Ë¤³¤Î¥ë¡¼¥ë¤òºï½ü¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
 
@@ -3314,11 +3356,11 @@ msgstr "
 msgid "Creating progress dialog...\n"
 msgstr "¿Ê¹Ô¾õ¶·¥À¥¤¥¢¥í¥°¤òºîÀ®Ãæ...\n"
 
-#: src/recv.c:106
+#: src/recv.c:111
 msgid "error occurred while retrieving data.\n"
 msgstr "¥Ç¡¼¥¿¤Î¼èÆÀÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"
 
-#: src/recv.c:130 src/recv.c:167 src/recv.c:182
+#: src/recv.c:148 src/recv.c:185 src/recv.c:200
 msgid "Can't write to file.\n"
 msgstr "¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó¡£\n"
 
@@ -3802,15 +3844,15 @@ msgstr "
 msgid "Go to %s\n"
 msgstr "%s ¤Ë°ÜÆ°\n"
 
-#: src/textview.c:137
+#: src/textview.c:138
 msgid "Creating text view...\n"
 msgstr "¥Æ¥­¥¹¥È¥Ó¥å¡¼¤òºîÀ®Ãæ...\n"
 
-#: src/textview.c:372
+#: src/textview.c:365
 msgid "To save this part, pop up the context menu with\n"
 msgstr "¤³¤Î¥Ñ¡¼¥È¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢±¦¥¯¥ê¥Ã¥¯¤Ç¥³¥ó¥Æ¥­¥¹¥È¥á¥Ë¥å¡¼¤ò\n"
 
-#: src/textview.c:375
+#: src/textview.c:368
 msgid ""
 "right click and select `Save as...', or press `y' key.\n"
 "\n"
@@ -3818,11 +3860,11 @@ msgstr ""
 "ɽ¼¨¤·¡¢¡Ö̾Á°¤òÉÕ¤±¤ÆÊݸ...¡×¤òÁªÂò¤¹¤ë¤«¡¢`y' ¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/textview.c:379
+#: src/textview.c:372
 msgid "To display this part as a text message, select\n"
 msgstr "¤³¤Î¥Ñ¡¼¥È¤ò¥Æ¥­¥¹¥È¥á¥Ã¥»¡¼¥¸¤È¤·¤Æɽ¼¨¤¹¤ë¤Ë¤Ï¡¢\n"
 
-#: src/textview.c:382
+#: src/textview.c:375
 msgid ""
 "`Display as text', or press `t' key.\n"
 "\n"
@@ -3830,41 +3872,41 @@ msgstr ""
 "¡Ö¥Æ¥­¥¹¥È¤È¤·¤Æɽ¼¨¡×¤òÁªÂò¤¹¤ë¤«¡¢`t' ¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/textview.c:386
+#: src/textview.c:379
 msgid "To open this part with external program, select `Open',\n"
 msgstr "¤³¤Î¥Ñ¡¼¥È¤ò³°Éô¥×¥í¥°¥é¥à¤Ç³«¤¯¤Ë¤Ï¡¢¡Ö³«¤¯¡×¤òÁªÂò¤¹¤ë¤«¡¢\n"
 
-#: src/textview.c:389
+#: src/textview.c:382
 msgid "or double-click, or click the center button, or press `l' key."
 msgstr ""
 "¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤«¡¢Ãæ±û¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤«¡¢\n"
 "`l' ¥­¡¼¤ò²¡¤·¤Æ²¼¤µ¤¤¡£"
 
-#: src/textview.c:410
+#: src/textview.c:403
 msgid "This signature has not been checked yet.\n"
 msgstr "¤³¤Î½ð̾¤Ï¤Þ¤À¸¡¾Ú¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
 
-#: src/textview.c:413
+#: src/textview.c:406
 msgid "To check it, pop up the context menu with\n"
 msgstr "¸¡¾Ú¤¹¤ë¤Ë¤Ï¡¢±¦¥¯¥ê¥Ã¥¯¤Ç¥³¥ó¥Æ¥­¥¹¥È¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢\n"
 
-#: src/textview.c:416
+#: src/textview.c:409
 msgid "right click and select `Check signature'.\n"
 msgstr ""
 "¡Ö½ð̾¤ò¸¡¾Ú¡×¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/utils.c:1407 src/utils.c:1484
+#: src/utils.c:1425 src/utils.c:1502
 #, c-format
 msgid "writing to %s failed.\n"
 msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
 
-#: src/utils.c:1427
+#: src/utils.c:1445
 #, c-format
 msgid "File copy from %s to %s failed.\n"
 msgstr "%s ¤«¤é %s ¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
 
-#: src/utils.c:1645
+#: src/utils.c:1663
 #, c-format
 msgid "Open URI command line is invalid: `%s'"
 msgstr "URI ¤ò³«¤¯¤¿¤á¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤¬Ìµ¸ú¤Ç¤¹: `%s'"
index add50ca..113fce5 100644 (file)
@@ -25,7 +25,9 @@ sylpheed_SOURCES = \
        prefs_common.c prefs_common.h \
        prefs_filter.c prefs_filter.h \
        prefs_account.c prefs_account.h \
+       prefs_display_header.c prefs_display_header.h \
        account.c account.h \
+       displayheader.c displayheader.h \
        addressbook.c addressbook.h \
        filesel.c filesel.h \
        foldersel.c foldersel.h \
@@ -77,8 +79,6 @@ sylpheed_SOURCES = \
        grouplist_dialog.c grouplist_dialog.h \
        customheader.c customheader.h \
        prefs_headers.c prefs_headers.h \
-       headers_display.c headers_display.h \
-       prefs_display_headers.c prefs_display_headers.h \
        scoring.c scoring.h \
        prefs_folder_item.c prefs_folder_item.h \
        matcher.c matcher.h
index 5446c59..79d5705 100644 (file)
@@ -39,6 +39,7 @@
 #include "prefs_account.h"
 #include "compose.h"
 #include "manage_window.h"
+#include "inc.h"
 #include "gtkutils.h"
 #include "utils.h"
 #include "alertpanel.h"
@@ -198,9 +199,12 @@ GList *account_get_list(void)
 
 void account_edit_open(void)
 {
+       inc_autocheck_timer_remove();
+       
        if (compose_get_compose_list()) {
                alertpanel_notice(_("Some composing windows are open.\n"
                                    "Please close all the composing windows before editing the accounts."));
+               inc_autocheck_timer_set();                                      
                return;
        }
 
@@ -223,6 +227,7 @@ void account_add(void)
        PrefsAccount *ac_prefs;
 
        ac_prefs = prefs_account_open(NULL);
+       inc_autocheck_timer_remove();
 
        if (!ac_prefs) return;
 
@@ -473,6 +478,7 @@ static void account_edit_prefs(void)
        Xstrdup_a(ac_name, ac_prefs->account_name, return);
 
        prefs_account_open(ac_prefs);
+       inc_autocheck_timer_remove();
 
        if (!prev_default && ac_prefs->is_default)
                account_set_as_default(ac_prefs);
@@ -571,6 +577,8 @@ static void account_edit_close(void)
        main_window_reflect_prefs_all();
 
        gtk_widget_hide(edit_account.window);
+
+       inc_autocheck_timer_set();
 }
 
 static void account_key_pressed(GtkWidget *widget, GdkEventKey *event,
index f68eef0..ca57327 100644 (file)
@@ -47,7 +47,7 @@
 #define ACCOUNT_RC             "accountrc"
 #define FILTER_RC              "filterrc"
 #define HEADERS_RC             "headersrc"
-#define HEADERS_DISPLAY_RC     "headersdisplayrc"
+#define DISPLAY_HEADER_RC      "dispheaderrc"
 #define FOLDERITEM_RC           "folderitemrc"
 #define SCORING_RC              "scoringrc"
 #define MENU_RC                        "menurc"
index 15cb21d..e2235c6 100644 (file)
@@ -42,7 +42,7 @@ FolderItem *filter_get_dest_folder(GSList *fltlist, const gchar *file)
        g_return_val_if_fail(file != NULL, NULL);
        if (!fltlist) return NULL;
 
-       hlist = procheader_get_header_list(file);
+       hlist = procheader_get_header_list_from_file(file);
        if (!hlist) return NULL;
 
        for (cur = fltlist; cur != NULL; cur = cur->next) {
index 73cda73..47eaf3c 100644 (file)
@@ -208,6 +208,7 @@ static void headerview_show_xface(HeaderView *headerview, MsgInfo *msginfo)
                }
                return;
        }
+       if (!GTK_WIDGET_VISIBLE(headerview->hbox)) return;
 
        strncpy(xface, msginfo->xface, sizeof(xface));
 
index 324ebf5..133d3c2 100644 (file)
--- a/src/inc.c
+++ b/src/inc.c
@@ -98,7 +98,7 @@ static gint connection_check_cb               (Automaton      *atm);
 #endif
 
 static void inc_pop3_recv_func         (SockInfo       *sock,
-                                        gint            read_len,
+                                        gint            read_bytes,
                                         gpointer        data);
 
 static void inc_put_error              (IncState        istate);
@@ -112,6 +112,8 @@ static gint get_spool                       (FolderItem     *dest,
 
 static void inc_all_spool(void);
 
+static gint inc_autocheck_func         (gpointer        data);
+
 static void inc_finished(MainWindow *mainwin)
 {
        FolderItem *item;
@@ -131,6 +133,7 @@ static void inc_finished(MainWindow *mainwin)
 
 void inc_mail(MainWindow *mainwin)
 {
+       inc_autocheck_timer_remove();
        summary_write_cache(mainwin->summaryview);
 
        if (prefs_common.use_extinc && prefs_common.extinc_path) {
@@ -139,6 +142,7 @@ void inc_mail(MainWindow *mainwin)
                /* external incorporating program */
                if ((pid = fork()) < 0) {
                        perror("fork");
+                       inc_autocheck_timer_set();                      
                        return;
                }
 
@@ -165,6 +169,7 @@ void inc_mail(MainWindow *mainwin)
        }
 
        inc_finished(mainwin);
+       inc_autocheck_timer_set();      
 }
 
 static void inc_account_mail(PrefsAccount *account, MainWindow *mainwin)
@@ -194,12 +199,16 @@ void inc_all_account_mail(MainWindow *mainwin)
        GList *list, *queue_list = NULL;
        IncProgressDialog *inc_dialog;
 
+       inc_autocheck_timer_remove();
        summary_write_cache(mainwin->summaryview);
 
        if (prefs_common.inc_local) inc_spool();
 
        list = account_get_list();
-       if (!list) return;
+       if (!list) {
+               inc_autocheck_timer_set();
+               return;
+       }               
 
        for (; list != NULL; list = list->next) {
                IncSession *session;
@@ -212,7 +221,10 @@ void inc_all_account_mail(MainWindow *mainwin)
                }
        }
 
-       if (!queue_list) return;
+       if (!queue_list) {
+               inc_autocheck_timer_set();
+               return;
+       }       
 
        inc_dialog = inc_progress_dialog_create();
        inc_dialog->queue_list = queue_list;
@@ -232,6 +244,7 @@ void inc_all_account_mail(MainWindow *mainwin)
        inc_start(inc_dialog);
 
        inc_finished(mainwin);
+       inc_autocheck_timer_set();
 }
 
 static IncProgressDialog *inc_progress_dialog_create(void)
@@ -668,7 +681,7 @@ static gint connection_check_cb(Automaton *atm)
 }
 #endif
 
-static void inc_pop3_recv_func(SockInfo *sock, gint read_len, gpointer data)
+static void inc_pop3_recv_func(SockInfo *sock, gint read_bytes, gpointer data)
 {
        gchar buf[MSGBUFSIZE];
        IncSession *session = (IncSession *)data;
@@ -677,8 +690,7 @@ static void inc_pop3_recv_func(SockInfo *sock, gint read_len, gpointer data)
        ProgressDialog *dialog = inc_dialog->dialog;
        gint cur_total;
 
-       state->cur_msg_bytes += read_len;
-       cur_total = state->cur_total_bytes + state->cur_msg_bytes;
+       cur_total = state->cur_total_bytes + read_bytes;
        if (cur_total > state->total_bytes)
                cur_total = state->total_bytes;
 
@@ -925,3 +937,41 @@ static gint get_spool(FolderItem *dest, const gchar *mbox)
 
        return msgs;
 }
+
+static guint autocheck_timer = 0;
+static gpointer autocheck_data = NULL;
+
+void inc_autocheck_timer_init(MainWindow *mainwin)
+{
+       autocheck_data = mainwin;
+       inc_autocheck_timer_set();
+}
+
+void inc_autocheck_timer_set(void)
+{
+       inc_autocheck_timer_remove();
+
+       if (prefs_common.autochk_newmail && autocheck_data) {
+               autocheck_timer = gtk_timeout_add
+                       (prefs_common.autochk_itv * 60000,
+                        inc_autocheck_func,
+                        autocheck_data);
+       }
+}
+
+void inc_autocheck_timer_remove(void)
+{
+       if (autocheck_timer) {
+               gtk_timeout_remove(autocheck_timer);
+               autocheck_timer = 0;
+       }
+}
+
+static gint inc_autocheck_func(gpointer data)
+{
+       MainWindow *mainwin = (MainWindow *)data;
+
+       inc_all_account_mail(mainwin);
+
+       return FALSE;
+}
index 132b43d..7c59e0d 100644 (file)
--- a/src/inc.h
+++ b/src/inc.h
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2001 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
@@ -102,5 +102,8 @@ void inc_progress_update    (Pop3State      *state,
                                 Pop3Phase       phase);
 gint inc_drop_message          (const gchar    *file,
                                 Pop3State      *state);
+void inc_autocheck_timer_init  (MainWindow     *mainwin);
+void inc_autocheck_timer_set   (void);
+void inc_autocheck_timer_remove        (void);
 
 #endif /* __INC_H__ */
index 549da44..c9147cd 100644 (file)
@@ -57,6 +57,7 @@
 #include "prefs_common.h"
 #include "prefs_filter.h"
 #include "prefs_account.h"
+#include "prefs_display_header.h"
 #include "account.h"
 #include "procmsg.h"
 #include "inc.h"
@@ -198,14 +199,6 @@ int main(int argc, char *argv[])
 
        srandom((gint)time(NULL));
 
-       prefs_common_read_config();
-       prefs_common_save_config();
-       prefs_filter_read_config();
-       prefs_filter_write_config();
-       prefs_display_headers_read_config();
-       prefs_display_headers_write_config();
-       prefs_scoring_read_config();
-
 #if USE_GPGME
        if (gpgme_check_engine()) {  /* Also does some gpgme init */
                rfc2015_disable_all();
@@ -226,6 +219,14 @@ int main(int argc, char *argv[])
        gpgme_register_idle(idle_function_for_gpgme);
 #endif
 
+       prefs_common_read_config();
+       prefs_common_save_config();
+       prefs_filter_read_config();
+       prefs_filter_write_config();
+       prefs_display_header_read_config();
+       prefs_display_header_write_config();
+       prefs_scoring_read_config();
+
        gtkut_widget_init();
 
        mainwin = main_window_create
@@ -245,9 +246,11 @@ int main(int argc, char *argv[])
        account_set_missing_folder();
        folderview_set(folderview);
 
-       if (cmd.receive_all)
+       inc_autocheck_timer_init(mainwin);
+
+       if (cmd.receive_all || prefs_common.chk_on_startup)
                inc_all_account_mail(mainwin);
-       else if (prefs_common.chk_on_startup || cmd.receive)
+       else if (cmd.receive)
                inc_mail(mainwin);
        else
                gtk_widget_grab_focus(folderview->ctree);
index d365cc6..0fb8c56 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2001 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
index 7ae10d5..45eb018 100644 (file)
--- a/src/pop.c
+++ b/src/pop.c
@@ -300,7 +300,7 @@ gint pop3_getsize_list_recv(SockInfo *sock, gpointer data)
 
                if (buf[0] == '.') break;
                if (sscanf(buf, "%d %d", &num, &size) != 2)
-                       continue;
+                       break;
 
                if (num <= state->count)
                        state->sizes[num] = size;
index 59641e0..f835032 100644 (file)
@@ -39,6 +39,7 @@
 #include "account.h"
 #include "mainwindow.h"
 #include "manage_window.h"
+#include "inc.h"
 #include "menu.h"
 #include "gtkutils.h"
 #include "utils.h"
@@ -424,6 +425,8 @@ PrefsAccount *prefs_account_open(PrefsAccount *ac_prefs)
 
        debug_print(_("Opening account preferences window...\n"));
 
+       inc_autocheck_timer_remove();
+
        cancelled = FALSE;
 
        if (!ac_prefs) {
@@ -478,6 +481,8 @@ PrefsAccount *prefs_account_open(PrefsAccount *ac_prefs)
        gtk_main();
        gtk_widget_hide(dialog.window);
 
+       inc_autocheck_timer_set();
+
        if (cancelled && new_account) {
                g_free(ac_prefs);
                return NULL;
@@ -881,8 +886,9 @@ static void prefs_account_receive_create(void)
                           _("Remove messages on server when received"));
        PACK_CHECK_BUTTON (vbox2, getall_chkbtn,
                           _("Receive all messages on server"));
-       PACK_CHECK_BUTTON (vbox2, recvatgetall_chkbtn,
-                          _("Receive at getting from all accounts"));
+       PACK_CHECK_BUTTON
+                       (vbox2, recvatgetall_chkbtn,
+                                        _("`Receive all' checks for new mail on this account"));
        PACK_CHECK_BUTTON (vbox2, filter_on_recv_chkbtn,
                           _("Filter messages on receiving"));
 
index 5f9c597..6a8cd6c 100644 (file)
 #include "main.h"
 #include "prefs.h"
 #include "prefs_common.h"
+#include "prefs_display_header.h"
 #include "mainwindow.h"
 #include "summaryview.h"
 #include "messageview.h"
 #include "manage_window.h"
+#include "inc.h"
 #include "menu.h"
 #include "codeconv.h"
 #include "utils.h"
 #include "gtkutils.h"
 #include "alertpanel.h"
 #include "folder.h"
-#include "prefs_display_headers.h"
 
 PrefsCommon prefs_common;
 
@@ -425,6 +426,9 @@ static PrefParam param[] = {
         &message.chkbtn_halfpage,
         prefs_set_data_from_toggle, prefs_set_toggle},
 
+       {"show_other_header", "FALSE", &prefs_common.show_other_header, P_BOOL,
+        NULL, NULL, NULL},
+
        /* MIME viewer */
        {"mime_image_viewer", "display '%s'",
         &prefs_common.mime_image_viewer, P_STRING, NULL, NULL, NULL},
@@ -565,8 +569,9 @@ static void prefs_font_selection_ok         (GtkButton      *button);
 static void prefs_common_key_pressed   (GtkWidget      *widget,
                                         GdkEventKey    *event,
                                         gpointer        data);
-static void prefs_common_ok            (GtkButton      *button);
-static void prefs_common_apply         (GtkButton      *button);
+static void prefs_common_ok            (void);
+static void prefs_common_apply         (void);
+static void prefs_common_cancel                (void);
 
 void prefs_common_read_config(void)
 {
@@ -580,6 +585,8 @@ void prefs_common_save_config(void)
 
 void prefs_common_open(void)
 {
+       inc_autocheck_timer_remove();
+
        if (!dialog.window) {
                prefs_common_create();
        }
@@ -603,7 +610,7 @@ static void prefs_common_create(void)
        gtk_window_set_title (GTK_WINDOW(dialog.window),
                              _("Common Preferences"));
        gtk_signal_connect (GTK_OBJECT(dialog.window), "delete_event",
-                           GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete), NULL);
+                           GTK_SIGNAL_FUNC(prefs_common_cancel), NULL);
        gtk_signal_connect (GTK_OBJECT(dialog.window), "key_press_event",
                            GTK_SIGNAL_FUNC(prefs_common_key_pressed), NULL);
        gtk_signal_connect (GTK_OBJECT(dialog.window), "focus_in_event",
@@ -615,7 +622,7 @@ static void prefs_common_create(void)
        gtk_signal_connect (GTK_OBJECT(dialog.apply_btn), "clicked",
                            GTK_SIGNAL_FUNC(prefs_common_apply), NULL);
        gtk_signal_connect_object (GTK_OBJECT(dialog.cancel_btn), "clicked",
-                                  GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete),
+                                  GTK_SIGNAL_FUNC(prefs_common_cancel),
                                   GTK_OBJECT(dialog.window));
 
        /* create all widgets on notebook */
@@ -742,8 +749,6 @@ static void prefs_receive_create(void)
        gtk_widget_show (hbox_autochk);
        gtk_box_pack_start (GTK_BOX (vbox2), hbox_autochk, FALSE, FALSE, 0);
 
-       gtk_widget_set_sensitive(hbox_autochk, FALSE);
-
        PACK_CHECK_BUTTON (hbox_autochk, checkbtn_autochk,
                           _("Auto-check new mail"));
 
@@ -1308,7 +1313,6 @@ static void prefs_display_create(void)
        GtkWidget *hbox1;
        GtkWidget *label_datefmt;
        GtkWidget *button_dispitem;
-       GtkWidget *button_headers_display;
 
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
@@ -1393,19 +1397,6 @@ static void prefs_display_create(void)
                            GTK_SIGNAL_FUNC (prefs_summary_display_item_set),
                            NULL);
 
-       hbox1 = gtk_hbox_new (FALSE, 8);
-       gtk_widget_show (hbox1);
-       gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0);
-
-       button_headers_display = gtk_button_new_with_label
-               (_(" Set displaying of headers... "));
-       gtk_widget_show (button_headers_display);
-       gtk_box_pack_start (GTK_BOX (hbox1), button_headers_display, FALSE,
-                           TRUE, 0);
-       gtk_signal_connect (GTK_OBJECT (button_headers_display), "clicked",
-                           GTK_SIGNAL_FUNC (prefs_display_headers_open),
-                           NULL);
-
        display.entry_textfont  = entry_textfont;
        display.button_textfont = button_textfont;
 
@@ -1426,6 +1417,7 @@ static void prefs_message_create(void)
        GtkWidget *chkbtn_mbalnum;
        GtkWidget *chkbtn_disphdrpane;
        GtkWidget *chkbtn_disphdr;
+       GtkWidget *button_edit_disphdr; 
        GtkWidget *hbox_linespc;
        GtkWidget *label_linespc;
        GtkObject *spinbtn_linespc_adj;
@@ -1473,8 +1465,23 @@ static void prefs_message_create(void)
                 _("Display 2-byte alphabet and numeric with 1-byte character"));
        PACK_CHECK_BUTTON(vbox2, chkbtn_disphdrpane,
                          _("Display header pane above message view"));
-       PACK_CHECK_BUTTON(vbox2, chkbtn_disphdr,
-                         _("Display short headers on message view"));
+
+       hbox1 = gtk_hbox_new (FALSE, 8);
+       gtk_widget_show (hbox1);
+       gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0);
+
+       PACK_CHECK_BUTTON(hbox1, chkbtn_disphdr,
+               _("Display short headers on message view"));
+
+       button_edit_disphdr = gtk_button_new_with_label (_(" Edit... "));
+       gtk_widget_show (button_edit_disphdr);
+       gtk_box_pack_end (GTK_BOX (hbox1), button_edit_disphdr,
+                                 FALSE, TRUE, 0);
+       gtk_signal_connect (GTK_OBJECT (button_edit_disphdr), "clicked",
+                                           GTK_SIGNAL_FUNC (prefs_display_header_open),
+                                           NULL);
+
+       SET_TOGGLE_SENSITIVITY(chkbtn_disphdr, button_edit_disphdr);
 
        hbox1 = gtk_hbox_new (FALSE, 32);
        gtk_widget_show (hbox1);
@@ -2466,20 +2473,28 @@ static void prefs_common_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                     gpointer data)
 {
        if (event && event->keyval == GDK_Escape)
-               gtk_widget_hide(dialog.window);
+               prefs_common_cancel();  
 }
 
-static void prefs_common_ok(GtkButton *button)
+static void prefs_common_ok(void)
 {
-       prefs_common_apply(button);
+       prefs_common_apply();
        gtk_widget_hide(dialog.window);
        if (quote_desc_win && GTK_WIDGET_VISIBLE(quote_desc_win))
                gtk_widget_hide(quote_desc_win);
+
+       inc_autocheck_timer_set();
 }
 
-static void prefs_common_apply(GtkButton *button)
+static void prefs_common_apply(void)
 {
        prefs_set_data_from_dialog(param);
        main_window_reflect_prefs_all();
        prefs_common_save_config();
 }
+
+static void prefs_common_cancel(void)
+{
+       gtk_widget_hide(dialog.window);
+       inc_autocheck_timer_set();
+}
index 86595b1..5ba4e20 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2001 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
@@ -144,6 +144,9 @@ struct _PrefsCommon
 
        gchar *force_charset;
 
+       gboolean show_other_header;
+       GSList *disphdr_list;
+
        /* MIME viewer */
        gchar *mime_image_viewer;
        gchar *mime_audio_player;
index 5d0fcfb..fbd2c5e 100644 (file)
@@ -39,6 +39,7 @@
 #include "mainwindow.h"
 #include "foldersel.h"
 #include "manage_window.h"
+#include "inc.h"
 #include "filter.h"
 #include "utils.h"
 #include "gtkutils.h"
@@ -110,10 +111,12 @@ static void prefs_filter_notrecv_radio_button_toggled     (void);
 static void prefs_filter_key_pressed   (GtkWidget      *widget,
                                         GdkEventKey    *event,
                                         gpointer        data);
-static void prefs_filter_close         (GtkButton      *button);
+static void prefs_filter_close         ();
 
 void prefs_filter_open(void)
 {
+       inc_autocheck_timer_remove();
+
        if (!filter.window) {
                prefs_filter_create();
        }
@@ -198,7 +201,7 @@ static void prefs_filter_create(void)
        gtk_window_set_title (GTK_WINDOW(window),
                              _("Filter setting"));
        gtk_signal_connect (GTK_OBJECT(window), "delete_event",
-                           GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete), NULL);
+                           GTK_SIGNAL_FUNC(prefs_filter_close), NULL);
        gtk_signal_connect (GTK_OBJECT(window), "key_press_event",
                            GTK_SIGNAL_FUNC(prefs_filter_key_pressed), NULL);
        gtk_signal_connect (GTK_OBJECT(window), "focus_in_event",
@@ -804,11 +807,12 @@ static void prefs_filter_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                     gpointer data)
 {
        if (event && event->keyval == GDK_Escape)
-               gtk_widget_hide(filter.window);
+               prefs_filter_close();
 }
 
-static void prefs_filter_close(GtkButton *button)
+static void prefs_filter_close(void)
 {
        prefs_filter_write_config();
        gtk_widget_hide(filter.window);
+       inc_autocheck_timer_set();      
 }
index 64252ad..22fce10 100644 (file)
 
 #define BUFFSIZE       8192
 
-/*
-  procheader_get_one_field
-  - reads fp and puts the header and the corresponding content into buf
-    if one of these is one of hentry table.
-  - if hentry is NULL, ignores no headers
- */
-
 gint procheader_get_one_field(gchar *buf, gint len, FILE *fp,
                              HeaderEntry hentry[])
 {
@@ -192,6 +185,145 @@ gchar *procheader_get_unfolded_line(gchar *buf, gint len, FILE *fp)
        return buf;
 }
 
+GSList *procheader_get_header_list_from_file(const gchar *file)
+{
+       FILE *fp;
+       GSList *hlist;
+
+       if ((fp = fopen(file, "r")) == NULL) {
+               FILE_OP_ERROR(file, "fopen");
+               return NULL;
+       }
+
+       hlist = procheader_get_header_list(fp);
+
+       fclose(fp);
+       return hlist;
+}
+
+GSList *procheader_get_header_list(FILE *fp)
+{
+       gchar buf[BUFFSIZE], tmp[BUFFSIZE];
+       gchar *p;
+       GSList *hlist = NULL;
+       Header *header;
+
+       g_return_val_if_fail(fp != NULL, NULL);
+
+       while (procheader_get_unfolded_line(buf, sizeof(buf), fp) != NULL) {
+               if (*buf == ':') continue;
+               for (p = buf; *p && *p != ' '; p++) {
+                       if (*p == ':') {
+                               header = g_new(Header, 1);
+                               header->name = g_strndup(buf, p - buf);
+                               p++;
+                               while (*p == ' ' || *p == '\t') p++;
+                               conv_unmime_header(tmp, sizeof(tmp), p, NULL);
+                               header->body = g_strdup(tmp);
+
+                               hlist = g_slist_append(hlist, header);
+                               break;
+                       }
+               }
+       }
+
+       return hlist;
+}
+
+GPtrArray *procheader_get_header_array(FILE *fp)
+{
+       gchar buf[BUFFSIZE], tmp[BUFFSIZE];
+       gchar *p;
+       GPtrArray *headers;
+       Header *header;
+
+       g_return_val_if_fail(fp != NULL, NULL);
+
+       headers = g_ptr_array_new();
+
+       while (procheader_get_unfolded_line(buf, sizeof(buf), fp) != NULL) {
+               if (*buf == ':') continue;
+               for (p = buf; *p && *p != ' '; p++) {
+                       if (*p == ':') {
+                               header = g_new(Header, 1);
+                               header->name = g_strndup(buf, p - buf);
+                               p++;
+                               while (*p == ' ' || *p == '\t') p++;
+                               conv_unmime_header(tmp, sizeof(tmp), p, NULL);
+                               header->body = g_strdup(tmp);
+
+                               g_ptr_array_add(headers, header);
+                               break;
+                       }
+               }
+       }
+
+       return headers;
+}
+
+GPtrArray *procheader_get_header_array_asis(FILE *fp)
+{
+       gchar buf[BUFFSIZE], tmp[BUFFSIZE];
+       gchar *p;
+       GPtrArray *headers;
+       Header *header;
+
+       g_return_val_if_fail(fp != NULL, NULL);
+
+       headers = g_ptr_array_new();
+
+       while (procheader_get_one_field(buf, sizeof(buf), fp, NULL) != -1) {
+               if (*buf == ':') continue;
+               for (p = buf; *p && *p != ' '; p++) {
+                       if (*p == ':') {
+                               header = g_new(Header, 1);
+                               header->name = g_strndup(buf, p - buf);
+                               p++;
+                               conv_unmime_header(tmp, sizeof(tmp), p, NULL);
+                               header->body = g_strdup(tmp);
+
+                               g_ptr_array_add(headers, header);
+                               break;
+                       }
+               }
+       }
+
+       return headers;
+}
+
+void procheader_header_list_destroy(GSList *hlist)
+{
+       Header *header;
+
+       while (hlist != NULL) {
+               header = hlist->data;
+               procheader_header_free(header);
+               hlist = g_slist_remove(hlist, header);
+       }
+}
+
+void procheader_header_array_destroy(GPtrArray *harray)
+{
+       gint i;
+       Header *header;
+
+       for (i = 0; i < harray->len; i++) {
+               header = g_ptr_array_index(harray, i);
+               procheader_header_free(header);
+       }
+
+       g_ptr_array_free(harray, TRUE);
+}
+
+void procheader_header_free(Header *header)
+{
+       if (!header) return;
+
+       g_free(header->name);
+       g_free(header->body);
+       g_free(header);
+}
+
 /*
   tests whether two headers' names are equal
   remove the trailing ':' or ' ' before comparing
@@ -213,13 +345,6 @@ gboolean procheader_headername_equal(char * hdr1, char * hdr2)
        return (strncasecmp(hdr1, hdr2, len1) == 0);
 }
 
-void procheader_header_free(Header * header)
-{
-       g_free(header->name);
-       g_free(header->body);
-       g_free(header);
-}
-
 /*
   parse headers, for example :
   From: dinh@enseirb.fr becomes :
@@ -250,41 +375,6 @@ Header * procheader_parse_header(gchar * buf)
        return NULL;
 }
 
-GSList *procheader_get_header_list(const gchar *file)
-{
-       FILE *fp;
-       gchar buf[BUFFSIZE], tmp[BUFFSIZE];
-       gchar *p;
-       GSList *hlist = NULL;
-       Header *header;
-
-       if ((fp = fopen(file, "r")) == NULL) {
-               FILE_OP_ERROR(file, "fopen");
-               return NULL;
-       }
-
-       while (procheader_get_unfolded_line(buf, sizeof(buf), fp) != NULL) {
-               header = procheader_parse_header(buf);
-               if (header != NULL)
-                       hlist = g_slist_append(hlist, header);
-       }
-
-       fclose(fp);
-       return hlist;
-}
-
-void procheader_header_list_destroy(GSList *hlist)
-{
-       Header *header;
-
-       while (hlist != NULL) {
-               header = hlist->data;
-
-               procheader_header_free(header);
-               hlist = g_slist_remove(hlist, header);
-       }
-}
-
 void procheader_get_header_fields(FILE *fp, HeaderEntry hentry[])
 {
        gchar buf[BUFFSIZE];
index 5875327..f6292e4 100644 (file)
@@ -50,8 +50,14 @@ gchar *procheader_get_unfolded_line  (gchar          *buf,
                                         gint            len,
                                         FILE           *fp);
 
-GSList *procheader_get_header_list     (const gchar    *file);
-void procheader_header_list_destroy    (GSList         *hlist);
+GSList *procheader_get_header_list_from_file   (const gchar    *file);
+GSList *procheader_get_header_list             (FILE           *fp);
+GPtrArray *procheader_get_header_array         (FILE           *fp);
+GPtrArray *procheader_get_header_array_asis    (FILE           *fp);
+void procheader_header_list_destroy            (GSList         *hlist);
+void procheader_header_array_destroy           (GPtrArray      *harray);
+void procheader_header_free                    (Header         *header);
+
 void procheader_get_header_fields      (FILE           *fp,
                                         HeaderEntry     hentry[]);
 MsgInfo *procheader_parse              (const gchar    *file,
index 5af5268..9497bb7 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2001 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
@@ -25,6 +25,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <sys/time.h>
 
 #include "intl.h"
 #include "recv.h"
@@ -100,6 +101,10 @@ gint recv_write(SockInfo *sock, FILE *fp)
 {
        gchar buf[BUFFSIZE];
        gint len;
+       gint bytes = 0;
+       struct timeval tv_prev, tv_cur;
+
+       gettimeofday(&tv_prev, NULL);
 
        for (;;) {
                if (sock_gets(sock, buf, sizeof(buf)) < 0) {
@@ -108,10 +113,23 @@ gint recv_write(SockInfo *sock, FILE *fp)
                }
 
                len = strlen(buf);
-               if (len > 1 && buf[0] == '.' && buf[1] == '\r') break;
-
-               if (recv_ui_func)
-                       recv_ui_func(sock, len, recv_ui_func_data);
+               if (len > 1 && buf[0] == '.' && buf[1] == '\r') {
+                       if (recv_ui_func)
+                               recv_ui_func(sock, bytes, recv_ui_func_data);
+                       break;
+               }
+               bytes += len;
+
+               if (recv_ui_func) {
+                       gettimeofday(&tv_cur, NULL);
+                       /* if elapsed time from previous update is greater
+                          than 300 usec, update UI */
+                       if (tv_cur.tv_sec - tv_prev.tv_sec > 0 ||
+                           tv_cur.tv_usec - tv_prev.tv_usec > 300) {
+                               recv_ui_func(sock, bytes, recv_ui_func_data);
+                               gettimeofday(&tv_prev, NULL);
+                       }
+               }
 
                if (len > 1 && buf[len - 1] == '\n' && buf[len - 2] == '\r') {
                        buf[len - 2] = '\n';
index cae8dba..dd59ea5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2001 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
@@ -25,7 +25,7 @@
 #include "socket.h"
 
 typedef void (*RecvUIFunc)     (SockInfo       *sock,
-                                gint            read_len,
+                                gint            read_bytes,
                                 gpointer        data);
 
 gint recv_write_to_file                (SockInfo       *sock,
index 82906f0..f3e372f 100644 (file)
@@ -47,8 +47,7 @@
 #include "html.h"
 #include "compose.h"
 #include "addressbook.h"
-#include "headers_display.h"
-#include "prefs_display_headers.h"
+#include "displayheader.h"
 
 #define FONT_LOAD(font, s) \
 { \
@@ -331,16 +330,8 @@ void textview_show_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp)
        gtk_text_freeze(text);
 
        if (headers) {
-               gint i;
-
                textview_show_header(textview, headers);
-               for (i = 0; i < headers->len; i++) {
-                       Header *header = g_ptr_array_index(headers, i);
-                       g_free(header->body);
-                       g_free(header->name);
-                       g_free(header);
-               }
-               g_ptr_array_free(headers, TRUE);
+               procheader_header_array_destroy(headers);               
        }
 
        tmpfp = procmime_decode_content(NULL, fp, mimeinfo);
@@ -637,8 +628,8 @@ static gchar *make_email_string(const gchar *bp, const gchar *ep)
        }
 
 /* textview_make_clickable_parts() - colorizes clickable parts */
-static void textview_make_clickable_parts(TextView *textview, GtkText *text,
-                                         GdkFont  *textfont,
+static void textview_make_clickable_parts(TextView *textview,
+                                         GdkFont  *font,
                                          GdkColor *fg_color,
                                          GdkColor *uri_color,
                                          const gchar *linebuf)
@@ -678,6 +669,8 @@ static void textview_make_clickable_parts(TextView *textview, GtkText *text,
                struct txtpos   *next;          /* next */
        } head = {NULL, NULL, 0,  NULL}, *last = &head;
 
+       GtkText *text = GTK_TEXT(textview->text);
+
        /* parse for clickable parts, and build a list of begin and end positions  */
        for (walk = linebuf, n = 0;;) {
                gint last_index = PARSE_ELEMS;
@@ -720,13 +713,14 @@ static void textview_make_clickable_parts(TextView *textview, GtkText *text,
 
                        uri = g_new(RemoteURI, 1);
                        if (last->bp - normal_text > 0)
-                               gtk_text_insert(text, textfont,
+                               gtk_text_insert(text, font,
                                                fg_color, NULL,
                                                normal_text,
                                                last->bp - normal_text);
-                       uri->uri = parser[last->pti].build_uri(last->bp, last->ep);
+                       uri->uri = parser[last->pti].build_uri(last->bp, 
+                                               last->ep);
                        uri->start = gtk_text_get_point(text);
-                       gtk_text_insert(text, textfont, uri_color,
+                       gtk_text_insert(text, font, uri_color,
                                        NULL, last->bp, last->ep - last->bp);
                        uri->end = gtk_text_get_point(text);
                        textview->uri_list =
@@ -734,11 +728,10 @@ static void textview_make_clickable_parts(TextView *textview, GtkText *text,
                }
 
                if (*normal_text)
-                       gtk_text_insert(text, textfont, fg_color,
+                       gtk_text_insert(text, font, fg_color,
                                        NULL, normal_text, -1);
        } else
-               gtk_text_insert(text, textfont, fg_color, NULL,
-                               linebuf, -1);
+               gtk_text_insert(text, font, fg_color, NULL, linebuf, -1);
 }
 
 #undef ADD_TXT_POS
@@ -797,8 +790,7 @@ static void textview_write_line(TextView *textview, const gchar *str,
                gtk_text_insert(text, spacingfont, NULL, NULL, " ", 1);
 
        if (prefs_common.enable_color)
-               textview_make_clickable_parts(textview, text,
-                                                 textview->msgfont,
+               textview_make_clickable_parts(textview, textview->msgfont,
                                              fg_color, &uri_color, buf);
        else
                gtk_text_insert(text, textview->msgfont, fg_color, NULL,
@@ -940,29 +932,11 @@ enum
 
 static GPtrArray *textview_scan_header(TextView *textview, FILE *fp)
 {
-       /*
-       static HeaderEntry hentry[] = {{"Date:",         NULL, FALSE},
-                                      {"From:",         NULL, TRUE},
-                                      {"To:",           NULL, FALSE},
-                                      {"Newsgroups:",   NULL, FALSE},
-                                      {"Subject:",      NULL, TRUE},
-                                      {"Cc:",           NULL, FALSE},
-                                      {"Reply-To:",     NULL, FALSE},
-                                      {"Followup-To:",  NULL, FALSE},
-                                      {"X-Mailer:",     NULL, TRUE},
-                                      {"X-Newsreader:", NULL, TRUE},
-                                      {"User-Agent:",   NULL, TRUE},
-                                      {"Organization:", NULL, TRUE},
-                                      {NULL,            NULL, FALSE}};
-       */
-       gchar buf[BUFFSIZE], tmp[BUFFSIZE];
-       gint hnum;
-       HeaderEntry *hp;
-       GPtrArray *headers;
-       GSList * l;
-
-       int i;
-       GPtrArray *sorted_headers;
+       gchar buf[BUFFSIZE];
+       GPtrArray *headers, *sorted_headers;
+       GSList *disphdr_list;
+       Header *header;
+       gint i;
 
        g_return_val_if_fail(fp != NULL, NULL);
 
@@ -972,72 +946,38 @@ static GPtrArray *textview_scan_header(TextView *textview, FILE *fp)
                return NULL;
        }
 
-       headers = g_ptr_array_new();
+       headers = procheader_get_header_array_asis(fp);
 
-       /*
-       while ((hnum = procheader_get_one_field(buf, sizeof(buf), fp, hentry))
-              != -1) {
-               Header *header;
-
-               hp = hentry + hnum;
+       sorted_headers = g_ptr_array_new();
 
-               header = g_new(Header, 1);
-               header->name = g_strndup(buf, strlen(hp->name));
-               conv_unmime_header(tmp, sizeof(tmp), buf + strlen(hp->name),
-                                  NULL);
-               header->body = g_strdup(tmp);
+       for (disphdr_list = prefs_common.disphdr_list; disphdr_list != NULL;
+            disphdr_list = disphdr_list->next) {
+               DisplayHeaderProp *dp =
+                       (DisplayHeaderProp *)disphdr_list->data;
 
-               g_ptr_array_add(headers, header);
-       }
-       */
-       //      while (procheader_get_unfolded_line(buf, sizeof(buf), fp) != NULL) {
-       while (procheader_get_one_field(buf, sizeof(buf), fp, NULL) != -1) {
-               gchar * p;
-               Header *header;
-
-               header = procheader_parse_header(buf);
-               if (header != NULL)
-                       g_ptr_array_add(headers, header);
-       }
+               for (i = 0; i < headers->len; i++) {
+                       header = g_ptr_array_index(headers, i);
 
-       sorted_headers = g_ptr_array_new();
-       for(l = prefs_display_headers.headers_list ; l != NULL ;
-           l = g_slist_next(l)) {
-               HeaderDisplayProp * dp = (HeaderDisplayProp *) l->data;
-               for(i = 0 ; i < headers->len ; i++) {
-                       Header * header = g_ptr_array_index(headers, i);
-                       if (procheader_headername_equal(header->name,
-                                                       dp->name)) {
-                               if (dp->hidden) {
-                                       g_ptr_array_remove_index(headers, i);
+                       if (!strcasecmp(header->name, dp->name)) {
+                               if (dp->hidden)
                                        procheader_header_free(header);
-                                       i--;
-                               }
-                               else {
-                                       g_ptr_array_add(sorted_headers,
-                                                       header);
-                                       g_ptr_array_remove_index(headers, i);
-                                       i--;
-                               }
+                               else
+                                       g_ptr_array_add(sorted_headers, header);
+
+                               g_ptr_array_remove_index(headers, i);
+                               i--;
                        }
                }
        }
 
-       if (prefs_display_headers.show_other_headers) {
-               while (headers->len != 0) {
-                       Header * header = g_ptr_array_index(headers, 0);
+       if (prefs_common.show_other_header) {
+               for (i = 0; i < headers->len; i++) {
+                       header = g_ptr_array_index(headers, i);
                        g_ptr_array_add(sorted_headers, header);
-                       g_ptr_array_remove_index(headers, 0);
                }
        }
 
-       for(i = 0 ; i < headers->len ; i++) {
-               Header * header = g_ptr_array_index(headers, i);
-               procheader_header_free(header);
-       }
-
-       g_ptr_array_free(headers, FALSE);
-
+       g_ptr_array_free(headers, TRUE);
        return sorted_headers;
 }
 
@@ -1057,27 +997,28 @@ static void textview_show_header(TextView *textview, GPtrArray *headers)
 
                gtk_text_insert(text, textview->boldfont, NULL, NULL,
                                header->name, -1);
-               gtk_text_insert(text, textview->boldfont, NULL, NULL,
-                               " ", -1);
+               gtk_text_insert(text, textview->boldfont, NULL, NULL, ":", 2);
+
+               if (!strcasecmp(header->name, "Subject") ||
+                   !strcasecmp(header->name, "From")    ||
+                   !strcasecmp(header->name, "To")      ||
+                   !strcasecmp(header->name, "Cc"))
+                       unfold_line(header->body);
+
                if (prefs_common.enable_color &&
-                   (strncmp(header->name, "X-Mailer", 8) == 0 ||
-                    strncmp(header->name, "X-Newsreader", 12) == 0) &&
+                   (!strncmp(header->name, "X-Mailer", 8) ||
+                    !strncmp(header->name, "X-Newsreader", 12)) &&
                    strstr(header->body, "Sylpheed") != NULL)
                        gtk_text_insert(text, NULL, &emphasis_color, NULL,
                                        header->body, -1);
-               else {
-                       if (prefs_common.enable_color) {
-                               textview_make_clickable_parts(textview, text,
-                                                                                         NULL,
-                                                                                         NULL, 
-                                                                                         &uri_color, 
-                                                                                         header->body);
-                       }                                                                                         
-                       else {                                                                                    
-                               gtk_text_insert(text, NULL, NULL, NULL,
-                                               header->body, -1);
-                       }                                               
-               }                                       
+               else if (prefs_common.enable_color) {
+                       textview_make_clickable_parts(textview,
+                                                     NULL, NULL, &uri_color,
+                                                     header->body);
+               } else {
+                       gtk_text_insert(text, NULL, NULL, NULL,
+                                       header->body, -1);
+               }
                gtk_text_insert(text, textview->msgfont, NULL, NULL, "\n", 1);
        }
 
index 62e95ad..0e65bbc 100644 (file)
@@ -826,6 +826,24 @@ void remove_space(gchar *str)
        }
 }
 
+void unfold_line(gchar *str)
+{
+       register gchar *p = str;
+       register gint spc;
+
+       while (*p) {
+               if (*p == '\n' || *p == '\r') {
+                       *p++ = ' ';
+                       spc = 0;
+                       while (isspace(*(p + spc)))
+                               spc++;
+                       if (spc)
+                               memmove(p, p + spc, strlen(p + spc) + 1);
+               } else
+                       p++;
+       }
+}
+
 void subst_char(gchar *str, gchar orig, gchar subst)
 {
        register gchar *p = str;
index 630c190..065f37f 100644 (file)
@@ -219,6 +219,7 @@ GSList *newsgroup_list_append               (GSList         *group_list,
                                         const gchar    *str);
 void remove_return                     (gchar          *str);
 void remove_space                      (gchar          *str);
+void unfold_line                       (gchar          *str);
 void subst_char                                (gchar          *str,
                                         gchar           orig,
                                         gchar           subst);