3 * src/compose.c: compose_write_file(): force transfer encoding to
4 protect trailing spaces for PGP signing (fixes incompatibility
5 between gnupg 1.2 and 1.4) (thanks to Thorsten Maerz).
9 * INSTALL, INSTALL.jp: modified description about gpgme.
17 * src/select-keys.c: use_untrusted(): modified to use alertpanel().
21 * supported gpgme-1.0 (thanks to Toshio Kuratomi).
25 * src/passphrase.c: gpgmegtk_passphrase_cb(): Removed unused variables:
26 passphrase_cb_info_s *info and gpgme_ctx_t ctx. The
27 passphrase_cb_info_s * was just to get the ctx. The ctx is no longer
28 needed as gpgme1.0 returns a blank line as the passphrase when an
29 action is cancelled instead of calling gpgme_cancel on the context.
31 - sig_status_full(): Get rid of gpgme_error_t err as we no longer
32 invoke ant gpgme functions that can return an error.
33 - check_signature(): Initialize verifyresult to NULL and be sure it
34 has been set when using it to get a result string.
35 - rfc2015_create_signers_list(): gpg_error_t is not directly
36 comparable to the error types. Use gpgme_err_code(err) to get the
37 type of error we are dealing with.
38 - pgp_sign(): Initialize result to NULL. Catches potential bug on
39 error condition later in the function.
41 + Initialize bytesRW to -1 which may prevent potential bugs on
43 + Remove siginfo. It was replaced by micalg.
45 - set_row(): When creating the string for the algorithm type, use a
46 normal int rather than a long int.
47 - fill_clist(): Use gpgme_err_code(err) to get type of error as
48 gpg_error_t is not directly comparable to GPG_ERR_* constants.
49 - select_btn_cb(): Remove char *s that temporarily holds the key
50 fingerprint as keylists are now built without using this.
51 - cmp_email(): Remove an extraneous return statement that was left in
52 accidentally when the new code went in above it.
58 - use_untrusted(): New function that creates a dialog to ask the user
59 whether to encrypt with an untrusted key.
60 - trust_key_cb(): Callback to use if the user wants to encrypt with
62 - do_not_trust_key_cb(): Callback to use if the user doesn't want to
63 encrypt with an untrusted key.
64 - select_btn_cb(): Utilize the use_untrusted function to make sure
65 the user wants to encrypt with an untrusted key.
66 * src/rfc2015.c: pgp_encrypt(): Use GPGME_ENCRYPT_ALWAYS_TRUST when
67 encrypting. It is the responsibility of gpgmegtk_recipient_selection
68 to make sure the user knows if recipients are untrusted.
73 - Add a new color entry for untrusted but valid signatures.
74 - textview_add_part(): Color untrusted signatures.
76 - Move sigstatus_to_string() and sig_status_with_name() functionality
77 into sigstatus.c: gpgmegtk_sig_status_to_string().
79 - gpgmegtk_sig_status_to_string(): Add a boolean name argument that
80 allows us to specify the output should display name information
81 or just a status string.
82 + Check if a signature was created by a trusted key and add that
83 information to the output of the function.
84 - Switch to the new gpgmegtk_sig_status_to_string function.
86 - Change the interface to gpgmegtk_sig_status_to_string().
91 - rfc2015_find_signature(): Changed to return an array of two
92 MimeInfo structs. The first has the multipart/signed MimeInfo.
93 The second has the signature part of the MimeInfo. This allows
94 us to work with messages that contain some mime information that
95 was signed and some that was not (as generated by mailman
97 - rfc2015_find_signature(): If the toplevel Content-Type is
98 multipart/mixed, recursively scan through the subparts for a
99 multipart/signed block.
100 - rfc2015_check_signature(): Use the new interface to
101 rfc2015_find_signature and free the data returned to us from it.
102 * src/rfc2015.h: Change the signature for rfc2015_find_signature().
103 * src/mimeview.c: Use the new interface to rfc2015_find_signature()
104 and free the data returned from it.
108 * src/rfc2015.c: sig_status_for_key(): Fix a segfault when the key is
109 not found in the user's keyring.
113 * Ported the code to gpgme-1.0.
114 - Many types have had their names changed to conform to GNU
115 standards. For example, instances of GpgmeCtx have been changed to
116 gpgme_ctx_t. These cosmetic alterations are not noted below.
117 * configure.in: Enable large file support because the gpgme library is
119 - Update to require gpgme 0.4.5 or above.
120 * src/main.c: main(): replaced gpgme_check_engine with
121 several calls that do the equivalent in gpgme 0.4.5 and above:
122 gpgme_check_version, gpgme_set_locale, gpgme_get_engine_info,
123 and gpgme_get_protocol_name are used.
124 - Remove gpgme_register_idle callback. The gpgme library will now
125 block while processing instead of periodically allowing the gtk
126 mainloop to run. This can be fixed by interfacing to the gpgme
127 io callback interface if anyone has the ambition.
128 * src/passphrase.c: passphrase_mbox(), create_description(), and
129 gpgmegtk_passphrase_cb now take an exploded description of the
130 passphrase to look for since the gpgme library hands us the
131 description in seperate pieces.
132 - gpgmegtk_passphrase_cb(): has been changed to the new gpgme
133 passphrase callback signature -- notably writing the passphrase
134 to a file descriptor and returning a gpgme_error_t to indicate
136 * src/passphrase.h: Change to the signature of
137 gpgmegtk_passphrase_cb().
140 - Use gpgme_data_seek calls instead of deprecated gpgme_data_rewind.
141 - gpgme_data_read and gpgme_data_write have changed signature to be
142 more like fread/fwrite. Adapted code to use this.
143 - Convert to gpgme_key_t array from removed GpgmeRecipients.
144 - Use gpgme_signature_t's directly instead of GpgmeSigStat.
145 - sig_status_to_string() and sig_status_with_name(): changed to
146 use a gpgme_error_t instead of removed GpgmeSigStat.
147 - pgp_sign(): Calculate the micalg directly from knowledge of the
148 hash as it's no longer returned from a gpgme library function.
149 This obsoletes find_xml_tag() and extract_micalg() so they've
151 * src/select-keys.c: Adapt struct select_key_s to an array of
152 gpgme_key_t and the length of the array rather than a
153 GpgmeRecipients struct (which is removed.)
154 - gpgmegtk_recipient_selection now returns a gpgme_key_t NULL
155 terminated array instead of a GpgmeRecipients struct.
156 - Use values stored in the gpgme_key_t instead of looking up ATTRs
157 on the key as the ATTR methods are deprecated.
158 - Implement cmp_name() and cmp_email() as wholly separate functions
159 instead of using a common subfunction, cmp_attr() as there's no
160 longer a generic way of combining these two. Removed cmp_attr()
161 as ATTRs are deprecated.
162 * src/select-keys.h: gpgmegtk_recipient_selection signature changed.
163 * src/sigstatus.c: Get status information directly from the
165 - gpgmegtk_sig_status_to_string(): Uses a gpgme_error_t instead of
166 Removed GpgmeSigStat.
167 * src/sigstatus.h: gpgmegtk_sig_status_to_string signature has changed
172 * src/template.c: template_write_config(): fixed a memory leak.
176 * src/inc.c: inc_finished(): removed warning when updating a
177 folder item while no folder is selected.
183 src/procmsg.c: ignore 0-numbered message file. Don't use symbol
184 'fileno' used in stdio.h.
185 * src/messageview.c: messageview_show(): check if
186 procmsg_msginfo_get_full_info() succeeds (fixes crash when
187 opening 0-numbered message) (thanks to WAKAI Kazunao).
191 * src/template.c: template_write_config(): fixed potential memory
196 * src/pop.[ch]: added POP3_DONE to Pop3State (it is set when logout
198 pop3_write_uidl_list(): force output of UIDLs of deleted messages
199 when POP3 session is aborted (thanks to Masahiro Tomita).
203 * src/Makefile.am: use AM_CPPFLAGS and AM_YFLAGS instead of CPPFLAGS
204 and YFLAGS (they are reserved for users).
212 * src/account.c: account_delete(): fixed the crash on deleting a
213 remote account if the corresponding folder was selected (Debian BTS
218 * NEWS, TODO, TODO.jp: updated.
219 * manual/ja/sylpheed.sgml: updated.
223 * src/action.c: parse_append_filename(): escape all special characters
224 without quote (thanks to IWAMOTO Kouichi and Yoichi Imai).
230 INSTALL.jp: updated the confirmation list.
238 * src/compose.c: compose_wrap_line_all_full(): fixed the logic of
243 * manual/ja/sylpheed.sgml: updated.
253 src/vcard.c: removed '... defined but not used' warnings.
257 * src/compose.c: compose_wrap_line_all_full(): only insert space
258 when joining lines if the first character of the next line is not
259 space, or it's a boundary between multi- and single-byte characters.
263 * src/action.c: parse_append_filename(): escape special characters
264 (thanks to IWAMOTO Kouichi).
265 * src/utils.c: subst_for_filename(): also substitute single quote.
269 * src/compose.c: compose_wrap_line_all_full(): fixed joining line
270 problem when the first character of the next line is not
275 * src/main.c: send_queue()
276 src/mainwindow.c: send_queue_cb()
277 src/compose.c: compose_send(), compose_send_later_cb(): ask user
278 to switch to online if in offline mode when sending.
282 * src/imap.c: applied bitlength_clean_up.imap.c.patch that fixes the
283 integer length problem on 64-bit platforms (thanks to Alfons).
291 * src/pixmaps/regular.xpm: removed unused icon.
297 * src/pop.c: pop3_write_msg_to_file(): don't convert single CRs to
298 LFs (thanks to Alfons).
299 * src/utils.[ch]: my_memmem(): original implementation of memmem().
303 * manual/ja/sylpheed.sgml: updated for the latest version.
307 * src/pixmaps/unread.xpm: adjusted the hue of image.
311 * src/filter.c: removed C99 '//' comments.
315 * src/pixmaps/dir-close.xpm
316 src/pixmaps/dir-open.xpm
317 src/pixmaps/dir-noselect.xpm
318 src/pixmaps/group.xpm: adjusted the hue of images.
322 * src/pixmaps/dir-close.xpm
323 src/pixmaps/dir-open.xpm
324 src/pixmaps/dir-noselect.xpm
325 src/pixmaps/group.xpm: replaced with new images.
329 * src/pixmaps/folder.xpm: removed.
333 * src/summaryview.c: changed one-letter column titles to icons.
334 * src/pixmaps/mail.xpm: new.
338 * src/summaryview.c: summary_execute(): pop summary statusbar message.
342 * src/prefs_common.c: added Web browser commands.
346 * manual/ja/sylpheed.sgml: updated for the latest version.
347 * manual/ja/Makefile.am: added target 'update-html'.
352 INSTALL.jp: updated the confirmation list.
356 * src/jpilot.c: unify the coding style.
357 * src/mainwindow.c: fixed duplicated accelerator.
361 * src/procmsg.c: write_mark_func(): fixed bad cast on the system that
362 sizeof(gpointer) != guint.
366 * src/mainwindow.c: fixed English (trashes -> trash).
367 * src/prefs_common.c: prefs_keybind_apply_clicked(): updated menu
372 * src/mainwindow.c: changed the menu label "Empty trash" to
381 * src/pixmaps/error.xpm: made them smaller size to fit CList row.
385 * src/jpilot.c: applied the JPilot addressbook Japanese support
386 patch (thanks to IWAMOTO, Kouichi).
391 src/procmime.[ch]: use BASE64 encoding if the ratio of 8bit
392 characters in attaching text files is greater than 20%, otherwise
393 use quoted-printable (or 7bit if not at all).
397 * src/compose.c: compose_write_attach()
398 src/procmime.c: procmime_decode_content():
399 canonicalize text files before encoding to BASE64, and
400 uncanonicalize after decoding to conform with RFC 2045
401 (thanks to Nicolas Degory).
405 * src/pixmaps/complete.xpm
406 src/pixmaps/continue.xpm: made them smaller size to fit CList
411 * src/statusbar.c: statusbar_create(): set the width of widget to 1
412 not to expand automatically.
413 * src/utils.[ch]: trim_string_before(): trim beginning characters
414 longer than the specified length and add "...".
416 src/summaryview.c: use trim_string_before() to display folder name.
421 src/prefs_common.c: made mozilla-firefox as default browser.
425 * src/summaryview.c: summary_key_pressed()
426 src/textview.c: textview_key_pressed(): back scroll when Shift or
427 Alt and Space key is pressed. Also back scroll when Shift and Enter
432 * src/foldersel.c: foldersel_new_folder(): select newly created
445 src/prefs_account.[ch]: obsoleted RecvProtocol::A_APOP and made an
447 prefs_account_protocol_set_optmenu(): refactored.
451 * src/folderview.c: folderview_empty_trash_cb(): removed unused
456 * src/summary_search.c: use C string instead of wide character string.
457 Enabled AND/OR matching.
461 * src/folderview.[ch]
462 src/mainwindow.c: change menu sensitivity of File/Folder and
463 File/Mailbox according to selected folder.
464 Enabled newsgroups subscription from 'File/Folder/Create new folder'.
468 * src/folderview.[ch]
469 src/mainwindow.c: reorganized folder/mailbox menus.
470 Enabled 'Remove mailbox', 'Check for new messages' and
471 'Rebuild folder tree' on main menu.
472 Removed 'Remove mailbox' from the folder context menu.
478 src/procmsg.[ch]: added 'Empty trash' to the folder context menu.
483 src/summaryview.c: don't move/delete immediately when
484 immediate_execution is off.
492 * upgraded to gettext-0.14.1.
496 * src/compose.c: reorganized the menu.
497 * src/mh.c: removed g_print() for debug.
503 src/template.[ch]: added Cc: to template parameter.
507 * src/prefs_filter_edit.c: fixed condition menu switching problem
508 on editing existing rules.
512 * src/filter.c: filter_action_exec(): update counters of FolderItem
513 on local filtering (fixes wrong folderview message count).
517 * src/mbox.c: proc_mbox(): check if folder_table is NULL (fix
522 * src/pixmaps/stock_add_16.xpm
523 src/pixmaps/stock_remove_16.xpm: converted from stock icons in
525 * src/prefs_filter_edit.c: use icons for add/remove button.
526 * src/stock_pixmap.[ch]: added add/remove icons.
530 * src/pixmaps/stock_dialog_error_48.xpm
531 src/pixmaps/stock_dialog_info_48.xpm
532 src/pixmaps/stock_dialog_question_48.xpm
533 src/pixmaps/stock_dialog_warning_48.xpm: converted dialog icons from
534 stock icons in gtk-2.4.
535 * src/alertpanel.[ch]: added icons to the alert dialog.
536 alertpanel_message(): Added AlertType.
537 * src/stock_pixmaps.[ch]: added dialog icons.
542 * src/procmsg.c: removed verbose debug prints.
550 * src/procmsg.c: procmsg_send_queue()
551 src/send_message.c: send_queue_info_free(): fixed segmentation fault
552 when trying to send an invalid queued message.
556 * src/mainwindow.c: added separators to the File menu.
557 * src/prefs_filter_edit.c: removed some debug prints.
561 * src/inputdialog.c: input_dialog_open(): don't start auto-checking
562 mail while opening the input dialog.
566 * src/mh.c: mh_remove_all_msg()
567 src/procmsg.c: procmsg_empty_trash(): fixed wrong message count
568 after emptying trash.
572 * src/prefs_filter.c: fixed a bug that didn't add an auto-created
574 * src/prefs_filter_edit.c: prefs_filter_edit_dialog_to_rule(): check
579 * src/filter.c: filter_apply_msginfo(): don't apply filter if
580 FilterRule::enabled == FALSE.
581 * src/prefs_filter.c: implemented Enabled column.
582 * src/account.c: account_selected(): modified the behavior of
587 * src/colorlabel.c: modified the menu label size. Removed "None" from
590 src/prefs_filter_edit.c: implemented color label action.
591 * src/summaryview.c: summary_filter_func(): update summary flags
592 when flag action is performed.
596 * src/prefs_filter_edit.c: added color label.
597 * src/colorlabel.c: modified the menu label size and border.
602 src/prefs_filter_edit.c: improved error handling when creating a
607 * src/prefs_common.c: adjusted the default size of views.
612 src/prefs_filter_edit.c: implemented size/age condition.
613 * src/menu.[ch]: menu_get_option_menu_active_user_data(): new.
617 * src/prefs_filter_edit.c: select previous item when editing header
622 * src/prefs_filter.[ch]
623 src/prefs_filter_edit.c
624 src/procheader.[ch]: implemented user-defined header dialog.
629 filter_action_exec(): modified local filtering.
630 strmatch_regex(): use case-insensitive regex.
631 * src/summaryview.[ch]: display filtering result to the status bar.
635 * src/filter.[ch]: implemented filter rule application timing.
636 * src/prefs_fil_er_edit.c: prefs_filter_edit_action_hbox_set():
637 fixed a bug that didn't display parameter of PF_ACTION_EXEC.
641 * src/prefs_filter.c: prefs_filter_write_user_header_list(): use
642 prefs_file_open() instead of fopen().
647 src/prefs_filter.c: implemented load/save of user-defined
652 * src/inc.c: inc_spool()
653 src/prefs_common.c: modified spool path config so that users can
654 specify both file and directory.
658 * src/prefs_filter.[ch]
659 src/prefs_filter_edit.[ch]: implemented creating filter rule by
664 * src/mimeview.c: mimeview_drag_data_get()
665 src/summaryview.c: summary_drag_data_get(): fixed broken URI in
671 src/summaryview.c: fixed local filtering.
672 * src/mh.c: mh_copy_msgs(): restored missing 'else'.
676 * src/foldersel.c: foldersel_new_folder(): fixed possible memory
677 corruption, and write folder list data after appending.
678 * src/summaryview.c: summary_show(): up FolderItem::opened flag
679 after reading message list.
688 src/summaryview.c: properly handle 'new' flags by using
689 FolderItem::mark_queue.
694 src/inc.c: modified 'new' flags management.
698 * src/prefs_filter.c: don't move to the last row when opening the
699 dialog. Clear CList when closing.
706 src/prefs_filter_edit.c
707 src/summaryview.c: implemented FLT_ACTION_EXEC and FLT_ACTION_DELETE.
711 * src/prefs_filter.c: auto-scroll when a new rule is added.
712 open edit dialog when a rule is double-clicked.
713 prefs_filter_copy_cb(): implemented.
714 * src/prefs_filter_edit.c: implemented action "Stop rule evaluation".
721 src/prefs_filter_edit.c
722 src/summaryview.c: renamed FilterResult to FilterInfo, and added
723 account to its members.
724 Implemented command test, size, age, account, and on-receive
727 src/procheader.c: procheader_parse_file(): also get file size and
732 execute_command_line(): return exit status.
737 src/inc.c: save all types of performed actions.
738 filter_rule_rename_dest_path(): modified for the new system.
739 filter_rule_delete_action_by_dest_path(): delete actions that
741 * src/mbox.c: proc_mbox(): ignore FLT_ACTION_NOT_RECEIVE.
742 * src/prefs_filter.c: prefs_filter_delete_path(): modified for the new
746 summary_filter_func(): modified for the new system.
750 * src/filter.[ch]: implemented message body match.
752 procmime_find_string_part()
753 procmime_find_string(): take function pointer for matching.
754 * src/procmsg.[ch]: added file_path (which is only used for temporary
755 messages) to MsgInfo.
756 procmsg_msginfo_copy()
757 procmsg_msginfo_free(): handle extra members.
758 * src/summary_search.c: modified for procmime_find_string().
759 * src/summaryview.c: filter_apply_local() -> filter_apply_msginfo().
760 * src/utils.[ch]: added function for string match.
762 src/undo.c: removed redundant debug messages.
766 * implemented the new filtering system (still in progress).
768 src/filter.[ch]: implemented reading/writing of filter XML data.
769 * src/prefs_filter.[ch]
770 src/prefs_filter_edit.[ch]: implemented UI for the new filtering
776 src/summaryview.c: modified for the new filtering system.
777 * src/menu.h: MENUITEM_ADD(): create separator if label is NULL.
778 * src/procheader.[ch]: added some utility functions.
779 * src/utils.c: open_uri(): modified warning message.
783 * src/main.c: removed parsing of "./gtkrc".
789 ssl_peek(): check SSL before reading data (fixes freeze when
791 * src/session.[ch]: session_set_access_time(): new.
794 src/nntp.c: only update last_access_time when successfully
795 receiving a server response.
796 * thanks to Cedric Pradalier for above.
800 * src/xml.[ch]: code cleanup and added some functions.
804 * src/pop.[ch]: pop3_getrange_uidl_recv(): relaxed invalid UIDL
812 src/prefs_account.[ch]
813 src/prefs_common.[ch]: unified *_{save,write}_config() to
819 procheader_get_one_field()
820 procheader_get_unfolded_line(): fixed a bug that unfolding was
821 broken if the sequence 'SP CR LF' appeared (thanks to NOGUCHI,
826 * src/prefs_common.c: made the default of confirm_on_exit FALSE.
830 * src/menu.[ch]: added menu_set_active().
831 * src/compose.c: don't change 'View/Auto wrapping' mode when selecting
836 * src/compose.[ch]: autowrap can be switched on/off from the compose
845 * src/session.c: session_set_timeout(): fixed a bug that didn't
846 reset timeout_tag when interval is 0.
850 * src/gtkstext.c: gtk_stext_update_text(): added null checking for
851 cache (thanks to Jim Hranicky).
855 * src/defs.h: increased CACHE_VERSION to work around the
856 incompatibility of the cache on some platforms (ex. FreeBSD).
857 * src/procmsg.c: procmsg_read_cache(): discard all read cache data
858 if an error occurred.
862 * src/summaryview.[ch]: hide 'Re-edit' menu when it's unusable.
868 src/session.[ch]: implemented session timeout.
869 * src/pop.h: removed unused values from Pop3ErrorValue.
873 * src/inc.c: inc_all_account_mail(): code cleanup.
877 * src/procmsg.c: procmsg_read_cache_data_str(): changed gint32 to
878 guint32 for some platforms.
879 * src/summaryview.c: restored 'Print' menu.
883 * src/about.c: modified copyright year.
891 * src/smtp.c: comply with RFC 2821 (thanks to Alfons).
895 * src/folderview.[ch]: implemented spring-loaded folder.
899 * src/folderview.c: folderview_button_pressed(): enable menu item
900 'Search messages...' only when opened folder is selected.
905 src/prefs_common.[ch]: removed the option "Queue messages that fail
910 * src/summaryview.c: cleaned up the context menu.
911 * src/mainwindow.c: changed the position of '/Message/Re-edit'
916 * src/procmsg.[ch]: fixed the type of integer value in cache data
921 * src/nntp.c: nntp_get_article(): ignore the protocol error of
922 response for some broken news servers (thanks to Davide Scola).
926 * src/gtkutils.[ch]: added gtkut_editable_disable_im().
927 * src/passphrase.c: disable XIM on entering passphrase.
934 src/prefs_display_header.c
935 src/procmsg.h: fixed for AMD64 (and other 64-bit platforms)
936 (thanks to Hiroyuki Ikezoe).
940 * src/inc.[ch]: don't use gtk_timeout_add(), instead use
941 gettimeofday() (to prevent infrequent lockup).
946 src/inc.[ch]: changed the method of updating the progress dialog
947 to reduce the overhead on a fast network.
951 * src/nntp.c: nntp_session_new(): attempt to authenticate at the
952 beginning of a session (thanks to Shiino Yuki and IWAMOTO, Kouichi).
954 src/nntp.c: destroy session when socket error occurred.
959 src/summaryview.[ch]: added a function to filter selected
965 src/prefs_filter.c: rewrote the filtering system (the UI is not
970 * src/filter.c: fixed the matching algorithm of "not contain" flag
971 (also match if a header not exist, and handle same multiple
973 * src/imageview.c: get_resized_size(): fixed a typo that caused
979 src/mh.c: only update FolderItem::last_num when removing the last
980 number of message in MH folders, and don't scan in other case
981 (fixes wrong message count on moving).
986 src/summaryview.c: always move messages by default when using DnD
987 (except for News folder). Copy messages if Ctrl-key is pressed.
988 * src/mainwindow.c: main_window_empty_trash()
989 src/summaryview.c: summary_execute(): added missing
998 * src/prefs_common.c: made the default of "inc_local" FALSE.
1003 src/folderview.c: toggle online mode when checking IMAP4 accounts.
1004 Pop status bar after that.
1005 * src/inc.c: code cleanup.
1006 * src/mainwindow.[ch]: added main_window_get() and
1007 main_window_toggle_online_if_offline().
1008 * src/prefs_common.c: prefs_common_read_config(): fixed a bug that
1009 made it offline mode on first execution.
1013 * src/imageview.c: enabled automatic resize on window resize.
1014 restrict the minimum size to 16 pixels to prevent crash.
1015 imageview_init(): don't cache images when using imlib.
1016 imageview_show_image(): fixed memory leak.
1017 * src/mimeview.c: mimeview_init(): call imageview_init().
1021 * src/codeconv.[ch]: added ISO-2022-JP-3 encoding.
1027 src/messageview.c: added KOI8-U encoding.
1028 * src/prefs_common.c: prefs_message_create(): modified the string
1029 of resizing image option.
1033 * src/addressbook.c: addressbook_list_selected(): corrected its
1035 * src/imageview.[ch]: keep original image data in ImageView, and
1036 enabled the toggle of resizing.
1037 * src/messageview.[ch]
1038 src/mimeview.[ch]: handle ImageView in MimeView instead of
1045 src/summaryview.c: removed statusbar_pop_all() from imap.c and
1046 news.c (do it in summaryview.c).
1051 src/pop.[ch]: made inc_drop_message() the virtual function of
1052 Pop3Session and removed the dependency of pop.c on inc.h.
1057 src/messageview.[ch]
1058 src/textview.c: added statusbar to the message view with new window.
1062 * src/inc.[ch]: use hash table for progressive update.
1063 changed update interval to 2 sec.
1067 src/summaryview.c: added FolderItem::unmarked_num to correct the
1068 folder message counting.
1072 * src/inc.[ch]: update folderview progressively.
1073 * src/foldersel.c: display full id for selected item.
1077 * src/folderview.[ch]: code cleanup.
1078 folderview_append_item(): new. It appends the folder to the folder
1080 * src/foldersel.c: foldersel_new_folder(): use
1081 folderview_append_item().
1085 * src/foldersel.c: implemented 'create new folder' function.
1086 * src/folder.[ch]: folder_find_child_item_by_name(): new.
1087 * src/utils.h: AUTORELEASE_STR(): convert malloc'd string into
1088 auto-release (alloca'd) one.
1092 * src/folderview.c: put together folderview_new_imap_folder_cb() into
1093 folderview_new_folder_cb().
1097 * src/compose.c: compose_write_to_file(): removed redundant strlen()
1099 * src/textview.c: textview_button_pressed(): select correct account
1100 when address is clicked.
1108 * src/folder.c: folder_item_fetch_all_msg()
1109 src/folderview.c: folderview_download_cb(): show progress with
1111 * src/mainwindow.[ch]: added new functions for progressbar.
1115 * src/summaryview.c: summary_key_pressed(): GDK_Left should only
1116 switch to folderview when summaryview hscrollbar is at the leftmost
1117 position (thanks to Alfons).
1121 * src/codeconv.c: conv_euctojis(): made JIS X 0201 Kana conversion
1123 * src/prefs_common.[ch]: added PrefsCommon::allow_jisx0201_kana
1128 * src/codeconv.c: conv_euctojis(): force JIS X 0201 Kana to JIS X 0208
1133 * src/imap.c: imap_get_msginfo(): fixed wrong counting.
1146 src/quote_fmt_parse.y
1147 src/quoted-printable.c
1152 src/xml.c: fixed wrong type of argument for ctype functions (char
1153 had been passed instead of unsigned char).
1158 * src/mainwindow.[ch]: added MainWindow::messageview_cid.
1159 Clear messageview when it is hidden.
1160 * src/textview.c: show URL to the statusbar when its link is clicked.
1161 textview_uri_security_check(): compare real URL and apparent one
1162 and show warning if it seems to be a fake URL.
1164 is_uri_string(): return TRUE if the string seems like a URL.
1165 get_uri_path(): return URL except for its scheme part.
1169 * src/folder.[ch]: folder_item_fetch_all_msg(): new. It fetches all
1170 messages in a folder.
1171 * src/folderview.c: implemented 'Download' feature.
1175 * src/gtkutils.[ch]: implemented ComboButton which adds an arrow
1176 menu button to a button.
1177 * src/mainwindow.[ch]: main_window_toolbar_create(): added combo
1178 button to reply and forward button.
1182 * src/mainwindow.c: fixed automatic expansion of window size because
1187 * src/addr_compl.[ch]
1188 src/gtkshruler.[ch]: changed the copyright notice.
1192 * src/gtkstext.c: find_line_params(): also break between mutlibyte
1193 and single-byte characters.
1197 * src/gtkstext.c: find_line_params(): break lines between multibyte
1198 characters on word wrap mode.
1202 * src/codeconv.c: conv_iconv_strdup(): fixed crashes on LP64
1203 environments (thanks to James Noyes).
1204 * src/compose.c: compose_select_account(): don't turn off the sign/
1205 encrypt option automatically.
1209 * src/inc.[ch]: made inc_account_mail() public.
1210 * src/mainwindow.c: moved receive menus into submenu, and added
1211 dynamic menus for receiving from each account.
1219 * src/procmsg.c: procmsg_open_data_file(): set buffer if DATA_READ
1220 is specified and a buffer is given.
1221 procmsg_open_cache_file_with_buffer(): new.
1222 procmsg_read_cache(): fixed a bug that called setvbuf() after an
1223 file I/O which caused buffer read error.
1231 * configure.in: enable IPv6 support by default.
1235 * src/inc.c: inc_mail(), inc_all_account_mail(): ask user to switch
1236 to online when in offline mode.
1237 * src/mainwindow.h: added main_window_toggle_online().
1244 src/stock_pixmap.[ch]
1245 src/pixmap/dir-noselect.xpm: made no-select folders display with
1246 dim icon and string.
1247 * src/Makefile.am: added offline.xpm, online.xpm, and
1248 dir-noselect.xpm to EXTRA_DIST.
1252 * src/folder.h: added macro FOLDER_ITEM_CAN_ADD().
1253 * src/folderview.c: folderview_drag_motion_cb(): code cleanup.
1254 folderview_drag_received_cb(): don't accept at no_select folder or
1256 * src/foldersel.c: made folders on which no_select flag is set not
1261 * src/imap.c: imap_do_copy_msgs(), imap_remove_msgs(): code cleanup.
1262 set MSG_INVALID flag when messages are deleted.
1263 * src/mh.c: mh_do_move_msgs(), mh_remove_msg(): set MSG_INVALID flag
1264 when messages are deleted.
1266 procmsg_move_messages()
1267 procmsg_copy_messages(): return error status.
1268 Added MSG_INVALID to MsgTmpFlags.
1269 * src/summaryview.c: summary_execute(): detect errors and only remove
1270 nodes that are invalidated.
1271 summary_unthread_for_exec(): fixed a bug that didn't remove nodes
1276 * src/mainwindow.[ch]: added online switch button to the statusbar,
1277 and "/File/Work offline" in the menu.
1278 * src/pixmaps/offline.xpm
1279 src/pixmaps/online.xpm: new (borrowed from
1280 themes/classic/communicator/icons/ in Mozilla).
1281 * src/stock_pixmap.[ch]: added online.xpm and offline.xpm.
1282 * src/textview.[ch]: textview_show_error(): new.
1283 * src/summaryview.c: summary_display_msg_full(): update marks only
1284 if messages are displayed.
1285 * src/prefs_common.[ch]: added PrefsCommon::online_mode.
1286 * src/news.c: news_session_get()
1287 src/imap.c: imap_session_get(): return NULL when in offline mode.
1288 * src/messageview.[ch]: messageview_show(): return status whether
1289 messages are successfully displayed. Display error messages in
1290 the view when failed.
1292 procmsg_get_message_file()
1293 procmsg_open_message(): don't output warnings when fetch failed.
1297 * src/html.c: html_get_tag(): support attributes which don't have
1302 * src/codeconv.c: conv_get_code_conv_func(): return conv_latintodisp
1303 only if src_charset and current charset is identical or current
1304 one is multibyte (fixes display of ISO-8859-5 on KOI8-R locale etc.).
1308 * autogen.sh: don't include m4 directory in aclocal.
1309 * intl/libgnuintl.h: removed from cvs.
1310 * po/.cvsignore: added stamp-po and remove-potcdate.sed.
1314 * upgraded to gettext-0.12.1.
1316 2003-11-24 gettextize <bug-gnu-gettext@gnu.org>
1318 * Makefile.am (SUBDIRS): Add m4.
1319 (ACLOCAL_AMFLAGS): New variable.
1320 (EXTRA_DIST): Add config.rpath.
1321 * configure.in (AC_OUTPUT): Add m4/Makefile.
1325 * configure.in: added check for d_type member in struct dirent.
1326 * src/mh.c: mh_scan_folder(): use d->d_type if available.
1327 mh_get_uncached_msgs(): removed redundant stat().
1328 mh_parse_msg(): return NULL if not a regular file.
1329 mh_scan_tree_recursive(): use d->d_type if available.
1331 dirent_is_regular_file()
1332 dirent_is_directory(): new. Use d->d_type to determine the type
1333 of entry if available.
1334 remove_dir_recursive(): use dirent_is_directory().
1338 * src/folder.h: added 'updated' flag to FolderItem.
1339 * src/folderview.[ch]: folderview_update_all_updated(): new. It
1340 updates all updated folders.
1341 * src/imap.c: set FolderView::update flag on changes of contents.
1342 * src/main.c: send_queue()
1343 src/mainwindow.c: send_queue_cb(): code cleanup.
1344 * src/mh.c: code cleanup.
1345 mh_scan_folder(): correctly count new messages.
1346 * src/procmsg.[ch]: code cleanup.
1347 procmsg_open_cache_file(): new.
1348 procmsg_open_mark_file(): enable read/write/append.
1349 procmsg_send_queue(): correctly choose outbox for accounts.
1350 * src/send_message.[ch]: send_get_queue_info(): get a queue
1351 information from queued messages.
1352 send_queue_info_free(): free QueueInfo.
1353 send_message_queue(): take QueueInfo as an argument instead of file.
1354 * src/summaryview.c: summary_write_cache(): code cleanup.
1358 * src/compose.c: compose_redirect_write_headers(): correctly add
1363 * src/imap.c: imap_get_msg_list(): fallback to FETCH command if SEARCH
1364 command to get flags failed.
1365 imap_search_flags(): returns UID array and flags hash table using
1367 imap_fetch_flags(): returns UID array and flags hash table using
1372 * src/summary_search.c: summary_search_execute(): fixed 'Select all
1373 matched' when backward search is enabled.
1374 Made the backward search button insensitive when 'select all
1375 matched' is enabled.
1383 * src/imap.c: imap_scan_tree(): check the existence of root directory
1384 with LIST instead of STATUS.
1388 * src/send_message.c: fixed format string bug (exploitable by
1389 malicious SMTP server) when calling alertpanel_error()
1390 (thanks to Georgi Guninski).
1397 src/news.[ch]: refactoring of the folder system (based on the claws'
1406 src/summaryview.c: use FOLDER_TYPE() macro at every place.
1414 * src/addressbook.c:
1415 addressbook_folder_load_person()
1416 addressbook_folder_load_group(): sort the ctree after the end of
1417 the loop (fixes performance issue when many addresses are in one
1418 folder) (thanks to christian mock).
1422 * src/folderview.c: folder_init(): code cleanup.
1423 * src/summaryview.c: summary_init(): check if boldfont is
1424 successfully loaded.
1425 * src/grouplistdialog.c: use proper callback for delete_event (thanks
1427 * src/imap.c: allow zero-length messages.
1428 * src/recv.c: recv_bytes_write(): return immediately if size == 0.
1432 * src/folderview.c: folderview_init(): if font can't be loaded, fall
1433 back to gtk default (fixes crashes on startup). Also removed the
1438 * src/compose.c: compose_insert_sig(): insert signature at the
1439 current cursor position on manual operation.
1443 * src/summaryview.c: summary_key_pressed(): don't ignore delete key
1444 even if the main window is locked.
1448 * src/action.c: improved synchronous action exit code (fixes long
1449 delay after action exit on RH9) (thanks to Melvin).
1450 * src/stringtable.[ch]: string_table_insert_string(): modified the
1451 code to remove the warning "dereferencing type-punned pointer will
1452 break strict-aliasing rules".
1453 Use const gchar * instead of gchar * for arguments.
1457 * src/utils.[ch]: generate_mime_boundary(): a new function to create
1458 MIME boundary (moved from rfc2015.c).
1459 Removed more special characters.
1460 Use random() instead of lrand48() which is obsolete.
1461 Added an argument for prefix to prevent duplication.
1462 Always add "=_" as a counter-QP sequence to simplify the code.
1464 rfc2015_decrypt_message()
1466 rfc2015_sign(): fixed a bug that didn't handle continuous content
1469 src/rfc2015.c: use generate_mime_boundary().
1474 folderview_delete_folder_cb()
1475 folderview_remove_mailbox_cb(): close currently displayed folder
1476 before removing FolderItem (fixes crash on deleting folder).
1478 src/imap.[ch]: imap_scan_tree()
1479 src/mh.[ch]: mh_scan_tree(): return -1 when scanning failed.
1480 * src/summaryview.c: summary_clear_all(): also clear the message view.
1481 * src/imap.c: imap_close(): fail if the specified folder is not
1483 imap_scan_tree(): check if the specified root directory exist, and
1484 try creating it if not.
1485 imap_parse_list(): output warning if a server returns error.
1486 imap_find_namespace_from_list(): support not slash-delimited path.
1487 imap_status(): don't return values if they're not specified.
1491 * sylpheed.spec.in: fixed a typo.
1502 src/prefs_common.[ch]: added the receive dialog's option to
1503 display the dialog only on manual receiving, and the
1504 RECV_DIALOG_ACTIVE option was removed.
1508 * src/compose.c: compose_write_headers(): also replace ':' in the
1509 MIME boundary with '_' (as a workaround for broken servers).
1513 * src/imap.c: imap_scan_tree_recursive(): fixed compile error.
1517 * src/prefs_filter.c: added 'Top' and 'Bottom' button.
1521 * src/folder.[ch]: folder_item_remove_children(): new. It removes
1522 all children under a FolderItem.
1523 * src/folderview.c: folderview_rescan_tree(): modified the message.
1524 * src/imap.c: imap_scan_tree(), imap_scan_tree_recursive(): reuse
1525 the previous FolderItem objects.
1529 * src/folder.[ch]: added a reference to its own GNode in FolderItem.
1530 folder_item_remove(): free all FolderItem's.
1531 folder_tree_destroy(): use folder_item_remove().
1532 * src/folderview.c: folderview_sort_folders(): keep the order even
1533 if special folders' parents are different.
1534 * src/imap.c: imap_scan_tree_recursive(): fixed a memory leak.
1535 * src/mh.c: mh_scan_tree(): preserve the previous FolderItem's.
1536 mh_remove_missing_folder_items(): scan the directories and remove
1538 mh_scan_tree_recursive(): reuse the previous FolderItem objects.
1542 * src/mainwindow.c: always reflect window size changes.
1543 * src/folderview.c: folderview_init()
1544 src/summaryview.c: summary_init(): realize the widget before
1546 * src/prefs_common.[ch]: remember the folder and mesage view's
1552 src/prefs_common.[ch]: remember the size and position of
1554 main_window_set_widgets(): fixed a bug that the hidden items on
1555 the header view were shown when changing the view type.
1556 Instead of setting the window size, set the each view's size.
1560 * src/compose.c: compose_select_account(): don't append signature
1562 compose_insert_sig(): don't insert "\n\n" if signature string
1563 doesn't exist. Always insert signature at the end of message.
1567 * improved sylpheed.spec.in (thanks to Andre Oliveira da Costa).
1571 * minor code cleanups for the folder system.
1572 * src/compose.c: compose_queue(), compose_draft_cb(): code cleanup.
1573 * src/folder.c: code cleanups.
1575 src/mh.c: calculate message numbers inside the functions.
1576 * src/procmsg.c: procmsg_set_flags(): calculate message numbers.
1577 * src/summaryview.[ch]: don't calculate and preserve message numbers
1586 src/summaryview.c: renamed *_msgs_with_dest() to *_msgs().
1590 * src/imap.[ch]: use CAPABILITY to use protocol extentions.
1591 imap_greeting(): parse initial server greeting. Also support
1594 imap_cmd_append(): use APPENDUID responses if UIDPLUS is supported.
1598 * src/imap.c: imap_get_flag_str(): fixed a buffer overrun.
1606 * src/main.c: main(): don't save config files on startup.
1611 imap_get_msg_list(): removed redundant UID SEARCH ALL when not
1613 Unset MSG_NEW flag if \Seen is set.
1614 imap_get_uncached_messages(): fetch all messages if both first_uid
1619 * src/imap.c: revamped the implementation so that it always
1620 exactly reflects the state of IMAP4 servers.
1621 imap_get_msg_list(): examine the state of messages using
1622 UID SEARCH commands.
1623 imap_delete_cached_message(): removes single message cache.
1624 imap_get_uid(): removed.
1625 imap_cmd_search(): new. It issues UID SEARCH command and returns
1627 imap_cmd_gen_recv(): made the length of strings unrestricted.
1628 imap_get_uid_table(): returns a hash table from UID array.
1635 src/news.[ch]: added Folder::close() method.
1636 * src/summaryview.c: summary_clear_list(): call folder_item_close().
1640 * flags are now taken over when copying messages into IMAP folders
1647 mh_add_msgs(): flags can be also specified when adding files.
1648 * src/folder.[ch]: added assertions for virtual functions.
1649 * src/procmsg.[ch]: procmsg_get_message_file_list(): return the list
1651 procmsg_message_file_list_free(): new.
1655 * src/procmsg.h: changed MsgPermFlags and MsgTmpFlags from enum to
1656 guint32 for portability (thanks to Alfons).
1657 * src/imap.c: imap_add_msgs(): removed redundant unlink().
1662 session_read_msg_cb()
1663 session_read_data_cb(): fixed a bug that ran into infinite loop
1664 if connection was closed by remote host (thanks to Yoichi Imai).
1665 Added SESSION_EOF state to SessionState.
1666 session_is_connected(): new.
1667 * src/inc.[ch]: inc_put_error()
1668 src/send_message.c: send_put_error(): also put log messages.
1672 * more optimization of IMAP4.
1673 * src/folder.[ch]: added a method add_msgs() that adds multiple files
1675 Removed redundant scan() for the operations of FolderItem.
1676 * src/imap.[ch]: implemented Folder::add_msgs() and optimized move
1677 and copy from other Folder instances.
1678 * src/mh.[ch]: implemented Folder::add_msgs() and cleaned up the code.
1679 mh_fetch_msg(): scan folder if required.
1680 * src/procmsg.[ch]: procmsg_get_message_file_list(): returns file
1681 list from message list.
1682 * src/summaryview.c: don't remove MSG_MARKED flags on
1683 delete/move/copy operation.
1684 summary_display_msg_full(): removed redundant message fetching.
1688 * optimized move/copy/delete/mark operations of IMAP4 by using
1689 sequence set when issuing commands (adopted claws' implementation
1690 with cleaning it up).
1692 imap_set_message_flags()
1695 imap_cmd_store(): take sequence set string instead of UID number.
1696 imap_do_copy_msgs_with_dest(): optimized by using sequence set.
1697 imap_cmd_fetch(): use BODY.PEEK instead of BODY.
1698 imap_remove_all_msg()
1699 imap_set_message_flags(): use FLAGS.SILENT instead of FLAGS.
1701 src/summaryview.c: use imap_msg_list_{set,unset}_perm_flags()
1702 instead of issuing commands for each message.
1707 src/prefs_account.[ch]
1709 src/session.[ch]: added an option to enable/disable non-blocking
1714 * src/compose.c: compose_attach_append(): display message's subject
1715 when attaching message/rfc822 file.
1722 session_read_msg_cb()
1723 session_read_data_cb(): optimized by removing sock_peek() and
1724 buffering received data in user space (correctly implemented
1729 * src/session.c: reverted the previous change because it couldn't
1730 handle data receiving after messages correctly.
1736 session_read_msg_cb(): optimized by removing sock_peek() and
1737 buffering messages in user space.
1741 * src/imap.[ch]: refactored.
1742 Changed all functions that have SockInfo arguments to take
1744 Made imap_cmd_count an instance variable: IMAPSession::cmd_count.
1745 imap_open(): only establish TCP (or SSL) connection.
1746 imap_session_new(): process greeting and authentication here.
1750 * src/imap.[ch]: implemented CRAM-MD5 authentication, and made code
1752 * src/prefs_account.[ch]: added option menu for IMAP4 authentication
1753 type in Receive tab, and hide other protocols' frames.
1757 * src/mainwindow.c: send_queue_cb(): don't scan folder twice if
1759 * src/procmsg.c: procmsg_send_queue(): return number of sent
1765 main_window_set_toolbar_sensitive()
1766 main_window_set_menu_sensitive(): removed the locking of file
1767 operations while receiving mail.
1771 * src/folder.[ch]: folder_item_remove_msg(): take MsgInfo as an
1772 argument instead of message number.
1773 * src/imap.[ch]: imap_remove_msg(): reimplemented using
1775 * src/mh.[ch]: mh_do_move(): reimplemented using
1776 mh_do_move_msgs_with_dest().
1777 mh_copy_msg(): reimplemented using mh_copy_msgs_with_dest().
1778 * src/procmsg.c: procmsg_send_queue(): modified to use message list.
1782 * src/rfc2015.c: rfc2015_is_encrypted(): check MimeInfo::mime_type
1783 to suppress some warnings.
1784 * src/logwindow.c: log_window_append(): don't scroll up when trimming
1789 * src/compose.c: add 'Content-Disposition: inline' to a text/plain
1790 part when using PGP/MIME signing.
1798 * src/defs.h: changed UI_REFRESH_INTERVAL from 40msec to 50msec.
1799 * src/session.c: session_read_msg_cb(): make it always fail if
1800 sock_read() returns by error.
1801 * src/socket.[ch]: sock_check(): handle exceptional SSL condition.
1802 sock_has_pending_data(): removed.
1803 Removed debug output.
1804 * src/send_message.c: send_recv_message(): display messages to
1809 * src/inc.[ch]: update received message number on CList while
1811 * src/session.c: session_read_data_cb(): optimized by removing
1812 g_malloc() and memcpy().
1816 * src/socket.[ch]: sock_add_watch(): new. It monitors SSL by original
1817 watch functions (otherwise uses g_io_add_watch()).
1818 * src/session.[ch]: removed previous workarounds, and replaced
1819 g_io_add_watch() with sock_add_watch().
1823 * src/socket.[ch]: added sock_has_pending_data() which returns TRUE
1824 if socket has pending data.
1825 * src/session.c: session_recv_msg(), session_recv_data(): check if
1826 socket has pending data and call the callbacks immediately in that
1827 case (fixes the hang at ESMTP EHLO on SSL).
1831 * src/socket.c: check return value in SSL functions.
1835 * src/mimeview.c: mimeview_init(): initialize TextView to prevent
1836 slowdown caused by GTK+ themes (thanks to Yuri Arapov).
1840 * src/session.c: session_read_data_cb(): clear Session::read_data_buf
1841 before calling callbacks.
1845 * src/socket.c: made socket connection protocol independent.
1846 * src/session.c: removed debug g_print().
1847 * src/inc.c: made status bar output less verbose, and show counter
1848 on main window's progressbar.
1852 * src/session.c: added missing #include <errno.h>.
1856 * src/session.[ch]: reimplemented the Session system with non-blocking
1857 I/O to solve the performance and the code design issue.
1858 * src/socket.[ch]: added sock_connect_async() and
1859 sock_connect_async_cancel() to enable asynchronous connection.
1860 sock_peek(): modified the implementation.
1861 * src/pop.c: optimized the receiving of the responses of
1866 * src/procmsg.c: procmsg_get_thread_tree(): prevent threading problems
1867 when a node is an ancestor (parent / great parent), which mostly
1868 happens with circular references (thanks to Phillipe Gramoulle
1869 for finding an sample set of messages, and Alfons for the patch).
1873 * src/pop3.c: pop3_get_uidl_table(): return empty hash table even if
1874 UIDL list is not found (fixes inability of initial retrieval).
1878 * src/main.c: added the option '--status-full' which shows the status
1879 of each folder specified. The option '--status' also takes
1880 following arguments for folders (thanks to Yuri Arapov).
1881 * src/folder.[ch]: folder_get_status(): new. it takes the array of
1882 folders as the argument and returns their status.
1883 folder_count_total_msgs(): removed.
1893 src/inputdialog.c: use gtk_main_iteration() instead of gtk_main()
1894 to prevent abort when a button is double-clicked.
1898 * src/addr_compl.c: invalidate_address_completion(): check if
1899 g_completion_list is NULL (thanks to Kazuhiro NISHIYAMA).
1903 * src/pop.c: pop3_session_recv_data_finished(): fixed a bug that
1904 deleted messages that is to be kept on server (thanks to Tristan
1914 sock_set_io_timeout(): new. It sets the timeout interval.
1915 sock_gdk_input_add(): removed since it's not used anymore.
1916 * src/prefs_common.[ch]: added an option to set the timeout parameter.
1920 * src/action.c: fixed a bug that didn't hide user string in
1921 create_io_dialog() (thanks to Markus Amersdorfer).
1922 Removed ChildInfo::type and added Children::action_type.
1926 * src/inc.c: inc_start(): ask every password before retrieving.
1927 Don't popup the redundant error dialog.
1929 inc_all_account_mail()
1930 inc_progress_dialog_set_list(): separated account list display
1931 into a new function.
1932 inc_progress_dialog_set_label()
1933 inc_recv_data_finished()
1934 inc_recv_message(): properly update the dialog when RETR finished.
1939 imap_modified_utf7_to_locale()
1940 imap_locale_to_modified_utf7(): fixed compilation failure when not
1945 * src/procmime.c: procmime_scan_multipart_message(): fixed parsing
1946 of message/rfc822 parts.
1950 * src/pop.c: pop3_ok(): detect timeout error.
1954 * src/imap.c: imap_locale_to_modified_utf7(): fixed the encoding bug
1955 when locale strings include '+'.
1956 imap_modified_utf7_to_locale()
1957 imap_locale_to_modified_utf7(): at least escape/unescape '&' even
1958 if iconv() is not supported.
1963 compose_insert_sig()
1964 compose_get_signature_str(): include separator in signature string.
1965 Don't insert separator if signature file is not found.
1966 Disabled use of implicit default signature path (~/.signature) when
1976 src/quote_fmt_parse.y
1977 src/smtp.c: suppress warnings that gcc-3.3 issues.
1978 src/stringtable.c: use string_entry_free().
1982 * src/compose.c: compose_insert_sig(): fixed the bug that always
1983 appended signature separator if signature file was not found.
1984 compose_get_signature_str(): fixed the bug that caused crash if
1985 signature file cannot be opened.
1993 * src/session.c: session_recv_msg(): removed debug print.
2000 imap_cmd_fetch(): check for data size that servers return (fixes
2001 vulnerability found in BugTraq).
2005 * src/addr_compl.c: get_complete_address()
2006 src/addressbook.c: addressbook_format_address()
2007 src/compose.c: QUOTE_IF_REQUIRED(): quote if name contains
2008 characters that is not defined in atext (RFC 2822, 3.2.4. Atom).
2009 * src/main.c: main(): set colormap and visual to solve color problem
2010 in Solaris (thanks to Markus Schwarzenberg).
2018 * src/prefs_account.c: temporarily removed POP before SMTP option.
2022 * src/prefs_common.[ch]: changed the description of "Open message when
2023 cursor keys are pressed on summary".
2024 * src/summaryview.c: summary_show(): open message when always_show_msg
2029 * src/logwindow.[ch]: restrict the maximum lines of the log messages
2030 to reduce the memory usage.
2034 * src/compose.c: compose_insert_sig(): fixed a crash when signature
2035 string contains illegal sequence.
2036 * src/utils.[ch]: changed get_wcs_len() to get_mbs_len() for accuracy.
2040 * major refactoring of MIME structure.
2041 * src/procmime.c: procmime_scan_message(): decrypt message if
2042 gpgme is enabled. Create multipart tree only if content-type is
2043 multipart/* or message/rfc822.
2044 procmime_scan_multipart_message(): fixed the scanning of
2045 message/rfc822 part.
2046 * src/action.c: parse_append_msgpart()
2047 src/messageview.c: messageview_show()
2048 src/mimeview.c: mimeview_show_message(): use procmime_scan_message()
2049 instead of procmsg_open_message() and procmime_scan_mime_header().
2050 mimeview_set_multipart_tree(): conform to the new MIME structure.
2051 * src/textview.c: textview_show_part(): removed unnecessary check.
2052 * src/procmsg.c: procmsg_open_message_decrypted(): fixed the file
2053 pointer when decryption failed.
2057 * src/ssl.c: ssl_init_socket_with_method(): replaced log_warning()
2058 by g_warning(), and log_print() by debug_print().
2059 * src/pop.[ch]: added an error code PS_NOTSUPPORTED, and retry with
2060 LAST if UIDL is not supported.
2064 * src/codeconv.c: conv_get_code_conv_func(): convert to EUC-JP only
2065 if it is the current locale encoding when dest_charset_str is NULL.
2069 * src/action.c: execute_actions(): fixed crash when no text widget
2070 is selected (thanks to Paul and Melvin).
2072 src/prefs_actions.c: added missing reference to Claws team in the
2079 session_send_data(): fixed a memory leak and data sending bug.
2080 * src/send_message.c:
2081 send_message_smtp(): fixed focus management.
2085 * src/smtp.[ch]: set the response string to SMTPSession::error_msg
2087 * src/send_message.c: show error dialog if error occurred.
2088 * src/main.c: send_queue()
2089 src/mainwindow.c: send_queue_cb(): don't show error dialog here.
2093 * src/session.c: session_close(): kill child process only if
2094 state is not SESSION_DISCONNECTED.
2095 * src/send_message.c: send_cancel_button_cb()
2096 src/inc.c: inc_cancel(): don't set Session::state to
2097 SESSION_DISCONNECTED.
2098 * src/prefs.[ch]: modified the names of prefs_write_*().
2099 * src/address.[ch]: removed.
2103 * src/compose.c: compose_template_apply(): overwrite recipients.
2107 * src/procheader.c: procheader_date_parse(): removed debug print.
2108 * src/session.c: changed every g_print to debug_print.
2109 session_child_input(): removed unrequired session_close() (it'll
2110 be closed anyway after returning FALSE).
2111 * src/send_message.c: send_message_smtp(): changed g_print to
2116 * src/procheader.c: procheader_procheader_date_parse(): don't add
2117 local timezone offset if timezone is unknown.
2118 Made the Y2K workaround code to follow RFC 2822.
2119 procheader_scan_date_string(): workaround for date strings which
2120 don't have timezone specification.
2121 * src/utils.c: remote_tzoffset_sec(): return -1 if timezone is
2126 * src/action.[ch]: refactored. Also fixed a bug on MIME mode, and
2127 some memory leaks on error.
2128 action_update_msgview_menu(): new.
2129 * src/messageview.[ch]: added "Tools/Actions" menu. Keep window list.
2130 messageview_get_selected_mime_part(): returns MimeInfo of selected
2131 part when MessageView is in MIME mode.
2132 * src/mimeview.[ch]: mimeview_get_selected_part(): returns MimeInfo
2134 * src/summaryview.[ch]: summary_get_selected_msg_list(): returns
2135 MsgInfo list of selected messages.
2139 * src/prefs_filter.[ch]: include original message's headers as
2140 the preset keywords. Modified the sizes of the widgets.
2141 * src/utils.[ch]: added str_case_equal() and str_case_hash() for
2142 case-insensitive hash.
2146 * src/procmsg.c: procmsg_get_filter_keyword(): added X-Sequence to
2147 auto-detected headers.
2151 src/mainwindow.c: modified function names.
2152 get_user_string(): Use input_dialog() instead of its own
2157 * src/codeconv.[ch]: conv_encode_header(): don't include '(' and ')'
2158 in encoded strings if addr_field is TRUE.
2159 * src/compose.c: compose_convert_header(): added a flag 'addr_field'.
2163 * src/prefs_actions.[ch]: separated action execution routine into
2168 * src/prefs_actions.c: minor code cleanup.
2172 * src/codeconv.[ch]: conv_iconv_strdup(): fixed the handling of
2178 inc_recv_data_progressive()
2179 inc_recv_data_finished()
2182 send_send_data_progressive()
2183 send_send_data_finished(): added assertion.
2187 * src/codeconv.[ch]: conv_iconv_strdup(): fixed potential memory
2192 * src/codeconv.[ch]: conv_iconv_strdup(): don't include nul character
2193 in source buffer since it messed up some encoding conversion (like
2198 * src/procmsg.c: procmsg_get_filter_keyword(): unfold headers and
2199 extract ID from List-Id header.
2200 * src/utils.[ch]: extract_one_parenthesis_with_skip_quote(): removed.
2201 extract_list_id_str(): extract ID string from List-Id header.
2205 * src/prefs_actions.c: merged from the claws branch. Fixes several
2206 bugs and adds some features.
2210 * src/compose.c: compose_parse_header(): fixed a bug that unnecessary
2211 linebreaks were included on reediting.
2213 src/pop.c: fixed typos: 'occured'.
2217 * src/compose.[ch]: implemented auto signature replacement on
2219 compose_insert_sig(): added a flag to replace current signature.
2220 compose_get_signature_str(): new. It returns signature string.
2221 compose_insert_command_output(): removed.
2222 compose_select_account(): call compose_insert_sig() on account
2224 compose_destroy(): fixed a memory leak of UndoMain object.
2225 Compose::sig_str: new. It stores current signature string.
2226 * src/gtkutils.[ch]: gtkut_stext_find(): new.
2227 Renamed gtk_stext_clear() to gtkut_stext_clear().
2228 * src/utils.[ch]: get_wcs_len(): returns wide-character length of
2230 normalize_newlines(): converts CR+LF and CR into LF.
2231 get_command_output(): returns command output.
2235 * src/procmsg.[ch]: procmsg_get_filter_keyword(): new. It returns
2236 filter keyword for messages.
2237 * src/summaryview.c: summary_filter_open(): use
2238 procmsg_get_filter_keyword().
2239 * src/messageview.c: create_filter_cb(): implemented.
2245 inc_put_error(): display server responses on error.
2246 * src/pop.[ch]: added Pop3Session::error_msg, and set server responses
2251 * src/messageview.[ch]: separated the forced charset of message view
2252 in separate window from the main window.
2254 textview_show_message()
2255 textview_show_part()
2256 textview_add_part(): use MessageView::forced_charset if specified.
2260 * src/mainwindow.c: modified File menu a bit.
2261 * src/menu.[ch]: added functions to handle item factory rc strings.
2262 * src/messageview.[ch]: added a menu, and made it take over main
2263 window's menu shortcuts.
2264 added msginfo which is duplicated on display to MessageView.
2265 * src/prefs_common.c: prefs_keybind_apply_clicked(): use
2266 menu_factory_clear_rc().
2270 * send_message.c: send_message_smtp():
2271 re-enabled forcing of SMTP AUTH method.
2272 Clear temporary password if authentication failed.
2273 * smtp.c: output warning to log and set SMTPSession::error_val
2275 * smtp.h: changed error value to enum. Added SMTPSession::error_val.
2276 * src/mbox.c: proc_mbox(): force updating of folder.
2280 * src/pop.h: changed error value to enum.
2281 * src/pop.c: pop3_retr_recv(): return PS_IOERR when inc_drop_message()
2283 pop3_ok(): return appropriate error value based on current state.
2284 Output warning to log if error occurs.
2289 src/news.[ch]: refactored. Remove NNTPSockInfo and use NNTPSession
2294 * src/inc.c: inc_pop3_session_do(): retrun appropriate error if
2295 Session::state == SESSION_ERROR.
2296 * po/POTFILES.in: removed src/automaton.c and src/send.c.
2297 Added src/send_message.c.
2302 src/session.c: fixed breakage of POP3 retrieval.
2303 session_recv_data_from_sock_unescape(): read until terminator
2304 appears and also return the actual size.
2308 * src/automaton.[ch]: removed.
2309 * src/session.c: removed some of the debug output.
2310 * src/smtp.c: smtp_session_recv_msg(): workaround in case server
2311 returns EHLO-style response to HELO command.
2312 Ignore all multiline responses except for EHLO since they are
2313 allowed for any command.
2318 src/pop.c: fixed retrieval of messages which contain dot-escaped
2320 session_recv_data(): added a flag for unescape.
2321 session_recv_data_from_sock_unescape(): new. It receives message
2322 for each line and unescapes dot-escaped lines.
2323 Removed the previous workaround.
2324 * src/defs.h: decreased UI_REFRESH_INTERVAL to 40 msec.
2328 * src/pop.[ch]: workaround for brekage of retrieval when given size
2329 and actual one is different.
2333 * src/pop.c: pop3_retr_eom_recv(): ignore invalid end of message
2334 since some servers sometimes return incorrect message size.
2335 * src/news.c: news_session_new(): zero clear NNTPSession object.
2336 Don't initialize Session::sock with nntp_sock->sock to prevent
2337 double-free of SockInfo.
2338 * src/imap.c: zero clear IMAPSession object.
2339 imap_cmd_append(): don't close SockInfo.
2343 * src/pop.c: pop3_session_recv_msg(): fixed STLS.
2348 src/pop.[ch]: reimplemented using new I/O system.
2349 * src/session.[ch]: session_recv_data(): new.
2350 session_send_data_to_sock()
2351 session_recv_data_from_sock(): decreased the frequency of progress
2356 * src/smtp.c: smtp_auth_recv(): fixed CRAM-MD5 authentication.
2360 * src/session.[ch]: session_start_tls(): new.
2361 session_recv_msg(): made it static.
2365 * implemented asynchronous network I/O.
2366 * src/session.[ch]: the interface to communicate with servers through
2369 src/send_message.[ch]: rewrote using new I/O system.
2370 * src/socket.[ch]: renamed *_write() to *_write_all(), and made
2371 *_write() as just a simple wrapper for write().
2372 * src/utils.c: get_outgoing_rfc2822_str(): new. It modifies the
2373 message to send with SMTP or NNTP.
2374 file_read_stream_to_str(): new.
2378 * src/textview.c: textview_button_pressed(): corrected the range of
2380 * src/compose.c: compose_wrap_line_all_full(): treat UTF-8 characters
2381 represented with more than 2 bytes as 2 character width and 2 bytes
2382 one as a single character width as a workaround for wrapping problem.
2386 * src/utils.c: subject_compare_for_sort(): allow null strings (fixes
2391 * implemented HTML link correctly.
2392 * src/html.[ch]: HTMLAttr, HTMLTag: new structure for attributes /
2394 html_get_tag(): new. It parses tag and returns HTMLTag object.
2395 html_parse_tag(): also parses <a> tags and 'href' attributes.
2396 * src/textview.c: textview_write_link(): new. It creates link string.
2400 * src/compose.c: compose_wrap_line_all_full(): fixed an infinite
2401 loop / crash bug (thanks to Darko Koruga).
2402 compose_write_to_file(): put correct charset element when
2403 conversion failed but want to send anyway.
2407 * src/headerview.c: headerview_show()
2408 src/textview.c: textview_write_line(): remove unreadable characters
2409 from displayed strings to prevent crashes on multi-byte
2411 * src/codeconv.[ch]: conv_unreadable_locale(): new. It was separated
2412 from conv_localetodisp().
2416 * src/procmsg.c: procmsg_cmp_by_subject()
2417 src/summaryview.c: summary_cmp_by_subject(): ignore Re: when
2420 subject_compare_for_sort()
2421 trim_subject_for_sort(): new.
2429 * src/defs.h: added -i option to the default sendmail command.
2433 * src/codeconv.[ch]: added missing character encodings and locales.
2438 procmsg_get_mark_sum()
2439 procmsg_open_mark_file()
2440 procmsg_read_mark_file(): take FolderItem instead of directory
2445 * src/codeconv.c: conv_encode_header(): fixed a bug that spaces
2446 which is on the wrap boundary would be lost when encoding long
2447 non-ascii strings (thanks to Sergey Vlasov).
2448 Don't force wrapping within a long word until it reaches hard line
2449 length limit (998 characters) (workaround for the breakage of
2450 long address list with no spaces).
2454 * src/prefs_account.c: fixed compile failure when using neither
2459 * src/codeconv.c: fixed UTF-8 locale support.
2460 conv_get_code_conv_func(): return conv_noconv if locale encoding
2461 is UTF-8. Return conv_latintodisp on ISO-8859-* to locale encoding
2463 conv_convert(): call conv_iconv_strdup() instead of
2464 conv_codeset_strdup().
2465 conv_codeset_strdup(): moved some codes into conv_iconv_strdup().
2469 * src/prefs_account.[ch]: added an option to use command output for
2471 * src/compose.c: compose_insert_sig(): use command output if
2473 compose_insert_command_output(): new.
2477 * src/main.c: main(): remove lock socket if sylpheed is not running
2478 when --status command is executed.
2479 lock_socket_remove(): new.
2483 * src/codeconv.c: conv_codeset_strdup(): don't convert if current
2484 codeset is US-ASCII (or POSIX).
2488 * src/codeconv.c: conv_iconv_strdup(): try to skip invalid characters
2489 and continue conversion.
2493 * src/summaryview.c: summary_selected(): always update widget
2498 * src/utils.c: tzoffset_sec(): fixed a bug that displayed wrong
2499 date in timezones more than GMT+12 or less than GMT-12.
2503 * src/prefs_common.[ch]
2504 src/sourcewindow.c: remember the size of source window.
2505 * src/md5.c: fixed a compile problem with gcc 3.3.
2509 * src/about.c: about_create(): modified the copyright notice.
2513 * src/colorlabel.c: don't use pixmaps for label color rect but draw
2514 rectangles so we can respect the color map of palette based visuals
2515 (fixes the long time crashes on Solaris - thanks to Alfons
2520 * src/procheader.c: procheader_date_parse(): made month string case
2522 * src/prefs_filter.c: prefs_filter_close(): fixed the crash when the
2523 selection list is empty.
2527 * src/quote_fmt_parse.y: removed gettext translatable strings.
2528 * src/unmime.c: unmime_header(): remove broken characters when
2529 code conversion failed.
2530 * src/codeconv.c: conv_encode_header(): fixed a bug that broken
2531 headers if long words more than 75 characters are entered.
2535 * src/prefs_account.c: prefs_account_receive_create()
2536 src/utils.c: to_human_readable(): made units translatable.
2540 * src/codeconv.c: isprintableeuckanji(): don't allow more than 0xf4
2541 at first byte (fixes abort() problem of glibc).
2542 * src/html.c: html_read_line(): remove characters which can't be
2543 displayed on the current locale.
2548 trim_subject_for_compare(): renamed from trim_subject().
2549 trim_subject(): new. It removes [...] or (...) at the beginning
2551 * src/prefs_folder_item.c
2553 added options for trimming summary / compose subject.
2554 * src/summaryview.c: summary_set_header(): trim subject if the folder
2556 * src/compose.c: compose_reply_set_entry(): trim subject if the folder
2562 LBREAK_IF_REQUIRED(): don't break lines before first word (fixes
2563 X-Face header problem).
2564 conv_encode_header(): allow up to 97 characters for one word.
2568 * src/filter.c: filter_match_condition(): fixed the bug that
2569 second condition ignored regex.
2570 * src/news.h: NewsGroupInfo: use guint for message numbers
2571 (fix count in grouplist dialog) (thanks to Thorsten Maerz).
2575 * src/codeconv.c: conv_encode_header(): fixed a segfault bug
2576 on code conversion failure.
2577 conv_get_charset_str()
2578 conv_get_charset_from_str(): optimized using hash table.
2582 * src/quote_fmt_parse.y:
2583 SHOW_MESSAGE_NO_SIGNATURE, SHOW_QUOTED_MESSAGE_NO_SIGNATURE:
2584 treat only "\n-- \n" as a signature separator.
2588 * src/gtkutils.[ch]: gtkut_ctree_node_prev(): new.
2589 * src/summary_search.c: summary_search_execute(): search collapsed
2595 conv_unreadable_latin(): include 0x7f as an unreadable character.
2596 conv_localetodisp(): don't remove 8bit characters by default.
2597 conv_get_current_charset()
2598 conv_get_outgoing_charset(): return ISO-8859-15 if "@euro" is
2599 appended at the last of locale name.
2600 * src/compose.c: compose_write_to_file(): show from and to encoding
2601 when code conversion failed.
2609 * src/procmsg.h: WRITE_CACHE_DATA(): little speed improvement
2610 (thanks to Colin Leroy).
2611 * src/mh.c: mh_get_msginfo(): added NULL check (thanks to Thorsten
2616 * src/textview.c: textview_write_line(): don't convert if conv is
2621 * src/codeconv.[ch]:
2622 renamed conv_guess_encoding() to conv_guess_ja_encoding().
2623 conv_localetodisp(): new. It removes unreadable characters from
2624 (assumed) current locale string.
2625 conv_codeset_strdup(): convert into ISO-8859-1 if dest_code is
2626 NULL and current locale encoding is US-ASCII.
2627 conv_get_code_conv_func(): return conv_ustodisp if US-ASCII is
2628 specified for destination charset.
2629 * src/textview.c: textview_write_line(): use conv_localetodisp()
2630 instead of strncpy2() if conversion failed.
2634 * src/codeconv.c: conv_iconv_strdup()
2636 imap_modified_utf7_to_locale()
2637 imap_locale_to_modified_utf7(): use ICONV_CONST macro to remove
2638 a warning on some systems.
2639 * src/codeconv.c: conv_iconv_strdup(): flush iconv() output and
2641 Return NULL instead of incomplete string if conversion failed.
2645 * src/summaryview.c: summary_execute(): select appropriate node
2646 if currently selected node is to be deleted.
2647 * src/gtkutils.[ch]: gtkut_ctree_node_is_selected(): new. Returns
2648 TRUE if the specified node is selected.
2652 * src/summaryview.c: summary_status_show(): fixed a occasional crash
2653 on deleting or moving.
2657 * src/codeconv.c: conv_unreadable_eucjp(): made the validity check
2658 of EUC-JP more accurate.
2659 isprintableeuckanji(): new. Use table for validity check of EUC-JP.
2671 * src/quoted-printable.c: qp_encode_line(): fixed linebreak
2672 duplication bug if the source string has CRLF.
2674 canonicalize_str(): new. Returns newly allocated canonicalized
2676 uncanonicalize_file(): new. Uncanonicalize (CRLF -> LF) text.
2677 uncanonicalize_file_replace(): new.
2678 * src/compose.c: always canonicalize body before processing, and
2679 uncanonicalize before returning.
2683 * src/procmime.c: procmime_get_encoding_for_charset(): prefer
2684 ENC_8BIT for Russian charsets.
2685 * src/compose.c: compose_write_to_file(): use base64 when signing
2690 * src/prefs_common.c: prefs_send_create(): added a description for
2691 the setting of Content-Transfer-Encoding.
2695 * src/codeconv.c: fixed locale_table for Russian locales (thanks to
2697 * src/procmime.c: procmime_get_encoding_for_charset(): return
2698 ENC_BASE64 for ISO-8859-5, KOI8-* and Windows-1251.
2699 * src/compose.c: compose_attach_append(): set correct Content-
2700 Transfer-Encoding for message/rfc822.
2701 compose_write_to_file(): enabled user-definable Content-Transfer-
2703 * src/prefs_common.[ch]: added an option for user-defined Content-
2708 * src/quoted-printable.[ch]: qp_encode_line(): fixed a bug if the
2709 line doesn't end with linebreak.
2713 * implemented quoted-printable encoding.
2714 * src/quoted-printable.[ch]: qp_encode_line(): new.
2716 compose_write_to_file()
2717 compose_write_attach(): implemented quoted-printable encoding.
2718 compose_attach_property_create(): enabled quoted-printable menu
2720 * src/procmime.c: procmime_get_encoding_for_charset(): return
2721 ENC_QUOTED_PRINTABLE for ISO-8859-* and CP125* charset.
2722 * src/Makefile.am: added $(LIBICONV) to sylpheed_LDADD for libiconv
2729 src/utils.[ch]: get_abbrev_newsgroup_name(): improved the way
2730 of abbreviation of newsgroup name.
2734 * configure.in: show the result of iconv detection.
2738 * src/codeconv.[ch]: made the transition from libjconv to iconv().
2739 conv_iconv_strdup(): new.
2743 src/prefs_common.c: replaced HAVE_LIBJCONV to HAVE_ICONV.
2749 src/prefs_folder_item.c: English fix (property -> properties).
2750 * src/prefs_filter.c: alert if entry is not saved.
2751 prefs_filter_dialog_to_filter(): new.
2755 * src/codeconv.c: conv_encode_header(): fixed a bug which output raw
2756 strings after linefeed.
2761 * src/codeconv.[ch]: code cleanup and optimization.
2762 conv_code_converter_new()
2763 conv_convert(): use functions obtained by conv_get_code_conv_func()
2764 when using libjconv.
2765 conv_codeset_strdup(): code cleanup.
2766 conv_get_code_conv_func(): added an argument for destination
2767 character set, and generalized.
2771 * src/codeconv.c: LBREAK_IF_REQUIRED(): break line only if some
2773 * src/compose.c: compose_convert_header(): remove trailing spaces.
2774 * src/customheader.c: custom_header_read_str(): strip the spaces
2776 * src/prefs_customheader.c: prefs_custom_header_clist_set_row():
2777 strip the spaces of name and value.
2785 * src/codeconv.c: conv_encode_header(): fixed a bug which will run
2786 into infinite loop when encountering invalid characters.
2790 * src/procmsg.[ch]: procmsg_sort_msg_list(): new. It sorts message
2792 * src/summaryview.c: summary_show(): removed summary_sort() because
2793 it is done inside folder_item_get_msg_list(). This will improve
2794 the performance of summary display.
2795 Sorted out the summary sort functions using macros.
2799 src/folder.[ch]: folder_item_get_msg_list(): return pre-sorted
2800 list if FolderItem::sort_key is set.
2801 Added SORT_BY_TO to FolderSortKey enum.
2802 * src/mainwindow.c: added "View/Sort/by recipient".
2810 * src/codeconv.c: conv_encode_header(): fix for redundant space on
2812 * src/compose.c: compose_convert_header(): always pass string to
2813 conv_encode_header() for line-breaking.
2817 * src/textview.c: textview_make_clickable_parts(): fixed incorrect
2818 parsing of email addresses.
2822 * src/defs.h: added DEFAULT_BROWSER_CMD.
2823 * src/mimeview.c: mimeview_view_file()
2824 src/prefs_common.c: prefs_other_create()
2825 src/utils.c: open_uri(): changed the default web browser to
2826 mozilla, and changed 'raise' command (which is undocumented)
2827 to 'new-window' in 'netscape -remote'.
2831 * src/compose.c: compose_send_control_enter(): fixed crash on
2832 Ctrl-Enter when Message/Send has no accelerator key (thanks to
2840 sort_summary_type_cb(): prevent unwanted processing on unchecking
2845 * src/main.c: process command line option before gtk_init() to
2846 enable remote operation without X (thanks to Ruslan N. Balkin).
2847 * src/codeconv.c: conv_encode_header(): fixed a potential buffer
2852 * src/Makefile.am: changed $(target_alias) to $(target_triplet)
2853 (the spec of autotools seems to be changed).
2857 * src/imap.c: get path separator using LIST command if server
2858 doesn't support NAMESPACE (based on the patch by Brian Sammon).
2859 imap_parse_list(): added an argument to return path separator.
2860 imap_get_namespace_by_list(): new.
2864 * src/addr_compl.c: add_address(): removed the debug print.
2865 * src/gtkutils.[ch]: gtkut_window_popup()
2866 src/mainwindow.c: main_window_popup(): applied the patch to fix
2867 the behavior of window popup from Sergey Vlasov (thanks!)
2868 * src/account.c: account_edit_create(): use signal_connect_after
2869 for row_move signal to fix the row position bug.
2870 account_row_moved(): scroll the CList half page.
2871 * src/prefs_filter.c: prefs_filter_row_move(): scroll the CList
2873 * src/summaryview.c: summary_reply(): use selection text only if
2874 the displayed message is selected (thanks to Sergey Vlasov).
2878 * src/codeconv.c: conv_encode_header(): reimplemented the routine
2879 of MIME header encoding. And use Q-encoding method if the current
2880 locale is single-byte one.
2881 * src/utils.[ch]: is_next_nonascii(): take multi-byte string instead
2882 of wide-character string. Consider control codes as non-ASCII.
2883 get_next_word_len(): new. It returns the length of next word.
2884 is_next_mbs(), find_wspace(): removed.
2885 * src/quoted-printable.[ch]: new.
2886 qp_decode_line(): decodes one QP line.
2887 qp_decode_q_encoding(): decodes Q-encoded string in MIME header.
2888 qp_get_q_encoding_len(): returns the length when a string is
2890 qp_q_encode(): Q-encode a string (RFC 2047).
2891 * src/unmime.c: moved the functions for quoted-printable to
2896 * src/send.c: send_message_local(): escape line that only have one
2897 dot character (postfix's sendmail command will stop there).
2901 * src/send.c: send_message_local(): don't escape first-dot line
2902 (thanks to Sergey Vlasov).
2906 * autogen.sh: added 'libtoolize --force --copy' to override the
2908 * acconfig.h: removed.
2909 * configure.in: increased minimal version of GPGME to 0.3.10.
2910 Fixed checking of XIM.
2912 ac/gnupg-check-typedef.m4: added an argument for comment.
2916 * src/imageview.[ch]: fixed conflicting declarations of
2917 imageview_show_image() (thanks to Thorsten Maerz).
2921 * src/compose.c: compose_entry_append(): don't add ", " on subject
2923 * src/codeconv.c: conv_get_outgoing_charset(): obtain outgoing
2924 charset from the table (currently disabled for non-Japanese locales).
2925 conv_get_current_locale(): also refer to LC_CTYPE.
2929 * README: added a description about hidden settings.
2933 * src/prefs_common.[ch]: reorganized the common prefs dialog.
2934 Made enable_hscrollbar and bold_unread hidden options.
2938 * src/quote_fmt_parse.y: fixed a parse error (thanks to Andreas Hinz).
2943 account_find_from_message_file()
2944 account_find_from_msginfo(): new. They find an account from the
2945 headers like 'From:', 'X-Sylpheed-Account-Id:', and 'AID:' in the
2948 compose_reedit(): restore messages' previous account on composition.
2949 compose_write_headers(): add 'X-Sylpheed-Account-Id:' header
2954 * src/compose.c: cleaned up the code using compose_entry_set()
2955 (don't use gtk_entry_set_text() directly).
2959 * src/imap.c: imap_parse_namespace(): fixed a memory leak.
2963 * updated autotools and libtool to the latest version.
2964 * configure.in: added AC_PREREQ(2.50).
2968 * src/textview.c: textview_set_font(): fix for message display in
2969 UTF-8 locales (thanks to Sergey Vlasov).
2973 * src/imageview.[ch]: imageview_show_image(): resize images to fit
2974 the window size if specified.
2975 * src/prefs_common.[ch]: added an option 'Resize attached images'.
2979 * refactoring for SMTP implementation.
2980 * src/session.h: added ui_func to Session.
2981 * src/smtp.[ch]: separated the connection routine from
2982 smtp_session_new() to smtp_connect().
2983 Changed the argument of every function other than smtp_ok() from
2984 SockInfo to SMTPSession.
2985 Call UI callback from each functions.
2986 * src/send.c: send_message_smtp(): separated the code for UI update
2987 into send_progress_dialog_update().
2991 * src/smtp.[ch]: separated smtp_auth() from smtp_from().
2992 * src/send.c: send_message_smtp(): call smtp_auth() and display
2993 the state to the dialog.
2997 * src/filter.c: strmatch_regex(): use extended regex (thanks to
2999 * src/main.c: main(): removed the code for assortrc -> filterrc
3001 * src/gtkutils.c: gtkut_font_load(): only use gdk_font_load() if
3002 current locale is C or POSIX.
3003 gtkut_stext_is_uri_string(): include "www." for URI string.
3004 * src/textview.c: textview_make_clickable_parts(): include "www."
3013 * src/textview.c: textview_add_part(): indicate signature status
3014 using different colors.
3018 * src/folder.c: folder_write_list_recursive(): escape
3019 To/Cc/Bcc/Reply-To strings.
3023 * src/codeconv.c: conv_encode_header(): enabled B-encoding of
3024 headers on locales other than Japanese when not using libjconv.
3028 * src/inc.[ch]: added INC_IO_ERROR to IncState. Also added its
3029 corresponding error message.
3030 inc_pop3_session_do(): set INC_IO_ERROR instead of INC_NOSPACE
3035 * src/prefs_account.[ch]: removed prefs_account_save_config() since
3037 * src/procmime.[ch]: removed procmime_mimeinfo_free() since
3038 procmime_mimeinfo_free_all() can be used in every case.
3042 * src/account.c: account_get_special_folder(): support F_INBOX, and
3047 * src/compose.[ch]: ComposeEntryType: changed COMPOSE_* to
3048 COMPOSE_ENTRY_*, and added
3049 COMPOSE_ENTRY_{REPLY_TO,SUBJECT,FOLLOWUP_TO}.
3052 compose_redirect(): added FolderItem to the arguments, and reflect
3053 settings in the item.
3054 compose_entry_set(): new.
3055 compose_entry_append(): code cleanup.
3056 compose_entries_set_from_item(): take ComposeMode in its arguments,
3057 and enabled FolderItem::use_auto_to_on_reply.
3058 * src/summaryview.c: summary_reply(): pass folder_item to
3059 compose_{reply,forward,redirect}().
3063 * src/gtkutils.[ch]:
3064 gtkut_font_load(): new. It automatically choose font or fontset
3066 gtkut_font_load_from_fontset(): new. It tries to load single font
3067 instead of fontset from a fontset string.
3071 src/summaryview.c: workaround for the problem that couldn't display
3072 8-bit characters in C or POSIX locale (use font instead of fontset).
3075 src/textview.c: made code cleanup using gtkut_font_load*().
3079 * src/mh.c: mh_get_msginfo(): set correct message number.
3083 * src/folder.[ch]: added a new virtual method Folder::get_msginfo().
3084 It returns a new MsgInfo associated to a message number.
3085 folder_item_get_msginfo(): new.
3086 * src/imap.[ch]: imap_get_msginfo(): new.
3087 * src/mh.[ch]: mh_get_msginfo(): new.
3088 * src/news.[ch]: news_get_msginfo(): new.
3092 * src/codeconv.c: conv_euctojis(): fixed a bug which will cause
3093 infinite loop if an invalid code appeared.
3097 * src/codeconv.c: conv_codeset_strdup()
3098 src/html.[ch]: html_read_line(): don't output conversion failure
3100 Added HTML_CONV_FAILED to the enum HTMLState.
3104 * implemented per-folder auto-set address (still in progress).
3105 * src/compose.[ch]: compose_new(): added FolderItem to its arguments,
3106 and set entries from it (if mailto is empty).
3107 compose_entry_append(): activate menu if required.
3108 compose_entries_set_from_item(): new.
3109 * src/folder.[ch]: added auto_to, use_auto_to_on_reply, auto_cc,
3110 auto_bcc, and auto_replyto to FolderItem, and renamed apply_sub to
3112 folder_build_tree(), folder_read_folder_func(),
3113 folder_write_list_recursive(): added the above members.
3114 * src/prefs_folder_item.[ch]: added auto-set addresses.
3115 * src/pop.[ch]: removed Pop3State::prev_folder.
3119 * src/compose.c: allow dropping files by also "moving" files from a
3120 file manager (thanks to Alfons).
3124 * compose_reply_set_entry(): made Reply-To have priority over
3125 List-Post on ML reply.
3129 * src/gtksctree.[ch]: gtk_sctree_set_anchor_row(): new.
3130 * src/summaryview.c: summary_step(): fixed a bug that lost the
3131 correct selection anchor.
3132 summary_key_pressed(): use gtk_sctree_select() instead of
3136 src/recv.c: differentiate disk full and socket errors
3137 (thanks to Colin Leroy).
3141 * src/account.c: account_edit_prefs(): removed unused variables.
3142 * src/compose.[ch]: separated WITH_QUOTE/WITHOUT_QUOTE flags in
3145 compose_reply_set_entry(): receive reply type with one argument.
3146 * src/summaryview.c: summary_reply(): reduced conditional branches.
3150 * src/compose.c: compose_redirect(), compose_reedit(): strip CR
3151 from line ends (thanks to Sergey Vlasov).
3152 * src/folderview.c: renamed 'Rescan folder tree' to 'Rebuild
3157 * src/folder.[ch]: added a virtual method Folder::remove_msgs().
3158 * src/imap.[ch]: implemented imap_remove_msgs() which expunges
3159 messages all at once.
3163 * src/account.[ch]: account_open(): new. It opens account prefs
3164 dialog and reflects to UI when finished.
3166 folderview_button_pressed()
3167 folderview_property_cb(): open account prefs dialog when the
3168 property of the root folder of remote account is requested.
3172 * src/account.c: account_destroy(): unref account information in
3174 * src/folder.[ch]: folder_unref_account_all(): new. It unref the
3175 specified account information in all folders.
3177 folderview_rm_imap_server_cb()
3178 folderview_rm_news_server_cb(): destroy Folder first because
3179 folder_destroy() refers to account information.
3183 * src/account.c: account_find_from_item(): fixed a bug which didn't
3184 select the correct account.
3185 * inc_pop3_session_do():
3186 fixed the resource leak when SSL initialization failed.
3187 Immediately break from temporary event loop if cancelled.
3191 * src/account.[ch]: account_find_from_item(): new.
3193 compose_reply(), compose_forward(), compose_redirect()
3194 src/mainwindow.c: compose_cb(): select optimal account when
3196 * src/folder.[ch]: added FolderItem::apply_sub.
3197 * src/menu.[ch]: menu_find_option_menu_index(): new. It finds the
3198 index of option menu which contains the specified data.
3199 * src/prefs_folder_item(): added Compose tab, and the setting of
3204 * configure.in: added $LDAP_LIBS for lber library detection.
3212 * src/procmsg.c: procmsg_msginfo_get_full_info(): fixed a memory
3213 leak, and added error checking.
3217 * src/compose.[ch]: added a flag Compose::use_newsgroups, and
3218 removed Compose::orig_account.
3219 compose_check_for_valid_recipient(): check only enabled entries.
3220 compose_write_headers()
3221 compose_redirect_write_headers(): add Newsgroups header only
3222 when the entry is enabled.
3223 compose_send(): modified the method of finding a mail account
3224 from a news account so that it tries to match the From address.
3225 * src/send.c: send_message_queue(): enabled the queueing of news
3227 * src/news.[ch]: news_post_stream(): new.
3231 * configure.in: check lber first and use $LDAP_LIBS on the check
3236 * po/*.po: fixed many typos of format strings which will lead to
3237 crash (thanks to Sergey Vlasov).
3241 * src/procheader.c: procheader_parse_stream(): added Cc header
3242 to the target for full parsing.
3243 * src/procmsg.[ch]: procmsg_msginfo_get_full_info(): new. It
3244 returns the full message information from the given information.
3245 * src/compose.c: compose_reply(), compose_forward(): get full
3246 message information for Cc header.
3250 * src/inc.c: inc_account_mail(), inc_all_account_mail(): update
3251 IMAP4 and NNTP folder summary after checking those accounts.
3259 * src/prefs_common.c: prefs_compose_create(): modified the label
3260 of the option for Reply button.
3261 * configure.in: add -lldap and -llber to the 5th argument of
3262 AC_CHECK_LIB() for LDAP library detection.
3267 INSTALL.jp: updated.
3271 * src/mainwindow.c: toggle the behavior of Reply button between
3272 normal reply and reply-to-list.
3273 * src/prefs_common.[ch]: added an option to switch the function
3278 * src/compose.c: compose_new(): removed the workaround for XIM
3279 because it doesn't have any effect and only seems to cause
3284 * src/compose.[ch]: compose_reply(): added a flag for reply-to-ML.
3285 compose_parse_header(): parse also List-Post header.
3286 compose_reply_set_entry(): support reply-to-ML (fall back to
3287 normal reply if ML address is not found).
3290 src/summaryview.c: reorganized Reply menu and added 'Reply to
3292 * src/utils.[ch]: scan_mailto_url(): new. It scans mailto URL and
3293 returns newly allocated parameters.
3297 * src/account.c: account_read_config_all(): set account information
3298 to default before initializing with configuration file.
3299 * src/prefs_account.[ch]: prefs_account_new(): new. It returns a
3300 newly created account information structure initialized by
3301 the default settings.
3306 replace_address_in_edit(): check if newtext is NULL.
3307 completion_window_button_press(): fixed a memory leak.
3308 * src/pop.c: LOOKUP_NEXT_MSG(): don't expire messages whose
3309 recv_time is RECV_TIME_KEEP.
3310 pop3_getrange_uidl_recv(): only set get_all flag if
3311 ac_prefs->getall is set.
3312 pop3_retr_recv(): don't delete messages which are not received
3313 by filter, and set recv_time to RECV_TIME_KEEP in the case.
3314 * src/pop.h: added an enum RecvTime.
3315 * src/inc.c: inc_drop_message(): unlink temporary message file if
3316 not received by filter.
3320 * src/mainwindow.c: added 'Edit/Select thread' menu.
3321 * src/summaryview.[ch]: added 'Select thread' to the context menu.
3322 summary_select_thread(): new. It selects all messages of current
3327 * src/rfc2015.c: check_signature(): corrected error handling and
3332 * src/rfc2015.c: check_signature(): correctly remove the last empty
3333 line, and canonicalize the file part before verifying (this should
3334 fix incompatibility with Evolution or some other MUAs).
3335 * src/utils.[ch]: copy_file_part(): new. It copies the specified
3336 range of file stream to another file.
3340 * src/compose.c: compose_write_to_file(): force BASE64 encoding for
3341 8-bit text when signing (thanks to Colin Leroy).
3345 * src/prefs_common.c: prefs_send_create(): fixed the charset string
3346 for Cyrillic (Windows-1251).
3354 * src/codeconv.c: changed the charset for ru_RU.CP1251 to
3355 Windows-1251. Added bg_BG locale.
3359 * src/compose.c: account_activated(): change the state of menu items
3360 and entries according to the selected account.
3361 compose_select_account(): new. It changes the state of title bar,
3362 menu items and entries.
3366 * src/inc.c: inc_mail(): correct new_msgs when inc_spool() returned
3368 Don't refresh summary view on fetching when open_inbox_on_inc is
3373 * src/summaryview.c: summary_show(): refresh even if open_inbox_on_inc
3374 is set (to avoid summary refresh problem).
3375 * src/imap.c: removed warnings by checking the existence of directory
3376 before calling remove*_numbered_files().
3380 * src/prefs_common.c: corrected English.
3384 * src/prefs_common.[ch]: added an option: "Mark messages as read
3385 only when opened in new window".
3390 folder_tree_destroy()
3391 folder_write_list_recursive(): added sanity check.
3392 * src/imap.c: imap_scan_tree(): if folder->node is NULL and
3393 can't get session, create empty folder node (based on the
3394 Alfons' suggestion).
3398 * src/textview.c: textview_key_pressed(): pass GDK_Delete event to
3400 * src/summaryview.c: summary_key_pressed(): scroll correct TextView
3405 * src/news.c: news_scan_group(): fixed wrong message number
3410 * major refactoring for POP3.
3411 * src/inc.[ch]: moved Pop3State, inc_pop3_state_new(),
3412 inc_pop3_state_destroy(), inc_get_uidl_table(), and
3413 inc_write_uidl_list() into pop.c.
3414 Moved Pop3State::folder_table and Pop3State::inc_state into
3417 inc_put_error(): added lockbusy state.
3418 inc_pop3_session_do(): obtain inc_state from Pop3State::error_val.
3419 inc_cancel(): don't terminate the automaton here but just set
3420 the flags to prevent crash.
3422 pop3_getauth_pass_recv()
3423 pop3_getauth_apop_recv(): check lockbusy state.
3424 pop3_retr_recv(): check Pop3State::cancelled flag.
3425 * src/automaton.[ch]: added 'cancelled' flag to Automaton.
3426 automaton_input_cb(): terminate if cancelled flag is true.
3427 * sylpheed.desktop: changed Type=Internet to Type=Application.
3428 Added Categories=Application;Network;.
3434 src/progressdialog.c: show detailed information to the status
3436 Added cur_total_recv_bytes to Pop3State.
3437 * src/prefs_common.[ch]: added an option to specify whether to
3438 close receive dialog when finished.
3442 * src/folder.[ch]: folder_get_path(): new. It returns the root path
3446 imap_folder_destroy()
3448 imap_remove_all_msg()
3449 news_folder_destroy(): remove cache directories / files when
3450 deleting Folder / messages.
3454 is_file_entry_exist(): check if the argument is NULL.
3456 remove_numbered_files()
3457 remove_expired_files(): fixed memory leaks on error.
3466 src/smtp.[ch]: made Folder and Session destructor virtual method.
3470 * src/compose.c: do joining of normal lines only when auto-wrapping.
3471 * src/main.c: modified the warning message for GnuPG.
3472 * src/about.c: about_create(): modified the compiled-in features
3474 * configure.in: improved LDAP library checking (thanks to Alfons).
3484 compose_wrap_line_all(): backed out the change to join lines that
3489 * configure.in: require at least gpgme-0.3.5.
3493 * src/alertpanel.c: alertpanel_create(): minor modification.
3502 * src/alertpanel.c: alertpanel_create(): modified the layout.
3503 * src/rfc2015.c: check_signature(): don't abort on error.
3507 * src/compose.c: compose_wrap_line_all(): freeze widget only if
3508 required to repress flickers.
3512 * src/compose.c: improved line wrapping.
3514 compose_wrap_line_all(): also join lines that are not indented.
3515 dump_text(): handle multi-byte strings correctly.
3519 * src/compose.c: compose_wrap_line_all(): fix for auto-wrapping
3520 (go to next line when space is entered at line limit).
3524 * src/inc.c: inc_get_uidl_table(): fixed a memory leak reported by
3529 * src/mh.c: mh_scan_tree_recursive(): disabled Maildir folder
3530 checking to prevent confusion.
3534 * src/folder.[ch]: folder_item_get_msg_list(): added a wrapper for
3535 method Folder::get_msg_list().
3536 * src/account.c: account_edit_prefs(), account_delete(): use
3537 folderview_set_all() instead of folderview_rescan_all().
3538 * src/folderview.[ch]:
3539 folderview_check_new_all(): new. Updates all folders.
3540 folderview_rescan_tree(): confirm before executing.
3541 folderview_rescan_all(): commented out since it's not used anymore.
3542 folderview_update_item_foreach(): added a flag for summary update.
3543 * src/inc.c: inc_finished(): update summary only when
3544 prefs_common.scan_all_after_inc is set.
3545 inc_drop_message(): set mtime of target folder to 0 to force
3546 the updating of summary.
3547 inc_start(), get_spool(): update also summary when updating
3549 * src/mainwindow.c: changed 'File - Rescan folder tree' to
3550 'File - Check for new messages in all folders'.
3554 * src/compose.c: compose_write_to_file(): clearsign message body
3556 compose_clearsign_text(): new. Replaces the string with clearsigned
3558 * src/prefs_account.c: added an option for clearsign.
3559 * src/rfc2015.c: rfc2015_clearsign(): new.
3560 pgp_sign(): added a flag for clearsign.
3561 * src/utils.[ch]: get_tmp_file(): return newly allocated unique file
3562 name (needs to be freed by caller).
3563 str_write_to_file(), file_read_to_str(): new.
3567 * src/procmsg.c: procmsg_read_mark_file(): check key duplication
3568 to avoid memory leak.
3572 * src/base64.c: include string.h for memcpy().
3573 * src/gtksctree.c: use macro ABS() instead of function abs().
3574 * src/prefs_account.c
3575 src/prefs_common.c: renamed 'send' to 'p_send' so as not to
3576 conflict with the function send() in sys/socket.h.
3577 * src/mainwindow.c: commented out the unnecessary functions.
3578 * src/utils.c: canonicalize_file_replace(): correct warning message.
3582 * src/utils.[ch]: get_tmp_file(): new. Returns the directory for
3583 temporary files in ~/.sylpheed/.
3584 * src/main.c: create temporary directory in ~/.sylpheed/.
3586 src/inc.c: create temporary files in ~/.sylpheed/, and modified
3588 compose_exec_ext_editor(): fixed a bug that failed to create the
3589 temporary file if g_get_tmp_dir() returned directory other than
3594 * src/utils.c: copy_file(): check if dest_bak != NULL when unlinking.
3598 * src/utils.[ch]: canonicalize_file_replace(): fixed a bug that fails
3599 to replace the file when the given file and temporary file are not
3600 on the same filesystem.
3601 copy_file(): added a flag whether to keep backup.
3602 move_file(): added a flag whether to overwrite the destination file.
3606 * src/socket.[ch]: fixed the linking failure when IPv6 is enabled.
3607 * src/select-keys.c: modified key selection dialog.
3611 * src/socket.[ch]: my_gethostbyname(): new.
3612 * src/utils.c: get_domain_name(): return FQDN instead of short
3613 hostname (thanks to Bob Woodside).
3614 * src/template.c: made the debug messages less verbose.
3618 * src/prefs_common.[ch]: removed obsolete default sign key setting.
3619 * src/utils.c: canonicalize_file(): correct the error check of
3624 * src/compose.c: compose_write_to_file():
3625 canonicalize line endings before encrypting/signing (this will fix
3626 interoperability with other MUAs).
3627 Removed unnecessary strdup.
3628 Don't encrypt/sign draft message.
3630 canonicalize_file(), canonicalize_file_replace(): new.
3632 src/select-keys.c: changed g_message() to debug_print() and
3634 * src/mimeview.c: mimeview_check_signature(): removed unnecessary
3635 MIME structure scanning.
3636 * src/textview.c: textview_add_part(): show signature status in
3639 src/sigstatus.c: modified translatable strings and some MIME
3644 * src/procmsg.c: procmsg_save_to_outbox(): don't forget to remove
3645 the temporary file when saving from queue.
3651 src/prefs_account.[ch]
3652 src/prefs_common.[ch]: merged GnuPG stuff from the claws branch.
3653 Modified some messages.
3657 * src/textview.c: textview_scan_header(): fixed a memory leak
3662 * src/prefs_actions.c: execute_actions(): put create_io_dialog()
3663 in right conditional block.
3667 * src/compose.c: compose_wrap_line_all(): fixed character buffer
3673 log_error(): add time stamp to log messages.
3678 corrected a typo (HAVE_SYS_SELECT -> HAVE_SYS_SELECT_H)
3682 * src/socket.c: implemented socket I/O timeout.
3684 * src/pop.c: check errors and return error value correctly.
3688 * src/prefs_actions.c: made the action's input/output dialog display
3689 without delay. Made the dialog modal instead of making window
3690 insensitive. Also cleaned up its UI.
3694 * implemented --attach command line option.
3696 Cmd::attach_files: new member to store file paths.
3697 parse_cmd_opt(): added --attach option. --compose option is implied.
3698 prohibit_duplicate_launch()
3699 lock_socket_input_cb(): added "compose_attach" message.
3702 src/textview.c: renamed compose_new_with_recipient() to
3703 compose_new(), and added an argument for attachment files.
3707 * src/logwindow.c: freeze GtkText widget while hidden.
3708 log_window_append(): changed the header for message and warning.
3712 * src/news.c: implement automatic cache expiration.
3713 news_delete_expired_caches(): new.
3714 news_get_article_list(): fixed a bug that nonexistent messages
3715 were not removed from list.
3716 * src/procmsg.[ch]: procmsg_get_last_num_in_msg_list(): renamed
3717 procmsg_get_last_num_in_cache().
3718 * src/utils.[ch]: remove_expired_files(): new.
3723 inc_mail(): force summary refresh when using external command for
3725 inc_all_account_mail(): fixed a bug on spool checking failure.
3736 src/editldap_basedn.c
3738 src/prefs_common.c: fixed memory leaks which didn't free strings
3739 gtk_editable_get_chars() returned. And minor code cleanups.
3741 src/vcard.h: removed C++-style comments.
3745 * src/codeconv.c: conv_encode_header(): fixed a problem in encoding
3746 strings which include both multi-byte and us-ascii characters.
3750 * src/utils.c: remove_numbered_files(): don't try to unlink()
3753 conv_get_code_conv_func(): return conv_anytodisp() if charset is
3755 conv_unmime_header_overwrite()
3756 conv_unmime_header(): do conv_anytodisp() before decoding header.
3764 * src/compose.c: added 'Tools/Actions' menu.
3768 * src/base64.c: a minor fix for BASE64VAL() macro.
3772 * src/base64.c: base64_decode(): fixed a buffer overrun bug.
3780 src/base64.[ch]: rewrote the BASE64 encode / decode routines.
3781 base64_encode(), base64_decode(): new.
3782 * src/rfc822.[ch]: removed.
3784 src/about.c: removed the copyright notice for fetchmail.
3790 src/unmime.[ch]: rewrote the MIME decode routines.
3792 unmime_quoted_printable_line(): new.
3794 procheader_get_one_field()
3795 procheader_get_unfolded_line(): remove also CR.
3799 * libkcc: removed from the source tree.
3801 src/about.c: removed the copyright notice for libkcc.
3802 * src/codeconv.c: conv_guess_encoding(): check for ASCII code first
3804 * src/prefs_actions.c: removed unnecessary spaces/tabs.
3808 * src/prefs_actions.c: comply with the coding style.
3809 Modified the UI design.
3810 * src/mainwindow.c: main_window_set_menu_sensitive(): enable Actions
3811 menu when multiple messages are selected.
3815 * src/prefs_actions.[ch]: merged the 'Actions' feature from claws.
3816 update_actions_menu(): simplified the menu deletion.
3817 * src/mainwindow.c: added 'Actions' menu to Tools and Configuration.
3821 * src/codeconv.[ch]: implemented conv_jistoeuc(), conv_euctojis(),
3822 conv_sjistoeuc(), and conv_guess_encoding(). Removed the dependency
3827 * configure.in: added check for strchr.
3831 * src/prefs_common.[ch]
3832 src/inc.c: added an option to inhibit receive error dialog.
3836 * src/account.c: account_find_from_address(): support multiple
3837 addresses in header.
3841 * src/gtksctree.[ch]: changed GtkSCTree::anchor_row from gint to
3842 GtkCTreeNode* so that it won't become invalid after the row move.
3843 Removed dependency to gtkutils.c.
3844 * src/prefs_common.[ch]
3845 src/summaryview.c: summary_selected(): added an option to show
3846 message when cursor keys are pressed on summary view.
3852 src/compose.c: changed "host_alias" to "target_alias" so that it
3853 shows the correct system name on cross-compiling (thanks to
3858 * src/prefs_account.[ch]: added the option menu to force an
3859 authentication method for SMTP AUTH.
3861 src/smtp.[ch]: smtp_from(), smtp_auth(): added an argument to
3862 specify the authentication method for SMTP AUTH.
3863 smtp_ehlo(): allow AUTH responses that don't comply with the RFC.
3867 * src/prefs_common.[ch]
3868 src/compose.c: enabled "Wrap on input".
3872 * src/summaryview.[ch]
3873 src/mainwindow.c: added "Go to/{Prev,Next} new message" menu.
3874 Made some code cleanups.
3879 src/prefs_common.[ch]: added the hidden option to specify the
3880 policy of the vertical scrollbar on folder view.
3884 * src/messageview.[ch]:
3885 messageview_copy_clipboard(): fixed a bug that couldn't copy text
3887 messageview_get_current_textview(): new.
3888 messageview_get_text_widget(): removed.
3889 * src/quote_fmt_parse.y: quote message even if msginfo is empty.
3890 * src/compose.[ch]: implemented the "Paste as quotation" feature.
3891 text_inserted(): new callback for "insert_text" signal.
3892 Add quote mark to the pasted text if Compose::paste_as_quotation
3897 * src/compose.c: if the Content-Type of a file is text/*, check
3898 its content and set the optimal Content-Transfer-Encoding (thanks
3903 * src/textview.c: textview_key_pressed(): pass key press event to
3904 main window to activate menu shortcuts (thanks to Alfons).
3908 * src/folder.c: folder_build_tree(): use strtoul() instead of atoi()
3909 for mtime to prevent flooring.
3912 imap_move_msgs_with_dest()
3913 imap_copy_msgs_with_dest(): fixed a bug that prevented multiple
3915 imap_parse_envelope()
3916 imap_cmd_envelope(): use RFC822.HEADER instead of ENVELOPE to get
3917 full information of messages and simplify the parser. Also fixed
3918 the bug that References header was ignored on threading.
3919 imap_parse_one_address()
3920 imap_parse_address(): removed.
3921 imap_get_header(): new. It reads the RFC822 header and returns
3922 a newly allocated string.
3923 * src/procheader.[ch]: changed procheader_parse() to