2004-11-12 [paul] 0.9.12cvs146.1
authorPaul Mangan <paul@claws-mail.org>
Fri, 12 Nov 2004 06:41:50 +0000 (06:41 +0000)
committerPaul Mangan <paul@claws-mail.org>
Fri, 12 Nov 2004 06:41:50 +0000 (06:41 +0000)
* ChangeLog
* ChangeLog.claws
* ChangeLog.jp
* NEWS
* configure.ac
* src/account.c
* src/folderview.c
* src/folderview.h
* src/imap.c
* src/imap_gtk.c
* src/inc.c
* src/mainwindow.c
* src/mh_gtk.c
* src/news_gtk.c
* src/pop.c
* src/prefs_account.c
* src/prefs_account.h
* src/prefs_ext_prog.c
* src/procmime.c
* src/procmime.h
* src/procmsg.c
* src/procmsg.h
* src/summary_search.c
* src/summaryview.c
* src/textview.c
* src/common/defs.h
* src/common/utils.c
* src/common/utils.h
* src/gtk/menu.c
* src/gtk/menu.h
sync with HEAD

32 files changed:
ChangeLog
ChangeLog-gtk2.claws
ChangeLog.claws
ChangeLog.jp
NEWS
PATCHSETS
configure.ac
src/account.c
src/common/defs.h
src/common/utils.c
src/common/utils.h
src/folderview.c
src/folderview.h
src/gtk/menu.c
src/gtk/menu.h
src/imap.c
src/imap_gtk.c
src/inc.c
src/mainwindow.c
src/mh_gtk.c
src/news_gtk.c
src/pop.c
src/prefs_account.c
src/prefs_account.h
src/prefs_ext_prog.c
src/procmime.c
src/procmime.h
src/procmsg.c
src/procmsg.h
src/summary_search.c
src/summaryview.c
src/textview.c

index 1c32e6c..994e71c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,177 @@
+2004-11-11
+
+       * src/pixmaps/complete.xpm
+         src/pixmaps/continue.xpm: made them smaller size to fit CList
+         row.
+
+2004-11-11
+
+       * src/statusbar.c: statusbar_create(): set the width of widget to 1
+         not to expand automatically.
+       * src/utils.[ch]: trim_string_before(): trim beginning characters
+         longer than the specified length and add "...".
+       * src/folderview.c
+         src/summaryview.c: use trim_string_before() to display folder name.
+
+2004-11-10
+
+       * src/defs.h
+         src/prefs_common.c: made mozilla-firefox as default browser.
+
+2004-11-09
+
+       * src/summaryview.c: summary_key_pressed()
+         src/textview.c: textview_key_pressed(): back scroll when Shift or
+         Alt and Space key is pressed. Also back scroll when Shift and Enter
+         key is pressed.
+
+2004-11-09
+
+       * src/foldersel.c: foldersel_new_folder(): select newly created
+         folder.
+
+2004-11-08
+
+       * version 1.0.0beta2
+
+2004-11-08
+
+       * src/account.c
+         src/imap.c
+         src/inc.c
+         src/pop.c
+         src/prefs_account.[ch]: obsoleted RecvProtocol::A_APOP and made an
+         option for APOP.
+         prefs_account_protocol_set_optmenu(): refactored.
+
+2004-11-07
+
+       * src/folderview.c: folderview_empty_trash_cb(): removed unused
+         variables.
+
+2004-11-05
+
+       * src/summary_search.c: use C string instead of wide character string.
+         Enabled AND/OR matching.
+
+2004-11-05
+
+       * src/folderview.[ch]
+         src/mainwindow.c: change menu sensitivity of File/Folder and
+         File/Mailbox according to selected folder.
+         Enabled newsgroups subscription from 'File/Folder/Create new folder'.
+
+2004-11-04
+
+       * src/folderview.[ch]
+         src/mainwindow.c: reorganized folder/mailbox menus.
+         Enabled 'Remove mailbox', 'Check for new messages' and
+         'Rebuild folder tree' on main menu.
+         Removed 'Remove mailbox' from the folder context menu.
+
+2004-11-04
+
+       * src/folderview.c
+         src/mainwindow.c
+         src/procmsg.[ch]: added 'Empty trash' to the folder context menu.
+
+2004-11-01
+
+       * src/filter.[ch]
+         src/summaryview.c: don't move/delete immediately when
+         immediate_execution is off.
+
+2004-10-29
+
+       * version 1.0.0beta1
+
+2004-10-29
+
+       * upgraded to gettext-0.14.1.
+
+2004-10-28
+
+       * src/compose.c: reorganized the menu.
+       * src/mh.c: removed g_print() for debug.
+
+2004-10-27
+
+       * src/compose.c
+         src/prefs_template.c
+         src/template.[ch]: added Cc: to template parameter.
+
+2004-10-26
+
+       * src/prefs_filter_edit.c: fixed condition menu switching problem
+         on editing existing rules.
+
+2004-10-25
+
+       * src/filter.c: filter_action_exec(): update counters of FolderItem
+         on local filtering (fixes wrong folderview message count).
+
+2004-10-25
+
+       * src/mbox.c: proc_mbox(): check if folder_table is NULL (fix
+         warnings).
+
+2004-10-21
+
+       * src/pixmaps/stock_add_16.xpm
+         src/pixmaps/stock_remove_16.xpm: converted from stock icons in
+         gtk-2.4.
+       * src/prefs_filter_edit.c: use icons for add/remove button.
+       * src/stock_pixmap.[ch]: added add/remove icons.
+
+2004-10-21
+
+       * src/pixmaps/stock_dialog_error_48.xpm
+         src/pixmaps/stock_dialog_info_48.xpm
+         src/pixmaps/stock_dialog_question_48.xpm
+         src/pixmaps/stock_dialog_warning_48.xpm: converted dialog icons from
+         stock icons in gtk-2.4.
+       * src/alertpanel.[ch]: added icons to the alert dialog.
+         alertpanel_message(): Added AlertType.
+       * src/stock_pixmaps.[ch]: added dialog icons.
+
+
+2004-10-08
+
+       * src/procmsg.c: removed verbose debug prints.
+
+2004-10-07
+
+       * version 0.9.99
+
+2004-10-07
+
+       * src/procmsg.c: procmsg_send_queue()
+         src/send_message.c: send_queue_info_free(): fixed segmentation fault
+         when trying to send an invalid queued message.
+
+2004-10-06
+
+       * src/mainwindow.c: added separators to the File menu.
+       * src/prefs_filter_edit.c: removed some debug prints.
+
+2004-10-05
+
+       * src/inputdialog.c: input_dialog_open(): don't start auto-checking
+         mail while opening the input dialog.
+
+2004-10-04
+
+       * src/mh.c: mh_remove_all_msg()
+         src/procmsg.c: procmsg_empty_trash(): fixed wrong message count
+         after emptying trash.
+
+2004-10-01
+
+       * src/prefs_filter.c: fixed a bug that didn't add an auto-created
+         rule.
+       * src/prefs_filter_edit.c: prefs_filter_edit_dialog_to_rule(): check
+         if rule name exists.
+
 2004-09-30
 
        * src/filter.c: filter_apply_msginfo(): don't apply filter if
index 40cabc3..e223cc6 100644 (file)
@@ -1,3 +1,37 @@
+2004-11-12 [paul]      0.9.12cvs146.1
+
+       * ChangeLog
+       * ChangeLog.claws
+       * ChangeLog.jp
+       * NEWS
+       * configure.ac
+       * src/account.c
+       * src/folderview.c
+       * src/folderview.h
+       * src/imap.c
+       * src/imap_gtk.c
+       * src/inc.c
+       * src/mainwindow.c
+       * src/mh_gtk.c
+       * src/news_gtk.c
+       * src/pop.c
+       * src/prefs_account.c
+       * src/prefs_account.h
+       * src/prefs_ext_prog.c
+       * src/procmime.c
+       * src/procmime.h
+       * src/procmsg.c
+       * src/procmsg.h
+       * src/summary_search.c
+       * src/summaryview.c
+       * src/textview.c
+       * src/common/defs.h
+       * src/common/utils.c
+       * src/common/utils.h
+       * src/gtk/menu.c
+       * src/gtk/menu.h
+               sync with HEAD
+
 2004-11-11 [colin]     0.9.12cvs144.2
 
        * src/textview.c
index 74760d4..683665a 100644 (file)
@@ -1,3 +1,45 @@
+2004-11-12 [paul]      0.9.12cvs146
+
+       * src/prefs_account.c
+       * src/procmime.c
+       * src/procmime.h
+               fix sync breakage 
+
+2004-11-12 [paul]
+
+       * src/pixmaps/complete.xpm
+       * src/pixmaps/continue.xpm
+               small sync with main, see ChangeLog 2004-11-11
+
+2004-11-11 [paul]      0.9.12cvs145
+
+       * ChangeLog
+       * ChangeLog.jp
+       * src/account.c
+       * src/folderview.c
+       * src/folderview.h
+       * src/imap.c
+       * src/imap_gtk.c
+       * src/inc.c
+       * src/mainwindow.c
+       * src/mh_gtk.c
+       * src/news_gtk.c
+       * src/pop.c
+       * src/prefs_account.c
+       * src/prefs_account.h
+       * src/prefs_ext_prog.c
+       * src/procmsg.c
+       * src/procmsg.h
+       * src/summary_search.c
+       * src/summaryview.c
+       * src/textview.c
+       * src/common/defs.h
+       * src/common/utils.c
+       * src/common/utils.h
+       * src/gtk/menu.c
+       * src/gtk/menu.h
+               sync with main 1.0.0beta2 (plus 4)
+
 2004-11-09 [christoph] 0.9.12cvs144
 
        * src/compose.c
index a1e1001..8c9b05a 100644 (file)
@@ -1,3 +1,179 @@
+2004-11-11
+
+       * src/pixmaps/complete.xpm
+         src/pixmaps/continue.xpm: CList ¤Î¹Ô¤Ë¹ç¤¦¤è¤¦¤Ë¤è¤ê¾®¤µ¤Ê¥µ¥¤¥º
+         ¤Ë¤·¤¿¡£
+
+2004-11-11
+
+       * src/statusbar.c: statusbar_create(): ¼«Æ°Åª¤Ë¿­Ä¹¤·¤Ê¤¤¤è¤¦¤Ë
+         ¥¦¥£¥¸¥§¥Ã¥È¤ÎÉý¤ò1¤Ë»ØÄê¡£
+       * src/utils.[ch]: trim_string_before(): »ØÄꤷ¤¿Ä¹¤µ¤òĶ¤¨¤ëÀèƬ¤Î
+         Ê¸»ú¤òÀÚ¤êµÍ¤á¡¢ "..." ¤òÄɲá£
+       * src/folderview.c
+         src/summaryview.c: trim_string_before() ¤ò»È¤Ã¤Æ¥Õ¥©¥ë¥À̾¤òɽ¼¨
+         ¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+2004-11-10
+
+       * src/defs.h
+         src/prefs_common.c: mozilla-firefox ¤ò¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥é¥¦¥¶¤Ë¤·¤¿¡£
+
+2004-11-09
+
+       * src/summaryview.c: summary_key_pressed()
+         src/textview.c: textview_key_pressed(): Shift ¤Þ¤¿¤Ï Alt ¤È¥¹¥Ú¡¼¥¹
+         ¥­¡¼¤¬²¡¤µ¤ì¤¿¾ì¹ç¥Ð¥Ã¥¯¥¹¥¯¥í¡¼¥ë¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£ Shift ¤È Enter
+         ¥­¡¼¤¬²¡¤µ¤ì¤¿¾ì¹ç¤â¥Ð¥Ã¥¯¥¹¥¯¥í¡¼¥ë¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+2004-11-09
+
+       * src/foldersel.c: foldersel_new_folder(): ¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¥Õ¥©¥ë¥À¤ò
+         ÁªÂò¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+2004-11-08
+
+       * version 1.0.0beta2
+
+2004-11-08
+
+       * src/account.c
+         src/imap.c
+         src/inc.c
+         src/pop.c
+         src/prefs_account.[ch]: RecvProtocol::A_APOP ¤òÇѻߤ·¡¢ APOP ¤Î
+         ¥ª¥×¥·¥ç¥ó¤òÄɲá£
+         prefs_account_protocol_set_optmenu(): ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¡£
+
+2004-11-07
+
+       * src/folderview.c: folderview_empty_trash_cb(): Ì¤»ÈÍѤÎÊÑ¿ô¤òºï½ü¡£
+
+2004-11-05
+
+       * src/summary_search.c: ¥ï¥¤¥É¥­¥ã¥é¥¯¥¿Ê¸»úÎó¤ÎÂå¤ï¤ê¤Ë C Ê¸»úÎó
+         ¤ò»ÈÍÑ¡£ AND/OR ¥Þ¥Ã¥Á¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+2004-11-05
+
+       * src/folderview.[ch]
+         src/mainwindow.c: ÁªÂò¥Õ¥©¥ë¥À¤Ë±þ¤¸¤Æ¥Õ¥¡¥¤¥ë/¥Õ¥©¥ë¥À ¤È
+         ¥Õ¥¡¥¤¥ë/¥á¡¼¥ë¥Ü¥Ã¥¯¥¹ ¤Î¥á¥Ë¥å¡¼¤Î¥»¥ó¥·¥Æ¥£¥Ó¥Æ¥£¤òÊѹ¹¤¹¤ë
+         ¤è¤¦¤Ë¤·¤¿¡£
+         ¡Ö¥Õ¥¡¥¤¥ë/¥Õ¥©¥ë¥À/¿·µ¬¥Õ¥©¥ë¥À¤òºîÀ®¡×¤«¤é¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Î
+         ¹ØÆɤ¬¹Ô¤¨¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+2004-11-04
+
+       * src/folderview.[ch]
+         src/mainwindow.c: ¥Õ¥©¥ë¥À/¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Î¥á¥Ë¥å¡¼¤òºÆ¹½À®¡£
+         ¥á¥¤¥ó¥á¥Ë¥å¡¼¤Ç¡Ö¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤òºï½ü¡×¡¢¡Ö¿·Ãå¥á¥Ã¥»¡¼¥¸¤ò
+         ¥Á¥§¥Ã¥¯¡×¡¢¡Ö¥Õ¥©¥ë¥À¥Ä¥ê¡¼¤òºÆ¹½ÃۡפòÍ­¸ú¤Ë¤·¤¿¡£
+         ¥Õ¥©¥ë¥À¤Î¥³¥ó¥Æ¥­¥¹¥È¥á¥Ë¥å¡¼¤«¤é¡Ö¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤òºï½ü¡×¤ò
+         ºï½ü¡£
+
+2004-11-04
+
+       * src/folderview.c
+         src/mainwindow.c
+         src/procmsg.[ch]: ¥Õ¥©¥ë¥À¤Î¥³¥ó¥Æ¥­¥¹¥È¥á¥Ë¥å¡¼¤Ë¡Ö¤´¤ßÈ¢¤ò
+         ¶õ¤Ë¤¹¤ë¡×¤òÄɲá£
+
+2004-11-01
+
+       * src/filter.[ch]
+         src/summaryview.c: immediate_execution ¤¬ off ¤Î¾ì¹ç¤Ï¨ºÂ¤Ë°ÜÆ°
+         ¤Þ¤¿¤Ïºï½ü¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+
+2004-10-29
+
+       * version 1.0.0beta1
+
+2004-10-29
+
+       * gettext-0.14.1 ¤Ë¹¹¿·¡£
+
+2004-10-28
+
+       * src/compose.c: ¥á¥Ë¥å¡¼¤òºÆ¹½À®¡£
+       * src/mh.c: ¥Ç¥Ð¥Ã¥°ÍѤΠg_print() ¤òºï½ü¡£
+
+2004-10-27
+
+       * src/compose.c
+         src/prefs_template.c
+         src/template.[ch]: ¥Æ¥ó¥×¥ì¡¼¥È¤Î¥Ñ¥é¥á¡¼¥¿¤Ë Cc: ¤òÄɲá£
+
+2004-10-26
+
+       * src/prefs_filter_edit.c: ´û¸¤Î¥ë¡¼¥ë¤ÎÊÔ½¸Ãæ¤Î¾ò·ï¥á¥Ë¥å¡¼ÀÚÂؤ¨
+         ¤ÎÌäÂê¤ò½¤Àµ¡£
+
+2004-10-25
+
+       * src/filter.c: filter_action_exec(): ¥í¡¼¥«¥ë¥Õ¥£¥ë¥¿¥ê¥ó¥°»þ
+         FolderItem ¤Î¥«¥¦¥ó¥¿¤ò¹¹¿·¤¹¤ë¤è¤¦¤Ë¤·¤¿(¥Õ¥©¥ë¥À¥Ó¥å¡¼¤Î
+         ¥á¥Ã¥»¡¼¥¸¥«¥¦¥ó¥È¤¬¤ª¤«¤·¤¯¤Ê¤ë¤Î¤ò½¤Àµ)¡£
+
+2004-10-25
+
+       * src/mbox.c: proc_mbox(): folder_table ¤¬ NULL ¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯
+         (·Ù¹ð¤ò½¤Àµ)¡£
+
+2004-10-21
+
+       * src/pixmaps/stock_add_16.xpm
+         src/pixmaps/stock_remove_16.xpm: gtk-2.4 ¤Î¥¹¥È¥Ã¥¯¥¢¥¤¥³¥ó¤«¤éÊÑ´¹¡£
+       * src/prefs_filter_edit.c: ÄɲÃ/ºï½ü¥Ü¥¿¥ó¤Ë¥¢¥¤¥³¥ó¤ò»ÈÍÑ¡£
+       * src/stock_pixmap.[ch]: ÄɲÃ/ºï½ü¤Î¥¢¥¤¥³¥ó¤òÄɲá£
+
+2004-10-21
+
+       * src/pixmaps/stock_dialog_error_48.xpm
+         src/pixmaps/stock_dialog_info_48.xpm
+         src/pixmaps/stock_dialog_question_48.xpm
+         src/pixmaps/stock_dialog_warning_48.xpm: gtk-2.4 ¤Î¥¹¥È¥Ã¥¯¥¢¥¤¥³¥ó
+         ¤«¤é¥À¥¤¥¢¥í¥°¥¢¥¤¥³¥ó¤òÊÑ´¹¡£
+       * src/alertpanel.[ch]: ·Ù¹ð¥À¥¤¥¢¥í¥°¤Ë¥¢¥¤¥³¥ó¤òÄɲá£
+         alertpanel_message(): AlertType ¤òÄɲá£
+       * src/stock_pixmaps.[ch]: ¥À¥¤¥¢¥í¥°¥¢¥¤¥³¥ó¤òÄɲá£
+
+2004-10-08
+
+       * src/procmsg.c: ¾éĹ¤Ê¥Ç¥Ð¥Ã¥°½ÐÎϤòºï½ü¡£
+
+2004-10-07
+
+       * version 0.9.99
+
+2004-10-07
+
+       * src/procmsg.c: procmsg_send_queue()
+         src/send_message.c: send_queue_info_free(): ÉÔÀµ¤Ê¥­¥å¡¼¥á¥Ã¥»¡¼¥¸
+         ¤òÁ÷¿®¤·¤è¤¦¤È¤·¤¿¤È¤­¤Ë segmentation fault ¤Ë¤Ê¤ë¥Ð¥°¤ò½¤Àµ¡£
+
+2004-10-06
+
+       * src/mainwindow.c: ¥Õ¥¡¥¤¥ë¥á¥Ë¥å¡¼¤Ë¥»¥Ñ¥ì¡¼¥¿¤òÄɲá£
+       * src/prefs_filter_edit.c: ¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥Ã¥°½ÐÎϤòºï½ü¡£
+
+2004-10-05
+
+       * src/inputdialog.c: input_dialog_open(): ÆþÎÏ¥À¥¤¥¢¥í¥°¤¬³«¤¤¤Æ¤¤¤ë
+         ´Ö¤Ï¥á¡¼¥ë¤Î¼«Æ°¥Á¥§¥Ã¥¯¤ò³«»Ï¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+
+2004-10-04
+
+       * src/mh.c: mh_remove_all_msg()
+         src/procmsg.c: procmsg_empty_trash(): ¤´¤ßÈ¢¤ò¶õ¤Ë¤·¤¿¸å¥á¥Ã¥»¡¼¥¸
+         ¿ô¤Î¥«¥¦¥ó¥È¤¬¤ª¤«¤·¤¯¤Ê¤ë¤Î¤ò½¤Àµ¡£
+
+2004-10-01
+
+       * src/prefs_filter.c: ¼«Æ°ºîÀ®¤µ¤ì¤¿¥ë¡¼¥ë¤òÄɲäǤ­¤Ê¤¤¥Ð¥°¤ò½¤Àµ¡£
+       * src/prefs_filter_edit.c: prefs_filter_edit_dialog_to_rule(): ¥ë¡¼¥ë
+         Ì¾¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¡£
+
 2004-09-30
 
        * src/filter.c: filter_apply_msginfo(): FilterRule::enabled == FALSE
diff --git a/NEWS b/NEWS
index 79c37f5..3f0281f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,32 @@
 Changes of Sylpheed
 
+* 1.0beta2
+
+    * don't move or delete immediately at local filtering when immediate
+      execution option is off.
+    * 'Empty trash' has been added to the folder context menu.
+    * 'Remove mailbox' has been removed from the folder context menu.
+    * 'File' menu in the main menu has been reorganized.
+    * AND/OR matching option has been added to the summary search dialog.
+    * APOP setting became a separate option for POP3.
+
+* 1.0beta1
+
+    * Icons are added to the alert dialog and filter edit dialog.
+    * Cc is added for the parameter of templates.
+    * The menu of composition window has been reorganized.
+    * Gettext has been upgraded to 0.14.1.
+    * Some minor bugs of filtering have been fixed.
+
+* 0.9.99
+
+    * The new filtering system, which has many new features, has been
+      implemented.
+    * The handling of 'New' flags for messages has been modified.
+    * The spool path setting can now take both file and directory.
+    * Invalid URIs used by DnD has been fixed.
+    * Other bugfixes have been made.
+
 * 0.9.12
 
     * A session timeout for POP3/SMTP has been implemented.
index f348358..bf5744c 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.395.2.37 -r 1.395.2.38 src/summaryview.c; ) > 0.9.12cvs143.1.patchset
 ( cvs diff -u -r 1.2504.2.30 -r 1.2504.2.31 ChangeLog.claws; cvs diff -u -r 1.382.2.61 -r 1.382.2.62 src/compose.c; cvs diff -u -r 1.213.2.19 -r 1.213.2.20 src/folder.c; cvs diff -u -r 1.2.2.3 -r 1.2.2.4 src/folder_item_prefs.c; cvs diff -u -r 1.105.2.10 -r 1.105.2.11 src/prefs_account.c; cvs diff -u -r 1.49.2.5 -r 1.49.2.6 src/prefs_account.h; cvs diff -u -r 1.1.2.8 -r 1.1.2.9 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs144.1.patchset
 ( cvs diff -u -r 1.96.2.30 -r 1.96.2.31 src/textview.c; ) > 0.9.12cvs144.2.patchset
+( cvs diff -u -r 1.396.2.11 -r 1.396.2.12 ChangeLog; cvs diff -u -r 1.2504.2.31 -r 1.2504.2.32 ChangeLog.claws; cvs diff -u -r 1.391.2.11 -r 1.391.2.12 ChangeLog.jp; cvs diff -u -r 1.42.2.3 -r 1.42.2.4 NEWS; cvs diff -u -r 1.654.2.259 -r 1.654.2.260 configure.ac; cvs diff -u -r 1.61.2.14 -r 1.61.2.15 src/account.c; cvs diff -u -r 1.207.2.20 -r 1.207.2.21 src/folderview.c; cvs diff -u -r 1.20.2.2 -r 1.20.2.3 src/folderview.h; cvs diff -u -r 1.179.2.10 -r 1.179.2.11 src/imap.c; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/imap_gtk.c; cvs diff -u -r 1.149.2.16 -r 1.149.2.17 src/inc.c; cvs diff -u -r 1.274.2.22 -r 1.274.2.23 src/mainwindow.c; cvs diff -u -r 1.2.2.2 -r 1.2.2.3 src/mh_gtk.c; cvs diff -u -r 1.2.2.2 -r 1.2.2.3 src/news_gtk.c; cvs diff -u -r 1.56.2.27 -r 1.56.2.28 src/pop.c; cvs diff -u -r 1.105.2.11 -r 1.105.2.12 src/prefs_account.c; cvs diff -u -r 1.49.2.6 -r 1.49.2.7 src/prefs_account.h; cvs diff -u -r 1.3.2.3 -r 1.3.2.4 src/prefs_ext_prog.c; cvs diff -u -r 1.49.2.18 -r 1.49.2.19 src/procmime.c; cvs diff -u -r 1.17.2.6 -r 1.17.2.7 src/procmime.h; cvs diff -u -r 1.150.2.11 -r 1.150.2.12 src/procmsg.c; cvs diff -u -r 1.60.2.8 -r 1.60.2.9 src/procmsg.h; cvs diff -u -r 1.15.2.10 -r 1.15.2.11 src/summary_search.c; cvs diff -u -r 1.395.2.38 -r 1.395.2.39 src/summaryview.c; cvs diff -u -r 1.96.2.31 -r 1.96.2.32 src/textview.c; cvs diff -u -r 1.9.2.7 -r 1.9.2.8 src/common/defs.h; cvs diff -u -r 1.36.2.13 -r 1.36.2.14 src/common/utils.c; cvs diff -u -r 1.20.2.9 -r 1.20.2.10 src/common/utils.h; cvs diff -u -r 1.5.2.12 -r 1.5.2.13 src/gtk/menu.c; cvs diff -u -r 1.4.2.5 -r 1.4.2.6 src/gtk/menu.h; ) > 0.9.12cvs146.1.patchset
index ccdd310..453214a 100644 (file)
@@ -11,9 +11,9 @@ MINOR_VERSION=9
 MICRO_VERSION=12
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=144
+EXTRA_VERSION=146
 EXTRA_RELEASE=
-EXTRA_GTK2_VERSION=.2
+EXTRA_GTK2_VERSION=.1
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
index 3c2b284..b298a52 100644 (file)
@@ -1002,9 +1002,8 @@ static void account_selected(GtkCList *clist, gint row, gint column,
                PrefsAccount *ac;
 
                ac = gtk_clist_get_row_data(clist, row);
-               if (ac->protocol == A_POP3 || ac->protocol == A_APOP ||
-                   ac->protocol == A_IMAP4 || ac->protocol == A_NNTP ||
-                   ac->protocol == A_LOCAL) {
+               if (ac->protocol == A_POP3 || ac->protocol == A_IMAP4 ||
+                   ac->protocol == A_NNTP || ac->protocol == A_LOCAL) {
                        ac->recv_at_getall ^= TRUE;
                        account_clist_set_row(ac, row);
                }
@@ -1043,11 +1042,6 @@ static gint account_clist_set_row(PrefsAccount *ac_prefs, gint row)
                              "POP3 (SSL)" :
                              ac_prefs->ssl_pop == SSL_STARTTLS ?
                              "POP3 (TLS)" : "POP3") :
-                            ac_prefs->protocol == A_APOP ?
-                            (ac_prefs->ssl_pop == SSL_TUNNEL ?
-                             "POP3 (APOP, SSL)" :
-                             ac_prefs->ssl_pop == SSL_STARTTLS ?
-                             "POP3 (APOP, TLS)" : "POP3 (APOP)") :
                             ac_prefs->protocol == A_IMAP4 ?
                             (ac_prefs->ssl_imap == SSL_TUNNEL ?
                              "IMAP4 (SSL)" :
@@ -1059,7 +1053,6 @@ static gint account_clist_set_row(PrefsAccount *ac_prefs, gint row)
                             "";
 #else
        text[COL_PROTOCOL] = ac_prefs->protocol == A_POP3  ? "POP3" :
-                            ac_prefs->protocol == A_APOP  ? "POP3 (APOP)" :
                             ac_prefs->protocol == A_IMAP4 ? "IMAP4" :
                             ac_prefs->protocol == A_LOCAL ? "Local" :
                             ac_prefs->protocol == A_NNTP  ? "NNTP" : "";
@@ -1078,7 +1071,6 @@ static gint account_clist_set_row(PrefsAccount *ac_prefs, gint row)
        }
 
        has_getallbox = (ac_prefs->protocol == A_POP3  ||
-                        ac_prefs->protocol == A_APOP  ||
                         ac_prefs->protocol == A_IMAP4 ||
                         ac_prefs->protocol == A_NNTP ||
                         ac_prefs->protocol == A_LOCAL);
index 3ec7d0c..e0cb0d5 100644 (file)
@@ -86,7 +86,7 @@
 /* #define DEFAULT_INC_PATH    "/usr/bin/imget" */
 /* #define DEFAULT_INC_PROGRAM "imget" */
 #define DEFAULT_SENDMAIL_CMD   "/usr/sbin/sendmail -t -i"
-#define DEFAULT_BROWSER_CMD    "mozilla -remote 'openURL(%s, new-window)'"
+#define DEFAULT_BROWSER_CMD    "mozilla-firefox -remote 'openURL(%s,new-window)'"
 
 #ifdef _PATH_MAILDIR
 #  define DEFAULT_SPOOL_PATH   _PATH_MAILDIR
index fe559e9..419f8c7 100644 (file)
@@ -144,6 +144,26 @@ void ptr_array_free_strings(GPtrArray *array)
        }
 }
 
+gboolean str_find(const gchar *haystack, const gchar *needle)
+{
+       return strstr(haystack, needle) != NULL ? TRUE : FALSE;
+}
+
+gboolean str_case_find(const gchar *haystack, const gchar *needle)
+{
+       return strcasestr(haystack, needle) != NULL ? TRUE : FALSE;
+}
+
+gboolean str_find_equal(const gchar *haystack, const gchar *needle)
+{
+       return strcmp(haystack, needle) == 0;
+}
+
+gboolean str_case_find_equal(const gchar *haystack, const gchar *needle)
+{
+       return strcasecmp(haystack, needle) == 0;
+}
+
 gint to_number(const gchar *nstr)
 {
        register const guchar *p;
@@ -2900,6 +2920,8 @@ FILE *my_tmpfile(void)
        tmpdir = get_tmp_dir();
        tmplen = strlen(tmpdir);
        progname = g_get_prgname();
+       if (progname == NULL)
+               progname = "sylpheed-claws";
        proglen = strlen(progname);
        Xalloca(fname, tmplen + 1 + proglen + sizeof(suffix),
                return tmpfile());
index df8e576..0947578 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2003 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2004 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
@@ -175,6 +175,18 @@ guint str_case_hash                (gconstpointer   key);
 
 void ptr_array_free_strings    (GPtrArray      *array);
 
+typedef gboolean (*StrFindFunc) (const gchar   *haystack,
+                                const gchar    *needle);
+
+gboolean str_find              (const gchar    *haystack,
+                                const gchar    *needle);
+gboolean str_case_find         (const gchar    *haystack,
+                                const gchar    *needle);
+gboolean str_find_equal                (const gchar    *haystack,
+                                const gchar    *needle);
+gboolean str_case_find_equal   (const gchar    *haystack,
+                                const gchar    *needle);
+
 /* number-string conversion */
 gint to_number                 (const gchar *nstr);
 gchar *itos_buf                        (gchar       *nstr,
index e2719ff..29f560d 100644 (file)
@@ -586,7 +586,7 @@ static void mark_all_read_cb(FolderView *folderview, guint action,
 {
        FolderItem *item;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        if (item == NULL)
                return;
 
@@ -658,6 +658,14 @@ void folderview_select_next_unread(FolderView *folderview)
                folderview_select_node(folderview, node);
 }
 
+FolderItem *folderview_get_selected_item(FolderView *folderview)
+{
+       GtkCTree *ctree = GTK_CTREE(folderview->ctree);
+
+       if (!folderview->selected) return NULL;
+       return gtk_ctree_node_get_row_data(ctree, folderview->selected);
+}
+
 void folderview_update_msg_num(FolderView *folderview, GtkCTreeNode *row)
 {
        GtkCTree *ctree = GTK_CTREE(folderview->ctree);
@@ -2152,12 +2160,6 @@ static void folderview_drag_end_cb(GtkWidget         *widget,
        folderview->nodes_to_recollapse = NULL;
 }
 
-FolderItem *folderview_get_selected(FolderView *folderview)
-{
-       return (FolderItem *) gtk_ctree_node_get_row_data(
-               GTK_CTREE(folderview->ctree), folderview->selected);
-}
-
 void folderview_register_popup(FolderViewPopup *fpopup)
 {
        GList *folderviews;
index f589a76..79e5fb4 100644 (file)
@@ -72,13 +72,17 @@ struct _FolderViewPopup
 void folderview_initialize             (void);
 FolderView *folderview_create          (void);
 void folderview_init                   (FolderView     *folderview);
+
 void folderview_set                    (FolderView     *folderview);
 void folderview_set_all                        (void);
+
 void folderview_select                 (FolderView     *folderview,
                                         FolderItem     *item);
 void folderview_unselect               (FolderView     *folderview);
-FolderItem *folderview_get_selected    (FolderView     *folderview);
 void folderview_select_next_unread     (FolderView     *folderview);
+
+FolderItem *folderview_get_selected_item(FolderView    *folderview);
+
 void folderview_update_msg_num         (FolderView     *folderview,
                                         GtkCTreeNode   *row);
 
index 8c1b062..4f1c792 100644 (file)
@@ -203,6 +203,17 @@ gint menu_find_option_menu_index(GtkOptionMenu *optmenu, gpointer data,
        return -1;
 }
 
+gpointer menu_get_option_menu_active_user_data(GtkOptionMenu *optmenu)
+{
+       GtkWidget *menu;
+       GtkWidget *menuitem;
+
+       menu = gtk_option_menu_get_menu(optmenu);
+       menuitem = gtk_menu_get_active(GTK_MENU(menu));
+
+       return g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID);
+}
+
 /* call backs for accelerator changes on selected menu items */
 static void menu_item_add_accel( GtkWidget *widget, guint accel_signal_id, GtkAccelGroup *accel_group,
                                 guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags,
index 1479b64..e0c312d 100644 (file)
@@ -84,6 +84,8 @@ gint menu_find_option_menu_index(GtkOptionMenu                *optmenu,
                                 gpointer                data,
                                 GCompareFunc            func);
 
+gpointer menu_get_option_menu_active_user_data
+                               (GtkOptionMenu          *optmenu);
 void menu_connect_identical_items(void);
 
 void menu_select_by_data       (GtkMenu                *menu,
index 3fd9f0c..937ade9 100644 (file)
@@ -333,7 +333,9 @@ static gint imap_cmd_login  (IMAPSession    *session,
                                 const gchar    *pass);
 static gint imap_cmd_logout    (IMAPSession    *session);
 static gint imap_cmd_noop      (IMAPSession    *session);
+#if USE_OPENSSL
 static gint imap_cmd_starttls  (IMAPSession    *session);
+#endif
 static gint imap_cmd_namespace (IMAPSession    *session,
                                 gchar         **ns_str);
 static gint imap_cmd_list      (IMAPSession    *session,
@@ -2662,11 +2664,13 @@ static gint imap_cmd_noop(IMAPSession *session)
        return imap_cmd_ok(session, NULL);
 }
 
+#if USE_OPENSSL
 static gint imap_cmd_starttls(IMAPSession *session)
 {
        imap_gen_send(session, "STARTTLS");
        return imap_cmd_ok(session, NULL);
 }
+#endif
 
 #define THROW(err) { ok = err; goto catch; }
 
index c79b763..155822e 100644 (file)
@@ -164,7 +164,7 @@ static void rename_folder_cb(FolderView *folderview, guint action,
        gchar *old_id;
        gchar *new_id;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
        g_return_if_fail(item->path != NULL);
        g_return_if_fail(item->folder != NULL);
@@ -220,7 +220,7 @@ static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widg
 {
        FolderItem *from_folder = NULL, *to_folder = NULL;
 
-       from_folder = folderview_get_selected(folderview);
+       from_folder = folderview_get_selected_item(folderview);
        if (!from_folder || from_folder->folder->klass != imap_get_class())
                return;
 
@@ -331,7 +331,7 @@ static void update_tree_cb(FolderView *folderview, guint action,
 {
        FolderItem *item;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
 
        summary_show(folderview->summaryview, NULL);
index 7a1461f..a917391 100644 (file)
--- a/src/inc.c
+++ b/src/inc.c
@@ -458,7 +458,7 @@ static IncSession *inc_session_new(PrefsAccount *account)
 
        g_return_val_if_fail(account != NULL, NULL);
 
-       if (account->protocol != A_POP3 && account->protocol != A_APOP)
+       if (account->protocol != A_POP3)
                return NULL;
        if (!account->recv_server || !account->userid)
                return NULL;
index 47d5e0f..008528e 100644 (file)
@@ -439,10 +439,13 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_File"),                          NULL, NULL, 0, "<Branch>"},
        {N_("/_File/_Add mailbox"),             NULL, NULL, 0, "<Branch>"},
        {N_("/_File/_Add mailbox/MH..."),       NULL, add_mailbox_cb, 0, NULL},
+       {N_("/_File/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_File/Change folder order"),      NULL, foldersort_cb,  0, NULL},
+       {N_("/_File/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_File/_Import mbox file..."),     NULL, import_mbox_cb, 0, NULL},
        {N_("/_File/_Export to mbox file..."),  NULL, export_mbox_cb, 0, NULL},
-       {N_("/_File/Empty all _Trash folders"), "<shift>D", empty_trash_cb, 0, NULL},
+       {N_("/_File/---"),                      NULL, NULL, 0, "<Separator>"},
+       {N_("/_File/Empty all _Trash folders"), "<shift>D", empty_trash_cb, 0, NULL},
        {N_("/_File/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_File/_Save as..."),              "<control>S", save_as_cb, 0, NULL},
        {N_("/_File/_Print..."),                NULL, print_cb, 0, NULL},
@@ -1610,7 +1613,7 @@ void main_window_empty_trash(MainWindow *mainwin, gboolean confirm)
                manage_window_focus_in(mainwin->window, NULL, NULL);
        }
 
-       procmsg_empty_trash();
+       procmsg_empty_all_trash();
 
        if (mainwin->summaryview->folder_item &&
            mainwin->summaryview->folder_item->stype == F_TRASH)
@@ -2749,7 +2752,7 @@ static void delete_duplicated_cb(MainWindow *mainwin, guint action,
 {
        FolderItem *item;
 
-       item = folderview_get_selected(mainwin->folderview);
+       item = folderview_get_selected_item(mainwin->folderview);
        if (item) {
                main_window_cursor_wait(mainwin);
                STATUSBAR_PUSH(mainwin, _("Deleting duplicated messages..."));
index 7dfda25..6bc7596 100644 (file)
@@ -156,7 +156,7 @@ static void delete_folder_cb(FolderView *folderview, guint action,
        gchar *old_path;
        gchar *old_id;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
        g_return_if_fail(item->path != NULL);
        g_return_if_fail(item->folder != NULL);
@@ -207,7 +207,7 @@ static void rename_folder_cb(FolderView *folderview, guint action,
        gchar *old_id;
        gchar *new_id;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
        g_return_if_fail(item->path != NULL);
        g_return_if_fail(item->folder != NULL);
@@ -261,7 +261,7 @@ static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widg
 {
        FolderItem *from_folder = NULL, *to_folder = NULL;
 
-       from_folder = folderview_get_selected(folderview);
+       from_folder = folderview_get_selected_item(folderview);
        if (!from_folder || from_folder->folder->klass != mh_get_class())
                return;
 
@@ -277,7 +277,7 @@ static void update_tree_cb(FolderView *folderview, guint action,
 {
        FolderItem *item;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
 
        summary_show(folderview->summaryview, NULL);
@@ -298,7 +298,7 @@ static void remove_mailbox_cb(FolderView *folderview, guint action,
        gchar *message;
        AlertValue avalue;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
        g_return_if_fail(item->folder != NULL);
        if (folder_item_parent(item)) return;
index b285a37..06143c3 100644 (file)
@@ -268,7 +268,7 @@ static void update_tree_cb(FolderView *folderview, guint action,
 {
        FolderItem *item;
 
-       item = folderview_get_selected(folderview);
+       item = folderview_get_selected_item(folderview);
        g_return_if_fail(item != NULL);
 
        summary_show(folderview->summaryview, NULL);
index dff3e6a..635b1ff 100644 (file)
--- a/src/pop.c
+++ b/src/pop.c
@@ -207,7 +207,7 @@ static gint pop3_getrange_last_recv(Pop3Session *session, const gchar *msg)
        gint last;
 
        if (sscanf(msg, "%d", &last) == 0) {
-               log_error(_("POP3 protocol error\n"));
+               log_warning(_("POP3 protocol error\n"));
                session->error_val = PS_PROTOCOL;
                return -1;
        } else {
@@ -271,6 +271,7 @@ static gint pop3_getrange_uidl_recv(Pop3Session *session, const gchar *data,
                        session->msg[num].received = 
                                (partial_recv != POP3_MUST_COMPLETE_RECV);
                        session->msg[num].partial_recv = partial_recv;
+
                }
                if (!session->new_msg_exist &&
                    (session->ac_prefs->getall || recv_time == RECV_TIME_NONE ||
@@ -872,7 +873,7 @@ static gint pop3_session_recv_msg(Session *session, const gchar *msg)
                        pop3_stls_send(pop3_session);
                else
 #endif
-               if (pop3_session->ac_prefs->protocol == A_APOP)
+               if (pop3_session->ac_prefs->use_apop_auth)
                        pop3_getauth_apop_send(pop3_session);
                else
                        pop3_getauth_user_send(pop3_session);
@@ -881,7 +882,7 @@ static gint pop3_session_recv_msg(Session *session, const gchar *msg)
        case POP3_STLS:
                if (pop3_stls_recv(pop3_session) != PS_SUCCESS)
                        return -1;
-               if (pop3_session->ac_prefs->protocol == A_APOP)
+               if (pop3_session->ac_prefs->use_apop_auth)
                        pop3_getauth_apop_send(pop3_session);
                else
                        pop3_getauth_user_send(pop3_session);
index e131bfb..cb6affb 100644 (file)
@@ -89,6 +89,7 @@ static struct Basic {
 
 static struct Receive {
        GtkWidget *pop3_frame;
+       GtkWidget *use_apop_chkbtn;
        GtkWidget *rmmail_chkbtn;
        GtkWidget *leave_time_entry;
        GtkWidget *getall_chkbtn;
@@ -282,6 +283,10 @@ static PrefParam param[] = {
         &receive.inbox_entry, prefs_set_data_from_entry, prefs_set_entry},
 
        /* Receive */
+       {"use_apop_auth", "FALSE", &tmp_ac_prefs.use_apop_auth, P_BOOL,
+        &receive.use_apop_chkbtn,
+        prefs_set_data_from_toggle, prefs_set_toggle},
+
        {"remove_mail", "TRUE", &tmp_ac_prefs.rmmail, P_BOOL,
         &receive.rmmail_chkbtn,
         prefs_set_data_from_toggle, prefs_set_toggle},
@@ -574,6 +579,12 @@ void prefs_account_read_config(PrefsAccount *ac_prefs, const gchar *label)
        if (id < 0) g_warning("wrong account id: %d\n", id);
        ac_prefs->account_id = id;
 
+       if (ac_prefs->protocol == A_APOP) {
+               debug_print("converting protocol A_APOP to new prefs.\n");
+               ac_prefs->protocol = A_POP3;
+               ac_prefs->use_apop_auth = TRUE;
+       }
+
        prefs_custom_header_read_config(ac_prefs);
 }
 
@@ -642,6 +653,7 @@ void update_privacy_system_menu() {
        GSList *system_ids, *cur;
 
        menu = gtk_menu_new();
+
        menuitem = gtk_menu_item_new_with_label(_("None"));
        gtk_widget_show(menuitem);
        g_object_set_data(G_OBJECT(menuitem), MENU_VAL_ID, "");
@@ -939,9 +951,7 @@ static void prefs_account_basic_create(void)
 
        optmenu_menu = gtk_menu_new ();
 
-       MENUITEM_ADD (optmenu_menu, menuitem, _("POP3 (normal)"),  A_POP3);
-       SET_ACTIVATE (menuitem);
-       MENUITEM_ADD (optmenu_menu, menuitem, _("POP3 (APOP auth)"),  A_APOP);
+       MENUITEM_ADD (optmenu_menu, menuitem, _("POP3"),  A_POP3);
        SET_ACTIVATE (menuitem);
        MENUITEM_ADD (optmenu_menu, menuitem, _("IMAP4"), A_IMAP4);
        SET_ACTIVATE (menuitem);
@@ -1115,6 +1125,7 @@ static void prefs_account_receive_create(void)
        GtkWidget *vbox1;
        GtkWidget *frame1;
        GtkWidget *vbox2;
+       GtkWidget *use_apop_chkbtn;
        GtkWidget *rmmail_chkbtn;
        GtkWidget *hbox_spc;
        GtkWidget *leave_time_label;
@@ -1153,6 +1164,9 @@ static void prefs_account_receive_create(void)
        gtk_container_add (GTK_CONTAINER (frame1), vbox2);
        gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
 
+       PACK_CHECK_BUTTON (vbox2, use_apop_chkbtn,
+                          _("Use secure authentication (APOP)"));
+
        PACK_CHECK_BUTTON (vbox2, rmmail_chkbtn,
                           _("Remove messages on server when received"));
 
@@ -1310,6 +1324,7 @@ static void prefs_account_receive_create(void)
                 _("`Get all' checks for new messages on this account"));
 
        receive.pop3_frame               = frame1;
+       receive.use_apop_chkbtn          = use_apop_chkbtn;
        receive.rmmail_chkbtn            = rmmail_chkbtn;
        receive.leave_time_entry         = leave_time_entry;
        receive.getall_chkbtn            = getall_chkbtn;
@@ -2170,19 +2185,18 @@ static gint prefs_account_apply(void)
                return -1;
        }
        if (((protocol == A_POP3) || 
-            (protocol == A_APOP) || 
             (protocol == A_LOCAL && !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(basic.mailcmd_chkbtn))) || 
             (protocol == A_NONE)) &&
            *gtk_entry_get_text(GTK_ENTRY(basic.smtpserv_entry)) == '\0') {
                alertpanel_error(_("SMTP server is not entered."));
                return -1;
        }
-       if ((protocol == A_POP3 || protocol == A_APOP || protocol == A_IMAP4) &&
+       if ((protocol == A_POP3 || protocol == A_IMAP4) &&
            *gtk_entry_get_text(GTK_ENTRY(basic.uid_entry)) == '\0') {
                alertpanel_error(_("User ID is not entered."));
                return -1;
        }
-       if ((protocol == A_POP3 || protocol == A_APOP) &&
+       if (protocol == A_POP3 &&
            *gtk_entry_get_text(GTK_ENTRY(basic.recvserv_entry)) == '\0') {
                alertpanel_error(_("POP3 server is not entered."));
                return -1;
@@ -2301,43 +2315,19 @@ static void prefs_account_protocol_set_optmenu(PrefParam *pparam)
        GtkOptionMenu *optmenu = GTK_OPTION_MENU(*pparam->widget);
        GtkWidget *menu;
        GtkWidget *menuitem;
-       GList *children;
-       gint list_order[] = {
-               0,  /* A_POP3  */
-               1,  /* A_APOP  */
-               -1, /* A_RPOP  */
-               2,  /* A_IMAP4 */
-               3,  /* A_NNTP  */
-               4,  /* A_LOCAL */
-               5,  /* A_NONE  */
-       };
+       gint index;
 
        protocol = *((RecvProtocol *)pparam->data);
-       if (protocol < 0 || protocol > A_NONE) return;
-       if (list_order[protocol] < 0) return;
-       gtk_option_menu_set_history(optmenu, list_order[protocol]);
+       index = menu_find_option_menu_index
+               (optmenu, GINT_TO_POINTER(protocol), NULL);
+       if (index < 0) return;
+       gtk_option_menu_set_history(optmenu, index);
 
        menu = gtk_option_menu_get_menu(optmenu);
        menu_set_insensitive_all(GTK_MENU_SHELL(menu));
 
-#define SET_NTH_SENSITIVE(proto) \
-{ \
-       menuitem = g_list_nth_data(children, list_order[proto]); \
-       if (menuitem) \
-               gtk_widget_set_sensitive(menuitem, TRUE); \
-}
-
-       children = GTK_MENU_SHELL(menu)->children;
-       SET_NTH_SENSITIVE(protocol);
-       if (protocol == A_POP3) {
-               SET_NTH_SENSITIVE(A_APOP);
-       } else if (protocol == A_APOP) {
-               SET_NTH_SENSITIVE(A_POP3);
-       }
-
-#undef SET_NTH_SENSITIVE
-
        menuitem = gtk_menu_get_active(GTK_MENU(menu));
+       gtk_widget_set_sensitive(menuitem, TRUE);
        gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
 }
 
index 09d09a6..7f8cce8 100644 (file)
@@ -28,8 +28,8 @@ typedef struct _PrefsAccount  PrefsAccount;
 
 typedef enum {
        A_POP3,
-       A_APOP,
-       A_RPOP,
+       A_APOP, /* deprecated */
+       A_RPOP, /* deprecated */
        A_IMAP4,
        A_NNTP,
        A_LOCAL,
@@ -82,6 +82,7 @@ struct _PrefsAccount
        gchar *tmp_pass;
 
        /* Receive */
+       gboolean use_apop_auth;
        gboolean rmmail;
        gint msg_leave_time;
        gboolean getall;
index 453495f..0e227d3 100644 (file)
@@ -138,8 +138,8 @@ void prefs_ext_prog_create_widget(PrefsPage *_page, GtkWindow *window,
                               "gnome-moz-remote --newwin '%s'",
                               "kfmclient openURL '%s'",
                               "opera -newwindow '%s'",
-                              "kterm -e w3m '%s'",
-                              "kterm -e lynx '%s'",
+                              "rxvt -e w3m '%s'",
+                              "rxvt -e lynx '%s'",
                               NULL);
        uri_entry = GTK_COMBO (uri_combo)->entry;
        gtk_entry_set_text(GTK_ENTRY(uri_entry), prefs_common.uri_cmd ? prefs_common.uri_cmd : "");
index 02b7f2b..bff4513 100644 (file)
@@ -738,28 +738,24 @@ FILE *procmime_get_first_text_content(MsgInfo *msginfo)
 }
 
 gboolean procmime_find_string_part(MimeInfo *mimeinfo, const gchar *filename,
-                                  const gchar *str, gboolean case_sens)
+                                  const gchar *str, StrFindFunc find_func)
 {
        FILE *outfp;
        gchar buf[BUFFSIZE];
-       gchar *(* StrFindFunc) (const gchar *haystack, const gchar *needle);
 
        g_return_val_if_fail(mimeinfo != NULL, FALSE);
        g_return_val_if_fail(mimeinfo->type == MIMETYPE_TEXT, FALSE);
        g_return_val_if_fail(str != NULL, FALSE);
+       g_return_val_if_fail(find_func != NULL, FALSE);
 
        outfp = procmime_get_text_content(mimeinfo);
 
        if (!outfp)
                return FALSE;
 
-       if (case_sens)
-               StrFindFunc = strstr;
-       else
-               StrFindFunc = strcasestr;
-
        while (fgets(buf, sizeof(buf), outfp) != NULL) {
-               if (StrFindFunc(buf, str) != NULL) {
+               strretchomp(buf);
+               if (find_func(buf, str)) {
                        fclose(outfp);
                        return TRUE;
                }
@@ -771,7 +767,7 @@ gboolean procmime_find_string_part(MimeInfo *mimeinfo, const gchar *filename,
 }
 
 gboolean procmime_find_string(MsgInfo *msginfo, const gchar *str,
-                             gboolean case_sens)
+                             StrFindFunc find_func)
 {
        MimeInfo *mimeinfo;
        MimeInfo *partinfo;
@@ -780,6 +776,7 @@ gboolean procmime_find_string(MsgInfo *msginfo, const gchar *str,
 
        g_return_val_if_fail(msginfo != NULL, FALSE);
        g_return_val_if_fail(str != NULL, FALSE);
+       g_return_val_if_fail(find_func != NULL, FALSE);
 
        filename = procmsg_get_message_file(msginfo);
        if (!filename) return FALSE;
@@ -789,7 +786,7 @@ gboolean procmime_find_string(MsgInfo *msginfo, const gchar *str,
             partinfo = procmime_mimeinfo_next(partinfo)) {
                if (partinfo->type == MIMETYPE_TEXT) {
                        if (procmime_find_string_part
-                               (partinfo, filename, str, case_sens) == TRUE) {
+                               (partinfo, filename, str, find_func) == TRUE) {
                                found = TRUE;
                                break;
                        }
index a22be1c..5734d08 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2001 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2004 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
@@ -27,6 +27,9 @@
 typedef struct _MimeType       MimeType;
 typedef struct _MimeInfo       MimeInfo;
 
+#include "procmsg.h"
+#include "utils.h"
+
 typedef enum
 {
        ENC_7BIT,
@@ -189,10 +192,10 @@ FILE *procmime_get_first_text_content     (MsgInfo        *msginfo);
 gboolean procmime_find_string_part     (MimeInfo       *mimeinfo,
                                         const gchar    *filename,
                                         const gchar    *str,
-                                        gboolean        case_sens);
+                                        StrFindFunc     find_func);
 gboolean procmime_find_string          (MsgInfo        *msginfo,
                                         const gchar    *str,
-                                        gboolean        case_sens);
+                                        StrFindFunc     find_func);
 
 gchar *procmime_get_tmp_file_name      (MimeInfo       *mimeinfo);
 
index 9e5d411..21f88b3 100644 (file)
@@ -600,24 +600,31 @@ void procmsg_get_filter_keyword(MsgInfo *msginfo, gchar **header, gchar **key,
        }
 }
 
-void procmsg_empty_trash(void)
+void procmsg_empty_trash(FolderItem *trash)
+{
+       FILE *fp;
+
+       if (trash && trash->total_msgs > 0) {
+               GSList *mlist = folder_item_get_msg_list(trash);
+               GSList *cur;
+               for (cur = mlist ; cur != NULL ; cur = cur->next) {
+                       MsgInfo * msginfo = (MsgInfo *) cur->data;
+                       partial_mark_for_delete(msginfo);
+                       procmsg_msginfo_free(msginfo);
+               }
+
+               folder_item_remove_all_msg(trash);
+       }
+}
+
+void procmsg_empty_all_trash(void)
 {
        FolderItem *trash;
        GList *cur;
 
        for (cur = folder_get_list(); cur != NULL; cur = cur->next) {
                trash = FOLDER(cur->data)->trash;
-               if (trash && trash->total_msgs > 0) {
-                       GSList *mlist = folder_item_get_msg_list(trash);
-                       GSList *cur;
-                       for (cur = mlist ; cur != NULL ; cur = cur->next) {
-                               MsgInfo * msginfo = (MsgInfo *) cur->data;
-                               partial_mark_for_delete(msginfo);
-                               procmsg_msginfo_free(msginfo);
-                       }
-
-                       folder_item_remove_all_msg(trash);
-               }
+               procmsg_empty_trash(trash);
        }
 }
 
index d9469f3..a5b5b76 100644 (file)
@@ -266,7 +266,9 @@ void        procmsg_get_filter_keyword      (MsgInfo          *msginfo,
                                         gchar           **key,
                                         PrefsFilterType   type);
 
-void   procmsg_empty_trash             (void);
+void   procmsg_empty_trash             (FolderItem     *trash);
+void   procmsg_empty_all_trash         (void);
+
 gint   procmsg_send_queue              (FolderItem     *queue,
                                         gboolean        save_msgs);
 gint   procmsg_save_to_outbox          (FolderItem     *outbox,
index c4e524a..875ac0b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2003 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2004 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
@@ -29,6 +29,7 @@
 #include <gtk/gtkwindow.h>
 #include <gtk/gtkvbox.h>
 #include <gtk/gtktable.h>
+#include <gtk/gtkoptionmenu.h>
 #include <gtk/gtklabel.h>
 #include <gtk/gtkentry.h>
 #include <gtk/gtkhbox.h>
 #include "summaryview.h"
 #include "messageview.h"
 #include "mainwindow.h"
+#include "menu.h"
 #include "utils.h"
 #include "gtkutils.h"
 #include "manage_window.h"
 #include "alertpanel.h"
 
 static GtkWidget *window;
+static GtkWidget *bool_optmenu;
 static GtkWidget *from_entry;
 static GtkWidget *to_entry;
 static GtkWidget *subject_entry;
@@ -89,6 +92,9 @@ void summary_search(SummaryView *summaryview)
 static void summary_search_create(SummaryView *summaryview)
 {
        GtkWidget *vbox1;
+       GtkWidget *bool_hbox;
+       GtkWidget *bool_menu;
+       GtkWidget *menuitem;
        GtkWidget *table1;
        GtkWidget *from_label;
        GtkWidget *to_label;
@@ -112,6 +118,19 @@ static void summary_search_create(SummaryView *summaryview)
        gtk_widget_show (vbox1);
        gtk_container_add (GTK_CONTAINER (window), vbox1);
 
+       bool_hbox = gtk_hbox_new(FALSE, 4);
+       gtk_widget_show(bool_hbox);
+       gtk_box_pack_start(GTK_BOX(vbox1), bool_hbox, FALSE, FALSE, 0);
+
+       bool_optmenu = gtk_option_menu_new();
+       gtk_widget_show(bool_optmenu);
+       gtk_box_pack_start(GTK_BOX(bool_hbox), bool_optmenu, FALSE, FALSE, 0);
+
+       bool_menu = gtk_menu_new();
+       MENUITEM_ADD(bool_menu, menuitem, _("Match any of the following"), 0);
+       MENUITEM_ADD(bool_menu, menuitem, _("Match all of the following"), 1);
+       gtk_option_menu_set_menu(GTK_OPTION_MENU(bool_optmenu), bool_menu);
+
        table1 = gtk_table_new (4, 3, FALSE);
        gtk_widget_show (table1);
        gtk_box_pack_start (GTK_BOX (vbox1), table1, TRUE, TRUE, 0);
@@ -200,12 +219,6 @@ static void summary_search_create(SummaryView *summaryview)
        g_signal_connect(G_OBJECT(all_checkbtn), "clicked",
                         G_CALLBACK(all_clicked), summaryview);
 
-       and_checkbtn =
-               gtk_check_button_new_with_label (_("AND search"));
-       gtk_widget_show (and_checkbtn);
-       gtk_box_pack_start (GTK_BOX (checkbtn_hbox), and_checkbtn,
-                           FALSE, FALSE, 0);
-
        gtkut_button_set_create(&confirm_area,
                                &search_btn, _("Search"),
                                &clear_btn,  _("Clear"),
@@ -227,48 +240,44 @@ static void summary_search_create(SummaryView *summaryview)
                 FALSE);
 }
 
-#define GET_ENTRY(entry) gtk_entry_get_text(GTK_ENTRY(entry))
-
 static void summary_search_execute(GtkButton *button, gpointer data)
 {
        SummaryView *summaryview = data;
        GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
        GtkCTreeNode *node;
        MsgInfo *msginfo;
+       gboolean bool_and;
        gboolean case_sens;
        gboolean backward;
        gboolean search_all;
-       gboolean search_and;
        gboolean all_searched = FALSE;
-       gboolean all_matched = FALSE;
-       gboolean from_matched;
-       gboolean   to_matched;
-       gboolean subj_matched;
+       gboolean matched;
        gboolean body_matched;
-       const gchar *body_str, *from_str, *to_str, *subj_str;
-       char *(*findfunc) (const char *haystack, const char *needle);
+       const gchar *from_str, *to_str, *subject_str, *body_str;
+       StrFindFunc str_find_func;
 
        if (summary_is_locked(summaryview)) return;
        summary_lock(summaryview);
 
+       bool_and = GPOINTER_TO_INT
+               (menu_get_option_menu_active_user_data
+                       (GTK_OPTION_MENU(bool_optmenu)));
        case_sens = gtk_toggle_button_get_active
                (GTK_TOGGLE_BUTTON(case_checkbtn));
        backward = gtk_toggle_button_get_active
                (GTK_TOGGLE_BUTTON(backward_checkbtn));
        search_all = gtk_toggle_button_get_active
                (GTK_TOGGLE_BUTTON(all_checkbtn));
-       search_and = gtk_toggle_button_get_active
-               (GTK_TOGGLE_BUTTON(and_checkbtn));
-       
+
        if (case_sens)
-               findfunc = strstr;
+               str_find_func = str_find;
        else
-               findfunc = strcasestr;
+               str_find_func = str_case_find;
 
-       from_str = GET_ENTRY(from_entry);
-       to_str   = GET_ENTRY(to_entry);
-       subj_str = GET_ENTRY(subject_entry);
-       body_str = GET_ENTRY(body_entry);
+       from_str    = gtk_entry_get_text(GTK_ENTRY(from_entry));
+       to_str      = gtk_entry_get_text(GTK_ENTRY(to_entry));
+       subject_str = gtk_entry_get_text(GTK_ENTRY(subject_entry));
+       body_str    = gtk_entry_get_text(GTK_ENTRY(body_entry));
 
        if (search_all) {
                gtk_clist_freeze(GTK_CLIST(ctree));
@@ -335,38 +344,61 @@ static void summary_search_execute(GtkButton *button, gpointer data)
                                break;
                }
 
-               from_matched = to_matched = subj_matched = body_matched = FALSE;
-               all_matched = search_and;
-               
-               msginfo = gtk_ctree_node_get_row_data(ctree, node);
 
-               if (from_str && *from_str && msginfo->from) {
-                       if (findfunc(msginfo->from, from_str) != NULL)
-                               from_matched = TRUE;
-                       else
-                               all_matched = FALSE;
-               }       
-               if (to_str && *to_str && msginfo->to) {
-                       if (findfunc(msginfo->to, to_str) != NULL)
-                               to_matched = TRUE;
-                       else
-                               all_matched = FALSE;
-               }       
-               if (subj_str && *subj_str && msginfo->subject) {
-                       if (findfunc(msginfo->subject, subj_str) != NULL)
-                               from_matched = TRUE;
-                       else
-                               all_matched = FALSE;
-               }       
-               if (body_str && *body_str) {
-                       if (procmime_find_string(msginfo, body_str, case_sens))
-                               body_matched = TRUE;
-                       else
-                               all_matched = FALSE;
+               msginfo = gtk_ctree_node_get_row_data(ctree, node);
+               body_matched = FALSE;
+
+               if (bool_and) {
+                       matched = TRUE;
+                       if (*from_str) {
+                               if (!msginfo->from ||
+                                   !str_find_func(msginfo->from, from_str))
+                                       matched = FALSE;
+                       }
+                       if (matched && *to_str) {
+                               if (!msginfo->to ||
+                                   !str_find_func(msginfo->to, to_str))
+                                       matched = FALSE;
+                       }
+                       if (matched && *subject_str) {
+                               if (!msginfo->subject ||
+                                   !str_find_func(msginfo->subject, subject_str))
+                                       matched = FALSE;
+                       }
+                       if (matched && *body_str) {
+                               if (procmime_find_string(msginfo, body_str,
+                                                        str_find_func))
+                                       body_matched = TRUE;
+                               else
+                                       matched = FALSE;
+                       }
+                       if (matched && !*from_str && !*to_str &&
+                           !*subject_str && !*body_str)
+                               matched = FALSE;
+               } else {
+                       matched = FALSE;
+                       if (*from_str && msginfo->from) {
+                               if (str_find_func(msginfo->from, from_str))
+                                       matched = TRUE;
+                       }
+                       if (!matched && *to_str && msginfo->to) {
+                               if (str_find_func(msginfo->to, to_str))
+                                       matched = TRUE;
+                       }
+                       if (!matched && *subject_str && msginfo->subject) {
+                               if (str_find_func(msginfo->subject, subject_str))
+                                       matched = TRUE;
+                       }
+                       if (!matched && *body_str) {
+                               if (procmime_find_string(msginfo, body_str,
+                                                        str_find_func)) {
+                                       matched = TRUE;
+                                       body_matched = TRUE;
+                               }
+                       }
                }
 
-               if ((from_matched || to_matched || subj_matched || body_matched)
-                   && (!search_and || all_matched)) {
+               if (matched) {
                        if (search_all)
                                gtk_ctree_select(ctree, node);
                        else {
@@ -388,6 +420,7 @@ static void summary_search_execute(GtkButton *button, gpointer data)
                                break;
                        }
                }
+
                node = backward ? gtkut_ctree_node_prev(ctree, node)
                                : gtkut_ctree_node_next(ctree, node);
        }
@@ -398,8 +431,6 @@ static void summary_search_execute(GtkButton *button, gpointer data)
        summary_unlock(summaryview);
 }
 
-#undef GET_ENTRY
-
 static void summary_search_clear(GtkButton *button, gpointer data)
 {
        gtk_editable_delete_text(GTK_EDITABLE(from_entry),    0, -1);
index 494d67f..cca6fe3 100644 (file)
@@ -4373,6 +4373,7 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
        MessageView *messageview;
        TextView *textview;
        GtkAdjustment *adj;
+       gboolean mod_pressed;
 
        if (summary_is_locked(summaryview)) return TRUE;
        if (!event) return TRUE;
@@ -4457,9 +4458,16 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                                    summaryview->selected);
                                break;
                        }
-                       if (!textview_scroll_page(textview, FALSE))
-                               summary_select_next_unread(summaryview);
-               }                               
+                       mod_pressed = ((event->state & 
+                                       (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
+                       if (mod_pressed) {
+                               if (!textview_scroll_page(textview, TRUE))
+                                       summary_select_prev_unread(summaryview);
+                       } else {
+                               if (!textview_scroll_page(textview, FALSE))
+                                       summary_select_next_unread(summaryview);
+                       }                               
+               }
                break;
        case GDK_BackSpace:     /* Page up */
                textview_scroll_page(textview, TRUE);
@@ -4471,7 +4479,8 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                        break;
                }
                textview_scroll_one_line
-                       (textview, (event->state & GDK_MOD1_MASK) != 0);
+                       (textview, (event->state &
+                                   (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
                break;
        case GDK_Delete:
                BREAK_ON_MODIFIER_KEY();
index 8e41267..e2c60b0 100644 (file)
@@ -1781,14 +1781,18 @@ static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
                if (summaryview)
                        summary_pass_key_press_event(summaryview, event);
                else
-                       textview_scroll_page(textview, FALSE);
+                       textview_scroll_page
+                               (textview,
+                                (event->state &
+                                 (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
                break;
        case GDK_BackSpace:
                textview_scroll_page(textview, TRUE);
                break;
        case GDK_Return:
-               textview_scroll_one_line(textview,
-                                        (event->state & GDK_MOD1_MASK) != 0);
+               textview_scroll_one_line
+                       (textview, (event->state &
+                                   (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
                break;
        case GDK_Delete:
                if (summaryview)