7 * src/codeconv.[ch]: removed conv_unmime_header_overwrite() because
8 it had introduced buffer overflow.
9 * src/compose.c: compose_parse_header(): don't use
10 conv_unmime_header_overwrite() which introduced buffer overflow.
14 * src/compose.c: compose_destroy(): destroy paned only if it's not
15 attached to window. Fixed memory leak of popup menu.
23 * src/compose.c: compose_parse_header(): generate References: from
24 In-Reply-To: even if the parent message doesn't have Message-Id:
29 * src/compose.c: compose_write_attach(): force transfer encoding to
30 protect trailing spaces for PGP signing.
34 * src/compose.c: compose_write_file(): force transfer encoding to
35 protect trailing spaces for PGP signing (fixes incompatibility
36 between gnupg 1.2 and 1.4) (thanks to Thorsten Maerz).
40 * INSTALL, INSTALL.jp: modified description about gpgme.
48 * src/select-keys.c: use_untrusted(): modified to use alertpanel().
52 * supported gpgme-1.0 (thanks to Toshio Kuratomi).
56 * src/passphrase.c: gpgmegtk_passphrase_cb(): Removed unused variables:
57 passphrase_cb_info_s *info and gpgme_ctx_t ctx. The
58 passphrase_cb_info_s * was just to get the ctx. The ctx is no longer
59 needed as gpgme1.0 returns a blank line as the passphrase when an
60 action is cancelled instead of calling gpgme_cancel on the context.
62 - sig_status_full(): Get rid of gpgme_error_t err as we no longer
63 invoke ant gpgme functions that can return an error.
64 - check_signature(): Initialize verifyresult to NULL and be sure it
65 has been set when using it to get a result string.
66 - rfc2015_create_signers_list(): gpg_error_t is not directly
67 comparable to the error types. Use gpgme_err_code(err) to get the
68 type of error we are dealing with.
69 - pgp_sign(): Initialize result to NULL. Catches potential bug on
70 error condition later in the function.
72 + Initialize bytesRW to -1 which may prevent potential bugs on
74 + Remove siginfo. It was replaced by micalg.
76 - set_row(): When creating the string for the algorithm type, use a
77 normal int rather than a long int.
78 - fill_clist(): Use gpgme_err_code(err) to get type of error as
79 gpg_error_t is not directly comparable to GPG_ERR_* constants.
80 - select_btn_cb(): Remove char *s that temporarily holds the key
81 fingerprint as keylists are now built without using this.
82 - cmp_email(): Remove an extraneous return statement that was left in
83 accidentally when the new code went in above it.
89 - use_untrusted(): New function that creates a dialog to ask the user
90 whether to encrypt with an untrusted key.
91 - trust_key_cb(): Callback to use if the user wants to encrypt with
93 - do_not_trust_key_cb(): Callback to use if the user doesn't want to
94 encrypt with an untrusted key.
95 - select_btn_cb(): Utilize the use_untrusted function to make sure
96 the user wants to encrypt with an untrusted key.
97 * src/rfc2015.c: pgp_encrypt(): Use GPGME_ENCRYPT_ALWAYS_TRUST when
98 encrypting. It is the responsibility of gpgmegtk_recipient_selection
99 to make sure the user knows if recipients are untrusted.
104 - Add a new color entry for untrusted but valid signatures.
105 - textview_add_part(): Color untrusted signatures.
107 - Move sigstatus_to_string() and sig_status_with_name() functionality
108 into sigstatus.c: gpgmegtk_sig_status_to_string().
110 - gpgmegtk_sig_status_to_string(): Add a boolean name argument that
111 allows us to specify the output should display name information
112 or just a status string.
113 + Check if a signature was created by a trusted key and add that
114 information to the output of the function.
115 - Switch to the new gpgmegtk_sig_status_to_string function.
117 - Change the interface to gpgmegtk_sig_status_to_string().
122 - rfc2015_find_signature(): Changed to return an array of two
123 MimeInfo structs. The first has the multipart/signed MimeInfo.
124 The second has the signature part of the MimeInfo. This allows
125 us to work with messages that contain some mime information that
126 was signed and some that was not (as generated by mailman
128 - rfc2015_find_signature(): If the toplevel Content-Type is
129 multipart/mixed, recursively scan through the subparts for a
130 multipart/signed block.
131 - rfc2015_check_signature(): Use the new interface to
132 rfc2015_find_signature and free the data returned to us from it.
133 * src/rfc2015.h: Change the signature for rfc2015_find_signature().
134 * src/mimeview.c: Use the new interface to rfc2015_find_signature()
135 and free the data returned from it.
139 * src/rfc2015.c: sig_status_for_key(): Fix a segfault when the key is
140 not found in the user's keyring.
144 * Ported the code to gpgme-1.0.
145 - Many types have had their names changed to conform to GNU
146 standards. For example, instances of GpgmeCtx have been changed to
147 gpgme_ctx_t. These cosmetic alterations are not noted below.
148 * configure.in: Enable large file support because the gpgme library is
150 - Update to require gpgme 0.4.5 or above.
151 * src/main.c: main(): replaced gpgme_check_engine with
152 several calls that do the equivalent in gpgme 0.4.5 and above:
153 gpgme_check_version, gpgme_set_locale, gpgme_get_engine_info,
154 and gpgme_get_protocol_name are used.
155 - Remove gpgme_register_idle callback. The gpgme library will now
156 block while processing instead of periodically allowing the gtk
157 mainloop to run. This can be fixed by interfacing to the gpgme
158 io callback interface if anyone has the ambition.
159 * src/passphrase.c: passphrase_mbox(), create_description(), and
160 gpgmegtk_passphrase_cb now take an exploded description of the
161 passphrase to look for since the gpgme library hands us the
162 description in seperate pieces.
163 - gpgmegtk_passphrase_cb(): has been changed to the new gpgme
164 passphrase callback signature -- notably writing the passphrase
165 to a file descriptor and returning a gpgme_error_t to indicate
167 * src/passphrase.h: Change to the signature of
168 gpgmegtk_passphrase_cb().
171 - Use gpgme_data_seek calls instead of deprecated gpgme_data_rewind.
172 - gpgme_data_read and gpgme_data_write have changed signature to be
173 more like fread/fwrite. Adapted code to use this.
174 - Convert to gpgme_key_t array from removed GpgmeRecipients.
175 - Use gpgme_signature_t's directly instead of GpgmeSigStat.
176 - sig_status_to_string() and sig_status_with_name(): changed to
177 use a gpgme_error_t instead of removed GpgmeSigStat.
178 - pgp_sign(): Calculate the micalg directly from knowledge of the
179 hash as it's no longer returned from a gpgme library function.
180 This obsoletes find_xml_tag() and extract_micalg() so they've
182 * src/select-keys.c: Adapt struct select_key_s to an array of
183 gpgme_key_t and the length of the array rather than a
184 GpgmeRecipients struct (which is removed.)
185 - gpgmegtk_recipient_selection now returns a gpgme_key_t NULL
186 terminated array instead of a GpgmeRecipients struct.
187 - Use values stored in the gpgme_key_t instead of looking up ATTRs
188 on the key as the ATTR methods are deprecated.
189 - Implement cmp_name() and cmp_email() as wholly separate functions
190 instead of using a common subfunction, cmp_attr() as there's no
191 longer a generic way of combining these two. Removed cmp_attr()
192 as ATTRs are deprecated.
193 * src/select-keys.h: gpgmegtk_recipient_selection signature changed.
194 * src/sigstatus.c: Get status information directly from the
196 - gpgmegtk_sig_status_to_string(): Uses a gpgme_error_t instead of
197 Removed GpgmeSigStat.
198 * src/sigstatus.h: gpgmegtk_sig_status_to_string signature has changed
203 * src/template.c: template_write_config(): fixed a memory leak.
207 * src/inc.c: inc_finished(): removed warning when updating a
208 folder item while no folder is selected.
214 src/procmsg.c: ignore 0-numbered message file. Don't use symbol
215 'fileno' used in stdio.h.
216 * src/messageview.c: messageview_show(): check if
217 procmsg_msginfo_get_full_info() succeeds (fixes crash when
218 opening 0-numbered message) (thanks to WAKAI Kazunao).
222 * src/template.c: template_write_config(): fixed potential memory
227 * src/pop.[ch]: added POP3_DONE to Pop3State (it is set when logout
229 pop3_write_uidl_list(): force output of UIDLs of deleted messages
230 when POP3 session is aborted (thanks to Masahiro Tomita).
234 * src/Makefile.am: use AM_CPPFLAGS and AM_YFLAGS instead of CPPFLAGS
235 and YFLAGS (they are reserved for users).
243 * src/account.c: account_delete(): fixed the crash on deleting a
244 remote account if the corresponding folder was selected (Debian BTS
249 * NEWS, TODO, TODO.jp: updated.
250 * manual/ja/sylpheed.sgml: updated.
254 * src/action.c: parse_append_filename(): escape all special characters
255 without quote (thanks to IWAMOTO Kouichi and Yoichi Imai).
261 INSTALL.jp: updated the confirmation list.
269 * src/compose.c: compose_wrap_line_all_full(): fixed the logic of
274 * manual/ja/sylpheed.sgml: updated.
284 src/vcard.c: removed '... defined but not used' warnings.
288 * src/compose.c: compose_wrap_line_all_full(): only insert space
289 when joining lines if the first character of the next line is not
290 space, or it's a boundary between multi- and single-byte characters.
294 * src/action.c: parse_append_filename(): escape special characters
295 (thanks to IWAMOTO Kouichi).
296 * src/utils.c: subst_for_filename(): also substitute single quote.
300 * src/compose.c: compose_wrap_line_all_full(): fixed joining line
301 problem when the first character of the next line is not
306 * src/main.c: send_queue()
307 src/mainwindow.c: send_queue_cb()
308 src/compose.c: compose_send(), compose_send_later_cb(): ask user
309 to switch to online if in offline mode when sending.
313 * src/imap.c: applied bitlength_clean_up.imap.c.patch that fixes the
314 integer length problem on 64-bit platforms (thanks to Alfons).
322 * src/pixmaps/regular.xpm: removed unused icon.
328 * src/pop.c: pop3_write_msg_to_file(): don't convert single CRs to
329 LFs (thanks to Alfons).
330 * src/utils.[ch]: my_memmem(): original implementation of memmem().
334 * manual/ja/sylpheed.sgml: updated for the latest version.
338 * src/pixmaps/unread.xpm: adjusted the hue of image.
342 * src/filter.c: removed C99 '//' comments.
346 * src/pixmaps/dir-close.xpm
347 src/pixmaps/dir-open.xpm
348 src/pixmaps/dir-noselect.xpm
349 src/pixmaps/group.xpm: adjusted the hue of images.
353 * src/pixmaps/dir-close.xpm
354 src/pixmaps/dir-open.xpm
355 src/pixmaps/dir-noselect.xpm
356 src/pixmaps/group.xpm: replaced with new images.
360 * src/pixmaps/folder.xpm: removed.
364 * src/summaryview.c: changed one-letter column titles to icons.
365 * src/pixmaps/mail.xpm: new.
369 * src/summaryview.c: summary_execute(): pop summary statusbar message.
373 * src/prefs_common.c: added Web browser commands.
377 * manual/ja/sylpheed.sgml: updated for the latest version.
378 * manual/ja/Makefile.am: added target 'update-html'.
383 INSTALL.jp: updated the confirmation list.
387 * src/jpilot.c: unify the coding style.
388 * src/mainwindow.c: fixed duplicated accelerator.
392 * src/procmsg.c: write_mark_func(): fixed bad cast on the system that
393 sizeof(gpointer) != guint.
397 * src/mainwindow.c: fixed English (trashes -> trash).
398 * src/prefs_common.c: prefs_keybind_apply_clicked(): updated menu
403 * src/mainwindow.c: changed the menu label "Empty trash" to
412 * src/pixmaps/error.xpm: made them smaller size to fit CList row.
416 * src/jpilot.c: applied the JPilot addressbook Japanese support
417 patch (thanks to IWAMOTO, Kouichi).
422 src/procmime.[ch]: use BASE64 encoding if the ratio of 8bit
423 characters in attaching text files is greater than 20%, otherwise
424 use quoted-printable (or 7bit if not at all).
428 * src/compose.c: compose_write_attach()
429 src/procmime.c: procmime_decode_content():
430 canonicalize text files before encoding to BASE64, and
431 uncanonicalize after decoding to conform with RFC 2045
432 (thanks to Nicolas Degory).
436 * src/pixmaps/complete.xpm
437 src/pixmaps/continue.xpm: made them smaller size to fit CList
442 * src/statusbar.c: statusbar_create(): set the width of widget to 1
443 not to expand automatically.
444 * src/utils.[ch]: trim_string_before(): trim beginning characters
445 longer than the specified length and add "...".
447 src/summaryview.c: use trim_string_before() to display folder name.
452 src/prefs_common.c: made mozilla-firefox as default browser.
456 * src/summaryview.c: summary_key_pressed()
457 src/textview.c: textview_key_pressed(): back scroll when Shift or
458 Alt and Space key is pressed. Also back scroll when Shift and Enter
463 * src/foldersel.c: foldersel_new_folder(): select newly created
476 src/prefs_account.[ch]: obsoleted RecvProtocol::A_APOP and made an
478 prefs_account_protocol_set_optmenu(): refactored.
482 * src/folderview.c: folderview_empty_trash_cb(): removed unused
487 * src/summary_search.c: use C string instead of wide character string.
488 Enabled AND/OR matching.
492 * src/folderview.[ch]
493 src/mainwindow.c: change menu sensitivity of File/Folder and
494 File/Mailbox according to selected folder.
495 Enabled newsgroups subscription from 'File/Folder/Create new folder'.
499 * src/folderview.[ch]
500 src/mainwindow.c: reorganized folder/mailbox menus.
501 Enabled 'Remove mailbox', 'Check for new messages' and
502 'Rebuild folder tree' on main menu.
503 Removed 'Remove mailbox' from the folder context menu.
509 src/procmsg.[ch]: added 'Empty trash' to the folder context menu.
514 src/summaryview.c: don't move/delete immediately when
515 immediate_execution is off.
523 * upgraded to gettext-0.14.1.
527 * src/compose.c: reorganized the menu.
528 * src/mh.c: removed g_print() for debug.
534 src/template.[ch]: added Cc: to template parameter.
538 * src/prefs_filter_edit.c: fixed condition menu switching problem
539 on editing existing rules.
543 * src/filter.c: filter_action_exec(): update counters of FolderItem
544 on local filtering (fixes wrong folderview message count).
548 * src/mbox.c: proc_mbox(): check if folder_table is NULL (fix
553 * src/pixmaps/stock_add_16.xpm
554 src/pixmaps/stock_remove_16.xpm: converted from stock icons in
556 * src/prefs_filter_edit.c: use icons for add/remove button.
557 * src/stock_pixmap.[ch]: added add/remove icons.
561 * src/pixmaps/stock_dialog_error_48.xpm
562 src/pixmaps/stock_dialog_info_48.xpm
563 src/pixmaps/stock_dialog_question_48.xpm
564 src/pixmaps/stock_dialog_warning_48.xpm: converted dialog icons from
565 stock icons in gtk-2.4.
566 * src/alertpanel.[ch]: added icons to the alert dialog.
567 alertpanel_message(): Added AlertType.
568 * src/stock_pixmaps.[ch]: added dialog icons.
573 * src/procmsg.c: removed verbose debug prints.
581 * src/procmsg.c: procmsg_send_queue()
582 src/send_message.c: send_queue_info_free(): fixed segmentation fault
583 when trying to send an invalid queued message.
587 * src/mainwindow.c: added separators to the File menu.
588 * src/prefs_filter_edit.c: removed some debug prints.
592 * src/inputdialog.c: input_dialog_open(): don't start auto-checking
593 mail while opening the input dialog.
597 * src/mh.c: mh_remove_all_msg()
598 src/procmsg.c: procmsg_empty_trash(): fixed wrong message count
599 after emptying trash.
603 * src/prefs_filter.c: fixed a bug that didn't add an auto-created
605 * src/prefs_filter_edit.c: prefs_filter_edit_dialog_to_rule(): check
610 * src/filter.c: filter_apply_msginfo(): don't apply filter if
611 FilterRule::enabled == FALSE.
612 * src/prefs_filter.c: implemented Enabled column.
613 * src/account.c: account_selected(): modified the behavior of
618 * src/colorlabel.c: modified the menu label size. Removed "None" from
621 src/prefs_filter_edit.c: implemented color label action.
622 * src/summaryview.c: summary_filter_func(): update summary flags
623 when flag action is performed.
627 * src/prefs_filter_edit.c: added color label.
628 * src/colorlabel.c: modified the menu label size and border.
633 src/prefs_filter_edit.c: improved error handling when creating a
638 * src/prefs_common.c: adjusted the default size of views.
643 src/prefs_filter_edit.c: implemented size/age condition.
644 * src/menu.[ch]: menu_get_option_menu_active_user_data(): new.
648 * src/prefs_filter_edit.c: select previous item when editing header
653 * src/prefs_filter.[ch]
654 src/prefs_filter_edit.c
655 src/procheader.[ch]: implemented user-defined header dialog.
660 filter_action_exec(): modified local filtering.
661 strmatch_regex(): use case-insensitive regex.
662 * src/summaryview.[ch]: display filtering result to the status bar.
666 * src/filter.[ch]: implemented filter rule application timing.
667 * src/prefs_fil_er_edit.c: prefs_filter_edit_action_hbox_set():
668 fixed a bug that didn't display parameter of PF_ACTION_EXEC.
672 * src/prefs_filter.c: prefs_filter_write_user_header_list(): use
673 prefs_file_open() instead of fopen().
678 src/prefs_filter.c: implemented load/save of user-defined
683 * src/inc.c: inc_spool()
684 src/prefs_common.c: modified spool path config so that users can
685 specify both file and directory.
689 * src/prefs_filter.[ch]
690 src/prefs_filter_edit.[ch]: implemented creating filter rule by
695 * src/mimeview.c: mimeview_drag_data_get()
696 src/summaryview.c: summary_drag_data_get(): fixed broken URI in
702 src/summaryview.c: fixed local filtering.
703 * src/mh.c: mh_copy_msgs(): restored missing 'else'.
707 * src/foldersel.c: foldersel_new_folder(): fixed possible memory
708 corruption, and write folder list data after appending.
709 * src/summaryview.c: summary_show(): up FolderItem::opened flag
710 after reading message list.
719 src/summaryview.c: properly handle 'new' flags by using
720 FolderItem::mark_queue.
725 src/inc.c: modified 'new' flags management.
729 * src/prefs_filter.c: don't move to the last row when opening the
730 dialog. Clear CList when closing.
737 src/prefs_filter_edit.c
738 src/summaryview.c: implemented FLT_ACTION_EXEC and FLT_ACTION_DELETE.
742 * src/prefs_filter.c: auto-scroll when a new rule is added.
743 open edit dialog when a rule is double-clicked.
744 prefs_filter_copy_cb(): implemented.
745 * src/prefs_filter_edit.c: implemented action "Stop rule evaluation".
752 src/prefs_filter_edit.c
753 src/summaryview.c: renamed FilterResult to FilterInfo, and added
754 account to its members.
755 Implemented command test, size, age, account, and on-receive
758 src/procheader.c: procheader_parse_file(): also get file size and
763 execute_command_line(): return exit status.
768 src/inc.c: save all types of performed actions.
769 filter_rule_rename_dest_path(): modified for the new system.
770 filter_rule_delete_action_by_dest_path(): delete actions that
772 * src/mbox.c: proc_mbox(): ignore FLT_ACTION_NOT_RECEIVE.
773 * src/prefs_filter.c: prefs_filter_delete_path(): modified for the new
777 summary_filter_func(): modified for the new system.
781 * src/filter.[ch]: implemented message body match.
783 procmime_find_string_part()
784 procmime_find_string(): take function pointer for matching.
785 * src/procmsg.[ch]: added file_path (which is only used for temporary
786 messages) to MsgInfo.
787 procmsg_msginfo_copy()
788 procmsg_msginfo_free(): handle extra members.
789 * src/summary_search.c: modified for procmime_find_string().
790 * src/summaryview.c: filter_apply_local() -> filter_apply_msginfo().
791 * src/utils.[ch]: added function for string match.
793 src/undo.c: removed redundant debug messages.
797 * implemented the new filtering system (still in progress).
799 src/filter.[ch]: implemented reading/writing of filter XML data.
800 * src/prefs_filter.[ch]
801 src/prefs_filter_edit.[ch]: implemented UI for the new filtering
807 src/summaryview.c: modified for the new filtering system.
808 * src/menu.h: MENUITEM_ADD(): create separator if label is NULL.
809 * src/procheader.[ch]: added some utility functions.
810 * src/utils.c: open_uri(): modified warning message.
814 * src/main.c: removed parsing of "./gtkrc".
820 ssl_peek(): check SSL before reading data (fixes freeze when
822 * src/session.[ch]: session_set_access_time(): new.
825 src/nntp.c: only update last_access_time when successfully
826 receiving a server response.
827 * thanks to Cedric Pradalier for above.
831 * src/xml.[ch]: code cleanup and added some functions.
835 * src/pop.[ch]: pop3_getrange_uidl_recv(): relaxed invalid UIDL
843 src/prefs_account.[ch]
844 src/prefs_common.[ch]: unified *_{save,write}_config() to
850 procheader_get_one_field()
851 procheader_get_unfolded_line(): fixed a bug that unfolding was
852 broken if the sequence 'SP CR LF' appeared (thanks to NOGUCHI,
857 * src/prefs_common.c: made the default of confirm_on_exit FALSE.
861 * src/menu.[ch]: added menu_set_active().
862 * src/compose.c: don't change 'View/Auto wrapping' mode when selecting
867 * src/compose.[ch]: autowrap can be switched on/off from the compose
876 * src/session.c: session_set_timeout(): fixed a bug that didn't
877 reset timeout_tag when interval is 0.
881 * src/gtkstext.c: gtk_stext_update_text(): added null checking for
882 cache (thanks to Jim Hranicky).
886 * src/defs.h: increased CACHE_VERSION to work around the
887 incompatibility of the cache on some platforms (ex. FreeBSD).
888 * src/procmsg.c: procmsg_read_cache(): discard all read cache data
889 if an error occurred.
893 * src/summaryview.[ch]: hide 'Re-edit' menu when it's unusable.
899 src/session.[ch]: implemented session timeout.
900 * src/pop.h: removed unused values from Pop3ErrorValue.
904 * src/inc.c: inc_all_account_mail(): code cleanup.
908 * src/procmsg.c: procmsg_read_cache_data_str(): changed gint32 to
909 guint32 for some platforms.
910 * src/summaryview.c: restored 'Print' menu.
914 * src/about.c: modified copyright year.
922 * src/smtp.c: comply with RFC 2821 (thanks to Alfons).
926 * src/folderview.[ch]: implemented spring-loaded folder.
930 * src/folderview.c: folderview_button_pressed(): enable menu item
931 'Search messages...' only when opened folder is selected.
936 src/prefs_common.[ch]: removed the option "Queue messages that fail
941 * src/summaryview.c: cleaned up the context menu.
942 * src/mainwindow.c: changed the position of '/Message/Re-edit'
947 * src/procmsg.[ch]: fixed the type of integer value in cache data
952 * src/nntp.c: nntp_get_article(): ignore the protocol error of
953 response for some broken news servers (thanks to Davide Scola).
957 * src/gtkutils.[ch]: added gtkut_editable_disable_im().
958 * src/passphrase.c: disable XIM on entering passphrase.
965 src/prefs_display_header.c
966 src/procmsg.h: fixed for AMD64 (and other 64-bit platforms)
967 (thanks to Hiroyuki Ikezoe).
971 * src/inc.[ch]: don't use gtk_timeout_add(), instead use
972 gettimeofday() (to prevent infrequent lockup).
977 src/inc.[ch]: changed the method of updating the progress dialog
978 to reduce the overhead on a fast network.
982 * src/nntp.c: nntp_session_new(): attempt to authenticate at the
983 beginning of a session (thanks to Shiino Yuki and IWAMOTO, Kouichi).
985 src/nntp.c: destroy session when socket error occurred.
990 src/summaryview.[ch]: added a function to filter selected
996 src/prefs_filter.c: rewrote the filtering system (the UI is not
1001 * src/filter.c: fixed the matching algorithm of "not contain" flag
1002 (also match if a header not exist, and handle same multiple
1004 * src/imageview.c: get_resized_size(): fixed a typo that caused
1010 src/mh.c: only update FolderItem::last_num when removing the last
1011 number of message in MH folders, and don't scan in other case
1012 (fixes wrong message count on moving).
1017 src/summaryview.c: always move messages by default when using DnD
1018 (except for News folder). Copy messages if Ctrl-key is pressed.
1019 * src/mainwindow.c: main_window_empty_trash()
1020 src/summaryview.c: summary_execute(): added missing
1021 statusbar_pop_all().
1029 * src/prefs_common.c: made the default of "inc_local" FALSE.
1034 src/folderview.c: toggle online mode when checking IMAP4 accounts.
1035 Pop status bar after that.
1036 * src/inc.c: code cleanup.
1037 * src/mainwindow.[ch]: added main_window_get() and
1038 main_window_toggle_online_if_offline().
1039 * src/prefs_common.c: prefs_common_read_config(): fixed a bug that
1040 made it offline mode on first execution.
1044 * src/imageview.c: enabled automatic resize on window resize.
1045 restrict the minimum size to 16 pixels to prevent crash.
1046 imageview_init(): don't cache images when using imlib.
1047 imageview_show_image(): fixed memory leak.
1048 * src/mimeview.c: mimeview_init(): call imageview_init().
1052 * src/codeconv.[ch]: added ISO-2022-JP-3 encoding.
1058 src/messageview.c: added KOI8-U encoding.
1059 * src/prefs_common.c: prefs_message_create(): modified the string
1060 of resizing image option.
1064 * src/addressbook.c: addressbook_list_selected(): corrected its
1066 * src/imageview.[ch]: keep original image data in ImageView, and
1067 enabled the toggle of resizing.
1068 * src/messageview.[ch]
1069 src/mimeview.[ch]: handle ImageView in MimeView instead of
1076 src/summaryview.c: removed statusbar_pop_all() from imap.c and
1077 news.c (do it in summaryview.c).
1082 src/pop.[ch]: made inc_drop_message() the virtual function of
1083 Pop3Session and removed the dependency of pop.c on inc.h.
1088 src/messageview.[ch]
1089 src/textview.c: added statusbar to the message view with new window.
1093 * src/inc.[ch]: use hash table for progressive update.
1094 changed update interval to 2 sec.
1098 src/summaryview.c: added FolderItem::unmarked_num to correct the
1099 folder message counting.
1103 * src/inc.[ch]: update folderview progressively.
1104 * src/foldersel.c: display full id for selected item.
1108 * src/folderview.[ch]: code cleanup.
1109 folderview_append_item(): new. It appends the folder to the folder
1111 * src/foldersel.c: foldersel_new_folder(): use
1112 folderview_append_item().
1116 * src/foldersel.c: implemented 'create new folder' function.
1117 * src/folder.[ch]: folder_find_child_item_by_name(): new.
1118 * src/utils.h: AUTORELEASE_STR(): convert malloc'd string into
1119 auto-release (alloca'd) one.
1123 * src/folderview.c: put together folderview_new_imap_folder_cb() into
1124 folderview_new_folder_cb().
1128 * src/compose.c: compose_write_to_file(): removed redundant strlen()
1130 * src/textview.c: textview_button_pressed(): select correct account
1131 when address is clicked.
1139 * src/folder.c: folder_item_fetch_all_msg()
1140 src/folderview.c: folderview_download_cb(): show progress with
1142 * src/mainwindow.[ch]: added new functions for progressbar.
1146 * src/summaryview.c: summary_key_pressed(): GDK_Left should only
1147 switch to folderview when summaryview hscrollbar is at the leftmost
1148 position (thanks to Alfons).
1152 * src/codeconv.c: conv_euctojis(): made JIS X 0201 Kana conversion
1154 * src/prefs_common.[ch]: added PrefsCommon::allow_jisx0201_kana
1159 * src/codeconv.c: conv_euctojis(): force JIS X 0201 Kana to JIS X 0208
1164 * src/imap.c: imap_get_msginfo(): fixed wrong counting.
1177 src/quote_fmt_parse.y
1178 src/quoted-printable.c
1183 src/xml.c: fixed wrong type of argument for ctype functions (char
1184 had been passed instead of unsigned char).
1189 * src/mainwindow.[ch]: added MainWindow::messageview_cid.
1190 Clear messageview when it is hidden.
1191 * src/textview.c: show URL to the statusbar when its link is clicked.
1192 textview_uri_security_check(): compare real URL and apparent one
1193 and show warning if it seems to be a fake URL.
1195 is_uri_string(): return TRUE if the string seems like a URL.
1196 get_uri_path(): return URL except for its scheme part.
1200 * src/folder.[ch]: folder_item_fetch_all_msg(): new. It fetches all
1201 messages in a folder.
1202 * src/folderview.c: implemented 'Download' feature.
1206 * src/gtkutils.[ch]: implemented ComboButton which adds an arrow
1207 menu button to a button.
1208 * src/mainwindow.[ch]: main_window_toolbar_create(): added combo
1209 button to reply and forward button.
1213 * src/mainwindow.c: fixed automatic expansion of window size because
1218 * src/addr_compl.[ch]
1219 src/gtkshruler.[ch]: changed the copyright notice.
1223 * src/gtkstext.c: find_line_params(): also break between mutlibyte
1224 and single-byte characters.
1228 * src/gtkstext.c: find_line_params(): break lines between multibyte
1229 characters on word wrap mode.
1233 * src/codeconv.c: conv_iconv_strdup(): fixed crashes on LP64
1234 environments (thanks to James Noyes).
1235 * src/compose.c: compose_select_account(): don't turn off the sign/
1236 encrypt option automatically.
1240 * src/inc.[ch]: made inc_account_mail() public.
1241 * src/mainwindow.c: moved receive menus into submenu, and added
1242 dynamic menus for receiving from each account.
1250 * src/procmsg.c: procmsg_open_data_file(): set buffer if DATA_READ
1251 is specified and a buffer is given.
1252 procmsg_open_cache_file_with_buffer(): new.
1253 procmsg_read_cache(): fixed a bug that called setvbuf() after an
1254 file I/O which caused buffer read error.
1262 * configure.in: enable IPv6 support by default.
1266 * src/inc.c: inc_mail(), inc_all_account_mail(): ask user to switch
1267 to online when in offline mode.
1268 * src/mainwindow.h: added main_window_toggle_online().
1275 src/stock_pixmap.[ch]
1276 src/pixmap/dir-noselect.xpm: made no-select folders display with
1277 dim icon and string.
1278 * src/Makefile.am: added offline.xpm, online.xpm, and
1279 dir-noselect.xpm to EXTRA_DIST.
1283 * src/folder.h: added macro FOLDER_ITEM_CAN_ADD().
1284 * src/folderview.c: folderview_drag_motion_cb(): code cleanup.
1285 folderview_drag_received_cb(): don't accept at no_select folder or
1287 * src/foldersel.c: made folders on which no_select flag is set not
1292 * src/imap.c: imap_do_copy_msgs(), imap_remove_msgs(): code cleanup.
1293 set MSG_INVALID flag when messages are deleted.
1294 * src/mh.c: mh_do_move_msgs(), mh_remove_msg(): set MSG_INVALID flag
1295 when messages are deleted.
1297 procmsg_move_messages()
1298 procmsg_copy_messages(): return error status.
1299 Added MSG_INVALID to MsgTmpFlags.
1300 * src/summaryview.c: summary_execute(): detect errors and only remove
1301 nodes that are invalidated.
1302 summary_unthread_for_exec(): fixed a bug that didn't remove nodes
1307 * src/mainwindow.[ch]: added online switch button to the statusbar,
1308 and "/File/Work offline" in the menu.
1309 * src/pixmaps/offline.xpm
1310 src/pixmaps/online.xpm: new (borrowed from
1311 themes/classic/communicator/icons/ in Mozilla).
1312 * src/stock_pixmap.[ch]: added online.xpm and offline.xpm.
1313 * src/textview.[ch]: textview_show_error(): new.
1314 * src/summaryview.c: summary_display_msg_full(): update marks only
1315 if messages are displayed.
1316 * src/prefs_common.[ch]: added PrefsCommon::online_mode.
1317 * src/news.c: news_session_get()
1318 src/imap.c: imap_session_get(): return NULL when in offline mode.
1319 * src/messageview.[ch]: messageview_show(): return status whether
1320 messages are successfully displayed. Display error messages in
1321 the view when failed.
1323 procmsg_get_message_file()
1324 procmsg_open_message(): don't output warnings when fetch failed.
1328 * src/html.c: html_get_tag(): support attributes which don't have
1333 * src/codeconv.c: conv_get_code_conv_func(): return conv_latintodisp
1334 only if src_charset and current charset is identical or current
1335 one is multibyte (fixes display of ISO-8859-5 on KOI8-R locale etc.).
1339 * autogen.sh: don't include m4 directory in aclocal.
1340 * intl/libgnuintl.h: removed from cvs.
1341 * po/.cvsignore: added stamp-po and remove-potcdate.sed.
1345 * upgraded to gettext-0.12.1.
1347 2003-11-24 gettextize <bug-gnu-gettext@gnu.org>
1349 * Makefile.am (SUBDIRS): Add m4.
1350 (ACLOCAL_AMFLAGS): New variable.
1351 (EXTRA_DIST): Add config.rpath.
1352 * configure.in (AC_OUTPUT): Add m4/Makefile.
1356 * configure.in: added check for d_type member in struct dirent.
1357 * src/mh.c: mh_scan_folder(): use d->d_type if available.
1358 mh_get_uncached_msgs(): removed redundant stat().
1359 mh_parse_msg(): return NULL if not a regular file.
1360 mh_scan_tree_recursive(): use d->d_type if available.
1362 dirent_is_regular_file()
1363 dirent_is_directory(): new. Use d->d_type to determine the type
1364 of entry if available.
1365 remove_dir_recursive(): use dirent_is_directory().
1369 * src/folder.h: added 'updated' flag to FolderItem.
1370 * src/folderview.[ch]: folderview_update_all_updated(): new. It
1371 updates all updated folders.
1372 * src/imap.c: set FolderView::update flag on changes of contents.
1373 * src/main.c: send_queue()
1374 src/mainwindow.c: send_queue_cb(): code cleanup.
1375 * src/mh.c: code cleanup.
1376 mh_scan_folder(): correctly count new messages.
1377 * src/procmsg.[ch]: code cleanup.
1378 procmsg_open_cache_file(): new.
1379 procmsg_open_mark_file(): enable read/write/append.
1380 procmsg_send_queue(): correctly choose outbox for accounts.
1381 * src/send_message.[ch]: send_get_queue_info(): get a queue
1382 information from queued messages.
1383 send_queue_info_free(): free QueueInfo.
1384 send_message_queue(): take QueueInfo as an argument instead of file.
1385 * src/summaryview.c: summary_write_cache(): code cleanup.
1389 * src/compose.c: compose_redirect_write_headers(): correctly add
1394 * src/imap.c: imap_get_msg_list(): fallback to FETCH command if SEARCH
1395 command to get flags failed.
1396 imap_search_flags(): returns UID array and flags hash table using
1398 imap_fetch_flags(): returns UID array and flags hash table using
1403 * src/summary_search.c: summary_search_execute(): fixed 'Select all
1404 matched' when backward search is enabled.
1405 Made the backward search button insensitive when 'select all
1406 matched' is enabled.
1414 * src/imap.c: imap_scan_tree(): check the existence of root directory
1415 with LIST instead of STATUS.
1419 * src/send_message.c: fixed format string bug (exploitable by
1420 malicious SMTP server) when calling alertpanel_error()
1421 (thanks to Georgi Guninski).
1428 src/news.[ch]: refactoring of the folder system (based on the claws'
1437 src/summaryview.c: use FOLDER_TYPE() macro at every place.
1445 * src/addressbook.c:
1446 addressbook_folder_load_person()
1447 addressbook_folder_load_group(): sort the ctree after the end of
1448 the loop (fixes performance issue when many addresses are in one
1449 folder) (thanks to christian mock).
1453 * src/folderview.c: folder_init(): code cleanup.
1454 * src/summaryview.c: summary_init(): check if boldfont is
1455 successfully loaded.
1456 * src/grouplistdialog.c: use proper callback for delete_event (thanks
1458 * src/imap.c: allow zero-length messages.
1459 * src/recv.c: recv_bytes_write(): return immediately if size == 0.
1463 * src/folderview.c: folderview_init(): if font can't be loaded, fall
1464 back to gtk default (fixes crashes on startup). Also removed the
1469 * src/compose.c: compose_insert_sig(): insert signature at the
1470 current cursor position on manual operation.
1474 * src/summaryview.c: summary_key_pressed(): don't ignore delete key
1475 even if the main window is locked.
1479 * src/action.c: improved synchronous action exit code (fixes long
1480 delay after action exit on RH9) (thanks to Melvin).
1481 * src/stringtable.[ch]: string_table_insert_string(): modified the
1482 code to remove the warning "dereferencing type-punned pointer will
1483 break strict-aliasing rules".
1484 Use const gchar * instead of gchar * for arguments.
1488 * src/utils.[ch]: generate_mime_boundary(): a new function to create
1489 MIME boundary (moved from rfc2015.c).
1490 Removed more special characters.
1491 Use random() instead of lrand48() which is obsolete.
1492 Added an argument for prefix to prevent duplication.
1493 Always add "=_" as a counter-QP sequence to simplify the code.
1495 rfc2015_decrypt_message()
1497 rfc2015_sign(): fixed a bug that didn't handle continuous content
1500 src/rfc2015.c: use generate_mime_boundary().
1505 folderview_delete_folder_cb()
1506 folderview_remove_mailbox_cb(): close currently displayed folder
1507 before removing FolderItem (fixes crash on deleting folder).
1509 src/imap.[ch]: imap_scan_tree()
1510 src/mh.[ch]: mh_scan_tree(): return -1 when scanning failed.
1511 * src/summaryview.c: summary_clear_all(): also clear the message view.
1512 * src/imap.c: imap_close(): fail if the specified folder is not
1514 imap_scan_tree(): check if the specified root directory exist, and
1515 try creating it if not.
1516 imap_parse_list(): output warning if a server returns error.
1517 imap_find_namespace_from_list(): support not slash-delimited path.
1518 imap_status(): don't return values if they're not specified.
1522 * sylpheed.spec.in: fixed a typo.
1533 src/prefs_common.[ch]: added the receive dialog's option to
1534 display the dialog only on manual receiving, and the
1535 RECV_DIALOG_ACTIVE option was removed.
1539 * src/compose.c: compose_write_headers(): also replace ':' in the
1540 MIME boundary with '_' (as a workaround for broken servers).
1544 * src/imap.c: imap_scan_tree_recursive(): fixed compile error.
1548 * src/prefs_filter.c: added 'Top' and 'Bottom' button.
1552 * src/folder.[ch]: folder_item_remove_children(): new. It removes
1553 all children under a FolderItem.
1554 * src/folderview.c: folderview_rescan_tree(): modified the message.
1555 * src/imap.c: imap_scan_tree(), imap_scan_tree_recursive(): reuse
1556 the previous FolderItem objects.
1560 * src/folder.[ch]: added a reference to its own GNode in FolderItem.
1561 folder_item_remove(): free all FolderItem's.
1562 folder_tree_destroy(): use folder_item_remove().
1563 * src/folderview.c: folderview_sort_folders(): keep the order even
1564 if special folders' parents are different.
1565 * src/imap.c: imap_scan_tree_recursive(): fixed a memory leak.
1566 * src/mh.c: mh_scan_tree(): preserve the previous FolderItem's.
1567 mh_remove_missing_folder_items(): scan the directories and remove
1569 mh_scan_tree_recursive(): reuse the previous FolderItem objects.
1573 * src/mainwindow.c: always reflect window size changes.
1574 * src/folderview.c: folderview_init()
1575 src/summaryview.c: summary_init(): realize the widget before
1577 * src/prefs_common.[ch]: remember the folder and mesage view's
1583 src/prefs_common.[ch]: remember the size and position of
1585 main_window_set_widgets(): fixed a bug that the hidden items on
1586 the header view were shown when changing the view type.
1587 Instead of setting the window size, set the each view's size.
1591 * src/compose.c: compose_select_account(): don't append signature
1593 compose_insert_sig(): don't insert "\n\n" if signature string
1594 doesn't exist. Always insert signature at the end of message.
1598 * improved sylpheed.spec.in (thanks to Andre Oliveira da Costa).
1602 * minor code cleanups for the folder system.
1603 * src/compose.c: compose_queue(), compose_draft_cb(): code cleanup.
1604 * src/folder.c: code cleanups.
1606 src/mh.c: calculate message numbers inside the functions.
1607 * src/procmsg.c: procmsg_set_flags(): calculate message numbers.
1608 * src/summaryview.[ch]: don't calculate and preserve message numbers
1617 src/summaryview.c: renamed *_msgs_with_dest() to *_msgs().
1621 * src/imap.[ch]: use CAPABILITY to use protocol extentions.
1622 imap_greeting(): parse initial server greeting. Also support
1625 imap_cmd_append(): use APPENDUID responses if UIDPLUS is supported.
1629 * src/imap.c: imap_get_flag_str(): fixed a buffer overrun.
1637 * src/main.c: main(): don't save config files on startup.
1642 imap_get_msg_list(): removed redundant UID SEARCH ALL when not
1644 Unset MSG_NEW flag if \Seen is set.
1645 imap_get_uncached_messages(): fetch all messages if both first_uid
1650 * src/imap.c: revamped the implementation so that it always
1651 exactly reflects the state of IMAP4 servers.
1652 imap_get_msg_list(): examine the state of messages using
1653 UID SEARCH commands.
1654 imap_delete_cached_message(): removes single message cache.
1655 imap_get_uid(): removed.
1656 imap_cmd_search(): new. It issues UID SEARCH command and returns
1658 imap_cmd_gen_recv(): made the length of strings unrestricted.
1659 imap_get_uid_table(): returns a hash table from UID array.
1666 src/news.[ch]: added Folder::close() method.
1667 * src/summaryview.c: summary_clear_list(): call folder_item_close().
1671 * flags are now taken over when copying messages into IMAP folders
1678 mh_add_msgs(): flags can be also specified when adding files.
1679 * src/folder.[ch]: added assertions for virtual functions.
1680 * src/procmsg.[ch]: procmsg_get_message_file_list(): return the list
1682 procmsg_message_file_list_free(): new.
1686 * src/procmsg.h: changed MsgPermFlags and MsgTmpFlags from enum to
1687 guint32 for portability (thanks to Alfons).
1688 * src/imap.c: imap_add_msgs(): removed redundant unlink().
1693 session_read_msg_cb()
1694 session_read_data_cb(): fixed a bug that ran into infinite loop
1695 if connection was closed by remote host (thanks to Yoichi Imai).
1696 Added SESSION_EOF state to SessionState.
1697 session_is_connected(): new.
1698 * src/inc.[ch]: inc_put_error()
1699 src/send_message.c: send_put_error(): also put log messages.
1703 * more optimization of IMAP4.
1704 * src/folder.[ch]: added a method add_msgs() that adds multiple files
1706 Removed redundant scan() for the operations of FolderItem.
1707 * src/imap.[ch]: implemented Folder::add_msgs() and optimized move
1708 and copy from other Folder instances.
1709 * src/mh.[ch]: implemented Folder::add_msgs() and cleaned up the code.
1710 mh_fetch_msg(): scan folder if required.
1711 * src/procmsg.[ch]: procmsg_get_message_file_list(): returns file
1712 list from message list.
1713 * src/summaryview.c: don't remove MSG_MARKED flags on
1714 delete/move/copy operation.
1715 summary_display_msg_full(): removed redundant message fetching.
1719 * optimized move/copy/delete/mark operations of IMAP4 by using
1720 sequence set when issuing commands (adopted claws' implementation
1721 with cleaning it up).
1723 imap_set_message_flags()
1726 imap_cmd_store(): take sequence set string instead of UID number.
1727 imap_do_copy_msgs_with_dest(): optimized by using sequence set.
1728 imap_cmd_fetch(): use BODY.PEEK instead of BODY.
1729 imap_remove_all_msg()
1730 imap_set_message_flags(): use FLAGS.SILENT instead of FLAGS.
1732 src/summaryview.c: use imap_msg_list_{set,unset}_perm_flags()
1733 instead of issuing commands for each message.
1738 src/prefs_account.[ch]
1740 src/session.[ch]: added an option to enable/disable non-blocking
1745 * src/compose.c: compose_attach_append(): display message's subject
1746 when attaching message/rfc822 file.
1753 session_read_msg_cb()
1754 session_read_data_cb(): optimized by removing sock_peek() and
1755 buffering received data in user space (correctly implemented
1760 * src/session.c: reverted the previous change because it couldn't
1761 handle data receiving after messages correctly.
1767 session_read_msg_cb(): optimized by removing sock_peek() and
1768 buffering messages in user space.
1772 * src/imap.[ch]: refactored.
1773 Changed all functions that have SockInfo arguments to take
1775 Made imap_cmd_count an instance variable: IMAPSession::cmd_count.
1776 imap_open(): only establish TCP (or SSL) connection.
1777 imap_session_new(): process greeting and authentication here.
1781 * src/imap.[ch]: implemented CRAM-MD5 authentication, and made code
1783 * src/prefs_account.[ch]: added option menu for IMAP4 authentication
1784 type in Receive tab, and hide other protocols' frames.
1788 * src/mainwindow.c: send_queue_cb(): don't scan folder twice if
1790 * src/procmsg.c: procmsg_send_queue(): return number of sent
1796 main_window_set_toolbar_sensitive()
1797 main_window_set_menu_sensitive(): removed the locking of file
1798 operations while receiving mail.
1802 * src/folder.[ch]: folder_item_remove_msg(): take MsgInfo as an
1803 argument instead of message number.
1804 * src/imap.[ch]: imap_remove_msg(): reimplemented using
1806 * src/mh.[ch]: mh_do_move(): reimplemented using
1807 mh_do_move_msgs_with_dest().
1808 mh_copy_msg(): reimplemented using mh_copy_msgs_with_dest().
1809 * src/procmsg.c: procmsg_send_queue(): modified to use message list.
1813 * src/rfc2015.c: rfc2015_is_encrypted(): check MimeInfo::mime_type
1814 to suppress some warnings.
1815 * src/logwindow.c: log_window_append(): don't scroll up when trimming
1820 * src/compose.c: add 'Content-Disposition: inline' to a text/plain
1821 part when using PGP/MIME signing.
1829 * src/defs.h: changed UI_REFRESH_INTERVAL from 40msec to 50msec.
1830 * src/session.c: session_read_msg_cb(): make it always fail if
1831 sock_read() returns by error.
1832 * src/socket.[ch]: sock_check(): handle exceptional SSL condition.
1833 sock_has_pending_data(): removed.
1834 Removed debug output.
1835 * src/send_message.c: send_recv_message(): display messages to
1840 * src/inc.[ch]: update received message number on CList while
1842 * src/session.c: session_read_data_cb(): optimized by removing
1843 g_malloc() and memcpy().
1847 * src/socket.[ch]: sock_add_watch(): new. It monitors SSL by original
1848 watch functions (otherwise uses g_io_add_watch()).
1849 * src/session.[ch]: removed previous workarounds, and replaced
1850 g_io_add_watch() with sock_add_watch().
1854 * src/socket.[ch]: added sock_has_pending_data() which returns TRUE
1855 if socket has pending data.
1856 * src/session.c: session_recv_msg(), session_recv_data(): check if
1857 socket has pending data and call the callbacks immediately in that
1858 case (fixes the hang at ESMTP EHLO on SSL).
1862 * src/socket.c: check return value in SSL functions.
1866 * src/mimeview.c: mimeview_init(): initialize TextView to prevent
1867 slowdown caused by GTK+ themes (thanks to Yuri Arapov).
1871 * src/session.c: session_read_data_cb(): clear Session::read_data_buf
1872 before calling callbacks.
1876 * src/socket.c: made socket connection protocol independent.
1877 * src/session.c: removed debug g_print().
1878 * src/inc.c: made status bar output less verbose, and show counter
1879 on main window's progressbar.
1883 * src/session.c: added missing #include <errno.h>.
1887 * src/session.[ch]: reimplemented the Session system with non-blocking
1888 I/O to solve the performance and the code design issue.
1889 * src/socket.[ch]: added sock_connect_async() and
1890 sock_connect_async_cancel() to enable asynchronous connection.
1891 sock_peek(): modified the implementation.
1892 * src/pop.c: optimized the receiving of the responses of
1897 * src/procmsg.c: procmsg_get_thread_tree(): prevent threading problems
1898 when a node is an ancestor (parent / great parent), which mostly
1899 happens with circular references (thanks to Phillipe Gramoulle
1900 for finding an sample set of messages, and Alfons for the patch).
1904 * src/pop3.c: pop3_get_uidl_table(): return empty hash table even if
1905 UIDL list is not found (fixes inability of initial retrieval).
1909 * src/main.c: added the option '--status-full' which shows the status
1910 of each folder specified. The option '--status' also takes
1911 following arguments for folders (thanks to Yuri Arapov).
1912 * src/folder.[ch]: folder_get_status(): new. it takes the array of
1913 folders as the argument and returns their status.
1914 folder_count_total_msgs(): removed.
1924 src/inputdialog.c: use gtk_main_iteration() instead of gtk_main()
1925 to prevent abort when a button is double-clicked.
1929 * src/addr_compl.c: invalidate_address_completion(): check if
1930 g_completion_list is NULL (thanks to Kazuhiro NISHIYAMA).
1934 * src/pop.c: pop3_session_recv_data_finished(): fixed a bug that
1935 deleted messages that is to be kept on server (thanks to Tristan
1945 sock_set_io_timeout(): new. It sets the timeout interval.
1946 sock_gdk_input_add(): removed since it's not used anymore.
1947 * src/prefs_common.[ch]: added an option to set the timeout parameter.
1951 * src/action.c: fixed a bug that didn't hide user string in
1952 create_io_dialog() (thanks to Markus Amersdorfer).
1953 Removed ChildInfo::type and added Children::action_type.
1957 * src/inc.c: inc_start(): ask every password before retrieving.
1958 Don't popup the redundant error dialog.
1960 inc_all_account_mail()
1961 inc_progress_dialog_set_list(): separated account list display
1962 into a new function.
1963 inc_progress_dialog_set_label()
1964 inc_recv_data_finished()
1965 inc_recv_message(): properly update the dialog when RETR finished.
1970 imap_modified_utf7_to_locale()
1971 imap_locale_to_modified_utf7(): fixed compilation failure when not
1976 * src/procmime.c: procmime_scan_multipart_message(): fixed parsing
1977 of message/rfc822 parts.
1981 * src/pop.c: pop3_ok(): detect timeout error.
1985 * src/imap.c: imap_locale_to_modified_utf7(): fixed the encoding bug
1986 when locale strings include '+'.
1987 imap_modified_utf7_to_locale()
1988 imap_locale_to_modified_utf7(): at least escape/unescape '&' even
1989 if iconv() is not supported.
1994 compose_insert_sig()
1995 compose_get_signature_str(): include separator in signature string.
1996 Don't insert separator if signature file is not found.
1997 Disabled use of implicit default signature path (~/.signature) when
2007 src/quote_fmt_parse.y
2008 src/smtp.c: suppress warnings that gcc-3.3 issues.
2009 src/stringtable.c: use string_entry_free().
2013 * src/compose.c: compose_insert_sig(): fixed the bug that always
2014 appended signature separator if signature file was not found.
2015 compose_get_signature_str(): fixed the bug that caused crash if
2016 signature file cannot be opened.
2024 * src/session.c: session_recv_msg(): removed debug print.
2031 imap_cmd_fetch(): check for data size that servers return (fixes
2032 vulnerability found in BugTraq).
2036 * src/addr_compl.c: get_complete_address()
2037 src/addressbook.c: addressbook_format_address()
2038 src/compose.c: QUOTE_IF_REQUIRED(): quote if name contains
2039 characters that is not defined in atext (RFC 2822, 3.2.4. Atom).
2040 * src/main.c: main(): set colormap and visual to solve color problem
2041 in Solaris (thanks to Markus Schwarzenberg).
2049 * src/prefs_account.c: temporarily removed POP before SMTP option.
2053 * src/prefs_common.[ch]: changed the description of "Open message when
2054 cursor keys are pressed on summary".
2055 * src/summaryview.c: summary_show(): open message when always_show_msg
2060 * src/logwindow.[ch]: restrict the maximum lines of the log messages
2061 to reduce the memory usage.
2065 * src/compose.c: compose_insert_sig(): fixed a crash when signature
2066 string contains illegal sequence.
2067 * src/utils.[ch]: changed get_wcs_len() to get_mbs_len() for accuracy.
2071 * major refactoring of MIME structure.
2072 * src/procmime.c: procmime_scan_message(): decrypt message if
2073 gpgme is enabled. Create multipart tree only if content-type is
2074 multipart/* or message/rfc822.
2075 procmime_scan_multipart_message(): fixed the scanning of
2076 message/rfc822 part.
2077 * src/action.c: parse_append_msgpart()
2078 src/messageview.c: messageview_show()
2079 src/mimeview.c: mimeview_show_message(): use procmime_scan_message()
2080 instead of procmsg_open_message() and procmime_scan_mime_header().
2081 mimeview_set_multipart_tree(): conform to the new MIME structure.
2082 * src/textview.c: textview_show_part(): removed unnecessary check.
2083 * src/procmsg.c: procmsg_open_message_decrypted(): fixed the file
2084 pointer when decryption failed.
2088 * src/ssl.c: ssl_init_socket_with_method(): replaced log_warning()
2089 by g_warning(), and log_print() by debug_print().
2090 * src/pop.[ch]: added an error code PS_NOTSUPPORTED, and retry with
2091 LAST if UIDL is not supported.
2095 * src/codeconv.c: conv_get_code_conv_func(): convert to EUC-JP only
2096 if it is the current locale encoding when dest_charset_str is NULL.
2100 * src/action.c: execute_actions(): fixed crash when no text widget
2101 is selected (thanks to Paul and Melvin).
2103 src/prefs_actions.c: added missing reference to Claws team in the
2110 session_send_data(): fixed a memory leak and data sending bug.
2111 * src/send_message.c:
2112 send_message_smtp(): fixed focus management.
2116 * src/smtp.[ch]: set the response string to SMTPSession::error_msg
2118 * src/send_message.c: show error dialog if error occurred.
2119 * src/main.c: send_queue()
2120 src/mainwindow.c: send_queue_cb(): don't show error dialog here.
2124 * src/session.c: session_close(): kill child process only if
2125 state is not SESSION_DISCONNECTED.
2126 * src/send_message.c: send_cancel_button_cb()
2127 src/inc.c: inc_cancel(): don't set Session::state to
2128 SESSION_DISCONNECTED.
2129 * src/prefs.[ch]: modified the names of prefs_write_*().
2130 * src/address.[ch]: removed.
2134 * src/compose.c: compose_template_apply(): overwrite recipients.
2138 * src/procheader.c: procheader_date_parse(): removed debug print.
2139 * src/session.c: changed every g_print to debug_print.
2140 session_child_input(): removed unrequired session_close() (it'll
2141 be closed anyway after returning FALSE).
2142 * src/send_message.c: send_message_smtp(): changed g_print to
2147 * src/procheader.c: procheader_procheader_date_parse(): don't add
2148 local timezone offset if timezone is unknown.
2149 Made the Y2K workaround code to follow RFC 2822.
2150 procheader_scan_date_string(): workaround for date strings which
2151 don't have timezone specification.
2152 * src/utils.c: remote_tzoffset_sec(): return -1 if timezone is
2157 * src/action.[ch]: refactored. Also fixed a bug on MIME mode, and
2158 some memory leaks on error.
2159 action_update_msgview_menu(): new.
2160 * src/messageview.[ch]: added "Tools/Actions" menu. Keep window list.
2161 messageview_get_selected_mime_part(): returns MimeInfo of selected
2162 part when MessageView is in MIME mode.
2163 * src/mimeview.[ch]: mimeview_get_selected_part(): returns MimeInfo
2165 * src/summaryview.[ch]: summary_get_selected_msg_list(): returns
2166 MsgInfo list of selected messages.
2170 * src/prefs_filter.[ch]: include original message's headers as
2171 the preset keywords. Modified the sizes of the widgets.
2172 * src/utils.[ch]: added str_case_equal() and str_case_hash() for
2173 case-insensitive hash.
2177 * src/procmsg.c: procmsg_get_filter_keyword(): added X-Sequence to
2178 auto-detected headers.
2182 src/mainwindow.c: modified function names.
2183 get_user_string(): Use input_dialog() instead of its own
2188 * src/codeconv.[ch]: conv_encode_header(): don't include '(' and ')'
2189 in encoded strings if addr_field is TRUE.
2190 * src/compose.c: compose_convert_header(): added a flag 'addr_field'.
2194 * src/prefs_actions.[ch]: separated action execution routine into
2199 * src/prefs_actions.c: minor code cleanup.
2203 * src/codeconv.[ch]: conv_iconv_strdup(): fixed the handling of
2209 inc_recv_data_progressive()
2210 inc_recv_data_finished()
2213 send_send_data_progressive()
2214 send_send_data_finished(): added assertion.
2218 * src/codeconv.[ch]: conv_iconv_strdup(): fixed potential memory
2223 * src/codeconv.[ch]: conv_iconv_strdup(): don't include nul character
2224 in source buffer since it messed up some encoding conversion (like
2229 * src/procmsg.c: procmsg_get_filter_keyword(): unfold headers and
2230 extract ID from List-Id header.
2231 * src/utils.[ch]: extract_one_parenthesis_with_skip_quote(): removed.
2232 extract_list_id_str(): extract ID string from List-Id header.
2236 * src/prefs_actions.c: merged from the claws branch. Fixes several
2237 bugs and adds some features.
2241 * src/compose.c: compose_parse_header(): fixed a bug that unnecessary
2242 linebreaks were included on reediting.
2244 src/pop.c: fixed typos: 'occured'.
2248 * src/compose.[ch]: implemented auto signature replacement on
2250 compose_insert_sig(): added a flag to replace current signature.
2251 compose_get_signature_str(): new. It returns signature string.
2252 compose_insert_command_output(): removed.
2253 compose_select_account(): call compose_insert_sig() on account
2255 compose_destroy(): fixed a memory leak of UndoMain object.
2256 Compose::sig_str: new. It stores current signature string.
2257 * src/gtkutils.[ch]: gtkut_stext_find(): new.
2258 Renamed gtk_stext_clear() to gtkut_stext_clear().
2259 * src/utils.[ch]: get_wcs_len(): returns wide-character length of
2261 normalize_newlines(): converts CR+LF and CR into LF.
2262 get_command_output(): returns command output.
2266 * src/procmsg.[ch]: procmsg_get_filter_keyword(): new. It returns
2267 filter keyword for messages.
2268 * src/summaryview.c: summary_filter_open(): use
2269 procmsg_get_filter_keyword().
2270 * src/messageview.c: create_filter_cb(): implemented.
2276 inc_put_error(): display server responses on error.
2277 * src/pop.[ch]: added Pop3Session::error_msg, and set server responses
2282 * src/messageview.[ch]: separated the forced charset of message view
2283 in separate window from the main window.
2285 textview_show_message()
2286 textview_show_part()
2287 textview_add_part(): use MessageView::forced_charset if specified.
2291 * src/mainwindow.c: modified File menu a bit.
2292 * src/menu.[ch]: added functions to handle item factory rc strings.
2293 * src/messageview.[ch]: added a menu, and made it take over main
2294 window's menu shortcuts.
2295 added msginfo which is duplicated on display to MessageView.
2296 * src/prefs_common.c: prefs_keybind_apply_clicked(): use
2297 menu_factory_clear_rc().
2301 * send_message.c: send_message_smtp():
2302 re-enabled forcing of SMTP AUTH method.
2303 Clear temporary password if authentication failed.
2304 * smtp.c: output warning to log and set SMTPSession::error_val
2306 * smtp.h: changed error value to enum. Added SMTPSession::error_val.
2307 * src/mbox.c: proc_mbox(): force updating of folder.
2311 * src/pop.h: changed error value to enum.
2312 * src/pop.c: pop3_retr_recv(): return PS_IOERR when inc_drop_message()
2314 pop3_ok(): return appropriate error value based on current state.
2315 Output warning to log if error occurs.
2320 src/news.[ch]: refactored. Remove NNTPSockInfo and use NNTPSession
2325 * src/inc.c: inc_pop3_session_do(): retrun appropriate error if
2326 Session::state == SESSION_ERROR.
2327 * po/POTFILES.in: removed src/automaton.c and src/send.c.
2328 Added src/send_message.c.
2333 src/session.c: fixed breakage of POP3 retrieval.
2334 session_recv_data_from_sock_unescape(): read until terminator
2335 appears and also return the actual size.
2339 * src/automaton.[ch]: removed.
2340 * src/session.c: removed some of the debug output.
2341 * src/smtp.c: smtp_session_recv_msg(): workaround in case server
2342 returns EHLO-style response to HELO command.
2343 Ignore all multiline responses except for EHLO since they are
2344 allowed for any command.
2349 src/pop.c: fixed retrieval of messages which contain dot-escaped
2351 session_recv_data(): added a flag for unescape.
2352 session_recv_data_from_sock_unescape(): new. It receives message
2353 for each line and unescapes dot-escaped lines.
2354 Removed the previous workaround.
2355 * src/defs.h: decreased UI_REFRESH_INTERVAL to 40 msec.
2359 * src/pop.[ch]: workaround for brekage of retrieval when given size
2360 and actual one is different.
2364 * src/pop.c: pop3_retr_eom_recv(): ignore invalid end of message
2365 since some servers sometimes return incorrect message size.
2366 * src/news.c: news_session_new(): zero clear NNTPSession object.
2367 Don't initialize Session::sock with nntp_sock->sock to prevent
2368 double-free of SockInfo.
2369 * src/imap.c: zero clear IMAPSession object.
2370 imap_cmd_append(): don't close SockInfo.
2374 * src/pop.c: pop3_session_recv_msg(): fixed STLS.
2379 src/pop.[ch]: reimplemented using new I/O system.
2380 * src/session.[ch]: session_recv_data(): new.
2381 session_send_data_to_sock()
2382 session_recv_data_from_sock(): decreased the frequency of progress
2387 * src/smtp.c: smtp_auth_recv(): fixed CRAM-MD5 authentication.
2391 * src/session.[ch]: session_start_tls(): new.
2392 session_recv_msg(): made it static.
2396 * implemented asynchronous network I/O.
2397 * src/session.[ch]: the interface to communicate with servers through
2400 src/send_message.[ch]: rewrote using new I/O system.
2401 * src/socket.[ch]: renamed *_write() to *_write_all(), and made
2402 *_write() as just a simple wrapper for write().
2403 * src/utils.c: get_outgoing_rfc2822_str(): new. It modifies the
2404 message to send with SMTP or NNTP.
2405 file_read_stream_to_str(): new.
2409 * src/textview.c: textview_button_pressed(): corrected the range of
2411 * src/compose.c: compose_wrap_line_all_full(): treat UTF-8 characters
2412 represented with more than 2 bytes as 2 character width and 2 bytes
2413 one as a single character width as a workaround for wrapping problem.
2417 * src/utils.c: subject_compare_for_sort(): allow null strings (fixes
2422 * implemented HTML link correctly.
2423 * src/html.[ch]: HTMLAttr, HTMLTag: new structure for attributes /
2425 html_get_tag(): new. It parses tag and returns HTMLTag object.
2426 html_parse_tag(): also parses <a> tags and 'href' attributes.
2427 * src/textview.c: textview_write_link(): new. It creates link string.
2431 * src/compose.c: compose_wrap_line_all_full(): fixed an infinite
2432 loop / crash bug (thanks to Darko Koruga).
2433 compose_write_to_file(): put correct charset element when
2434 conversion failed but want to send anyway.
2438 * src/headerview.c: headerview_show()
2439 src/textview.c: textview_write_line(): remove unreadable characters
2440 from displayed strings to prevent crashes on multi-byte
2442 * src/codeconv.[ch]: conv_unreadable_locale(): new. It was separated
2443 from conv_localetodisp().
2447 * src/procmsg.c: procmsg_cmp_by_subject()
2448 src/summaryview.c: summary_cmp_by_subject(): ignore Re: when
2451 subject_compare_for_sort()
2452 trim_subject_for_sort(): new.
2460 * src/defs.h: added -i option to the default sendmail command.
2464 * src/codeconv.[ch]: added missing character encodings and locales.
2469 procmsg_get_mark_sum()
2470 procmsg_open_mark_file()
2471 procmsg_read_mark_file(): take FolderItem instead of directory
2476 * src/codeconv.c: conv_encode_header(): fixed a bug that spaces
2477 which is on the wrap boundary would be lost when encoding long
2478 non-ascii strings (thanks to Sergey Vlasov).
2479 Don't force wrapping within a long word until it reaches hard line
2480 length limit (998 characters) (workaround for the breakage of
2481 long address list with no spaces).
2485 * src/prefs_account.c: fixed compile failure when using neither
2490 * src/codeconv.c: fixed UTF-8 locale support.
2491 conv_get_code_conv_func(): return conv_noconv if locale encoding
2492 is UTF-8. Return conv_latintodisp on ISO-8859-* to locale encoding
2494 conv_convert(): call conv_iconv_strdup() instead of
2495 conv_codeset_strdup().
2496 conv_codeset_strdup(): moved some codes into conv_iconv_strdup().
2500 * src/prefs_account.[ch]: added an option to use command output for
2502 * src/compose.c: compose_insert_sig(): use command output if
2504 compose_insert_command_output(): new.
2508 * src/main.c: main(): remove lock socket if sylpheed is not running
2509 when --status command is executed.
2510 lock_socket_remove(): new.
2514 * src/codeconv.c: conv_codeset_strdup(): don't convert if current
2515 codeset is US-ASCII (or POSIX).
2519 * src/codeconv.c: conv_iconv_strdup(): try to skip invalid characters
2520 and continue conversion.
2524 * src/summaryview.c: summary_selected(): always update widget
2529 * src/utils.c: tzoffset_sec(): fixed a bug that displayed wrong
2530 date in timezones more than GMT+12 or less than GMT-12.
2534 * src/prefs_common.[ch]
2535 src/sourcewindow.c: remember the size of source window.
2536 * src/md5.c: fixed a compile problem with gcc 3.3.
2540 * src/about.c: about_create(): modified the copyright notice.
2544 * src/colorlabel.c: don't use pixmaps for label color rect but draw
2545 rectangles so we can respect the color map of palette based visuals
2546 (fixes the long time crashes on Solaris - thanks to Alfons
2551 * src/procheader.c: procheader_date_parse(): made month string case
2553 * src/prefs_filter.c: prefs_filter_close(): fixed the crash when the
2554 selection list is empty.
2558 * src/quote_fmt_parse.y: removed gettext translatable strings.
2559 * src/unmime.c: unmime_header(): remove broken characters when
2560 code conversion failed.
2561 * src/codeconv.c: conv_encode_header(): fixed a bug that broken
2562 headers if long words more than 75 characters are entered.
2566 * src/prefs_account.c: prefs_account_receive_create()
2567 src/utils.c: to_human_readable(): made units translatable.
2571 * src/codeconv.c: isprintableeuckanji(): don't allow more than 0xf4
2572 at first byte (fixes abort() problem of glibc).
2573 * src/html.c: html_read_line(): remove characters which can't be
2574 displayed on the current locale.
2579 trim_subject_for_compare(): renamed from trim_subject().
2580 trim_subject(): new. It removes [...] or (...) at the beginning
2582 * src/prefs_folder_item.c
2584 added options for trimming summary / compose subject.
2585 * src/summaryview.c: summary_set_header(): trim subject if the folder
2587 * src/compose.c: compose_reply_set_entry(): trim subject if the folder
2593 LBREAK_IF_REQUIRED(): don't break lines before first word (fixes
2594 X-Face header problem).
2595 conv_encode_header(): allow up to 97 characters for one word.
2599 * src/filter.c: filter_match_condition(): fixed the bug that
2600 second condition ignored regex.
2601 * src/news.h: NewsGroupInfo: use guint for message numbers
2602 (fix count in grouplist dialog) (thanks to Thorsten Maerz).
2606 * src/codeconv.c: conv_encode_header(): fixed a segfault bug
2607 on code conversion failure.
2608 conv_get_charset_str()
2609 conv_get_charset_from_str(): optimized using hash table.
2613 * src/quote_fmt_parse.y:
2614 SHOW_MESSAGE_NO_SIGNATURE, SHOW_QUOTED_MESSAGE_NO_SIGNATURE:
2615 treat only "\n-- \n" as a signature separator.
2619 * src/gtkutils.[ch]: gtkut_ctree_node_prev(): new.
2620 * src/summary_search.c: summary_search_execute(): search collapsed
2626 conv_unreadable_latin(): include 0x7f as an unreadable character.
2627 conv_localetodisp(): don't remove 8bit characters by default.
2628 conv_get_current_charset()
2629 conv_get_outgoing_charset(): return ISO-8859-15 if "@euro" is
2630 appended at the last of locale name.
2631 * src/compose.c: compose_write_to_file(): show from and to encoding
2632 when code conversion failed.
2640 * src/procmsg.h: WRITE_CACHE_DATA(): little speed improvement
2641 (thanks to Colin Leroy).
2642 * src/mh.c: mh_get_msginfo(): added NULL check (thanks to Thorsten
2647 * src/textview.c: textview_write_line(): don't convert if conv is
2652 * src/codeconv.[ch]:
2653 renamed conv_guess_encoding() to conv_guess_ja_encoding().
2654 conv_localetodisp(): new. It removes unreadable characters from
2655 (assumed) current locale string.
2656 conv_codeset_strdup(): convert into ISO-8859-1 if dest_code is
2657 NULL and current locale encoding is US-ASCII.
2658 conv_get_code_conv_func(): return conv_ustodisp if US-ASCII is
2659 specified for destination charset.
2660 * src/textview.c: textview_write_line(): use conv_localetodisp()
2661 instead of strncpy2() if conversion failed.
2665 * src/codeconv.c: conv_iconv_strdup()
2667 imap_modified_utf7_to_locale()
2668 imap_locale_to_modified_utf7(): use ICONV_CONST macro to remove
2669 a warning on some systems.
2670 * src/codeconv.c: conv_iconv_strdup(): flush iconv() output and
2672 Return NULL instead of incomplete string if conversion failed.
2676 * src/summaryview.c: summary_execute(): select appropriate node
2677 if currently selected node is to be deleted.
2678 * src/gtkutils.[ch]: gtkut_ctree_node_is_selected(): new. Returns
2679 TRUE if the specified node is selected.
2683 * src/summaryview.c: summary_status_show(): fixed a occasional crash
2684 on deleting or moving.
2688 * src/codeconv.c: conv_unreadable_eucjp(): made the validity check
2689 of EUC-JP more accurate.
2690 isprintableeuckanji(): new. Use table for validity check of EUC-JP.
2702 * src/quoted-printable.c: qp_encode_line(): fixed linebreak
2703 duplication bug if the source string has CRLF.
2705 canonicalize_str(): new. Returns newly allocated canonicalized
2707 uncanonicalize_file(): new. Uncanonicalize (CRLF -> LF) text.
2708 uncanonicalize_file_replace(): new.
2709 * src/compose.c: always canonicalize body before processing, and
2710 uncanonicalize before returning.
2714 * src/procmime.c: procmime_get_encoding_for_charset(): prefer
2715 ENC_8BIT for Russian charsets.
2716 * src/compose.c: compose_write_to_file(): use base64 when signing
2721 * src/prefs_common.c: prefs_send_create(): added a description for
2722 the setting of Content-Transfer-Encoding.
2726 * src/codeconv.c: fixed locale_table for Russian locales (thanks to
2728 * src/procmime.c: procmime_get_encoding_for_charset(): return
2729 ENC_BASE64 for ISO-8859-5, KOI8-* and Windows-1251.
2730 * src/compose.c: compose_attach_append(): set correct Content-
2731 Transfer-Encoding for message/rfc822.
2732 compose_write_to_file(): enabled user-definable Content-Transfer-
2734 * src/prefs_common.[ch]: added an option for user-defined Content-
2739 * src/quoted-printable.[ch]: qp_encode_line(): fixed a bug if the
2740 line doesn't end with linebreak.
2744 * implemented quoted-printable encoding.
2745 * src/quoted-printable.[ch]: qp_encode_line(): new.
2747 compose_write_to_file()
2748 compose_write_attach(): implemented quoted-printable encoding.
2749 compose_attach_property_create(): enabled quoted-printable menu
2751 * src/procmime.c: procmime_get_encoding_for_charset(): return
2752 ENC_QUOTED_PRINTABLE for ISO-8859-* and CP125* charset.
2753 * src/Makefile.am: added $(LIBICONV) to sylpheed_LDADD for libiconv
2760 src/utils.[ch]: get_abbrev_newsgroup_name(): improved the way
2761 of abbreviation of newsgroup name.
2765 * configure.in: show the result of iconv detection.
2769 * src/codeconv.[ch]: made the transition from libjconv to iconv().
2770 conv_iconv_strdup(): new.
2774 src/prefs_common.c: replaced HAVE_LIBJCONV to HAVE_ICONV.
2780 src/prefs_folder_item.c: English fix (property -> properties).
2781 * src/prefs_filter.c: alert if entry is not saved.
2782 prefs_filter_dialog_to_filter(): new.
2786 * src/codeconv.c: conv_encode_header(): fixed a bug which output raw
2787 strings after linefeed.
2792 * src/codeconv.[ch]: code cleanup and optimization.
2793 conv_code_converter_new()
2794 conv_convert(): use functions obtained by conv_get_code_conv_func()
2795 when using libjconv.
2796 conv_codeset_strdup(): code cleanup.
2797 conv_get_code_conv_func(): added an argument for destination
2798 character set, and generalized.
2802 * src/codeconv.c: LBREAK_IF_REQUIRED(): break line only if some
2804 * src/compose.c: compose_convert_header(): remove trailing spaces.
2805 * src/customheader.c: custom_header_read_str(): strip the spaces
2807 * src/prefs_customheader.c: prefs_custom_header_clist_set_row():
2808 strip the spaces of name and value.
2816 * src/codeconv.c: conv_encode_header(): fixed a bug which will run
2817 into infinite loop when encountering invalid characters.
2821 * src/procmsg.[ch]: procmsg_sort_msg_list(): new. It sorts message
2823 * src/summaryview.c: summary_show(): removed summary_sort() because
2824 it is done inside folder_item_get_msg_list(). This will improve
2825 the performance of summary display.
2826 Sorted out the summary sort functions using macros.
2830 src/folder.[ch]: folder_item_get_msg_list(): return pre-sorted
2831 list if FolderItem::sort_key is set.
2832 Added SORT_BY_TO to FolderSortKey enum.
2833 * src/mainwindow.c: added "View/Sort/by recipient".
2841 * src/codeconv.c: conv_encode_header(): fix for redundant space on
2843 * src/compose.c: compose_convert_header(): always pass string to
2844 conv_encode_header() for line-breaking.
2848 * src/textview.c: textview_make_clickable_parts(): fixed incorrect
2849 parsing of email addresses.
2853 * src/defs.h: added DEFAULT_BROWSER_CMD.
2854 * src/mimeview.c: mimeview_view_file()
2855 src/prefs_common.c: prefs_other_create()
2856 src/utils.c: open_uri(): changed the default web browser to
2857 mozilla, and changed 'raise' command (which is undocumented)
2858 to 'new-window' in 'netscape -remote'.
2862 * src/compose.c: compose_send_control_enter(): fixed crash on
2863 Ctrl-Enter when Message/Send has no accelerator key (thanks to
2871 sort_summary_type_cb(): prevent unwanted processing on unchecking
2876 * src/main.c: process command line option before gtk_init() to
2877 enable remote operation without X (thanks to Ruslan N. Balkin).
2878 * src/codeconv.c: conv_encode_header(): fixed a potential buffer
2883 * src/Makefile.am: changed $(target_alias) to $(target_triplet)
2884 (the spec of autotools seems to be changed).
2888 * src/imap.c: get path separator using LIST command if server
2889 doesn't support NAMESPACE (based on the patch by Brian Sammon).
2890 imap_parse_list(): added an argument to return path separator.
2891 imap_get_namespace_by_list(): new.
2895 * src/addr_compl.c: add_address(): removed the debug print.
2896 * src/gtkutils.[ch]: gtkut_window_popup()
2897 src/mainwindow.c: main_window_popup(): applied the patch to fix
2898 the behavior of window popup from Sergey Vlasov (thanks!)
2899 * src/account.c: account_edit_create(): use signal_connect_after
2900 for row_move signal to fix the row position bug.
2901 account_row_moved(): scroll the CList half page.
2902 * src/prefs_filter.c: prefs_filter_row_move(): scroll the CList
2904 * src/summaryview.c: summary_reply(): use selection text only if
2905 the displayed message is selected (thanks to Sergey Vlasov).
2909 * src/codeconv.c: conv_encode_header(): reimplemented the routine
2910 of MIME header encoding. And use Q-encoding method if the current
2911 locale is single-byte one.
2912 * src/utils.[ch]: is_next_nonascii(): take multi-byte string instead
2913 of wide-character string. Consider control codes as non-ASCII.
2914 get_next_word_len(): new. It returns the length of next word.
2915 is_next_mbs(), find_wspace(): removed.
2916 * src/quoted-printable.[ch]: new.
2917 qp_decode_line(): decodes one QP line.
2918 qp_decode_q_encoding(): decodes Q-encoded string in MIME header.
2919 qp_get_q_encoding_len(): returns the length when a string is
2921 qp_q_encode(): Q-encode a string (RFC 2047).
2922 * src/unmime.c: moved the functions for quoted-printable to
2927 * src/send.c: send_message_local(): escape line that only have one
2928 dot character (postfix's sendmail command will stop there).
2932 * src/send.c: send_message_local(): don't escape first-dot line
2933 (thanks to Sergey Vlasov).
2937 * autogen.sh: added 'libtoolize --force --copy' to override the
2939 * acconfig.h: removed.
2940 * configure.in: increased minimal version of GPGME to 0.3.10.
2941 Fixed checking of XIM.
2943 ac/gnupg-check-typedef.m4: added an argument for comment.
2947 * src/imageview.[ch]: fixed conflicting declarations of
2948 imageview_show_image() (thanks to Thorsten Maerz).
2952 * src/compose.c: compose_entry_append(): don't add ", " on subject
2954 * src/codeconv.c: conv_get_outgoing_charset(): obtain outgoing
2955 charset from the table (currently disabled for non-Japanese locales).
2956 conv_get_current_locale(): also refer to LC_CTYPE.
2960 * README: added a description about hidden settings.
2964 * src/prefs_common.[ch]: reorganized the common prefs dialog.
2965 Made enable_hscrollbar and bold_unread hidden options.
2969 * src/quote_fmt_parse.y: fixed a parse error (thanks to Andreas Hinz).
2974 account_find_from_message_file()
2975 account_find_from_msginfo(): new. They find an account from the
2976 headers like 'From:', 'X-Sylpheed-Account-Id:', and 'AID:' in the
2979 compose_reedit(): restore messages' previous account on composition.
2980 compose_write_headers(): add 'X-Sylpheed-Account-Id:' header
2985 * src/compose.c: cleaned up the code using compose_entry_set()
2986 (don't use gtk_entry_set_text() directly).
2990 * src/imap.c: imap_parse_namespace(): fixed a memory leak.
2994 * updated autotools and libtool to the latest version.
2995 * configure.in: added AC_PREREQ(2.50).
2999 * src/textview.c: textview_set_font(): fix for message display in
3000 UTF-8 locales (thanks to Sergey Vlasov).
3004 * src/imageview.[ch]: imageview_show_image(): resize images to fit
3005 the window size if specified.
3006 * src/prefs_common.[ch]: added an option 'Resize attached images'.
3010 * refactoring for SMTP implementation.
3011 * src/session.h: added ui_func to Session.
3012 * src/smtp.[ch]: separated the connection routine from
3013 smtp_session_new() to smtp_connect().
3014 Changed the argument of every function other than smtp_ok() from
3015 SockInfo to SMTPSession.
3016 Call UI callback from each functions.
3017 * src/send.c: send_message_smtp(): separated the code for UI update
3018 into send_progress_dialog_update().
3022 * src/smtp.[ch]: separated smtp_auth() from smtp_from().
3023 * src/send.c: send_message_smtp(): call smtp_auth() and display
3024 the state to the dialog.
3028 * src/filter.c: strmatch_regex(): use extended regex (thanks to
3030 * src/main.c: main(): removed the code for assortrc -> filterrc
3032 * src/gtkutils.c: gtkut_font_load(): only use gdk_font_load() if
3033 current locale is C or POSIX.
3034 gtkut_stext_is_uri_string(): include "www." for URI string.
3035 * src/textview.c: textview_make_clickable_parts(): include "www."
3044 * src/textview.c: textview_add_part(): indicate signature status
3045 using different colors.
3049 * src/folder.c: folder_write_list_recursive(): escape
3050 To/Cc/Bcc/Reply-To strings.
3054 * src/codeconv.c: conv_encode_header(): enabled B-encoding of
3055 headers on locales other than Japanese when not using libjconv.
3059 * src/inc.[ch]: added INC_IO_ERROR to IncState. Also added its
3060 corresponding error message.
3061 inc_pop3_session_do(): set INC_IO_ERROR instead of INC_NOSPACE
3066 * src/prefs_account.[ch]: removed prefs_account_save_config() since
3068 * src/procmime.[ch]: removed procmime_mimeinfo_free() since
3069 procmime_mimeinfo_free_all() can be used in every case.
3073 * src/account.c: account_get_special_folder(): support F_INBOX, and
3078 * src/compose.[ch]: ComposeEntryType: changed COMPOSE_* to
3079 COMPOSE_ENTRY_*, and added
3080 COMPOSE_ENTRY_{REPLY_TO,SUBJECT,FOLLOWUP_TO}.
3083 compose_redirect(): added FolderItem to the arguments, and reflect
3084 settings in the item.
3085 compose_entry_set(): new.
3086 compose_entry_append(): code cleanup.
3087 compose_entries_set_from_item(): take ComposeMode in its arguments,
3088 and enabled FolderItem::use_auto_to_on_reply.
3089 * src/summaryview.c: summary_reply(): pass folder_item to
3090 compose_{reply,forward,redirect}().
3094 * src/gtkutils.[ch]:
3095 gtkut_font_load(): new. It automatically choose font or fontset
3097 gtkut_font_load_from_fontset(): new. It tries to load single font
3098 instead of fontset from a fontset string.
3102 src/summaryview.c: workaround for the problem that couldn't display
3103 8-bit characters in C or POSIX locale (use font instead of fontset).
3106 src/textview.c: made code cleanup using gtkut_font_load*().
3110 * src/mh.c: mh_get_msginfo(): set correct message number.
3114 * src/folder.[ch]: added a new virtual method Folder::get_msginfo().
3115 It returns a new MsgInfo associated to a message number.
3116 folder_item_get_msginfo(): new.
3117 * src/imap.[ch]: imap_get_msginfo(): new.
3118 * src/mh.[ch]: mh_get_msginfo(): new.
3119 * src/news.[ch]: news_get_msginfo(): new.
3123 * src/codeconv.c: conv_euctojis(): fixed a bug which will cause
3124 infinite loop if an invalid code appeared.
3128 * src/codeconv.c: conv_codeset_strdup()
3129 src/html.[ch]: html_read_line(): don't output conversion failure
3131 Added HTML_CONV_FAILED to the enum HTMLState.
3135 * implemented per-folder auto-set address (still in progress).
3136 * src/compose.[ch]: compose_new(): added FolderItem to its arguments,
3137 and set entries from it (if mailto is empty).
3138 compose_entry_append(): activate menu if required.
3139 compose_entries_set_from_item(): new.
3140 * src/folder.[ch]: added auto_to, use_auto_to_on_reply, auto_cc,
3141 auto_bcc, and auto_replyto to FolderItem, and renamed apply_sub to
3143 folder_build_tree(), folder_read_folder_func(),
3144 folder_write_list_recursive(): added the above members.
3145 * src/prefs_folder_item.[ch]: added auto-set addresses.
3146 * src/pop.[ch]: removed Pop3State::prev_folder.
3150 * src/compose.c: allow dropping files by also "moving" files from a
3151 file manager (thanks to Alfons).
3155 * compose_reply_set_entry(): made Reply-To have priority over
3156 List-Post on ML reply.
3160 * src/gtksctree.[ch]: gtk_sctree_set_anchor_row(): new.
3161 * src/summaryview.c: summary_step(): fixed a bug that lost the
3162 correct selection anchor.
3163 summary_key_pressed(): use gtk_sctree_select() instead of
3167 src/recv.c: differentiate disk full and socket errors
3168 (thanks to Colin Leroy).
3172 * src/account.c: account_edit_prefs(): removed unused variables.
3173 * src/compose.[ch]: separated WITH_QUOTE/WITHOUT_QUOTE flags in
3176 compose_reply_set_entry(): receive reply type with one argument.
3177 * src/summaryview.c: summary_reply(): reduced conditional branches.
3181 * src/compose.c: compose_redirect(), compose_reedit(): strip CR
3182 from line ends (thanks to Sergey Vlasov).
3183 * src/folderview.c: renamed 'Rescan folder tree' to 'Rebuild
3188 * src/folder.[ch]: added a virtual method Folder::remove_msgs().
3189 * src/imap.[ch]: implemented imap_remove_msgs() which expunges
3190 messages all at once.
3194 * src/account.[ch]: account_open(): new. It opens account prefs
3195 dialog and reflects to UI when finished.
3197 folderview_button_pressed()
3198 folderview_property_cb(): open account prefs dialog when the
3199 property of the root folder of remote account is requested.
3203 * src/account.c: account_destroy(): unref account information in
3205 * src/folder.[ch]: folder_unref_account_all(): new. It unref the
3206 specified account information in all folders.
3208 folderview_rm_imap_server_cb()
3209 folderview_rm_news_server_cb(): destroy Folder first because
3210 folder_destroy() refers to account information.
3214 * src/account.c: account_find_from_item(): fixed a bug which didn't
3215 select the correct account.
3216 * inc_pop3_session_do():
3217 fixed the resource leak when SSL initialization failed.
3218 Immediately break from temporary event loop if cancelled.
3222 * src/account.[ch]: account_find_from_item(): new.
3224 compose_reply(), compose_forward(), compose_redirect()
3225 src/mainwindow.c: compose_cb(): select optimal account when
3227 * src/folder.[ch]: added FolderItem::apply_sub.
3228 * src/menu.[ch]: menu_find_option_menu_index(): new. It finds the
3229 index of option menu which contains the specified data.
3230 * src/prefs_folder_item(): added Compose tab, and the setting of
3235 * configure.in: added $LDAP_LIBS for lber library detection.
3243 * src/procmsg.c: procmsg_msginfo_get_full_info(): fixed a memory
3244 leak, and added error checking.
3248 * src/compose.[ch]: added a flag Compose::use_newsgroups, and
3249 removed Compose::orig_account.
3250 compose_check_for_valid_recipient(): check only enabled entries.
3251 compose_write_headers()
3252 compose_redirect_write_headers(): add Newsgroups header only
3253 when the entry is enabled.
3254 compose_send(): modified the method of finding a mail account
3255 from a news account so that it tries to match the From address.
3256 * src/send.c: send_message_queue(): enabled the queueing of news
3258 * src/news.[ch]: news_post_stream(): new.
3262 * configure.in: check lber first and use $LDAP_LIBS on the check
3267 * po/*.po: fixed many typos of format strings which will lead to
3268 crash (thanks to Sergey Vlasov).
3272 * src/procheader.c: procheader_parse_stream(): added Cc header
3273 to the target for full parsing.
3274 * src/procmsg.[ch]: procmsg_msginfo_get_full_info(): new. It
3275 returns the full message information from the given information.
3276 * src/compose.c: compose_reply(), compose_forward(): get full
3277 message information for Cc header.
3281 * src/inc.c: inc_account_mail(), inc_all_account_mail(): update
3282 IMAP4 and NNTP folder summary after checking those accounts.
3290 * src/prefs_common.c: prefs_compose_create(): modified the label
3291 of the option for Reply button.
3292 * configure.in: add -lldap and -llber to the 5th argument of
3293 AC_CHECK_LIB() for LDAP library detection.
3298 INSTALL.jp: updated.
3302 * src/mainwindow.c: toggle the behavior of Reply button between
3303 normal reply and reply-to-list.
3304 * src/prefs_common.[ch]: added an option to switch the function
3309 * src/compose.c: compose_new(): removed the workaround for XIM
3310 because it doesn't have any effect and only seems to cause
3315 * src/compose.[ch]: compose_reply(): added a flag for reply-to-ML.
3316 compose_parse_header(): parse also List-Post header.
3317 compose_reply_set_entry(): support reply-to-ML (fall back to
3318 normal reply if ML address is not found).
3321 src/summaryview.c: reorganized Reply menu and added 'Reply to
3323 * src/utils.[ch]: scan_mailto_url(): new. It scans mailto URL and
3324 returns newly allocated parameters.
3328 * src/account.c: account_read_config_all(): set account information
3329 to default before initializing with configuration file.
3330 * src/prefs_account.[ch]: prefs_account_new(): new. It returns a
3331 newly created account information structure initialized by
3332 the default settings.
3337 replace_address_in_edit(): check if newtext is NULL.
3338 completion_window_button_press(): fixed a memory leak.
3339 * src/pop.c: LOOKUP_NEXT_MSG(): don't expire messages whose
3340 recv_time is RECV_TIME_KEEP.
3341 pop3_getrange_uidl_recv(): only set get_all flag if
3342 ac_prefs->getall is set.
3343 pop3_retr_recv(): don't delete messages which are not received
3344 by filter, and set recv_time to RECV_TIME_KEEP in the case.
3345 * src/pop.h: added an enum RecvTime.
3346 * src/inc.c: inc_drop_message(): unlink temporary message file if
3347 not received by filter.
3351 * src/mainwindow.c: added 'Edit/Select thread' menu.
3352 * src/summaryview.[ch]: added 'Select thread' to the context menu.
3353 summary_select_thread(): new. It selects all messages of current
3358 * src/rfc2015.c: check_signature(): corrected error handling and
3363 * src/rfc2015.c: check_signature(): correctly remove the last empty
3364 line, and canonicalize the file part before verifying (this should
3365 fix incompatibility with Evolution or some other MUAs).
3366 * src/utils.[ch]: copy_file_part(): new. It copies the specified
3367 range of file stream to another file.
3371 * src/compose.c: compose_write_to_file(): force BASE64 encoding for
3372 8-bit text when signing (thanks to Colin Leroy).
3376 * src/prefs_common.c: prefs_send_create(): fixed the charset string
3377 for Cyrillic (Windows-1251).
3385 * src/codeconv.c: changed the charset for ru_RU.CP1251 to
3386 Windows-1251. Added bg_BG locale.
3390 * src/compose.c: account_activated(): change the state of menu items
3391 and entries according to the selected account.
3392 compose_select_account(): new. It changes the state of title bar,
3393 menu items and entries.
3397 * src/inc.c: inc_mail(): correct new_msgs when inc_spool() returned
3399 Don't refresh summary view on fetching when open_inbox_on_inc is
3404 * src/summaryview.c: summary_show(): refresh even if open_inbox_on_inc
3405 is set (to avoid summary refresh problem).
3406 * src/imap.c: removed warnings by checking the existence of directory
3407 before calling remove*_numbered_files().
3411 * src/prefs_common.c: corrected English.
3415 * src/prefs_common.[ch]: added an option: "Mark messages as read
3416 only when opened in new window".
3421 folder_tree_destroy()
3422 folder_write_list_recursive(): added sanity check.
3423 * src/imap.c: imap_scan_tree(): if folder->node is NULL and
3424 can't get session, create empty folder node (based on the
3425 Alfons' suggestion).
3429 * src/textview.c: textview_key_pressed(): pass GDK_Delete event to
3431 * src/summaryview.c: summary_key_pressed(): scroll correct TextView
3436 * src/news.c: news_scan_group(): fixed wrong message number
3441 * major refactoring for POP3.
3442 * src/inc.[ch]: moved Pop3State, inc_pop3_state_new(),
3443 inc_pop3_state_destroy(), inc_get_uidl_table(), and
3444 inc_write_uidl_list() into pop.c.
3445 Moved Pop3State::folder_table and Pop3State::inc_state into
3448 inc_put_error(): added lockbusy state.
3449 inc_pop3_session_do(): obtain inc_state from Pop3State::error_val.
3450 inc_cancel(): don't terminate the automaton here but just set
3451 the flags to prevent crash.
3453 pop3_getauth_pass_recv()
3454 pop3_getauth_apop_recv(): check lockbusy state.
3455 pop3_retr_recv(): check Pop3State::cancelled flag.
3456 * src/automaton.[ch]: added 'cancelled' flag to Automaton.
3457 automaton_input_cb(): terminate if cancelled flag is true.
3458 * sylpheed.desktop: changed Type=Internet to Type=Application.
3459 Added Categories=Application;Network;.
3465 src/progressdialog.c: show detailed information to the status
3467 Added cur_total_recv_bytes to Pop3State.
3468 * src/prefs_common.[ch]: added an option to specify whether to
3469 close receive dialog when finished.
3473 * src/folder.[ch]: folder_get_path(): new. It returns the root path
3477 imap_folder_destroy()
3479 imap_remove_all_msg()
3480 news_folder_destroy(): remove cache directories / files when
3481 deleting Folder / messages.
3485 is_file_entry_exist(): check if the argument is NULL.
3487 remove_numbered_files()
3488 remove_expired_files(): fixed memory leaks on error.
3497 src/smtp.[ch]: made Folder and Session destructor virtual method.
3501 * src/compose.c: do joining of normal lines only when auto-wrapping.
3502 * src/main.c: modified the warning message for GnuPG.
3503 * src/about.c: about_create(): modified the compiled-in features
3505 * configure.in: improved LDAP library checking (thanks to Alfons).
3515 compose_wrap_line_all(): backed out the change to join lines that
3520 * configure.in: require at least gpgme-0.3.5.
3524 * src/alertpanel.c: alertpanel_create(): minor modification.
3533 * src/alertpanel.c: alertpanel_create(): modified the layout.
3534 * src/rfc2015.c: check_signature(): don't abort on error.
3538 * src/compose.c: compose_wrap_line_all(): freeze widget only if
3539 required to repress flickers.
3543 * src/compose.c: improved line wrapping.
3545 compose_wrap_line_all(): also join lines that are not indented.
3546 dump_text(): handle multi-byte strings correctly.
3550 * src/compose.c: compose_wrap_line_all(): fix for auto-wrapping
3551 (go to next line when space is entered at line limit).
3555 * src/inc.c: inc_get_uidl_table(): fixed a memory leak reported by
3560 * src/mh.c: mh_scan_tree_recursive(): disabled Maildir folder
3561 checking to prevent confusion.
3565 * src/folder.[ch]: folder_item_get_msg_list(): added a wrapper for
3566 method Folder::get_msg_list().
3567 * src/account.c: account_edit_prefs(), account_delete(): use
3568 folderview_set_all() instead of folderview_rescan_all().
3569 * src/folderview.[ch]:
3570 folderview_check_new_all(): new. Updates all folders.
3571 folderview_rescan_tree(): confirm before executing.
3572 folderview_rescan_all(): commented out since it's not used anymore.
3573 folderview_update_item_foreach(): added a flag for summary update.
3574 * src/inc.c: inc_finished(): update summary only when
3575 prefs_common.scan_all_after_inc is set.
3576 inc_drop_message(): set mtime of target folder to 0 to force
3577 the updating of summary.
3578 inc_start(), get_spool(): update also summary when updating
3580 * src/mainwindow.c: changed 'File - Rescan folder tree' to
3581 'File - Check for new messages in all folders'.
3585 * src/compose.c: compose_write_to_file(): clearsign message body
3587 compose_clearsign_text(): new. Replaces the string with clearsigned
3589 * src/prefs_account.c: added an option for clearsign.
3590 * src/rfc2015.c: rfc2015_clearsign(): new.
3591 pgp_sign(): added a flag for clearsign.
3592 * src/utils.[ch]: get_tmp_file(): return newly allocated unique file
3593 name (needs to be freed by caller).
3594 str_write_to_file(), file_read_to_str(): new.
3598 * src/procmsg.c: procmsg_read_mark_file(): check key duplication
3599 to avoid memory leak.
3603 * src/base64.c: include string.h for memcpy().
3604 * src/gtksctree.c: use macro ABS() instead of function abs().
3605 * src/prefs_account.c
3606 src/prefs_common.c: renamed 'send' to 'p_send' so as not to
3607 conflict with the function send() in sys/socket.h.
3608 * src/mainwindow.c: commented out the unnecessary functions.
3609 * src/utils.c: canonicalize_file_replace(): correct warning message.
3613 * src/utils.[ch]: get_tmp_file(): new. Returns the directory for
3614 temporary files in ~/.sylpheed/.
3615 * src/main.c: create temporary directory in ~/.sylpheed/.
3617 src/inc.c: create temporary files in ~/.sylpheed/, and modified
3619 compose_exec_ext_editor(): fixed a bug that failed to create the
3620 temporary file if g_get_tmp_dir() returned directory other than
3625 * src/utils.c: copy_file(): check if dest_bak != NULL when unlinking.
3629 * src/utils.[ch]: canonicalize_file_replace(): fixed a bug that fails
3630 to replace the file when the given file and temporary file are not
3631 on the same filesystem.
3632 copy_file(): added a flag whether to keep backup.
3633 move_file(): added a flag whether to overwrite the destination file.
3637 * src/socket.[ch]: fixed the linking failure when IPv6 is enabled.
3638 * src/select-keys.c: modified key selection dialog.
3642 * src/socket.[ch]: my_gethostbyname(): new.
3643 * src/utils.c: get_domain_name(): return FQDN instead of short
3644 hostname (thanks to Bob Woodside).
3645 * src/template.c: made the debug messages less verbose.
3649 * src/prefs_common.[ch]: removed obsolete default sign key setting.
3650 * src/utils.c: canonicalize_file(): correct the error check of
3655 * src/compose.c: compose_write_to_file():
3656 canonicalize line endings before encrypting/signing (this will fix
3657 interoperability with other MUAs).
3658 Removed unnecessary strdup.
3659 Don't encrypt/sign draft message.
3661 canonicalize_file(), canonicalize_file_replace(): new.
3663 src/select-keys.c: changed g_message() to debug_print() and
3665 * src/mimeview.c: mimeview_check_signature(): removed unnecessary
3666 MIME structure scanning.
3667 * src/textview.c: textview_add_part(): show signature status in
3670 src/sigstatus.c: modified translatable strings and some MIME
3675 * src/procmsg.c: procmsg_save_to_outbox(): don't forget to remove
3676 the temporary file when saving from queue.
3682 src/prefs_account.[ch]
3683 src/prefs_common.[ch]: merged GnuPG stuff from the claws branch.
3684 Modified some messages.
3688 * src/textview.c: textview_scan_header(): fixed a memory leak
3693 * src/prefs_actions.c: execute_actions(): put create_io_dialog()
3694 in right conditional block.
3698 * src/compose.c: compose_wrap_line_all(): fixed character buffer
3704 log_error(): add time stamp to log messages.
3709 corrected a typo (HAVE_SYS_SELECT -> HAVE_SYS_SELECT_H)
3713 * src/socket.c: implemented socket I/O timeout.
3715 * src/pop.c: check errors and return error value correctly.
3719 * src/prefs_actions.c: made the action's input/output dialog display
3720 without delay. Made the dialog modal instead of making window
3721 insensitive. Also cleaned up its UI.
3725 * implemented --attach command line option.
3727 Cmd::attach_files: new member to store file paths.
3728 parse_cmd_opt(): added --attach option. --compose option is implied.
3729 prohibit_duplicate_launch()
3730 lock_socket_input_cb(): added "compose_attach" message.
3733 src/textview.c: renamed compose_new_with_recipient() to
3734 compose_new(), and added an argument for attachment files.
3738 * src/logwindow.c: freeze GtkText widget while hidden.
3739 log_window_append(): changed the header for message and warning.
3743 * src/news.c: implement automatic cache expiration.
3744 news_delete_expired_caches(): new.
3745 news_get_article_list(): fixed a bug that nonexistent messages
3746 were not removed from list.
3747 * src/procmsg.[ch]: procmsg_get_last_num_in_msg_list(): renamed
3748 procmsg_get_last_num_in_cache().
3749 * src/utils.[ch]: remove_expired_files(): new.
3754 inc_mail(): force summary refresh when using external command for
3756 inc_all_account_mail(): fixed a bug on spool checking failure.
3767 src/editldap_basedn.c
3769 src/prefs_common.c: fixed memory leaks which didn't free strings
3770 gtk_editable_get_chars() returned. And minor code cleanups.
3772 src/vcard.h: removed C++-style comments.
3776 * src/codeconv.c: conv_encode_header(): fixed a problem in encoding
3777 strings which include both multi-byte and us-ascii characters.
3781 * src/utils.c: remove_numbered_files(): don't try to unlink()
3784 conv_get_code_conv_func(): return conv_anytodisp() if charset is
3786 conv_unmime_header_overwrite()
3787 conv_unmime_header(): do conv_anytodisp() before decoding header.
3795 * src/compose.c: added 'Tools/Actions' menu.
3799 * src/base64.c: a minor fix for BASE64VAL() macro.
3803 * src/base64.c: base64_decode(): fixed a buffer overrun bug.
3811 src/base64.[ch]: rewrote the BASE64 encode / decode routines.
3812 base64_encode(), base64_decode(): new.
3813 * src/rfc822.[ch]: removed.
3815 src/about.c: removed the copyright notice for fetchmail.
3821 src/unmime.[ch]: rewrote the MIME decode routines.
3823 unmime_quoted_printable_line(): new.
3825 procheader_get_one_field()
3826 procheader_get_unfolded_line(): remove also CR.
3830 * libkcc: removed from the source tree.
3832 src/about.c: removed the copyright notice for libkcc.
3833 * src/codeconv.c: conv_guess_encoding(): check for ASCII code first
3835 * src/prefs_actions.c: removed unnecessary spaces/tabs.
3839 * src/prefs_actions.c: comply with the coding style.
3840 Modified the UI design.
3841 * src/mainwindow.c: main_window_set_menu_sensitive(): enable Actions
3842 menu when multiple messages are selected.
3846 * src/prefs_actions.[ch]: merged the 'Actions' feature from claws.
3847 update_actions_menu(): simplified the menu deletion.
3848 * src/mainwindow.c: added 'Actions' menu to Tools and Configuration.
3852 * src/codeconv.[ch]: implemented conv_jistoeuc(), conv_euctojis(),
3853 conv_sjistoeuc(), and conv_guess_encoding(). Removed the dependency
3858 * configure.in: added check for strchr.
3862 * src/prefs_common.[ch]
3863 src/inc.c: added an option to inhibit receive error dialog.
3867 * src/account.c: account_find_from_address(): support multiple
3868 addresses in header.
3872 * src/gtksctree.[ch]: changed GtkSCTree::anchor_row from gint to
3873 GtkCTreeNode* so that it won't become invalid after the row move.
3874 Removed dependency to gtkutils.c.
3875 * src/prefs_common.[ch]
3876 src/summaryview.c: summary_selected(): added an option to show
3877 message when cursor keys are pressed on summary view.
3883 src/compose.c: changed "host_alias" to "target_alias" so that it
3884 shows the correct system name on cross-compiling (thanks to
3889 * src/prefs_account.[ch]: added the option menu to force an
3890 authentication method for SMTP AUTH.
3892 src/smtp.[ch]: smtp_from(), smtp_auth(): added an argument to
3893 specify the authentication method for SMTP AUTH.
3894 smtp_ehlo(): allow AUTH responses that don't comply with the RFC.
3898 * src/prefs_common.[ch]
3899 src/compose.c: enabled "Wrap on input".
3903 * src/summaryview.[ch]
3904 src/mainwindow.c: added "Go to/{Prev,Next} new message" menu.
3905 Made some code cleanups.
3910 src/prefs_common.[ch]: added the hidden option to specify the
3911 policy of the vertical scrollbar on folder view.
3915 * src/messageview.[ch]:
3916 messageview_copy_clipboard(): fixed a bug that couldn't copy text
3918 messageview_get_current_textview(): new.
3919 messageview_get_text_widget(): removed.
3920 * src/quote_fmt_parse.y: quote message even if msginfo is empty.
3921 * src/compose.[ch]: implemented the "Paste as quotation" feature.
3922 text_inserted(): new callback for "insert_text" signal.
3923 Add quote mark to the pasted text if Compose::paste_as_quotation