+2003-11-21
+
+ * configure.in: added check for d_type member in struct dirent.
+ * src/mh.c: mh_scan_folder(): use d->d_type if available.
+ mh_get_uncached_msgs(): removed redundant stat().
+ mh_parse_msg(): return NULL if not a regular file.
+ mh_scan_tree_recursive(): use d->d_type if available.
+ * src/utils.[ch]:
+ dirent_is_regular_file()
+ dirent_is_directory(): new. Use d->d_type to determine the type
+ of entry if available.
+ remove_dir_recursive(): use dirent_is_directory().
+
+2003-11-14
+
+ * src/folder.h: added 'updated' flag to FolderItem.
+ * src/folderview.[ch]: folderview_update_all_updated(): new. It
+ updates all updated folders.
+ * src/imap.c: set FolderView::update flag on changes of contents.
+ * src/main.c: send_queue()
+ src/mainwindow.c: send_queue_cb(): code cleanup.
+ * src/mh.c: code cleanup.
+ mh_scan_folder(): correctly count new messages.
+ * src/procmsg.[ch]: code cleanup.
+ procmsg_open_cache_file(): new.
+ procmsg_open_mark_file(): enable read/write/append.
+ procmsg_send_queue(): correctly choose outbox for accounts.
+ * src/send_message.[ch]: send_get_queue_info(): get a queue
+ information from queued messages.
+ send_queue_info_free(): free QueueInfo.
+ send_message_queue(): take QueueInfo as an argument instead of file.
+ * src/summaryview.c: summary_write_cache(): code cleanup.
+
+2003-11-10
+
+ * src/compose.c: compose_redirect_write_headers(): correctly add
+ Resent-Cc: header.
+
+2003-11-05
+
+ * src/imap.c: imap_get_msg_list(): fallback to FETCH command if SEARCH
+ command to get flags failed.
+ imap_search_flags(): returns UID array and flags hash table using
+ SEARCH command.
+ imap_fetch_flags(): returns UID array and flags hash table using
+ FETCH command.
+
+2003-10-28
+
+ * src/summary_search.c: summary_search_execute(): fixed 'Select all
+ matched' when backward search is enabled.
+ Made the backward search button insensitive when 'select all
+ matched' is enabled.
+
+2003-10-15
+
+ * version 0.9.7
+
+2003-10-15
+
+ * src/imap.c: imap_scan_tree(): check the existence of root directory
+ with LIST instead of STATUS.
+
+2003-10-07
+
+ * src/send_message.c: fixed format string bug (exploitable by
+ malicious SMTP server) when calling alertpanel_error()
+ (thanks to Georgi Guninski).
+
+2003-10-03
+
+ * src/folder.[ch]
+ src/imap.[ch]
+ src/mh.[ch]
+ src/news.[ch]: refactoring of the folder system (based on the claws'
+ implementation).
+ * src/account.c
+ src/foldersel.c
+ src/folderview.c
+ src/mainwindow.c
+ src/messageview.c
+ src/procmsg.c
+ src/setup.c
+ src/summaryview.c: use FOLDER_TYPE() macro at every place.
+
+2003-09-17
+
+ * version 0.9.6
+
+2003-09-17
+
+ * src/addressbook.c:
+ addressbook_folder_load_person()
+ addressbook_folder_load_group(): sort the ctree after the end of
+ the loop (fixes performance issue when many addresses are in one
+ folder) (thanks to christian mock).
+
+2003-09-16
+
+ * src/folderview.c: folder_init(): code cleanup.
+ * src/summaryview.c: summary_init(): check if boldfont is
+ successfully loaded.
+ * src/grouplistdialog.c: use proper callback for delete_event (thanks
+ to Takuro Ashie).
+ * src/imap.c: allow zero-length messages.
+ * src/recv.c: recv_bytes_write(): return immediately if size == 0.
+
+2003-09-16
+
+ * src/folderview.c: folderview_init(): if font can't be loaded, fall
+ back to gtk default (fixes crashes on startup). Also removed the
+ redundant code.
+
+2003-09-15
+
+ * src/compose.c: compose_insert_sig(): insert signature at the
+ current cursor position on manual operation.
+
+2003-09-11
+
+ * src/summaryview.c: summary_key_pressed(): don't ignore delete key
+ even if the main window is locked.
+
+2003-09-10
+
+ * src/action.c: improved synchronous action exit code (fixes long
+ delay after action exit on RH9) (thanks to Melvin).
+ * src/stringtable.[ch]: string_table_insert_string(): modified the
+ code to remove the warning "dereferencing type-punned pointer will
+ break strict-aliasing rules".
+ Use const gchar * instead of gchar * for arguments.
+
+2003-09-05
+
+ * src/utils.[ch]: generate_mime_boundary(): a new function to create
+ MIME boundary (moved from rfc2015.c).
+ Removed more special characters.
+ Use random() instead of lrand48() which is obsolete.
+ Added an argument for prefix to prevent duplication.
+ Always add "=_" as a counter-QP sequence to simplify the code.
+ * src/rfc2015.c:
+ rfc2015_decrypt_message()
+ rfc2015_encrypt()
+ rfc2015_sign(): fixed a bug that didn't handle continuous content
+ lines correctly.
+ * src/compose.c
+ src/rfc2015.c: use generate_mime_boundary().
+
+2003-09-05
+
+ * src/folderview.c:
+ folderview_delete_folder_cb()
+ folderview_remove_mailbox_cb(): close currently displayed folder
+ before removing FolderItem (fixes crash on deleting folder).
+ * src/folder.h
+ src/imap.[ch]: imap_scan_tree()
+ src/mh.[ch]: mh_scan_tree(): return -1 when scanning failed.
+ * src/summaryview.c: summary_clear_all(): also clear the message view.
+ * src/imap.c: imap_close(): fail if the specified folder is not
+ selected.
+ imap_scan_tree(): check if the specified root directory exist, and
+ try creating it if not.
+ imap_parse_list(): output warning if a server returns error.
+ imap_find_namespace_from_list(): support not slash-delimited path.
+ imap_status(): don't return values if they're not specified.
+
+2003-09-02
+
+ * sylpheed.spec.in: fixed a typo.
+
+2003-09-02
+
+ * version 0.9.5
+
+2003-09-01
+
+ * src/inc.[ch]
+ src/main.c
+ src/mainwindow.c
+ src/prefs_common.[ch]: added the receive dialog's option to
+ display the dialog only on manual receiving, and the
+ RECV_DIALOG_ACTIVE option was removed.
+
+2003-09-01
+
+ * src/compose.c: compose_write_headers(): also replace ':' in the
+ MIME boundary with '_' (as a workaround for broken servers).
+
+2003-08-28
+
+ * src/imap.c: imap_scan_tree_recursive(): fixed compile error.
+
+2003-08-27
+
+ * src/prefs_filter.c: added 'Top' and 'Bottom' button.
+
+2003-08-26
+
+ * src/folder.[ch]: folder_item_remove_children(): new. It removes
+ all children under a FolderItem.
+ * src/folderview.c: folderview_rescan_tree(): modified the message.
+ * src/imap.c: imap_scan_tree(), imap_scan_tree_recursive(): reuse
+ the previous FolderItem objects.
+
+2003-08-25
+
+ * src/folder.[ch]: added a reference to its own GNode in FolderItem.
+ folder_item_remove(): free all FolderItem's.
+ folder_tree_destroy(): use folder_item_remove().
+ * src/folderview.c: folderview_sort_folders(): keep the order even
+ if special folders' parents are different.
+ * src/imap.c: imap_scan_tree_recursive(): fixed a memory leak.
+ * src/mh.c: mh_scan_tree(): preserve the previous FolderItem's.
+ mh_remove_missing_folder_items(): scan the directories and remove
+ missing folders.
+ mh_scan_tree_recursive(): reuse the previous FolderItem objects.
+
+2003-08-20
+
+ * src/mainwindow.c: always reflect window size changes.
+ * src/folderview.c: folderview_init()
+ src/summaryview.c: summary_init(): realize the widget before
+ creating pixmaps.
+ * src/prefs_common.[ch]: remember the folder and mesage view's
+ visibility.
+
+2003-08-07
+
+ * src/mainwindow.c
+ src/prefs_common.[ch]: remember the size and position of
+ separated views.
+ main_window_set_widgets(): fixed a bug that the hidden items on
+ the header view were shown when changing the view type.
+ Instead of setting the window size, set the each view's size.
+
+2003-08-01
+
+ * src/compose.c: compose_select_account(): don't append signature
+ on redirect mode.
+ compose_insert_sig(): don't insert "\n\n" if signature string
+ doesn't exist. Always insert signature at the end of message.
+
+2003-08-01
+
+ * improved sylpheed.spec.in (thanks to Andre Oliveira da Costa).
+
+2003-07-31
+
+ * minor code cleanups for the folder system.
+ * src/compose.c: compose_queue(), compose_draft_cb(): code cleanup.
+ * src/folder.c: code cleanups.
+ * src/imap.c
+ src/mh.c: calculate message numbers inside the functions.
+ * src/procmsg.c: procmsg_set_flags(): calculate message numbers.
+ * src/summaryview.[ch]: don't calculate and preserve message numbers
+ inside SummaryView,
+
+2003-07-30
+
+ * src/folder.[ch]
+ src/imap.[ch]
+ src/mh.[ch]
+ src/procmsg.c
+ src/summaryview.c: renamed *_msgs_with_dest() to *_msgs().
+
+2003-07-29
+
+ * src/imap.[ch]: use CAPABILITY to use protocol extentions.
+ imap_greeting(): parse initial server greeting. Also support
+ PREAUTH response.
+ imap_add_msgs()
+ imap_cmd_append(): use APPENDUID responses if UIDPLUS is supported.
+
+2003-07-28
+
+ * src/imap.c: imap_get_flag_str(): fixed a buffer overrun.
+
+2003-07-25
+
+ * version 0.9.4
+
+2003-07-25
+
+ * src/main.c: main(): don't save config files on startup.
+
+2003-07-25
+
+ * src/imap.c:
+ imap_get_msg_list(): removed redundant UID SEARCH ALL when not
+ using cache.
+ Unset MSG_NEW flag if \Seen is set.
+ imap_get_uncached_messages(): fetch all messages if both first_uid
+ and last_uid is 0.
+
+2003-07-24
+
+ * src/imap.c: revamped the implementation so that it always
+ exactly reflects the state of IMAP4 servers.
+ imap_get_msg_list(): examine the state of messages using
+ UID SEARCH commands.
+ imap_delete_cached_message(): removes single message cache.
+ imap_get_uid(): removed.
+ imap_cmd_search(): new. It issues UID SEARCH command and returns
+ an array of UIDs.
+ imap_cmd_gen_recv(): made the length of strings unrestricted.
+ imap_get_uid_table(): returns a hash table from UID array.
+
+2003-07-24
+
+ * src/folder.[ch]
+ src/imap.[ch]
+ src/mh.[ch]
+ src/news.[ch]: added Folder::close() method.
+ * src/summaryview.c: summary_clear_list(): call folder_item_close().
+
+2003-07-23
+
+ * flags are now taken over when copying messages into IMAP folders
+ from others.
+ * src/imap.[ch]
+ src/mh.[ch]
+ imap_add_msg()
+ imap_add_msgs()
+ mh_add_msg()
+ mh_add_msgs(): flags can be also specified when adding files.
+ * src/folder.[ch]: added assertions for virtual functions.
+ * src/procmsg.[ch]: procmsg_get_message_file_list(): return the list
+ of MsgFileInfo.
+ procmsg_message_file_list_free(): new.
+
+2003-07-23
+
+ * src/procmsg.h: changed MsgPermFlags and MsgTmpFlags from enum to
+ guint32 for portability (thanks to Alfons).
+ * src/imap.c: imap_add_msgs(): removed redundant unlink().
+
+2003-07-22
+
+ * src/session.[ch]:
+ session_read_msg_cb()
+ session_read_data_cb(): fixed a bug that ran into infinite loop
+ if connection was closed by remote host (thanks to Yoichi Imai).
+ Added SESSION_EOF state to SessionState.
+ session_is_connected(): new.
+ * src/inc.[ch]: inc_put_error()
+ src/send_message.c: send_put_error(): also put log messages.
+
+2003-07-18
+
+ * more optimization of IMAP4.
+ * src/folder.[ch]: added a method add_msgs() that adds multiple files
+ to a folder.
+ Removed redundant scan() for the operations of FolderItem.
+ * src/imap.[ch]: implemented Folder::add_msgs() and optimized move
+ and copy from other Folder instances.
+ * src/mh.[ch]: implemented Folder::add_msgs() and cleaned up the code.
+ mh_fetch_msg(): scan folder if required.
+ * src/procmsg.[ch]: procmsg_get_message_file_list(): returns file
+ list from message list.
+ * src/summaryview.c: don't remove MSG_MARKED flags on
+ delete/move/copy operation.
+ summary_display_msg_full(): removed redundant message fetching.
+
+2003-07-17
+
+ * optimized move/copy/delete/mark operations of IMAP4 by using
+ sequence set when issuing commands (adopted claws' implementation
+ with cleaning it up).
+ * src/imap.[ch]:
+ imap_set_message_flags()
+ imap_cmd_envelope()
+ imap_cmd_copy()
+ imap_cmd_store(): take sequence set string instead of UID number.
+ imap_do_copy_msgs_with_dest(): optimized by using sequence set.
+ imap_cmd_fetch(): use BODY.PEEK instead of BODY.
+ imap_remove_all_msg()
+ imap_set_message_flags(): use FLAGS.SILENT instead of FLAGS.
+ * src/compose.c
+ src/summaryview.c: use imap_msg_list_{set,unset}_perm_flags()
+ instead of issuing commands for each message.
+
+2003-07-15
+
+ * src/inc.c
+ src/prefs_account.[ch]
+ src/send_message.c
+ src/session.[ch]: added an option to enable/disable non-blocking
+ SSL.
+
+2003-07-15
+
+ * src/compose.c: compose_attach_append(): display message's subject
+ when attaching message/rfc822 file.
+
+2003-07-14
+
+ * src/session.[ch]:
+ session_recv_msg()
+ session_recv_data()
+ session_read_msg_cb()
+ session_read_data_cb(): optimized by removing sock_peek() and
+ buffering received data in user space (correctly implemented
+ this time).
+
+2003-07-11
+
+ * src/session.c: reverted the previous change because it couldn't
+ handle data receiving after messages correctly.
+
+2003-07-11
+
+ * src/session.c:
+ session_recv_msg()
+ session_read_msg_cb(): optimized by removing sock_peek() and
+ buffering messages in user space.
+
+2003-07-11
+
+ * src/imap.[ch]: refactored.
+ Changed all functions that have SockInfo arguments to take
+ IMAPSession.
+ Made imap_cmd_count an instance variable: IMAPSession::cmd_count.
+ imap_open(): only establish TCP (or SSL) connection.
+ imap_session_new(): process greeting and authentication here.
+
+2003-07-10
+
+ * src/imap.[ch]: implemented CRAM-MD5 authentication, and made code
+ cleanups.
+ * src/prefs_account.[ch]: added option menu for IMAP4 authentication
+ type in Receive tab, and hide other protocols' frames.
+
+2003-07-10
+
+ * src/mainwindow.c: send_queue_cb(): don't scan folder twice if
+ error occurred.
+ * src/procmsg.c: procmsg_send_queue(): return number of sent
+ messages.
+
+2003-07-09
+
+ * src/mainwindow.c:
+ main_window_set_toolbar_sensitive()
+ main_window_set_menu_sensitive(): removed the locking of file
+ operations while receiving mail.
+
+2003-07-09
+
+ * src/folder.[ch]: folder_item_remove_msg(): take MsgInfo as an
+ argument instead of message number.
+ * src/imap.[ch]: imap_remove_msg(): reimplemented using
+ imap_remove_msgs().
+ * src/mh.[ch]: mh_do_move(): reimplemented using
+ mh_do_move_msgs_with_dest().
+ mh_copy_msg(): reimplemented using mh_copy_msgs_with_dest().
+ * src/procmsg.c: procmsg_send_queue(): modified to use message list.
+
2003-07-08
* src/rfc2015.c: rfc2015_is_encrypted(): check MimeInfo::mime_type
to suppress some warnings.
+ * src/logwindow.c: log_window_append(): don't scroll up when trimming
+ lines.
2003-07-07