2021-08-18  Pawel Salek  <pawsa0@gmail.com>

	* .../Makefile.am: include '*meson*' files in the distribution package.
	* NEWS, configure.ac, meson.build: release balsa-2.6.3

2021-03-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	imap-handle: use a flexible array member

	to append data to struct ImapMsgSerialized.

	Thanks to @albrecht for the suggestion and reference to the C99
	standard, in https://gitlab.gnome.org/GNOME/balsa/-/issues/57

	* libbalsa/imap/imap-handle.c:
	  struct ImapMsgSerialized: replace
	    - gchar fetched_headers_first_char;
	    with a flexible array member
	    + gchar fetched_headers_data[];
	  (imap_message_serialize): adapt to the change;
	  (imap_message_deserialize): ditto.

2021-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	html: WebKit deprecation cleanup

	* libbalsa/html.c (lbh_web_view_new):
	webkit_settings_set_enable_plugins() is deprecated in 2.32 (we
	test for 2.31.91).

2021-03-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Lock destination when copying or moving

	* libbalsa/mailbox.c
	  (libbalsa_mailbox_real_messages_copy): remove guards;
	  (messages_copy_locked): helper;
	  (libbalsa_mailbox_messages_copy): guard and lock destination,
	    and use helper;
	  (libbalsa_mailbox_messages_move): ditto.

2021-03-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	imap-handle: check for non-compliant responses

	* libbalsa/imap/imap-handle.c
	  (imap_cmd_step): disconnect if a protocol error is found;
	  (ir_exists): check that the handle is either authenticated or selected;
	  (ir_recent): ditto;
	  (ir_fetch_seq): check that the handle is selected;
	  (ir_expunge): ditto; also check that the sequence number of
	    the expunged message is valid.

2021-03-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Try to avoid critical messages

	* libbalsa/mailbox_imap.c
	  (imap_expunge_idle): handle expunged messages in the order
	    they are expunged;
	  (libbalsa_mailbox_imap_fetch_headers): avoid a critical message.

2021-03-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove a scheduled idle callback at close time instead of at
	dispose time.

	* libbalsa/mailbox_imap.c
	  (libbalsa_mailbox_imap_close): remove expunged idle source, if any;
	  (libbalsa_mailbox_imap_dispose): comment that it should have
	    been removed at close time.

2021-03-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Handle expunged IMAP messages in an idle callback

	* libbalsa/mailbox_imap.c: add an array of expunged messages and
	    an idle id to LibBalsaMailboxImap;
	  (libbalsa_mailbox_imap_init): initialize them;
	  (libbalsa_mailbox_imap_dispose): remove any outstanding idle source;
	  (libbalsa_mailbox_imap_finalize): free the array;
	  (imap_expunge_cb): populate the array, and if necessary schedule the idle
	    callback;
	  (imap_expunge_idle): handle the expunged messages.

2020-12-21  Pawel Salek  <pawsa0@gmail.com>

    * NEWS, configure.ac, meson.build: release balsa-2.6.2


2020-12-19  Pawel Salek  <pawsa0@gmail.com>

    * libbalsa/imap/imap-auth.c: catch errors mid authentication process.
    * libbalsa/imap/imap-commands.c: simplify CAPABILITY handling
    to prevent infinite loops.

2020-12-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: Define the FORTIFY_SOURCE macro only if the
	  optimiztion level is at least 2.

2020-11-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Do not export balsa_window_fix_paned

	* src/main-window.c (bw_fix_panes): it is now local;
	  (bw_set_panes): set the GSource for it;
	* src/main-window.h: do not export it;
	* src/main.c (balsa_activate_cb): do not use it.

2020-11-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Fix some geometry

	Use the correct GtkPaned's position to detect changes in the
	width of BalsaMBList and the height of BalsaIndex

	* src/main-window.c
	  (Private structure): add mblist_parent and notebook_parent
	    widgets;
	  (bw_mblist_parent_position_cb): callback for the mblist's
	    horizontal GtkPaned parent;
	  (bw_notebook_parent_position_cb): callback for the notebook's
	    vertical GtkPaned parent;
	  (bw_set_panes): set priv->mblist_parent and
	    priv->notebook_parent according to the layout;
	  (balsa_window_new),
	  (balsa_window_fix_paned),
	  (balsa_window_refresh),
	  (bw_show_mbtree),
	  (balsa_change_window_layout): use the appropriate parent
	  GtkPaneds, instead of paned_parent and paned_child.

2020-10-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-icons: rename balsa_register_pixbufs()

	to balsa_register_icon_names(), and drop its now unused parameter.

	* src/balsa-icons.c (balsa_register_icon_names):
	* src/balsa-icons.h:
	* src/main-window.c (balsa_window_new):

2020-10-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Set the "icon-name" property of the
	GtkCellRendererPixbufs instead of the "pixbuf" property.

	* src/balsa-index.c (balsa_index_init): set the "icon-name" property;
	* src/balsa-icons.c (balsa_register_pixbufs):
	    register the address-view icons by name instead of pixbuf.
	* libbalsa/mailbox.c (mailbox_model_init): the status and
	    attachment columns are now strings, not pixbufs;
	  (mailbox_model_get_value): ditto;
	  (libbalsa_mailbox_set_unread_icon), (libbalsa_mailbox_set_trash_icon),
	  (libbalsa_mailbox_set_flagged_icon), (libbalsa_mailbox_set_replied_icon),
	  (libbalsa_mailbox_set_attach_icon), (libbalsa_mailbox_set_good_icon),
	  (libbalsa_mailbox_set_notrust_icon), (libbalsa_mailbox_set_bad_icon),
	  (libbalsa_mailbox_set_sign_icon), (libbalsa_mailbox_set_encr_icon):
	    the parameter is a string, not a pixbuf;
	* libbalsa/mailbox.h: ditto.

2020-10-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Address-view: Set the "icon-name" property of the
	GtkCellRendererPixbufs instead of the "pixbuf" property.

	* libbalsa/address-view.c (lbav_button_activated), (libbalsa_address_view_new):
	  the icon column is now G_TYPE_STRING instead of GDK_TYPE_PIXBUF;
	(libbalsa_address_view_set_book_icon),
	(libbalsa_address_view_set_close_icon),
	(libbalsa_address_view_set_drop_down_icon): the parameter is a
	  string, not a pixbuf;
	* libbalsa/address-view.h: ditto;
	* src/balsa-icons.c (balsa_register_pixmaps),
	(balsa_register_pixbufs): register the address-view icons by name instead of pixbuf.

2020-09-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove LibBalsaCellRendererButton

	We only needed it to capture clicks, which we can do with
	GtkTreeView's "row-activated" signal.

	* libbalsa/cell-renderer-button.c: removed;
	* libbalsa/cell-renderer-button.h: removed;
	* libbalsa/address-view.c: use "row-activated" instead.

2020-09-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-view.c (libbalsa_address_view_new): Set
	"activate-on-single-click" property to TRUE, instead of doing it
	the hard way.

2020-09-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: add a timeout to verify that the scrolled-to row is
	actually visible, and, if it isn't, to call scroll-to-row again

	* src/balsa-index.c
	  (bndx_scroll_to_row_verify_timeout): the timeout handler;
	  (bndx_scroll_to_row_idle): if the tree-view is realized,
	    schedule the timeout.

2020-08-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa-gpgme-widgets.c
	(create_key_label_with_warn): the warning icon is (now?)
	"dialog-warning", not "gtk-dialog-warning".

2020-08-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: scroll to row in another idle handler

	* src/balsa-index.c
	  (bndx_scroll_to_row_idle): the handler;
	  (bndx_scroll_to_row): helper to schedule it;
	  (bndx_scroll_on_open_idle), (bndx_select_row), (bndx_ensure_visible_idle):
	    use the helper;
	  (bndx_destroy): remove the source, if necessary.

2020-08-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Ensure visible in a low-priority idle callback

	* src/balsa-index.c (bndx_ensure_visible_idle): the callback;
	(balsa_index_ensure_visible): schedule it.

2020-08-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some more mailbox-opening issues

	* libbalsa/mailbox.c (libbalsa_mailbox_get_has_sort_pending):
	  new function;
	* libbalsa/mailbox.h: declare it;
	* src/balsa-index.c (bndx_scroll_on_open_idle): use it;
	* src/main-window.c (bw_real_open_mbnode_idle_cb): show the
	  BalsaIndex widget here, instead of in the scroll-on-open idle
	  handler
	(balsa_window_next_unread): balsa_index_select_next_unread()
	  finds the next unread message even if it is hidden.

2020-08-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Restore text copy

	Edit:Copy has been broken for a while, because
	BalsaMimeWidgetText is now a container, not the actual text
	widget.

	* src/balsa-message.c (balsa_message_can_select): Check the
	mime-widget's text-widget, not the mime-widget itself.

2020-07-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Various: Drop libbalsa_{radio,toggle}_activated

	https://developer.gnome.org/gio/stable/GActionMap.html#GActionEntry:
	Since GLib 2.40, [activate] can be NULL for stateful actions,
	in which case the default handler is used. For boolean-stated
	actions with no parameter, this is a toggle. For other state
	types (and parameter type equal to the state type) this will be a
	function that just calls change_state…

	* libbalsa/application-helpers.c (libbalsa_window_add_accelerator):
	* libbalsa/application-helpers.h:
	* libbalsa/source-viewer.c (libbalsa_show_message_source):
	* src/ab-main.c (get_main_menu):
	* src/main-window.c:
	* src/message-window.c:
	* src/sendmsg-window.c:

2020-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	body: If a part with content-type "message/external-body" has
	access-type URL, use its URL parameter as the filename, instead
	of g_mime_part_get_filename(), so that the previous commit can
	work.

	* libbalsa/body.c (libbalsa_message_body_set_filename): get the
	  "access-type" parameter; if it is non-NULL and equals
	  "URL", get the "URL" parameter and use it as the part's
	  filename; we do not need to verify that the content-type is
	  "message/external-body", as the "access-type" parameter is
	  NULL for any other content-type.

2020-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose-window: Attachments of type "message/external-body" must
	have a filename, because libbalsa_message_create_mime_message()
	uses it to distinguish access-type=URL from
	access-type=local-file.

	* src/sendmsg-window.c (attachment2message):

2020-07-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose-window: Handle attachments of type
	"message/external-body" when continuing a draft message.

	* src/sendmsg-window.c (add_urlref_attachment): do not free the
	    URL string;
	  (attachments_add): free it here;
	  (add_file_attachment): new helper;
	  (continue_body): use it.

2020-07-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose-window: Use gtk_selection_data_get_uris() instead of our
	own code.

	* src/sendmsg-window.c (attachments_add), (drag_data_quote):

2020-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose-window: Make the "Open" option on the urlref-attachment
	context menu work.

	* src/sendmsg-window.cs
	  (on_open_url_cb): Get the top-level window from the compose
	  window; getting it from the menu-item leads to a Wayland
	  error;
	  (add_urlref_attachment): Populate BalsaAttachInfo:file_uri.

2020-06-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Actually pop up the context menu when
	right-clicking on an URL.

	* src/balsa-mime-widget-text.c (text_view_url_popup):

2020-06-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main: Sandbox all the webkit

	https://gitlab.gnome.org/GNOME/Initiatives/-/wikis/Sandbox-all-the-WebKit!

	* src/main.c (balsa_startup_cb):

2020-06-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Various: Use GtkTreeView's "row-activated" signal instead of
	connecting to "button-press-event".

	* libbalsa/autocrypt.c (autocrypt_db_dialog_run),
	(row_activated_cb):
	* libbalsa/libbalsa-gpgme-cb.c (row_activated_cb),
	(lb_gpgme_select_key):

2020-06-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Various: restore filtering in a mailbox that is not currently
	being viewed.

	* libbalsa/mailbox.c (libbalsa_mailbox_message_match),
	(lbm_cache_message): make sure we cache message info when we need it
	for matching;
	* libbalsa/mailbox_local.c (message_match_real): guard against
	NULL threading-info;
	* src/filter-run-dialog.c (available_list_selection_changed),
	(selected_list_selection_changed): no need to disable the
	"Apply" buttons when the mailbox is not being viewed.

2020-06-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	filter-run-dialog: Disable "Apply selected" and "Apply now" when
	the mailbox is not currently being viewed in the main window. It
	no longer crashes, because of the previous commit, but it does
	not actually carry out any filters, so the user should see the
	option as disabled.

	* src/filter-run-dialog.c (available_list_selection_changed),
	(selected_list_selection_changed):

2020-06-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not crash when selecting "Apply selected" when the mailbox is
	not being viewed in the main window.

	* libbalsa/mailbox_local.c (message_match_real): check for NULL
	values;
	* src/filter-run-dialog.c (balsa_filter_run_dialog_new): call
	prepare-threading to get ready for filtering.

2020-06-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Do not crash

	if the message part is changed while the find-in-message bar is
	active.

	* src/balsa-message.c (bm_find_entry_changed_cb):

2020-06-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	toolbar-factory: Stop using direct access to GdkEvent structs

	Use gdk_event_get_event_type instead of directly accessing
	event->type.

	* src/toolbar-factory.c (tm_popup_context_menu_cb):

2020-06-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Find in message: Make it work again

	* src/balsa-mime-widget-text.c
	(balsa_mime_widget_text_get_text_widget): new getter;
	* src/balsa-mime-widget-text.h: ditto;
	* src/balsa-message.c (bm_find_entry_changed_cb), (bm_find_again),
	(bm_find_pass_to_entry), (balsa_message_find_in_message): use it
	to get the real text widget (GtkTextView, GtkSourceView).

2020-06-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mblist: Stop using direct access to GdkEvent structs

	Use GdkEvent getters instead of directly accessing fields.

	* src/balsa-mblist.c (bmbl_select_mailbox), (bmbl_mru_selected_cb):

2020-06-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose window: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button-press-event" widget
	signal.

	* src/sendmsg-window.c (attachment_button_press_cb),
	(sw_attachment_list):

2020-06-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Use bmwt_html_ prefix

	for all HTML-related functions.

	* src/balsa-mime-widget-text.c (bmwt_html_zoom_in),
	(bmwt_html_zoom_out), (bmwt_html_zoom_reset),
	(bmwt_html_select_all_cb), (bmwt_html_populate_popup_menu),
	(bmwt_html_popup_context_menu), (bmwt_html_gesture_pressed_cb),
	(bmwt_html_populate_popup_cb), (bm_widget_new_html):

2020-06-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Connect to "notify::focus" signal instead of the
	"focus-in" and "focus-out" widget signals.

	And use the focus status to block the window's accelerator keys
	when the search entry has the keyboard focus.

	* src/main-window.c (bw_check_filter), (bw_create_index_widget),
	(bw_add_win_action_entries), (bw_set_menus), (balsa_window_new):

2020-06-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	application-helpers: Add the capability to block accels

	* libbalsa/application-helpers.c
	  (accel_activate): check whether they are blocked;
	  (libbalsa_window_block_accels): new function;
	* libbalsa/application-helpers.h: ditto.

2020-06-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button-press-event" widget
	signal.

	The HTML part context menu was the last user of an event signal.

	* src/balsa-mime-widget-text.c (mwt_gesture_pressed_cb),
	(bm_widget_new_html):

2020-06-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Use event-controllers instead of connecting to
	event signals.

	* src/balsa-mime-widget-text.c
	  (mwt_controller_motion_cb), (mwt_controller_leave_cb):
	    GtkEventControllerMotion callbacks;
	  (balsa_mime_widget_new_text): use event-controllers instead of connecting
	    to event signals;
	  (store_button_coords), (check_over_url), (check_call_url): new API.

2020-06-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-image: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button-press-event" widget
	signal.

	* src/balsa-mime-widget-image.c (balsa_image_button_press_cb),
	(balsa_mime_widget_new_image):

2020-06-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button-press-event" widget
	signal.

	* src/balsa-message.c (balsa_message_init),
	(tree_mult_selection_popup), (tree_button_press_cb):

2020-06-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Various: Connect to the "focus-{in,out}" signals of a
	GtkEventControllerKey instead of the "focus-{in,out}-event" widget
	signals.

	This is preparation for GTK4, but will still need to be changed
	to use GtkEventControllerFocus in that distant future.

	* src/balsa-message.c (bm_header_tl_buttons), (balsa_message_init):
	* src/balsa-mime-widget-message.c (bm_header_widget_new):
	* src/balsa-mime-widget.c (balsa_mime_widget_new):
	* src/balsa-mime-widget-callbacks.c
	  (balsa_mime_widget_limit_focus),
	  (balsa_mime_widget_unlimit_focus): new signature;
	* src/balsa-mime-widget-callbacks.h: ditto.

2020-06-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Various: Connect to the "key-pressed" signal of a
	GtkEventControllerKey instead of the "key-press-event" widget
	signal.

	* src/balsa-message.c (bm_header_tl_buttons), (balsa_message_init):
	* src/balsa-mime-widget-message.c (bm_header_widget_new):
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	  (bm_widget_new_html):
	* src/balsa-mime-widget-callbacks.c
	  (balsa_mime_widget_key_pressed): rename and new signature;
	* src/balsa-mime-widget-callbacks.h: ditto.

2020-06-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-mblist: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button-press-event" widget
	signal.

	* src/balsa-mblist.c (bmbl_gesture_pressed_cb), (bmbl_do_popup),
	(balsa_mblist_default_signal_bindings):

2020-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button-press-event" widget
	signal.

	* src/balsa-index.c (balsa_index_init), (bndx_gesture_pressed_cb),
	(bndx_do_popup):

2020-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	ab-main: Connect to the "key-pressed" signal of a
	GtkEventControllerKey instead of the "key-press-event" widget
	signal.

	Also drop a pointless "delete-event" handler.

	* src/ab-main.c (ew_key_pressed), (bab_window_new), (main):

2020-05-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	autocrypt: Connect to the "pressed" signal of a
	GtkGestureMultiPress instead of the "button_press_event" widget
	signal.

	* libbalsa/autocrypt.c (autocrypt_db_dialog_run),
	(gesture_pressed_cb):

2020-05-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-view: Connect to "notify::has-focus" signal instead of
	"focus-out-event".

	* libbalsa/address-view.c (lbav_notify_has_focus_cb),
	(lbav_row_editing_cb):

2020-05-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose window: Hold a reference to identity

	It is possible for BalsaSendmsg:ident to be unreffed by the
	identity configuration editor; it is only a minor inconvenience,
	but we can make it more robust by holding a reference.

	* src/sendmsg-window.c (update_bsmsg_identity),
	  (set_identity_from_mailbox), (guess_identity_from_list),
	  (sendmsg_window_new): manage the reference;
	  (balsa_sendmsg_destroy_handler): ditto; also do not bother to
	    clear members of BalsaSendmsg, as it is about to be deallocated.

2020-05-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	autocrypt: Stop using direct access to GdkEvent structs

	Use GdkEvent getters instead of directly accessing fields.

	* libbalsa/autocrypt.c (key_button_event_press_cb):

2020-05-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-view: Stop using direct access to GdkEvent structs

	Use GdkEvent getters instead of directly accessing fields.

	* libbalsa/address-view.c (lbav_key_pressed_cb),
	(lbav_selection_changed_cb):

2020-05-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-book and subclasses: Clean up #includes

	* libbalsa/address-book-extern.c:
	* libbalsa/address-book-extern.h:
	* libbalsa/address-book-gpe.c:
	* libbalsa/address-book-gpe.h:
	* libbalsa/address-book-ldap.c:
	* libbalsa/address-book-ldap.h:
	* libbalsa/address-book-ldif.c:
	* libbalsa/address-book-osmo.c:
	* libbalsa/address-book-osmo.h:
	* libbalsa/address-book-rubrica.c:
	* libbalsa/address-book-text.c:
	* libbalsa/address-book-text.h:
	* libbalsa/address-book-vcard.c:
	* libbalsa/address-book.c:

2020-05-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	compose window: BalsaSendmsg:ident may be destroyed while the
	compose window is open, and the only way we can know is if it
	is removed from BalsaApplication:indenties

	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler): check if
	BalsaSendmsg:ident can be found in BalsaApplication:indenties.

2020-05-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Bump required versions as discussed in
	https://mail.gnome.org/archives/balsa-list/2020-May/msg00010.html
	and remove corresponding conditional compilation directives.

	* configure.ac:
	* libbalsa/html.c (lbh_web_process_terminated_cb),
	(lbh_web_view_new):
	* libbalsa/identity.c (help_ident_cb):
	* libbalsa/mime.c (is_in_url):
	* libbalsa/misc.c (libbalsa_font_string_to_css):
	* libbalsa/smtp-server.c (smtp_server_response):
	* meson.build:
	* src/address-book-config.c (help_button_cb):
	* src/balsa-index.c (bndx_do_popup):
	* src/balsa-mblist.c (bmbl_do_popup):
	* src/balsa-message.c (balsa_headers_attachments_popup),
	(tree_mult_selection_popup), (tree_button_press_cb):
	* src/balsa-mime-widget-image.c (balsa_image_button_press_cb):
	* src/balsa-mime-widget-message.c (extbody_call_url):
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(handle_url):
	* src/filter-edit-callbacks.c (condition_dialog_response),
	(fe_dialog_response):
	* src/filter-run-callbacks.c (fr_dialog_response):
	* src/folder-conf.c (folder_conf_response):
	* src/main-window.c (help_activated), (bw_notebook_label_new),
	(bw_find_real):
	* src/pref-manager.c (balsa_help_pbox_display), (add_menu_cb):
	* src/sendmsg-window.c (on_open_url_cb),
	(attachment_button_press_cb), (attachment_popup_cb),
	(create_text_area), (create_lang_menu):
	* src/toolbar-factory.c (tm_popup_context_menu_cb):
	* src/toolbar-prefs.c (tp_dialog_response_cb):

2020-05-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c (display_face): Fix a scan-build report
	  when building with compface = false.

2020-05-10  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac, meson.build: release balsa-2.6.1


2020-05-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/sendmsg-window.c (add_attachment): Insert separators
	  between logically distinct sections of the popup menu.

2020-04-11  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac, meson.build: release balsa-2.6.0

2020-03-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Drop LibBalsaMailbox:is_directory

	It was a write-only flag.

	* libbalsa/mailbox.c (libbalsa_mailbox_init),
	(libbalsa_mailbox_set_msg_tree_changed):
	* libbalsa/mailbox.h:
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_new):
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_new):
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_new):

2020-03-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove libbalsa_mailbox_local_load_messages from the API, and
	replace it with LibBalsaMailbox::check virtual method.

	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
	(lbml_load_messages_idle_cb), (libbalsa_mailbox_local_check),
	(libbalsa_mailbox_local_set_threading):
	* libbalsa/mailbox_local.h:
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_check):
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_check):
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_check):

2020-03-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Make cache-message a class method

	* libbalsa/mailbox.c (libbalsa_mailbox_class_init),
	(lbm_cache_message), (libbalsa_mailbox_get_message),
	(libbalsa_mailbox_real_cache_message),
	(libbalsa_mailbox_cache_message):
	* libbalsa/mailbox.h:
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
	(lbm_local_cache_message), (libbalsa_mailbox_local_cache_message):
	* libbalsa/mailbox_local.h:
	* libbalsa/mailbox_mbox.c (parse_mailbox):

2020-03-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Guard against out-of-bounds access to a GPtrArray

	* libbalsa/mailbox.c (mailbox_compare_func),
	(libbalsa_mailbox_msgno_get_status),
	(libbalsa_mailbox_msgno_get_subject),
	(libbalsa_mailbox_get_index_entry): use a new macro
	LBM_GET_INDEX_ENTRY() to safely access priv->mindex.

2020-03-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Do not cache message info if the mailbox is not being
	viewed.

	* libbalsa/mailbox.c (lbm_cache_message):

2020-03-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Do not pass message to LibBalsaMailbox

	in a case not covered by commit d95c3a90b2478e9dcd18d50ba0bf4efd3a10f64b

	* libbalsa/mailbox_local.c (lbm_local_cache_message):

2020-03-03  Albrecht Dreß  <albrecht.dress@arcor.de>

	Move recheck crypto button to menu, toolbar

	* libbalsa/body.[ch]:
	  • add new function libbalsa_message_body_has_crypto_content()
	    which recursively checks if a LibBalsaMessageBody contains any
	    not yet decrypted or any signed content which may be rechecked
	  • fix comment typo
	* libbalsa/gmime-part-rfc2440.c: g_mime_part_check_rfc2440()
	    make sure to lock/unlock a shared stream
	* libbalsa/message.[ch]:
	  • rename libbalsa_message_is_pgp_(signed|encrypted)()
	    to libbalsa_message_is_(signed|encrypted)(), do not export them,
	    and detect S/MIME (RFC 8551) content
	  • add and export libbalsa_message_has_crypto_content() to check
	    if a message contains any not yet decrypted or any signed content
	    which may be rechecked
	* src/balsa-message.[ch]:
	  • remove recheck crypto button from bm_header_tl_buttons()
	  • rename message_recheck_crypto_cb() to balsa_message_recheck_crypto()
	    and export it
	  • remove ancient code relevant for Gtk+-3.0 < 3.15.0 only
	* src/main-window.c, src/message-window.c:
	  • add “recheck crypto” button to extra toolbar items
	  • add recheck crypto callback, and connect it to the menu item
	  • appropriately disable/enable menu item and button
	* src/toolbar-factory.c: register “Recheck cryptography” button
	* ui/main-window.ui, ui/message-window.ui: add menu item to the ui

2020-02-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Do not pass message to LibBalsaMailbox

	for caching, when we're not preparing a threaded view.

	* libbalsa/mailbox_local.c (lbm_local_cache_message):

2020-02-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use g_print() instead of g_printerr()

	to print network status.
	Fixes https://gitlab.gnome.org/GNOME/balsa/issues/29.

	* src/main-window.c (print_network_status):

2020-02-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main: Save the config files

	* src/main.c (balsa_shutdown_cb): the only case where Balsa must
	  not go through the shutdown procedure is when it is called
	  with the -s/--get-stats option; in that case, nothing has been
	  set up, and balsa-app-destroy would cause all sorts of havoc.

2020-02-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main: Use non-copying GVariant formats

	Since
	https://gitlab.gnome.org/GNOME/glib/-/commit/325f1e3eb54d3969d3be104481fa1097ffa37d7b,
	the GApplication docs recommend using non-copying variant formats.

	* src/main.c
	  (balsa_check_open_mailboxes): use g_free(), not g_strfreev(),
	    to free cmd_line_open_mailboxes, because it is now a shallow copy;
	  (scan_mailboxes_idle_cb): ditto;
	  (balsa_check_open_compose_window): ditto opt_attach_list;
	  (parse_options): ditto remaining_args; use the non-copying formats.

2020-02-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main: Parse command line arguments in the local instance

	* src/main.c
	  (balsa_check_open_compose_window): opt_compose_email must not
	    be free'd; coding style;
	  (parse_options): use the GVariantDict instead of parsing the
	    command-line arguments;
	  (scan_mailboxes_idle_cb): coding style;
	  (balsa_handle_local_options_cb): new function for handling
	    command line options that do not need to be passed to the
	    primary instance (currently just "--version");
	  (balsa_command_line_cb):  use the GVariantDict instead of parsing
	    the command-line arguments;
	  (main): use g_application_add_main_option_entries() and connect
	    to the "handle-local-options" signal.
	  (handle_remote): coding style;

2020-02-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main: Behave as documented

	The man page says that Balsa exits immediately if given
	--version, --help, or --get-stats, so it should.

	Also, if it is given more than one of those options, it should
	respond to all of them.

	* src/main.c
	  (config_init): is no longer called with a boolean argument;
	  (balsa_startup_cb): do not use cmd_get_stats, it has not been set;
	  (balsa_shutdown_cb): go through the shut-down process only if
	    the main window has been created; it does not get created
	    when Balsa exits immediately after responding to those
	    options;
	  (parse_options): respond to both --help and --version, if
	    requested;
	  (balsa_command_line_cb): activate Balsa only if not exiting
	    immediately;
	  (balsa_get_stats): coding style;
	  (scan_mailboxes_idle_cb): ditto.

2020-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use a GThreadPool to open mailboxes

	* src/balsa-index.c
	  (balsa_index_set_mailbox_node): new function, called in a thread;
	  (balsa_index_load_mailbox_node): mailbox-node has already been set;
	* src/balsa-index.h: export balsa_index_set_mailbox_node;
	* src/main-window.c
	  (balsa_window_class_init): rename destroy to dispose;
	  (balsa_window_init): create the GThreadPool, and a GPtrArray
	    to hold the task info structures;
	  (balsa_window_new): make priv->preview a weak pointer;
	  (bw_real_open_mbnode_idle_cb): we no longer need to guard
	    against being called after the main window has been
	    destroyed;
	  (bw_open_mbnode_info_free): a new cleanup function to be
	    passed to g_idle_add_full();
	  (bw_real_open_mbnode_thread): GThreadPool manages the GThread
	    instances, so we no longer need a GMutex; we no longer need
	    to guard against being called after the main window has been
	    destroyed;
	  (balsa_window_real_open_mbnode): push the task to the thread
	    pool instead of creating a new GThread;
	  (balsa_window_dispose): free the thread pool and the pointer
	    array;
	  (bw_add_mbox_to_checklist): cosmetics.

2020-02-16  Albrecht Dreß  <albrecht.dress@arcor.de>

	imap-handle: Do not crash on PREAUTH greeting

	when it hasn't resulted in storing last-message.

	* libbalsa/imap/imap-handle.c (imap_mbox_connect): do not
	dereference NULL ImapHandle:last_msg;
	(ir_preauth): parse PREAUTH greeting the same as OK.

	Fixes https://gitlab.gnome.org/GNOME/balsa/issues/23

2020-02-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Sort when new details about a message are found

	* libbalsa/mailbox.c (lbm_cache_message): if we get new
	information about the message, queue rethreading;
	(libbalsa_mailbox_finalize),
	(libbalsa_mailbox_close),
	(lbm_sort_idle_cb),
	(lbm_set_threading): rename
	LibBalsaMailboxPrivate:set_threading_idle_id to
	lbm_sort_idle_cb.

2020-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Simplify and make more robust

	* src/main-window.c (balsa_window_destroy): bw_idle_remove() has
	been removed, so remove the GSource directly;
	(bw_idle_replace): ditto;
	(bw_idle_cb): scrap some useless tests;
	(bw_index_changed_cb): check that priv->preview is non-NULL.

2020-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Reset messages-threaded in the open method instead of
	the close method.

	* libbalsa/mailbox.c (libbalsa_mailbox_open),
	(libbalsa_mailbox_close):

2020-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build: Do not check for getaddrinfo

	* .gitignore: don't ignore config.h.in;
	* configure.ac: do not check for getaddrinfo;
	* meson.build: ditto.

2020-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Add a file that's needed in the autotools build to the repository

	* config.h.in:

2020-02-02  Albrecht Dreß  <albrecht.dress@arcor.de>

	Build tools: Remove test for libresolv

	* configure.ac:
	* meson.build:

2020-02-01  Albrecht Dreß  <albrecht.dress@arcor.de>

	[Patch] ical improvements

	* README, configure.ac, meson.build: require libical >= 2.0.0 instead of 3.0.0
	* libbalsa/rfc2445.c: libbalsa_vevent_reply(): add several
	optional fields to the “REPLY” message as to work around a M$
	Exchange/Outlook bug
	* src/balsa-mime-widget-vcalendar.c: balsa_vevent_widget():
	ref the VCal object containing the time zone data if we show
	the buttons for sending a reply; vevent_reply(): construct he
	reply as multipart/alternative, store it the the sentbox

2020-02-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Remove another idle handler when closing the mailbox

	* libbalsa/mailbox.c (libbalsa_mailbox_close): remove the idle
	handler for sorting the mailbox.

2020-02-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Do not sort until messages are threaded.

	* libbalsa/mailbox.c (lbm_set_threading_idle_cb): if threading
	is not complete, reschedule the handler; also drop
	lbm_check_and_sort()--it did not check, and sorting can be done
	in line.

2020-01-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Message threading cleanup

	Remove duplicate idle handler, and make
	libbalsa_mailbox_local_set_threading_info() private.

	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_init),
	(libbalsa_mailbox_local_finalize),
	(libbalsa_mailbox_local_close_mailbox): drop thread_id, and use
	set_threading_id instead;
	(message_match_real): add test for msgno > 0;
	(lbm_local_set_threading_info): renamed from
	libbalsa_mailbox_local_set_threading_info now that it is
	private;
	(libbalsa_mailbox_local_set_threading): use the new name;
	(lbm_local_prepare_msgno): declare it void; no gboolean return
	value is needed;
	(libbalsa_mailbox_local_prepare_threading): drop the idle
	handler;
	* libbalsa/mailbox_local.h:
	libbalsa_mailbox_local_set_threading_info() is now private;
	* libbalsa/mailbox_mbox.c (parse_mailbox): do not call it.

2020-01-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Fetch threading info when needed

	Add missing_info and missing_parent members to ThreadingInfo,
	and use them to decide when complete rethreading is needed.

	* libbalsa/mailbox_local.c (lbml_info_setup): initialize them to
	FALSE;
	(lbml_thread_messages): if both are TRUE, we must fetch
	threading info for all messages, in case the parent is present
	but has not been seen;
	(lbml_set_parent): set missing_info if the info is missing;
	(lbml_find_parent): set missing_paarent if the message has
	references but no parent was found.

2020-01-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Move messages-loaded from LibBalsaMailbox to LibBalsaMailboxLocal

	* libbalsa/mailbox.c (libbalsa_mailbox_close),
	(libbalsa_mailbox_set_has_unread_messages): drop the getter and
	setter;
	* libbalsa/mailbox.h: ditto;
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_close_mailbox),
	(lbml_load_messages_idle_cb),
	(libbalsa_mailbox_local_load_messages),
	(lbml_set_threading_idle_cb),
	(libbalsa_mailbox_local_set_threading): add and use
	LibBalsaMailboxLocalPrivate:messages_loaded.

2020-01-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Improve threading

	* libbalsa/mailbox_local.c
	(lbm_local_cache_message),
	(libbalsa_mailbox_local_cache_message): Add a guard to the
	public method, and an unguarded static version; schedule
	rethreading if we have new threading info;
	(message_match_real), (lbml_load_messages_idle_cb),
	(lbm_local_prepare_msgno): use the static version;
	(lbm_local_get_message_with_msg_info): cache the threading info;
	(libbalsa_mailbox_local_set_threading): pass local instead of
	mailbox to lbml_set_threading_idle_cb (cosmetic);
	(libbalsa_mailbox_local_load_messages): set messages-loaded to
	FALSE before loading them.

2020-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox.c (libbalsa_mailbox_msgno_inserted): lock the
	mailbox from start to finish, not just to access the private
	structure.

2020-01-27  Albrecht Dreß  <albrecht.dress@arcor.de>

	Unify wrapped label creation

	* libbalsa/misc.[ch]: add new helper libbalsa_create_wrap_label()
	  for creating a label with word wrap and with or without markup;
	  libbalsa_create_grid_label(): add missing xalign
	* libbalsa/html.c, libbalsa/libbalsa-gpgme-cb.c,
	  libbalsa/libbalsa-gpgme-widgets.c,
	  src/balsa-mime-widget-message.c, src/balsa-mime-widget-text.c,
	  src/balsa-mime-widget-vcalendar.c, src/folder-conf.c,
	  src/sendmsg-window.c: use libbalsa_create_wrap_label()
	* src/pref-manager.c: use libbalsa_create_wrap_label(); remove
	  redundant calls to set default value
	* src/print-gtk.c: add_font_button(), add_margin_spinbtn(): add
	  missing xalign, remove default justify; add_margin_spinbtn():
	  do not wrap the (short) units string; create_options_group():
	  use libbalsa_create_wrap_label()

2020-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Drop a redundant auxiliary structure

	* libbalsa/mailbox_local.c (lbml_set_threading_idle_cb),
	(libbalsa_mailbox_local_set_threading): Drop
	LbmlSetThreadingInfo, it's redundant; just pass the mailbox.

2020-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Lock the mailbox in idle callbacks

	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_finalize): no
	need to clear pointers and hendler ids in a finalize() method;
	(lbml_set_threading_idle_cb): lock and unlock the mailbox; no
	need to unref the mailbox; clear the handler id;
	(libbalsa_mailbox_local_set_threading): store the handler id,
	and do not ref the mailbox.

2020-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Lock the mailbox in idle callbacks

	* libbalsa/mailbox.c (lbm_msgno_filt_check_idle_cb),
	(lbm_set_threading_idle_cb):

2020-01-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Always use the idle callback to sort after changing the
	threading; save the handler id, to remove the source at finalize
	time instead of taking a ref on the mailbox.

	* libbalsa/mailbox.c (libbalsa_mailbox_finalize): remove the
	source, if the handler id has been stored and not cleared;
	(lbm_set_threading_idle_cb), (lbm_set_threading): clear and
	store, respectively, the handler id.

2020-01-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Header eye candy

	Albrecht's suggestion!

	* src/balsa-mime-widget-message.c (add_header_gchar): improve
	xalign property of header value labels.

2020-01-23  Albrecht Dreß  <albrecht.dress@arcor.de>

	Crypto eye candies

	* libbalsa/libbalsa-gpgme-widgets.c: improve xalign and yalign properties
	  of labels in signature and key details widgets
	* src/balsa-mime-widget-crypto.c: balsa_mime_widget_signature_widget:
	  wrap/align signature status in expander label;
	  balsa_mime_widget_crypto_frame: add tooltips to padlock icons
	* src/balsa-mime-widget-message.c: add_header_sigstate:
	  wrap/align signature status in headers box

2020-01-23  Albrecht Dreß  <albrecht.dress@arcor.de>

	Bug fix: S/MIME cert chain broken in identity key selection

	* libbalsa/libbalsa-gpgme-widgets.c: libbalsa_gpgme_key(): fall back
	  to the cert fingerprint for cb smime_show_chain() if the passed one is NULL
	* libbalsa/x509-cert-widget.c: x509_cert_chain_smime(): display message
	  if the cert fingerprint is NULL, requires a litte refactoring

2020-01-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: improve ensure-visible

	* src/balsa-index.c (balsa_index_ensure_visible): if either a
	message is selected or has the focus, scroll to it.

2020-01-19  Albrecht Dreß  <albrecht.dress@arcor.de>

	* README: fix package requirements
	* configure.ac, meson.build: require libical >= 3.0.0 (note:
	  not tested for Meson builds)
	* libbalsa/rfc2445.[ch]: mostly re-written, using the libical
	  parser and data types
	* src/balsa-mime-widget-vcalendar.c: add additional event items;
	  use the new rfc2445.h api
	* src/balsa-print-object-text.c: fix two pango test layout memory
	  leaks; add additional event items; use the new rfc2445.h api
	* src/print-gtk.c: fix part selection for printing text/calendar

2020-01-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Simplify managing idle handlers

	* src/balsa-index.c (bndx_destroy): use
	g_source_remove_by_user_data() instead of saving ids;
	(balsa_index_scroll_on_open), (bndx_scroll_on_open_idle),
	(bndx_mailbox_changed_idle), (bndx_queue_draw_idle):
	we do not save the id;
	(bndx_mailbox_row_inserted_cb), (bndx_mailbox_row_inserted_idle):
	store the msgno in the BalsaIndex, instead of allocating a new
	structure;
	(bndx_expand_to_row_and_select), (bndx_expand_to_row_and_select_idle),
	(bndx_update_tree_idle), (balsa_index_update_tree):
	we do not need to add a reference to the BalsaIndex.

2020-01-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Fix the "mostly" part of the previous commit, by
	using yet another idle handler to allow the tree-view's layout
	settle down.

	* src/balsa-index.c (bndx_expand_to_row_and_select_idle): new
	idle handler that scrolls to the desired row;
	(bndx_expand_to_row_and_select): use it, instead of scrolling
	immediately after expanding to the row.

2020-01-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: improve expand and collapse

	If a message is being viewed, it should still be visible after
	View:Expand-all (Ctrl e) or View:Collapse-all (Ctrl l). This
	commit achieves that for Expand-all, and mostly for
	Collapse-all.

	Only mostly: if the viewed message is near the bottom of the
	message index, Collapse-all may leave it a few rows below the current
	view of the message index. Unfortunately, if the current sort
	order puts the latest threads at the bottom, those are the most
	likely to be viewed!

	* src/balsa-index.c (bndx_selection_changed_idle),
	(bndx_scroll_on_open_idle), (bndx_mailbox_row_inserted_idle),
	(bndx_expand_to_row_and_select), (bndx_mailbox_changed_idle):
	actually, gtk_tree_view_expand_to_path() doesn't do what we want: it
	expands to the row, and the row itself, so we use it instead on
	the parent of the row, using bndx_expand_to_row() again;
	(bndx_update_tree_idle), (balsa_index_update_tree): do the
	re-expansion in an idle handler, after the tree-view's layout
	has settled down;
	(bndx_expand_to_row): restore it, but using
	gtk_tree_view_expand_to_path() to expand to the row's parent.

2020-01-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Use gtk_tree_view_expand_to_path()

	instead of reimplementing it.

	* src/balsa-index.c (bndx_selection_changed_idle),
	(bndx_scroll_on_open_idle), (bndx_mailbox_row_inserted_idle),
	(bndx_expand_to_row_and_select), (bndx_mailbox_changed_idle):

2020-01-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Revert 90ee8bcc82d8ebdae0bd286212c21d1138531658

	Moving code to the mailbox-opening thread resulted in calls to
	Gtk from the thread; moving those calls to an idle handler in
	the main thread got things out of order. We need a more radical
	refactoring to get more work done in threads.

	This commit reverses the changes in commit
	90ee8bcc82d8ebdae0bd286212c21d1138531658, while keeping the
	later fixes.

	* src/balsa-index.c (bndx_scroll_on_open_idle),
	(balsa_index_load_mailbox_node):
	* src/main-window.c (bw_real_open_mbnode_idle_cb),
	(bw_real_open_mbnode_thread):

2020-01-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Set messages-loaded

	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_set_threading):
	set messages-loaded when the message tree is successfully restored
	from the cache.

2020-01-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix a few bugs

	* libbalsa/mailbox_local.c
	(libbalsa_mailbox_local_set_threading): thread messages only if
	there are some; otherwise just set messages-threaded;
	* src/balsa-index.c (bndx_scroll_on_open_idle): if the mailbox
	is empty, just show it and return;
	(balsa_index_scroll_on_open): do not special case an empty
	mailbox;
	* src/main-window.c (bw_real_open_mbnode_idle_cb),
	(balsa_window_real_open_mbnode): register open mailbox earlier,
	to avoid a race with an idle handler;
	(bw_real_open_mbnode_thread): add a warning.

2020-01-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Move some more code to a thread

	* src/balsa-index.c (bndx_scroll_on_open_idle): reschedule if
	the tree-view does not yet have a model;
	(balsa_index_scroll_on_open): do not bother scrolling if the
	mailbox is not showing any messages;
	(bndx_load_mailbox_node_idle): new idle handler for doing the
	Gtk-related part of the load;
	(balsa_index_load_mailbox_node): move the Gtk-related part of
	the load to the new idle handler.
	* src/main-window.c (bw_real_open_mbnode_idle_cb),
	(bw_real_open_mbnode_thread): move the call to
	balsa_index_load_mailbox_node() from the idle handler back to
	the thread.

2020-01-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Use a low priority idle handler instead of a
	timeout to schedule scroll-on-open. That's enough to let
	GtkTreeView do its layout work before the scroll-on-open handler
	gets called.

	* src/balsa-index.c (bndx_scroll_on_open_idle),
	(balsa_index_scroll_on_open):

2020-01-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Stop using gtk_main_iteration_do()

	Stop using gtk_main_iteration_do() to make the progress bar
	update. It caused all sorts of side effects by processing other events
	while the one needed the progress indicator was held up. Several
	hacky guards against bad consequences can be dropped.

	The progress bar is now not updated in the UI if it is used to
	indicate progress in a task that is executed in the main thread.
	A task that takes long enough to need it most likely needs to be
	carried out in a thread, anyway, and should be re-implemented as
	such.

	Scroll-on-open apparently depended on some of the less bad
	consequences, and to make it work again the order of execution
	of idle handlers for:
	• message loading;
	• message threading;
	• optional thread expansion;
	has to be managed.

	* libbalsa/mailbox.c (lbm_changed_idle_cb),
	(lbm_run_filters_on_reception_idle_cb): drop the guards;
	* libbalsa/mailbox_local.c (lbml_set_threading),
	(lbml_set_threading_idle_cb),
	(libbalsa_mailbox_local_set_threading),
	(lbm_local_update_view_filter),
	(libbalsa_mailbox_local_prepare_threading): drop guards, and
	manage order of execution;
	* src/balsa-index.c (balsa_index_init), (bndx_scroll_on_open_idle),
	(balsa_index_scroll_on_open): manage order of execution;
	* src/main-window.c (balsa_window_progress_bar_set_fraction):
	this was misleadingly named;
	* src/main-window.h: rename it;
	* src/main.c (balsa_progress_set_fraction): use the new name.

2020-01-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Check for finalized mailbox

	* libbalsa/mailbox.c (lbm_changed_idle_cb):

2020-01-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Check for error return value

	* libbalsa/mailbox_local.c
	(libbalsa_mailbox_local_set_threading): check the value returned
	by libbalsa_mailbox_prepare_threading(); if it is FALSE, the
	operation failed, perhaps because the mailbox was closed or
	finalized, so just quit.

2020-01-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Guard against mailbox being closed or finalized during a call to
	libbalsa_progress_set_fraction().

	* libbalsa/mailbox.c (lbm_run_filters_on_reception_idle_cb):
	* libbalsa/mailbox_local.c (lbm_local_update_view_filter),
	(libbalsa_mailbox_local_prepare_threading):

2020-01-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Check whether the mailbox was closed during
	set-fraction, while running filters on reception.

	* libbalsa/mailbox.c (lbm_run_filters_on_reception_idle_cb):

2020-01-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Really disconnect from a network monitor signal

	* src/main-window.c (balsa_window_init): store the network
	monitor's "network-changed" signal handler id;
	(balsa_window_destroy): use it to disconnect the handler.

2020-01-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: when closing a mailbox, remove the source of any
	pending run-filters-on-reception idle callback.

	* libbalsa/mailbox.c (libbalsa_mailbox_close): remove the
	source, if any;
	(libbalsa_mailbox_run_filters_on_reception): check that no
	callback is pending.

2020-01-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: minor cleanup

	* src/balsa-index.c (bndx_scroll_on_open_idle): rename 'total'
	to 'n_children', as in:
	(balsa_index_ensure_visible): use
	gtk_tree_path_new_from_indices() instead of
	gtk_tree_model_iter_nth_child() and gtk_tree_model_get_path().

2020-01-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	libbalsa/x509-cert-widget: keep scan-build happy

	* libbalsa/x509-cert-widget.c (x509_cert_chain_smime): keep
	  scan-build happy by checking for NULL chain.

2020-01-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: do not scroll to first-unread message when
	LibBalsaMailbox::changed signal is received.

	It is not needed, and it blocks scroll-on-open from scrolling to
	the first-unread message.

	* src/balsa-index.c (bndx_mailbox_changed_idle): do not clear
	LibBalsaMailbox:first_unread; and do not scroll to it, either.

2020-01-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Avoid recursive entry

	to an idle callback. It happens because of a call to
	libbalsa_progress_set_fraction(), which then results in a call
	to gtk_main_iteration_do(); the current event is apparently
	still in the queue, so it gets re-entered.

	The progress indicator needs to be rethought!

	* src/main-window.c (bw_real_open_mbnode_idle_cb),
	(balsa_window_real_open_mbnode):

2020-01-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	libbalsa-mailbox: Pack booleans in contiguous 1-bit fields

	It saves run-time storage, and also reduces binary code size (at
	least on x-86-64, with gcc -O2).
	Small differences in both cases!

	* libbalsa/mailbox.c (libbalsa_mailbox_set_msg_tree_changed),
	(libbalsa_mailbox_set_is_directory),
	(libbalsa_mailbox_set_readonly),
	(libbalsa_mailbox_set_no_reassemble),
	(libbalsa_mailbox_set_has_unread_messages),
	(libbalsa_mailbox_set_messages_loaded),
	(libbalsa_mailbox_set_messages_threaded): Make sure that
	gboolean arguments really are boolean.

2020-01-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix expand-on-open

	See https://mail.gnome.org/archives/balsa-list/2019-August/msg00008.html
	Because of a race among idle callbacks, we could call
	gtk_tree_view_expand_all() before the message tree was populated
	and threaded. So when it was populated and threaded, threads
	were in the default state, collapsed.

	* libbalsa/mailbox.c (libbalsa_mailbox_close), (lbm_set_threading),
	(libbalsa_mailbox_get_messages_loaded),
	(libbalsa_mailbox_get_messages_threaded),
	(libbalsa_mailbox_set_has_unread_messages),
	(libbalsa_mailbox_set_messages_loaded),
	(libbalsa_mailbox_set_messages_threaded): add messages_loaded
	and messages_threaded members to the private structure, and
	manage access to them;
	* libbalsa/mailbox.h: add accessors;
	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_set_threading):
	set messages_threaded;
	* libbalsa/mailbox_local.c (lbml_load_messages_idle_cb): set
	messages_loaded;
	(lbml_set_threading): if messages have been loaded, set
	messages_threaded;
	* src/balsa-index.c (bndx_scroll_on_open_idle): if messages have
	not been loaded and threaded, reschedule the timeout;
	(balsa_index_scroll_on_open): use a 10 millisecond timeout
	instead of an idle call, to avoid a flurry of rescheduling.

2020-01-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Disconnect from a network monitor signal

	to avoid scheduling an idle callback after some objects have
	been finalized.

	* src/main-window.c (balsa_window_destroy):

2020-01-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Store idle handler ids

	and use them to remove the corresponding sources at dispose
	time, instead of taking a strong reference to the BalsaIndex and
	then testing whether it is the last reference.

	* src/balsa-index.c (bndx_destroy), (bndx_selection_changed_idle),
	(bndx_selection_changed), (bndx_scroll_on_open_idle),
	(balsa_index_scroll_on_open), (bndx_queue_draw_idle),
	(bndx_mailbox_changed_idle), (bndx_mailbox_changed_cb):

2019-11-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Address book editor: do not crash if no address books are
	available for editing.

	* src/ab-main.c (bab_set_intial_address_book), (main): check for
	NULL address book list.

2019-11-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	libbalsa_message_body_get_mime_type() is guaranteed to return a
	lower case string, so we can safely use strcmp().

	* libbalsa/body.c (libbalsa_message_body_set_parts),
	(libbalsa_message_body_get_pixbuf),
	(libbalsa_message_body_is_flowed):
	* libbalsa/html.c (lbh_cid_cb), (libbalsa_html_type):
	* src/balsa-message.c (mpart_content_name), (display_part),
	(part_create_menu), (libbalsa_can_display), (preferred_part),
	(get_crypto_content_icon), (libbalsa_msg_try_decrypt),
	(libbalsa_msg_perform_crypto_real):
	* src/balsa-mime-widget.c (balsa_mime_widget_new):
	* src/balsa-print-object.c (balsa_print_objects_append_from_body):
	* src/print-gtk.c (find_alt_part), (scan_body):

2019-11-17  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix handling of Multipart/Related

	* libbalsa/body.[ch]: implement a new helper function
	  libbalsa_message_body_mp_related_root() returning the root object
	  of a multipart/related;
	* libbalsa/html.c: pass the HTML body to the Webkit callbacks
	  when printing;
	* src/balsa-message.c: use the new helper for fetching the
	  multipart/related root object;
	* src/print-gtk.c: properly handle multipart/related

2019-11-14  Albrecht Dreß  <albrecht.dress@arcor.de>

	Display S/MIME and TLS certificate chains

	The patch addresses the following:

	S/MIME signatures:
	Currently, Balsa shows the certificate data and the issuer's
	name, serial and chain id.  It is not possible to view the entire
	certification chain.
	The patch adds a button to the issuer section of a S/MIME
	signature, which opens a new dialogue, showing the certification
	tree in the upper and the details of the selected certificate in
	the lower part.  I.e. it is now possible to inspect/verify the
	whole tree, up to the root certificate.  If you have any S/MIME
	signed messages in a mailbox, you can simply test this feature.

	TLS:
	When opening an encrypted SMTP, POP3 or IMAP connection, balsa
	shows a dialogue with the untrusted certificate, asking whether
	the user accepts or rejects it.
	With the patch, if the untrusted certificate is not self-signed
	and the issuer certificate(s) can be loaded, the whole chain
	is displayed as above for inspection.  For testing, you
	could temporarily disable the trust for your provider's root
	certificate, which should pop up the modified dialogue.

	* libbalsa/Makefile.am, libbalsa/meson.build: add new source and header file
	* libbalsa/libbalsa-gpgme-widgets.[ch]: add button to S/MIME
	signature widget; implement button callback for displaying the
	certificate chain
	* libbalsa/libbalsa.c: replace printf() by g_debug()
	calls in ask_idle() and libbalsa_ask(); use new api for
	creating certificate (chain) widget; delete stuff shifted to
	x509-cert-widget.[ch]
	* libbalsa/x509-cert-widget.[ch]: implement two functions for
	creating a certificate (chain) widget either from the S/MIME
	certificate fingerprint, or from a GTlsCertificate.  If the
	passed certificate is self-signed or if the issuer cannot
	be determined, the function returns a widget containing the
	certificate information.  Otherwise, the returned widget is a
	vertical GtkBox, containing the certificate chain tree view in
	the upper and a GtkStack in the lower part.  The latter displays
	the certificate selected in the tree view.
	* src/save-restore.c: add certificate chain dialogue to the
	geometry manager

2019-11-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	meson.build: Use dependency()'s capabilities

	* meson.build: dependency() can find gpgme's configuration, (it's
	  not limited to pkg-config) so we do not need the custom code.

2019-11-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	meson.build: Use meson's "optimization" option

	And avoid a warning from ninja.

	* meson.build: Use meson's "optimization" option instead of the
	  "-O2" compiler flag.

2019-11-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	meson.build: Do not enter endless loop

	* meson.build:  With meson version 0.52,
	  "run_command('rm', '-f', conftest_htm)" makes ninja go into
	  an endless loop, so we'll skip it, and just leave conftest.htm
	  in the current build dir.

2019-11-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix a mailbox-threading bug.

	When adding a new mailbox, we used the UI to set its threading
	type; unfortunately, the UI sets the threading on the currently
	shown mailbox instead. Spotted when the new local mailbox should
	have threading enabled, and the current mailbox is IMAP and
	does not support threading.

	* libbalsa/mailbox.c (libbalsa_mailbox_set_threading_type): call
	libbalsa_mailbox_set_threading() if the mailbox is non-NULL,
	instead of making the caller do it;
	* src/balsa-index.c (balsa_index_set_thread_messages): do not call
	libbalsa_mailbox_set_threading();
	* src/mailbox-conf.c: drop BalsaMailboxConfView:mailbox--no one
	is now using it;
	(mailbox_conf_view_new_full): no one is now using
	BalsaMailboxConfView:mailbox;
	(mailbox_conf_view_check): set the threading type directly on
	the mailbox, instead of using the UI;
	* src/main-window.c: drop balsa_window_set_thread_messages, as
	it is no longer needed;
	(bw_enable_mailbox_menus): include the guts of
	balsa_window_set_thread_messages in-line;
	* src/main-window.h: drop balsa_window_set_thread_messages.

2019-10-19  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac, meson.build: release balsa-2.5.9

2019-10-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	More efforts to get HTML parts to fill the pane

	* libbalsa/html.c (lbh_web_view_new): connect to "load-changed"
	signal;
	(lbh_load_changed_cb): call-back for it; if the load has
	finished, call gtk_widget_queue_resize();
	* src/balsa-message.c (add_part): pack the widget with
	expand=FALSE, so that an HTML part's v-expand takes precedence.

2019-10-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not use archaic 200px default height; now that we set
	GtkWidget:vexpand to TRUE, the natural height works better.

	* libbalsa/html.c: for cosmetics, define LBH_NATURAL_SIZE as -1;
	(lbh_web_view_new): use it for the height;
	(libbalsa_html_print_bitmap): ditto;
	(libbalsa_html_new): use it for the width.

2019-10-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/html.c (lbh_web_view_new): set v-expand on the
	web-view to TRUE, so that HTML mail uses the whole pane.

2019-10-10  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac, meson.build: release balsa-2.5.8

2019-10-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	libbalsa-html: Look deeper to find the WebKitWebView

	* libbalsa/html.c (libbalsa_html_new), (lbh_get_web_view_helper),
	(lbh_get_web_view): if the widget is not a WebKitWebView but is
	a GtkContainer, look at all its descendants for a WebKitWebView.

2019-10-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build: we need -Wformat for -Wformat-security to be effective

	* configure.ac:
	* meson.build:

2019-10-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build: GTimeVal, used in GtkSourceView-3, is deprecated in glib
	version 2.62; we will use GtkSourceView-4 if available, which
	doesn't use GTimeVal, or otherwise continue to use GtkSourceView-3
	with -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_48 to suppress the
	deprecation warning.

	* configure.ac:
	* meson.build:

2019-09-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	ab-main: Use GMenu API instead of GtkBuilder

	* src/ab-main.c (bab_cleanup), (set_address_book_menu_items),
	(file_delete_activated):
	* ui/ab-main.ui: no need for place-holder

2019-09-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-book-config: Do not crash

	* src/address-book-config.c (edit_book_response): destroy the
	dialog as the last step; otherwise the struct is freed before we
	use it.

2019-09-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget: subclass GtkBox instead of GObject

	This makes BalsaMimeWidget inherit from GtkBox, so it is
	actually a widget. A subclass that used to create a vertical
	GtkBox can use the BalsaMimeWidget itself. Other subclasses can
	add their custom widget to the BalsaMimeWidget.

	* src/balsa-message.c (bm_find_scroll_to_rectangle),
	(bm_find_entry_changed_cb), (bm_find_again), (balsa_message_init),
	(balsa_message_destroy), (part_info_init), (add_part),
	(gtk_tree_hide_func), (balsa_message_current_part_widget),
	(balsa_message_can_select), (balsa_message_grab_focus),
	(balsa_message_can_zoom), (balsa_message_zoom),
	(balsa_message_find_in_message):
	* src/balsa-mime-widget-crypto.c (balsa_mime_widget_new_signature),
	(balsa_mime_widget_new_pgpkey):
	* src/balsa-mime-widget-image.c (img_check_size),
	(balsa_mime_widget_new_image):
	* src/balsa-mime-widget-message.c (balsa_mime_widget_new_message),
	(bmw_message_extbody_url), (bmw_message_extbody_mail),
	(balsa_mime_widget_new_message_tl):
	* src/balsa-mime-widget-multipart.c
	(balsa_mime_widget_new_multipart):
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(bm_widget_new_html), (bm_widget_new_vcard):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar):
	* src/balsa-mime-widget.c (balsa_mime_widget_init),
	(balsa_mime_widget_new), (balsa_mime_widget_new_unknown):
	* src/balsa-mime-widget.h:

2019-09-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Actually show the context menu

	This time, the HTML widget's context menu.

	* src/balsa-mime-widget-text.c (bmwt_populate_popup_menu),
	(bmwt_populate_popup_cb):

2019-09-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Actually show the context menu

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text):
	drop an obsolete signal connection;
	(text_view_populate_popup): show the popup menu.

2019-09-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-text: Subclass BalsaMimeWidget

	Make it a class with useful info in the struct, instead of
	extensively using GObject data.

	* src/balsa-mime-widget-text.c (balsa_mime_widget_text_finalize),
	(balsa_mime_widget_text_class_init), (balsa_mime_widget_text_init),
	(balsa_mime_widget_new_text), (create_text_widget),
	(fix_text_widget), (structured_phrases_toggle),
	(text_view_url_popup), (text_view_populate_popup),
	(store_button_coords), (check_over_url), (prepare_url_offsets),
	(url_found_cb), (check_call_url), (find_url), (handle_url),
	(free_url), (draw_cite_bar_real), (draw_cite_bars),
	(balsa_gtk_html_popup), (balsa_gtk_html_button_press_cb),
	(bm_widget_new_vcard), (check_text_encoding),
	(fill_text_buf_cited):
	* src/balsa-mime-widget-text.h:

2019-09-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-image: Simplify resizing

	Catch the size-allocate signal only for BalsaMimeWidgetImage
	widgets.

	* src/balsa-message.c (balsa_message_init):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_image_init),
	(balsa_mime_widget_image_dispose), (img_check_size),
	(img_size_allocate_cb), (balsa_mime_widget_new_image):
	* src/balsa-mime-widget-image.h:

2019-09-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget-image: Declare BalsaMimeWidgetImage final

	It was already private, so no accessors are needed.

	* src/balsa-mime-widget-image.h:

2019-08-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-widget: Declare BalsaMimeWidget derivable

	Make the struct private, and provide accessors for the widget,
	container, and header_widget members.

	* src/balsa-message.c (bm_find_scroll_to_rectangle),
	(bm_find_entry_changed_cb), (bm_find_again), (balsa_message_init),
	(add_part), (gtk_tree_hide_func), (hide_all_parts), (select_part),
	(balsa_message_current_part_widget), (balsa_message_can_select),
	(balsa_message_grab_focus), (balsa_message_can_zoom),
	(balsa_message_zoom), (balsa_message_find_in_message):
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_limit_focus), (balsa_mime_widget_unlimit_focus):
	* src/balsa-mime-widget-crypto.c (balsa_mime_widget_new_signature),
	(balsa_mime_widget_new_pgpkey):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
	* src/balsa-mime-widget-message.c (balsa_mime_widget_new_message),
	(bmw_message_extbody_url), (bmw_message_extbody_mail),
	(balsa_mime_widget_new_message_tl), (bmw_message_set_headers_d),
	(bmw_message_set_headers):
	* src/balsa-mime-widget-multipart.c
	(balsa_mime_widget_new_multipart):
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(bm_widget_new_html), (bm_widget_new_vcard):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar):
	* src/balsa-mime-widget.c (balsa_mime_widget_init),
	(balsa_mime_widget_class_init), (balsa_mime_widget_new),
	(balsa_mime_widget_new_unknown), (vadj_change_cb),
	(balsa_mime_widget_get_widget), (balsa_mime_widget_get_container),
	(balsa_mime_widget_get_header_widget),
	(balsa_mime_widget_set_widget), (balsa_mime_widget_set_container),
	(balsa_mime_widget_set_header_widget):
	* src/balsa-mime-widget.h:

2019-08-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-print-object-text.c
	(balsa_print_object_text_calendar): Use ngettext() for plural
	forms of strings.

2019-08-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	imap-handle: Use modern macros to declare and define ImapMboxHandle

	* libbalsa/imap/imap-handle.c (imap_mbox_handle_init),
	(imap_mbox_handle_class_init), (imap_mbox_handle_new),
	(imap_mbox_handle_finalize):
	* libbalsa/imap/imap-handle.h:

2019-08-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Use "balsa_message" consistntly as its
	identifier, and use "bm_" consistently as the prefix for static
	functions.

	* src/balsa-message.c (balsa_headers_attachments_popup),
	(bm_header_tl_buttons), (bm_on_set_style), (bm_find_set_status),
	(bm_find_scroll_to_rectangle), (bm_find_scroll_to_selection),
	(bm_find_cb), (bm_find_entry_changed_cb), (bm_find_again),
	(bm_find_bar_new), (bm_find_pass_to_entry),
	(bm_disable_find_entry), (balsa_message_init),
	(balsa_message_destroy), (balsa_message_new),
	(tree_activate_row_cb), (tree_mult_selection_popup),
	(tree_menu_popup_key_cb), (tree_button_press_cb), (bm_clear_tree),
	(balsa_message_set), (balsa_message_save_current_part),
	(bm_set_embedded_hdr), (balsa_message_set_displayed_headers),
	(balsa_message_set_wrap), (display_headers), (part_info_init),
	(atattchments_menu_cb), (add_to_attachments_popup),
	(toggle_all_inline_cb), (add_toggle_inline_menu_item),
	(display_part), (display_parts), (display_face), (display_content),
	(bm_next_part_info), (balsa_message_next_part),
	(balsa_message_has_next_part), (bm_previous_part_info),
	(balsa_message_previous_part), (balsa_message_has_previous_part),
	(part_info_from_body), (add_body), (add_multipart_digest),
	(add_multipart_mixed), (add_multipart), (add_part),
	(hide_all_parts), (select_part),
	(balsa_message_current_part_widget), (balsa_message_can_select),
	(balsa_message_grab_focus), (balsa_message_can_zoom),
	(balsa_message_zoom), (bm_scan_signatures),
	(message_recheck_crypto_cb), (balsa_message_find_in_message),
	(balsa_message_get_wrap_text), (balsa_message_get_focus_state),
	(balsa_message_get_scroll), (balsa_message_get_bm_widget),
	(balsa_message_get_message), (balsa_message_get_shown_headers),
	(balsa_message_get_face_box), (balsa_message_get_tree_view),
	(balsa_message_set_focus_state), (balsa_message_set_face_box):

2019-08-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Add the attach-button to the struct instead of
	using GObject-data

	* src/balsa-message.c (bm_header_tl_buttons),
	(balsa_message_set_displayed_headers), (display_content):

2019-08-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	rfc 2445: Set a struct as GObject-data instead of three separate
	items.

	* libbalsa/rfc2445.c (libbalsa_vcal_attendee_to_str),
	(libbalsa_vcal_attendee_rsvp), (cal_address_2445_to_lbaddress):

2019-08-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-imap: Store cache-manager in the object instead of
	using GObject-data.

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_finalize),
	(libbalsa_mailbox_imap_open), (libbalsa_mailbox_imap_close):

2019-08-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Store message-partial ids in the object instead of
	using GObject-data.

	* libbalsa/mailbox.c (lbm_try_reassemble_idle),
	(libbalsa_mailbox_try_reassemble):

2019-08-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Drop redundant dynamic cast

	* src/mailbox-node.c (balsa_mailbox_node_finalize):

2019-08-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Unref structure members in a dispose method

	* libbalsa/libbalsa-vfs.c (libbalsa_vfs_class_init),
	(libbalsa_vfs_dispose), (libbalsa_vfs_finalize):

2019-08-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In calls to g_signal_connect_swapped(), do not cast data using
	G_OBJECT(data).

	The argument is a gpointer, so the cast is redundant.

	* src/filter-run-dialog.c (balsa_filter_run_dialog_init):

2019-08-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In calls to g_signal*(), do not cast object using
	G_OBJECT(object).

	The argument is a gpointer, so the cast is redundant.

	* libbalsa/address.c (libbalsa_address_get_edit_widget):
	* libbalsa/filter-funcs.c (libbalsa_filter_list_new):
	* libbalsa/folder-scanners.c (libbalsa_scanner_imap_dir),
	(imap_tree_scan):
	* libbalsa/identity.c (setup_ident_frame):
	* libbalsa/imap/imap-commands.c (imap_mbox_select_unlocked):
	* libbalsa/imap/imap-handle.c (imap_mbox_connect),
	(imap_mbox_handle_get_delim), (ir_list_lsub), (ir_exists),
	(ir_expunge):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key):
	* libbalsa/libbalsa-progress.c
	(libbalsa_progress_dialog_ensure_real), (create_progress_widget):
	* libbalsa/libbalsa-vfs.c (libbalsa_vfs_mime_button):
	* libbalsa/macosx-helpers.c (libbalsa_macosx_menu),
	(libbalsa_macosx_menu_for_parent):
	* libbalsa/mailbox.c (libbalsa_mailbox_progress_notify):
	* libbalsa/mailbox_imap.c
	(libbalsa_mailbox_imap_get_selected_handle), (lbm_imap_check):
	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_startup):
	* libbalsa/send.c (lbs_process_queue_init_session):
	* libbalsa/server.c (libbalsa_server_set_username),
	(libbalsa_server_set_host), (libbalsa_server_config_changed),
	(lbs_get_password):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* libinit_balsa/assistant_helper.c (balsa_init_add_grid_entry):
	* libinit_balsa/assistant_init.c (balsa_initdruid_apply),
	(balsa_initdruid):
	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient_init):
	* libinit_balsa/assistant_page_directory.c
	(balsa_druid_page_directory_init):
	* libinit_balsa/assistant_page_user.c (balsa_druid_page_user):
	* libnetclient/net-client.c (net_client_start_tls):
	* libnetclient/test/tests.c (test_basic_crypt), (test_smtp),
	(test_pop3):
	* src/ab-main.c (bab_window_list_new), (bab_get_edit_button_box),
	(bab_get_filter_box), (bab_window_new), (main):
	* src/ab-window.c (balsa_ab_window_list), (balsa_ab_window_init),
	(balsa_ab_window_menu_changed):
	* src/address-book-config.c (create_local_dialog),
	(create_generic_dialog), (create_osmo_dialog),
	(balsa_address_book_add_menu):
	* src/balsa-index.c (bndx_selection_changed), (bndx_row_activated),
	(bndx_compose_foreach), (bndx_compose_from_list),
	(create_stock_menu_item), (bndx_changed_find_row):
	* src/balsa-mblist.c (balsa_mblist_init),
	(balsa_mblist_default_signal_bindings), (bmbl_store_redraw_mbnode),
	(balsa_mblist_mru_option_menu):
	* src/balsa-message.c (bm_header_tl_buttons), (balsa_message_init),
	(tree_mult_selection_popup), (add_to_attachments_popup),
	(add_toggle_inline_menu_item), (part_create_menu), (select_part),
	(create_mdn_dialog):
	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget), (create_import_keys_widget):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
	* src/balsa-mime-widget-message.c (bmw_message_extbody_url),
	(bmw_message_extbody_mail), (bm_header_extend_popup),
	(bmw_message_set_headers_d):
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(text_view_url_popup), (text_view_populate_popup),
	(bmwt_populate_popup_menu), (fill_text_buf_cited):
	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget):
	* src/balsa-mime-widget.c (balsa_mime_widget_new),
	(balsa_mime_widget_new_unknown):
	* src/filter-edit-callbacks.c (add_button), (add_check),
	(get_field_frame), (build_type_notebook), (fe_edit_condition):
	* src/filter-edit-dialog.c (fe_build_option_menu),
	(build_left_side), (build_match_page), (build_action_page),
	(build_right_side), (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/filter-run-dialog.c (selected_filters_new),
	(balsa_filter_run_dialog_init):
	* src/folder-conf.c (folder_conf_clicked_ok),
	(folder_conf_imap_node), (folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/mailbox-conf.c (run_mailbox_conf),
	(create_local_mailbox_dialog):
	* src/mailbox-node.c (imap_scan_attach_mailbox),
	(balsa_mailbox_node_new_from_mailbox),
	(balsa_mailbox_node_new_from_dir),
	(balsa_mailbox_node_new_from_config),
	(balsa_mailbox_node_new_imap_node),
	(balsa_mailbox_node_new_imap_folder), (add_menu_entry),
	(balsa_mailbox_node_get_context_menu):
	* src/main-window.c (bw_enable_filter), (bw_disable_filter),
	(bw_create_index_widget), (new_message_activated),
	(balsa_window_new), (bw_check_mailbox_list), (bw_find_real):
	* src/message-window.c (destroy_message_window):
	* src/pref-manager.c (pm_combo_box_new), (create_pref_option_menu),
	(server_add_menu_widget),
	(pm_grid_add_remote_mailbox_servers_group),
	(pm_grid_add_outgoing_mail_group), (open_preferences_manager):
	* src/print-gtk.c (message_prefs_widget):
	* src/sendmsg-window.c (address_book_cb),
	(balsa_sendmsg_destroy_handler), (sw_get_user_codeset),
	(add_attachment), (add_urlref_attachment), (sw_attach_dialog),
	(create_info_pane), (sw_attachment_list), (create_text_area),
	(create_lang_menu), (sendmsg_window_set_field),
	(sw_include_file_activated), (sendmsg_window_new):
	* src/store-address.c (balsa_store_address_from_messages),
	(balsa_store_address):
	* src/toolbar-prefs.c (customize_dialog_cb), (create_toolbar_page):

2019-08-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In calls to g_object_unref(), do not cast object using
	G_OBJECT(object).

	The argument is a gpointer, so the cast is redundant.

	* libbalsa/autocrypt.c (autocrypt_db_dialog_run):
	* libbalsa/body.c (libbalsa_message_body_free):
	* libbalsa/gmime-multipart-crypt.c (g_mime_gpgme_mpe_decrypt):
	* libbalsa/html.c (html2text):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key):
	* libbalsa/libbalsa.c (ask_cert_real):
	* libbalsa/mailbox_imap.c (imap_exists_idle),
	(libbalsa_mailbox_imap_get_message):
	* libbalsa/mailbox_pop3.c (pop_handler_close),
	(libbalsa_mailbox_pop3_startup), (libbalsa_mailbox_pop3_check):
	* libbalsa/rfc3156.c (libbalsa_sign_mime_object),
	(libbalsa_encrypt_mime_object),
	(libbalsa_sign_encrypt_mime_object),
	(libbalsa_body_check_signature), (libbalsa_body_decrypt),
	(libbalsa_rfc2440_verify), (libbalsa_rfc2440_decrypt):
	* libbalsa/send.c (msg_queue_item_destroy),
	(send_message_info_destroy), (add_mime_body_plain),
	(balsa_send_message_real), (libbalsa_message_create_mime_message),
	(libbalsa_fill_msg_queue_item_from_queu):
	* libnetclient/net-client-pop.c (net_client_pop_new):
	* libnetclient/net-client-siobuf.c (net_client_siobuf_new):
	* libnetclient/net-client-smtp.c (net_client_smtp_new):
	* libnetclient/net-client.c (net_client_new),
	(net_client_shutdown), (net_client_set_cert_from_pem),
	(net_client_set_cert_from_file), (net_client_start_tls),
	(net_client_finalise):
	* src/ab-window.c (balsa_ab_window_get_recipients),
	(balsa_ab_window_swap_real), (balsa_ab_window_activate_address):
	* src/balsa-message.c (balsa_message_init),
	(balsa_message_set_embedded_hdr), (display_part),
	(handle_mdn_request), (mdn_dialog_response),
	(message_recheck_crypto_cb):
	* src/balsa-mime-widget-crypto.c (balsa_mime_widget_new_pgpkey):
	* src/balsa-mime-widget-message.c (extbody_send_mail):
	* src/balsa-mime-widget-vcalendar.c (vevent_reply):
	* src/balsa-print-object-decor.c (bpo_decor_print_frame_begin):
	* src/balsa-print-object-default.c
	(balsa_print_object_default_full):
	* src/balsa-print-object-header.c
	(balsa_print_object_header_new_real),
	(balsa_print_object_header_crypto),
	(balsa_print_object_header_draw):
	* src/balsa-print-object-text.c (balsa_print_object_text_plain),
	(balsa_print_object_text), (balsa_print_object_text_draw):
	* src/mailbox-conf.c (mailbox_conf_add):
	* src/print-gtk.c (print_header_footer), (begin_print),
	(message_print_page_setup), (message_print):
	* src/save-restore.c (config_global_load):
	* src/sendmsg-window.c (balsa_attach_info_finalize),
	(balsa_sendmsg_destroy_handler), (collect_for_quote),
	(sw_save_draft), (send_message_handler), (message_postpone):

2019-08-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In calls to g_object_ref(), do not cast object using
	G_OBJECT(object).

	The macro now casts the return value to the type of the
	argument, so casting away its actual type is unhelpful.

	* libbalsa/mailbox_imap.c (imap_exists_cb):
	* libbalsa/rfc3156.c (libbalsa_sign_encrypt_mime_object):
	* libbalsa/send.c (libbalsa_fill_msg_queue_item_from_queu):
	* src/balsa-message.c (message_recheck_crypto_cb):
	* src/balsa-print-object-header.c
	(balsa_print_object_header_new_real):
	* src/folder-conf.c (create_imap_folder_dialog):
	* src/print-gtk.c (message_print):
	* src/sendmsg-window.c (sw_buffer_swap):

2019-08-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In calls to g_object_[gs]et(), do not cast object using
	G_OBJECT(object).

	The argument is a gpointer, so the cast is redundant.

	* libbalsa/files.c (libbalsa_icon_finder):
	* libbalsa/libbalsa.c (libbalsa_is_cert_known), (ask_cert_real),
	(get_gnutls_cert):
	* libbalsa/mime.c (get_quote_tag):
	* libbalsa/server-config.c (libbalsa_server_cfg_new):
	* libnetclient/test/tests.c (check_cert):
	* src/balsa-app.c (ask_password_real):
	* src/balsa-mblist.c (balsa_mblist_init):
	* src/balsa-message.c (balsa_message_init):
	* src/balsa-mime-widget-message.c (balsa_mime_widget_new_message):
	* src/balsa-mime-widget-text.c (structured_phrases_toggle):
	* src/balsa-mime-widget.c (balsa_mime_widget_new):
	* src/main-window.c (balsa_window_new):
	* src/pref-manager.c (apply_prefs):
	* src/sendmsg-window.c (sw_attachment_list), (sw_can_undo_cb),
	(sw_can_redo_cb):
	* src/toolbar-factory.c (tm_populate):

2019-08-03  Albrecht Dreß  <albrecht.dress@arcor.de>

	SMTP logging

	See
	<URL:https://mail.gnome.org/archives/balsa-list/2019-July/msg00005.html>

	When Balsa sends a message to a local or remote SMTP server,
	a feedback is given only on failure.  However, sometimes it is necessary
	to trace sent messages on the SMTP server.

	* libbalsa/send.c: new function balsa_send_message_syslog(),
	  changed API of net_client_smtp_send_msg();
	* libnetclient/net-client-smtp.[ch]: extend API of net_client_smtp_send_msg()
	  for optionally passing the final SMTP server reply.

2019-08-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-imap: Clear search filter when mailbox is closed

	See
	<URL:https://mail.gnome.org/archives/balsa-list/2019-July/msg00006.html>

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_close): unref
	search filter.

2019-07-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	folder-conf: Refactor dialog data strucures

	* src/folder-conf.c (folder_conf_destroy_common_data),
	(folder_conf_response), (validate_folder),
	(imap_update_subscriptions), (folder_conf_clicked_ok),
	(on_subscription_toggled), (create_imap_folder_dialog),
	(folder_conf_imap_subscriptions), (folder_data_subscribed_toggled),
	(folder_conf_imap_node), (validate_sub_folder), (browse_button_cb),
	(subfolder_conf_clicked_ok), (folder_conf_imap_sub_node),
	(folder_conf_delete):

2019-07-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-node: Scrap the "load-config" and "save-config" signals.
	No one needed to connect to them.

	* src/mailbox-node.c (balsa_mailbox_node_class_init),
	(balsa_mailbox_node_init), (balsa_mailbox_node_load_config),
	(balsa_mailbox_node_save_config):

2019-07-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	sendmsg-window: Use modern macros to declare and define
	BalsaAttachInfo

	* src/sendmsg-window.c (balsa_attach_info_class_init),
	(balsa_attach_info_init), (balsa_attach_info_new),
	(balsa_attach_info_finalize), (sw_attachment_list):

2019-07-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use parent-class set by G_DEFINE_TYPE instead of our own
	variable

	* src/mailbox-node.c (balsa_mailbox_node_class_init),
	(balsa_mailbox_node_dispose), (balsa_mailbox_node_finalize):

2019-07-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	rfc2445: Use GDateTime instead of GTimeVal, which is deprecated
	in glib version 2.62.

	* libbalsa/rfc2445.c (date_time_2445_to_time_t):

2019-07-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: declare it derivable

	Put the details in BalsaWindowPrivate, and provide accessors.

	* src/balsa-mime-widget-text.c (statusbar_pop), (handle_url),
	(bm_widget_on_url):
	* src/information-dialog.c (balsa_information_list),
	(status_bar_refresh), (balsa_information_bar):
	* src/mailbox-node.c (imap_dir_cb):
	* src/main-window.c (bw_network_changed_cb), (balsa_window_init),
	(bw_pass_to_filter), (bw_filter_entry_activate),
	(bw_create_index_widget), (bw_set_panes), (bw_is_active_notify),
	(bw_action_set_enabled), (find_in_message_activated),
	(zoom_in_activated), (zoom_out_activated), (zoom_normal_activated),
	(reset_filter_activated), (next_part_activated),
	(previous_part_activated), (save_part_activated),
	(copy_message_activated), (select_text_activated),
	(show_mailbox_tabs_change_state), (show_toolbar_change_state),
	(show_statusbar_change_state), (show_sos_bar_change_state),
	(wrap_change_state), (show_all_headers_change_state),
	(header_change_state), (threading_change_state), (bw_alt_n_cb),
	(balsa_window_new), (balsa_window_fix_paned),
	(balsa_window_update_book_menus), (bw_enable_message_menus),
	(bw_enable_part_menu_items), (bw_real_open_mbnode_idle_cb),
	(balsa_window_real_close_mbnode), (balsa_window_destroy),
	(balsa_window_refresh), (bw_check_mailbox_list),
	(bw_mailbox_check), (bw_check_messages_thread),
	(bw_display_new_mail_notification),
	(bw_change_connection_status_can_reach_cb),
	(bw_change_connection_status_idle),
	(balsa_window_find_current_index), (bw_get_view_filter),
	(bw_reset_filter), (bw_show_mbtree), (balsa_change_window_layout),
	(bw_notebook_switch_page_cb), (bw_index_changed_cb),
	(bw_idle_replace), (bw_idle_remove), (bw_idle_cb),
	(bw_progress_timeout), (bw_update_progress_bar),
	(balsa_window_increase_activity), (balsa_window_decrease_activity),
	(balsa_window_setup_progress), (balsa_window_increment_progress),
	(balsa_window_set_statusbar), (balsa_window_next_unread),
	(balsa_window_get_statusbar):
	* src/main-window.h:

2019-07-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-book-config: Do not leak structures

	* src/address-book-config.c (balsa_address_book_config_new),
	(balsa_address_book_config_new_from_type):

2019-07-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-node: Do not give access to BalsaMailboxNode:scanned

	We can do all the checking in mailbox-node.c.

	* src/mailbox-node.c (balsa_mailbox_node_append_subtree): check
	whether the mbnode has been scanned;
	* src/mailbox-node.h: drop accessors;
	* src/balsa-mblist.c (balsa_mblist_mailbox_node_append): no need
	to check whether the mbnode has been scanned.

2019-07-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-mailbox-node: Use modern macros to declare and define.

	* src/mailbox-node.h: declare BalsaMailboxNode final;
	* src/mailbox-node.c: use G_DEFINE_TYPE();
	(balsa_mailbox_node_class_init),
	(balsa_mailbox_node_init), (get_parent_folder_name),
	(add_imap_entry), (handle_imap_path), (mark_imap_path),
	(balsa_mailbox_node_set_dir), (balsa_mailbox_node_set_name),
	(balsa_mailbox_node_set_config_prefix),
	(balsa_mailbox_node_set_last_use_time),
	(balsa_mailbox_node_change_style): adapt;
	(balsa_mailbox_node_set_list_inbox),
	(balsa_mailbox_node_set_subscribed),
	(balsa_mailbox_node_set_scanned), (balsa_mailbox_node_get_mailbox),
	(balsa_mailbox_node_get_name),
	(balsa_mailbox_node_get_config_prefix),
	(balsa_mailbox_node_get_last_use_time),
	(balsa_mailbox_node_get_server), (balsa_mailbox_node_get_style),
	(balsa_mailbox_node_get_subscribed),
	(balsa_mailbox_node_get_scanned),
	(balsa_mailbox_node_get_list_inbox),
	(balsa_mailbox_node_get_delim), (balsa_mailbox_node_get_dir),
	(balsa_mailbox_node_get_parent): new functions;
	* libbalsa/folder-scanners.h:
	* libinit_balsa/assistant_page_user.c (create_imap_mbx):
	* src/balsa-app.c (find_mailbox), (find_path), (find_url),
	(balsa_find_mailbox_by_url), (balsa_get_short_mailbox_name),
	(balsa_find_iter_by_data_func), (ba_remove_children_mailbox_nodes),
	(balsa_remove_children_mailbox_nodes):
	* src/balsa-index.c (bndx_destroy), (bndx_selection_changed_idle),
	(bndx_selection_changed), (bndx_find_current_msgno),
	(bndx_scroll_on_open_idle), (balsa_index_load_mailbox_node),
	(bndx_search_iter), (bndx_search_iter_and_select),
	(bndx_mailbox_changed_idle), (balsa_index_selected_msgnos_new),
	(balsa_index_selected_msgnos_free), (bndx_view_source),
	(bndx_compose_foreach), (bndx_compose_from_list), (bndx_do_delete),
	(balsa_message_move_to_trash), (balsa_find_notebook_page_num),
	(balsa_index_toggle_flag), (bi_toggle_deleted_cb), (mru_menu_cb),
	(bndx_do_popup), (balsa_index_set_thread_messages),
	(balsa_index_set_view_filter), (balsa_index_transfer),
	(balsa_index_expunge), (bndx_next_msgno), (balsa_index_pipe),
	(balsa_index_select_thread), (balsa_index_set_last_use_time),
	(balsa_index_get_last_use_time), (balsa_index_get_mailbox):
	* src/balsa-mblist.c (bmbl_selection_func), (bmbl_tree_expand),
	(bmbl_tree_collapse_helper), (bmbl_tree_collapse),
	(bmbl_row_compare), (bmbl_drag_cb), (bmbl_select_mailbox),
	(bmbl_row_activated_cb), (bmbl_find_all_unread_mboxes_func),
	(get_lru_descendant), (bmbl_real_disconnect_mbnode_signals),
	(bmbl_store_redraw_mbnode), (bmbl_node_style),
	(bmbl_mru_selected_cb), (bmbl_mru_activated_cb),
	(balsa_mblist_mailbox_node_append):
	* src/filter-edit-callbacks.c (update_filters_mailbox):
	* src/folder-conf.c (folder_conf_clicked_ok),
	(folder_conf_imap_subscriptions), (folder_conf_imap_node),
	(validate_sub_folder), (browse_button_cb),
	(subfolder_conf_clicked_ok), (folder_conf_imap_sub_node),
	(folder_conf_delete), (folder_conf_add_imap_sub_cb):
	* src/mailbox-conf.c (mailbox_conf_delete_cb),
	(mailbox_conf_delete), (run_mailbox_conf), (mailbox_conf_edit):
	* src/main-window.c (bw_enable_mailbox_menus),
	(bw_notebook_label_new), (bw_real_open_mbnode_idle_cb),
	(bw_real_open_mbnode_thread), (balsa_window_real_open_mbnode),
	(balsa_window_real_close_mbnode), (bw_check_mailbox_list),
	(bw_add_mbox_to_checklist), (mw_mbox_change_connection_status),
	(bw_change_connection_status_idle), (balsa_window_update_tab):
	* src/main.c (periodic_expunge_cb):
	* src/pref-manager.c (add_other_server), (server_del_cb),
	(update_mail_servers):
	* src/save-restore.c (folder_section_path),
	(migrate_imap_mailboxes), (config_folder_delete),
	(config_folder_init):
	* src/save-restore.h: use them.

2019-07-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	filter-run: Make filter-run.h private

	* src/filter-run-callbacks.c: define OK_TO_INCLUDE_FILTER_RUN_H;
	* src/filter-run-dialog.c: ditto;
	* src/filter-run.h: error if it is not defined.

2019-07-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Cleanup after using G_DECLARE_FINAL_TYPE()

	* libbalsa/mailbox_imap.c: drop redundant class struct
	declaration;
	* libbalsa/mailbox_maildir.c: ditto;
	* libbalsa/mailbox_mbox.c: ditto;
	* libbalsa/mailbox_mh.c: ditto;
	* libbalsa/mailbox_pop3.c: ditto;
	* libbalsa/message.c: ditto;
	* src/ab-window.c: ditto;
	* src/balsa-cite-bar.c: ditto; drop parant_class variable;
	  (balsa_cite_bar_class_init): no more parent_class.

2019-07-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa-gpgme-widgets.c (create_uid_str): Do not
	leak an empty string.

2019-07-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c (balsa_message_destroy): Do not leak
	BalsaMessage::face_box.

2019-07-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Use modern macros to declare and define.

	Make BalsaMessage opaque, and provide and use necessary accessors.

	* src/balsa-message.c (balsa_part_info_class_init),
	(balsa_message_class_init), (balsa_message_destroy),
	(balsa_part_info_init), (balsa_part_info_new),
	(balsa_part_info_dispose), (balsa_part_info_finalize),
	(balsa_message_get_wrap_text), (balsa_message_get_focus_state),
	(balsa_message_get_scroll), (balsa_message_get_bm_widget),
	(balsa_message_get_message), (balsa_message_get_shown_headers),
	(balsa_message_get_face_box), (balsa_message_get_tree_view),
	(balsa_message_set_focus_state), (balsa_message_set_face_box):
	* src/balsa-message.h:
	* src/balsa-mime-widget-callbacks.c (scroll_change),
	(balsa_mime_widget_key_press_event),
	(balsa_mime_widget_limit_focus), (balsa_mime_widget_unlimit_focus):
	* src/balsa-mime-widget-message.c (balsa_mime_widget_new_message),
	(bm_header_widget_new), (add_header_address_list),
	(bmw_message_set_headers_d),
	(balsa_mime_widget_message_set_headers),
	(balsa_mime_widget_message_set_headers_d):
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(check_text_encoding):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar):
	* src/main-window.c (bw_index_changed_cb), (bw_idle_replace):
	* src/message-window.c (mw_set_part_buttons_sensitive):

2019-07-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-mblist: Use modern macros to declare and define.

	Make BalsaMBList opaque; no accessors needed.

	* src/balsa-mblist.c (balsa_mblist_class_init), (bmbl_drag_motion),
	(balsa_mblist_init):
	* src/balsa-mblist.h:

2019-07-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Another convenience function

	* src/balsa-index.c (balsa_index_get_last_use_time): another
	convenience function;
	* src/balsa-index.h: declare it;
	* src/main-window.c (bw_close_mailbox_on_timer): use it.

2019-07-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	send.c: Fix the build

	* libbalsa/send.c (libbalsa_message_create_mime_message):
	LibBalsaIdentity *identity is used only in an autocrypt build.

2019-07-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Add a convenience function
	balsa_index_get_mailbox().

	* src/balsa-index.c (balsa_index_get_mailbox): define it;
	* src/balsa-index.h: declare it;
	* src/balsa-app.c (balsa_find_index_by_mailbox):
	* src/balsa-mblist.c (bmbl_tree_expand), (bmbl_drag_cb),
	(bmbl_update_mailbox):
	* src/main-window.c (continue_activated), (print_activated),
	(mailbox_close_activated), (select_filters_activated),
	(remove_duplicates_activated), (threading_change_state),
	(bw_enable_message_menus), (balsa_window_set_thread_messages),
	(balsa_window_real_close_mbnode), (bw_find_real),
	(bw_hide_changed_set_view_filter), (bw_notebook_switch_page_cb),
	(bw_idle_cb), (bw_notebook_drag_received_cb),
	(bw_notebook_page_notify_cb), (balsa_window_next_unread):
	* src/message-window.c (mw_set_buttons_sensitive):
	* src/sendmsg-window.c (attachments_add), (drag_data_quote): use
	it.

2019-07-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-index: Use modern macros to declare and define.

	Make BalsaIndex opaque, and provide necessary accessors.

	* src/balsa-index.c: use G_DEFINE_TYPE to define BalsaIndex;
	(balsa_index_class_init), (bndx_destroy),
	(balsa_index_init), (balsa_index_select_thread),
	(balsa_index_get_mailbox_node), (balsa_index_get_current_msgno),
	(balsa_index_get_filter_no), (balsa_index_get_next_message),
	(balsa_index_get_prev_message), (balsa_index_get_filter_string),
	(balsa_index_set_last_use_time):
	* src/balsa-index.h: use G_DECLARE_FINAL_TYPE;
	* src/balsa-app.c (balsa_find_index_by_mailbox):
	* src/balsa-mblist.c (bmbl_tree_expand), (bmbl_drag_cb),
	(bmbl_open_mailbox), (bmbl_update_mailbox):
	* src/main-window.c (continue_activated), (print_activated),
	(reset_filter_activated), (mailbox_close_activated),
	(select_filters_activated), (remove_duplicates_activated),
	(threading_change_state), (bw_enable_mailbox_menus),
	(balsa_window_update_book_menus), (bw_enable_message_menus),
	(balsa_window_set_thread_messages),
	(balsa_window_real_close_mbnode), (bw_close_mailbox_on_timer),
	(bw_find_real), (bw_hide_changed_set_view_filter),
	(bw_reset_filter), (bw_notebook_switch_page_cb),
	(bw_index_changed_cb), (bw_idle_cb),
	(bw_notebook_drag_received_cb), (bw_notebook_page_notify_cb),
	(balsa_window_next_unread):
	* src/message-window.c (mw_set_buttons_sensitive):
	* src/sendmsg-window.c (attachments_add), (drag_data_quote): use
	the accessors.

2019-07-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/filter-file.c (libbalsa_mailbox_filters_load_config):
	Fix loading filters.

2019-07-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-cite-bar: Declare it final

	* src/balsa-cite-bar.c: Copyright update;
	* src/balsa-cite-bar.h: use G_DECLARE_FINAL_TYPE().

2019-07-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	ab-window: Use modern macros to declare and define.

	* src/ab-window.c: use G_DEFINE_TYPE();
	* src/ab-window.h: use G_DECLARE_FINAL_TYPE().

2019-07-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_maildir.c
	(libbalsa_mailbox_maildir_fetch_message_structure): do not unref
	a NULL GMimeMessage.

2019-07-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/gmime-part-rfc2440.c (g_mime_part_check_rfc2440): use
	g_str_has_prefix() instead of strncmp().

2019-07-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mime-stream-shared: Use modern macros to declare and define.

	* libbalsa/mime-stream-shared.c: Use G_DEFINE_TYPE();
	(libbalsa_mime_stream_shared_class_init): do not handle
	parent_class;
	(libbalsa_mime_stream_shared_init): new stub, required by
	G_DEFINE_TYPE();
	(lbmss_lock_new): do not ref-count locks;
	(lbmss_finalize): use GMimeStreamFs::owner to decide when to
	free the lock;
	(lbmss_stream_read), (lbmss_stream_write),
	(lbmss_stream_reset), (lbmss_stream_seek),
	(lbmss_stream_substream), (libbalsa_mime_stream_shared_new):
	parent class stuff;
	(libbalsa_mime_stream_shared_lock),
	(libbalsa_mime_stream_shared_unlock): cosmetics;
	* libbalsa/mime-stream-shared.h: Use G_DECLARE_FINAL_TYPE().

2019-07-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some Valgrind-detected issues

	* libbalsa/filter-file.c (libbalsa_mailbox_filters_load_config):
	initialize LibBalsaMailboxFilter::when;
	* libbalsa/mailbox.c (libbalsa_mailbox_finalize): clear the
	GRecMutex;
	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_load_envelope):
	do not leak an InternetAddressList;
	(get_struct_from_cache): do not leak GMimeMessage;
	* libbalsa/send.c (lbs_message_queue_real): ref the GMimeMessage
	to preserve it, and then unref it.

2019-07-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Pass message headers to disposition-notify handler

	* src/balsa-message.c (balsa_message_set), (handle_mdn_request):

2019-07-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	message: Declare it final

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaMessage, make it
	private, and provide necessary getters and setters.

	* libbalsa/autocrypt.c (autocrypt_from_message):
	* libbalsa/body.c (libbalsa_message_body_set_text_rfc822headers),
	(libbalsa_message_body_get_part_stream),
	(libbalsa_message_body_get_message_part_stream),
	(libbalsa_message_body_get_stream),
	(libbalsa_message_body_get_content),
	(libbalsa_message_body_get_pixbuf),
	(libbalsa_message_body_save_stream):
	* libbalsa/filter.c (libbalsa_condition_matches),
	(libbalsa_condition_can_match):
	* libbalsa/mailbox.c (get_from_field),
	(lbm_index_entry_populate_from_msg),
	(libbalsa_mailbox_real_release_message),
	(libbalsa_mailbox_release_message),
	(libbalsa_mailbox_set_msg_headers),
	(libbalsa_mailbox_get_message_part), (lbm_get_mime_msg),
	(lbm_try_reassemble):
	* libbalsa/mailbox_imap.c (lbimap_update_flags), (imap_flags_cb),
	(imap_expunge_cb), (free_messages_info),
	(libbalsa_mailbox_imap_load_envelope),
	(libbalsa_mailbox_imap_get_message), (get_struct_from_cache),
	(libbalsa_mailbox_imap_fetch_structure),
	(libbalsa_mailbox_imap_fetch_headers), (get_section_for),
	(lbm_imap_get_msg_part_from_cache):
	* libbalsa/mailbox_local.c (lbm_local_get_message_with_msg_info),
	(message_match_real), (libbalsa_mailbox_local_cache_message),
	(libbalsa_mailbox_local_fetch_structure),
	(libbalsa_mailbox_local_fetch_headers),
	(libbalsa_mailbox_local_messages_change_flags):
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_check),
	(free_message_info), (libbalsa_mailbox_maildir_sync),
	(libbalsa_mailbox_maildir_fetch_message_structure):
	* libbalsa/mailbox_mbox.c (parse_mailbox), (free_message_info),
	(libbalsa_mailbox_mbox_sync),
	(libbalsa_mailbox_mbox_fetch_message_structure),
	(lbm_mbox_add_message):
	* libbalsa/mailbox_mh.c (lbm_mh_free_message_info),
	(libbalsa_mailbox_mh_check), (libbalsa_mailbox_mh_sync),
	(libbalsa_mailbox_mh_fetch_message_structure):
	* libbalsa/message.c (libbalsa_message_class_init),
	(libbalsa_message_dispose), (libbalsa_message_finalize),
	(lb_message_headers_extra_destroy),
	(libbalsa_message_headers_destroy),
	(libbalsa_message_body_charset),
	(libbalsa_message_header_get_helper),
	(libbalsa_message_find_user_hdr),
	(libbalsa_message_header_get_one),
	(libbalsa_message_header_get_all),
	(libbalsa_message_get_user_header),
	(libbalsa_message_set_user_header), (prepend_header_misc),
	(libbalsa_message_user_hdrs_from_gmime),
	(libbalsa_message_get_part_by_id), (libbalsa_message_save),
	(libbalsa_message_get_attach_icon), (libbalsa_message_reply),
	(libbalsa_message_body_ref), (libbalsa_message_body_unref),
	(libbalsa_message_is_multipart), (libbalsa_message_is_partial),
	(has_attached_part), (libbalsa_message_has_attachment),
	(libbalsa_message_get_subject), (libbalsa_message_get_lines),
	(libbalsa_message_get_length), (lb_message_recipients),
	(lb_message_headers_basic_from_gmime),
	(lb_message_headers_extra_from_gmime),
	(libbalsa_message_init_from_gmime),
	(libbalsa_message_refs_for_threading), (references_decode),
	(libbalsa_message_set_references_from_string),
	(libbalsa_message_set_in_reply_to_from_string), (lbmsg_set_header),
	(lb_message_set_headers_from_string),
	(libbalsa_message_load_envelope_from_stream),
	(libbalsa_message_load_envelope), (libbalsa_message_stream),
	(libbalsa_message_copy), (libbalsa_message_set_subject),
	(libbalsa_message_set_subject_from_header),
	(libbalsa_message_get_tempdir), (libbalsa_message_get_mailbox),
	(libbalsa_message_get_headers), (libbalsa_message_get_body_list),
	(libbalsa_message_get_mime_message), (libbalsa_message_get_flags),
	(libbalsa_message_get_message_id), (libbalsa_message_get_msgno),
	(libbalsa_message_get_has_all_headers),
	(libbalsa_message_get_sender), (libbalsa_message_get_request_dsn),
	(libbalsa_message_get_references), (libbalsa_message_get_identity),
	(libbalsa_message_get_parameters), (libbalsa_message_get_subtype),
	(libbalsa_message_get_gpg_mode),
	(libbalsa_message_get_in_reply_to),
	(libbalsa_message_get_attach_pubkey),
	(libbalsa_message_get_protect_state),
	(libbalsa_message_get_body_ref), (libbalsa_message_set_flags),
	(libbalsa_message_set_mailbox), (libbalsa_message_set_msgno),
	(libbalsa_message_set_has_all_headers),
	(libbalsa_message_set_length), (libbalsa_message_set_mime_message),
	(libbalsa_message_set_sender), (libbalsa_message_set_message_id),
	(libbalsa_message_set_protect_state),
	(libbalsa_message_set_request_dsn), (libbalsa_message_set_subtype),
	(libbalsa_message_set_body_list),
	(libbalsa_message_set_references),
	(libbalsa_message_set_in_reply_to),
	(libbalsa_message_set_gpg_mode),
	(libbalsa_message_set_attach_pubkey),
	(libbalsa_message_set_identity), (libbalsa_message_add_parameters):
	* libbalsa/message.h:
	* libbalsa/rfc3156.c (libbalsa_body_check_signature),
	(libbalsa_body_decrypt):
	* libbalsa/send.c (lbs_message_queue_real),
	(lbs_process_queue_msg), (balsa_send_message_success),
	(balsa_send_message_error), (balsa_send_message_real),
	(message_add_references), (libbalsa_message_create_mime_message),
	(libbalsa_message_postpone), (libbalsa_create_msg),
	(libbalsa_fill_msg_queue_item_from_queu), (lb_send_from),
	(libbalsa_create_rfc2440_buffer), (do_multipart_crypto):
	* libbalsa/source-viewer.c (lsv_escape_change_state),
	(libbalsa_show_message_source):
	* src/balsa-message.c (balsa_message_set),
	(balsa_message_set_displayed_headers), (balsa_message_set_wrap),
	(display_headers), (display_content), (handle_mdn_request),
	(create_mdn_reply), (balsa_message_scan_signatures),
	(libbalsa_msg_try_decrypt), (libbalsa_msg_part_2440),
	(balsa_message_perform_crypto), (message_recheck_crypto_cb):
	* src/balsa-mime-widget-message.c (extbody_send_mail):
	* src/balsa-mime-widget-text.c (check_text_encoding):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar), (vevent_reply):
	* src/balsa-mime-widget.c (balsa_mime_widget_new_unknown):
	* src/balsa-print-object-header.c
	(balsa_print_object_header_from_message):
	* src/main-window.c (bw_index_changed_cb):
	* src/message-window.c (message_window_idle_handler),
	(mw_set_buttons_sensitive), (mw_expunged_cb), (mw_reply_activated),
	(mw_reply_all_activated), (mw_reply_group_activated),
	(mw_forward_attached_activated), (mw_forward_inline_activated),
	(mw_forward_default_activated):
	* src/print-gtk.c (begin_print):
	* src/sendmsg-window.c (sw_delete_draft),
	(balsa_sendmsg_destroy_handler), (update_bsmsg_identity),
	(create_info_pane), (continue_body), (message_part_get_subject),
	(quote_message_body), (fill_body_from_message),
	(bsmsg_set_subject_from_body), (sw_save_draft),
	(setup_headers_from_message), (set_identity_from_mailbox),
	(guess_identity), (bsm_prepare_for_setup), (bsm_finish_setup),
	(bsmsg2message), (check_autocrypt_recommendation),
	(send_message_handler), (sendmsg_window_reply),
	(sendmsg_window_forward), (sendmsg_window_continue):
	* src/store-address.c (store_address_note_frame):

2019-07-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Rename LIBBALSA_MAILBOX_REMOTE_SERVER() to
	LIBBALSA_MAILBOX_REMOTE_GET_SERVER()

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_dispose),
	(libbalsa_mailbox_imap_update_url), (clean_cache),
	(libbalsa_mailbox_imap_get_handle),
	(libbalsa_mailbox_imap_get_selected_handle), (lbm_imap_check),
	(libbalsa_mailbox_imap_save_config),
	(libbalsa_mailbox_imap_reconnect),
	(libbalsa_mailbox_imap_fetch_structure),
	(libbalsa_mailbox_imap_messages_copy):
	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_check),
	(libbalsa_mailbox_pop3_save_config),
	(libbalsa_mailbox_pop3_load_config):
	* libbalsa/mailbox_remote.h:
	* libinit_balsa/assistant_page_directory.c (unconditional_mailbox):
	* libinit_balsa/assistant_page_user.c (create_pop3_mbx):
	* src/mailbox-conf.c (update_pop_mailbox),
	(create_pop_mailbox_dialog):
	* src/save-restore.c (config_mailbox_init):

2019-07-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_messages_copy):
	Fix some bad logic from commit 2d54e175561c9e382701d63ed8dde4746959559b

2019-07-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some scan-build reports

	* libbalsa/mailbox.c (libbalsa_mailbox_set_threading_type),
	(libbalsa_mailbox_set_subject_gather),
	(libbalsa_mailbox_set_sort_type),
	(libbalsa_mailbox_set_sort_field), (libbalsa_mailbox_set_show),
	(libbalsa_mailbox_set_subscribe), (libbalsa_mailbox_set_exposed),
	(libbalsa_mailbox_set_open), (libbalsa_mailbox_set_filter):
	remove a dead store;
	* libbalsa/mailbox_imap.c
	(libbalsa_mailbox_imap_get_selected_handle): initialize readonly
	to FALSE.

2019-07-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-{remote,imap}: Simplify dispose() methods

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_dispose): the
	  server will be destroyed in the parent-class (LibBalsaMailboxRemote)
	  method;
	* libbalsa/mailbox_remote.c (libbalsa_mailbox_remote_dispose):
	  chain up to the parent-class (LibBalsaMailbox) method, to make
	  sure the mailbox is closed, before destroying the server.

2019-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-pop3: Declare it final

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxPOP3, make it
	private, and provide necessary getters and setters.

	* libbalsa/mailbox_pop3.c
	(libbalsa_mailbox_pop3_get_delete_from_server),
	(libbalsa_mailbox_pop3_get_check),
	(libbalsa_mailbox_pop3_get_filter),
	(libbalsa_mailbox_pop3_get_filter_cmd),
	(libbalsa_mailbox_pop3_get_disable_apop),
	(libbalsa_mailbox_pop3_get_enable_pipe),
	(libbalsa_mailbox_pop3_set_msg_size_limit),
	(libbalsa_mailbox_pop3_set_check),
	(libbalsa_mailbox_pop3_set_disable_apop),
	(libbalsa_mailbox_pop3_set_delete_from_server),
	(libbalsa_mailbox_pop3_set_filter),
	(libbalsa_mailbox_pop3_set_filter_cmd),
	(libbalsa_mailbox_pop3_set_enable_pipe):
	* libbalsa/mailbox_pop3.h:
	* libinit_balsa/assistant_page_user.c (create_pop3_mbx):
	* src/mailbox-conf.c (update_pop_mailbox),
	(create_pop_mailbox_dialog):

2019-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-imap: Declare it final

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxImap

	No new accessors needed.

	* libbalsa/mailbox_imap.h:

2019-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-remote: declare it derivable

	Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaMailboxRemote
	and provide libbalsa_mailbox_remote_get_server().

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_class_init),
	(libbalsa_mailbox_imap_dispose), (libbalsa_mailbox_imap_finalize),
	(get_header_cache_path), (get_cache_name_pair),
	(libbalsa_mailbox_imap_close), (libbalsa_mailbox_imap_save_config),
	(libbalsa_mailbox_imap_load_config),
	(libbalsa_mailbox_imap_add_messages),
	(libbalsa_mailbox_imap_messages_copy):
	* libbalsa/mailbox_imap.h:
	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_class_init),
	(libbalsa_mailbox_pop3_init), (libbalsa_mailbox_pop3_finalize),
	(libbalsa_mailbox_pop3_new), (libbalsa_mailbox_pop3_open),
	(libbalsa_mailbox_pop3_startup), (update_msg_list),
	(libbalsa_mailbox_pop3_check), (libbalsa_mailbox_pop3_save_config),
	(libbalsa_mailbox_pop3_load_config),
	(libbalsa_mailbox_pop3_set_inbox),
	(libbalsa_mailbox_pop3_set_msg_size_limit):
	* libbalsa/mailbox_pop3.h:
	* libbalsa/mailbox_remote.c (libbalsa_mailbox_remote_class_init),
	(libbalsa_mailbox_remote_init), (libbalsa_mailbox_remote_dispose),
	(libbalsa_mailbox_remote_test_can_reach),
	(libbalsa_mailbox_remote_set_server),
	(libbalsa_mailbox_remote_get_server):
	* libbalsa/mailbox_remote.h:
	* libinit_balsa/assistant_page_user.c (create_pop3_mbx),
	(create_imap_mbx):
	* src/mailbox-conf.c (update_pop_mailbox),
	(create_pop_mailbox_dialog):
	* src/main-window.c (bw_check_mailbox_list):

2019-07-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-mh: Declare it final

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxMh

	No new accessors needed.

	* libbalsa/mailbox_mh.c:
	* libbalsa/mailbox_mh.h:

2019-07-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-mbox: Declare it final

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxMbox

	No new accessors needed.

	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_class_init),
	(libbalsa_mailbox_mbox_dispose), (lbm_mbox_check_files),
	(libbalsa_mailbox_mbox_get_message_stream),
	(libbalsa_mailbox_mbox_remove_files),
	(libbalsa_mailbox_mbox_close_mailbox),
	(libbalsa_mailbox_mbox_fetch_message_structure):
	* libbalsa/mailbox_mbox.h:

2019-07-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-maildir: Declare it final

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxMaildir

	No new accessors needed.

	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_class_init),
	(libbalsa_mailbox_maildir_finalize),
	(libbalsa_mailbox_maildir_load_config), (lbm_maildir_remove_files),
	(libbalsa_mailbox_maildir_close_mailbox),
	(libbalsa_mailbox_maildir_fetch_message_structure):
	* libbalsa/mailbox_maildir.h:

2019-07-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaMailboxLocal

	No new accessors needed.

	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
	(libbalsa_mailbox_local_init), (lbml_message_pool_take_message),
	(lbm_local_free_info), (libbalsa_mailbox_local_finalize),
	(libbalsa_mailbox_local_save_config),
	(libbalsa_mailbox_local_load_config), (lbm_local_save_tree_real),
	(lbm_local_queue_save_tree),
	(libbalsa_mailbox_local_close_mailbox), (message_match_real),
	(libbalsa_mailbox_local_cache_message),
	(lbml_load_messages_idle_cb),
	(libbalsa_mailbox_local_load_messages),
	(libbalsa_mailbox_local_set_threading_info),
	(libbalsa_mailbox_local_msgno_removed), (lbm_local_prepare_msgno),
	(lbm_local_thread_idle),
	(libbalsa_mailbox_local_prepare_threading), (lbml_get_info),
	(lbm_local_sync_real), (lbm_local_sync_idle),
	(lbm_local_sync_queue), (lbm_local_sort),
	(libbalsa_mailbox_local_duplicate_msgnos):
	* libbalsa/mailbox_local.h:

2019-07-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaMailbox

	and provide and use the necessary getters and setters.

	Also move mailbox locking to a GRecMutex in the
	LibBalsaMailboxPrivate structure, instead of our home-brewed
	lock.

	* libbalsa/filter-file.c (libbalsa_mailbox_filters_load_config),
	(libbalsa_mailbox_filters_save_config):
	* libbalsa/libbalsa.c:
	* libbalsa/mailbox-filter.c (config_mailbox_filters_load):
	* libbalsa/mailbox.c (libbalsa_mailbox_class_init),
	(libbalsa_mailbox_init), (libbalsa_mailbox_dispose),
	(get_from_field), (libbalsa_mailbox_index_entry_clear),
	(libbalsa_mailbox_index_set_flags), (libbalsa_mailbox_finalize),
	(libbalsa_mailbox_free_mindex), (libbalsa_mailbox_open),
	(libbalsa_mailbox_is_open), (libbalsa_mailbox_close),
	(libbalsa_mailbox_set_unread_messages_flag),
	(libbalsa_mailbox_check), (lbm_changed_idle_cb),
	(lbm_changed_schedule_idle), (libbalsa_mailbox_changed),
	(lbm_run_filters_on_reception_idle_cb),
	(libbalsa_mailbox_run_filters_on_reception),
	(libbalsa_mailbox_save_config),
	(libbalsa_mailbox_real_messages_copy),
	(libbalsa_mailbox_real_sort), (libbalsa_mailbox_real_save_config),
	(libbalsa_mailbox_real_load_config),
	(libbalsa_mailbox_type_from_path), (lbm_node_has_unseen_child),
	(lbm_msgno_changed_expunged_cb), (lbm_msgno_row_changed),
	(lbm_msgnos_changed_idle_cb), (lbm_msgno_changed),
	(libbalsa_mailbox_msgno_changed), (lbm_need_threading_idle_cb),
	(libbalsa_mailbox_msgno_inserted),
	(libbalsa_mailbox_msgno_filt_in), (libbalsa_mailbox_msgno_removed),
	(libbalsa_mailbox_msgno_filt_out), (lbm_msgno_filt_check),
	(libbalsa_mailbox_msgno_filt_check),
	(libbalsa_mailbox_search_iter_view), (libbalsa_mailbox_msgno_find),
	(libbalsa_mailbox_sync_storage), (lbm_cache_message),
	(libbalsa_mailbox_get_message),
	(libbalsa_mailbox_messages_change_flags),
	(libbalsa_mailbox_set_view_filter),
	(libbalsa_mailbox_make_view_filter_persistent),
	(libbalsa_mailbox_real_can_do), (lbm_check_and_sort),
	(lbm_set_threading), (libbalsa_mailbox_view_free), (lbm_get_view),
	(libbalsa_mailbox_set_identity_name),
	(libbalsa_mailbox_set_threading_type),
	(libbalsa_mailbox_set_subject_gather),
	(libbalsa_mailbox_set_sort_type),
	(libbalsa_mailbox_set_sort_field), (libbalsa_mailbox_set_show),
	(libbalsa_mailbox_set_subscribe), (libbalsa_mailbox_set_exposed),
	(libbalsa_mailbox_set_open), (libbalsa_mailbox_set_filter),
	(libbalsa_mailbox_set_crypto_mode), (libbalsa_mailbox_set_unread),
	(libbalsa_mailbox_set_total), (libbalsa_mailbox_set_mtime),
	(libbalsa_mailbox_set_position),
	(libbalsa_mailbox_get_identity_name),
	(libbalsa_mailbox_get_threading_type),
	(libbalsa_mailbox_get_subject_gather),
	(libbalsa_mailbox_get_sort_type),
	(libbalsa_mailbox_get_sort_field), (libbalsa_mailbox_get_show),
	(libbalsa_mailbox_get_subscribe), (libbalsa_mailbox_get_exposed),
	(libbalsa_mailbox_get_open), (libbalsa_mailbox_get_filter),
	(libbalsa_mailbox_get_crypto_mode), (libbalsa_mailbox_get_unread),
	(libbalsa_mailbox_get_total), (libbalsa_mailbox_get_mtime),
	(libbalsa_mailbox_get_position), (mailbox_model_init),
	(mailbox_model_get_flags), (mailbox_model_get_n_columns),
	(mailbox_model_get_column_type), (mailbox_model_get_iter),
	(mailbox_model_get_path_helper), (mailbox_model_get_path),
	(lbm_get_index_entry_expunged_cb), (lbm_get_index_entry_real),
	(lbm_get_index_entry), (mailbox_model_get_value),
	(mailbox_model_iter_next), (mailbox_model_iter_children),
	(mailbox_model_iter_has_child), (mailbox_model_iter_n_children),
	(mailbox_model_iter_nth_child), (mailbox_model_iter_parent),
	(mailbox_drag_source_init), (mailbox_row_draggable),
	(mailbox_drag_data_delete), (mailbox_drag_data_get),
	(mailbox_sortable_init), (mailbox_compare_from),
	(mailbox_compare_subject), (mailbox_compare_date),
	(mailbox_get_thread_date_traverse_func), (mailbox_get_thread_date),
	(mailbox_compare_thread_date), (mailbox_compare_size),
	(mailbox_compare_func), (lbm_has_valid_index_entry), (lbm_sort),
	(mailbox_get_sort_column_id), (mailbox_set_sort_column_id),
	(mailbox_set_sort_func), (mailbox_set_default_sort_func),
	(mailbox_has_default_sort_func),
	(libbalsa_mailbox_unlink_and_prepend), (lbm_update_msg_tree),
	(lbm_set_msg_tree), (libbalsa_mailbox_set_msg_tree),
	(lbm_try_reassemble), (libbalsa_mailbox_try_reassemble),
	(libbalsa_mailbox_msgno_get_status),
	(libbalsa_mailbox_msgno_get_subject),
	(libbalsa_mailbox_msgno_update_attach), (lbm_check_idle),
	(lbm_queue_check), (libbalsa_mailbox_search_iter_step),
	(libbalsa_mailbox_can_move_duplicates),
	(libbalsa_mailbox_move_duplicates), (libbalsa_mailbox_lock_store),
	(libbalsa_mailbox_unlock_store), (libbalsa_mailbox_cache_message),
	(lbm_set_color), (libbalsa_mailbox_set_foreground),
	(libbalsa_mailbox_set_background),
	(libbalsa_mailbox_test_can_reach), (libbalsa_mailbox_get_filters),
	(libbalsa_mailbox_get_name), (libbalsa_mailbox_get_url),
	(libbalsa_mailbox_get_unread_messages),
	(libbalsa_mailbox_get_first_unread),
	(libbalsa_mailbox_get_view_filter),
	(libbalsa_mailbox_get_msg_tree),
	(libbalsa_mailbox_get_msg_tree_changed),
	(libbalsa_mailbox_get_state), (libbalsa_mailbox_get_index_entry),
	(libbalsa_mailbox_get_view), (libbalsa_mailbox_get_stamp),
	(libbalsa_mailbox_get_open_ref), (libbalsa_mailbox_get_readonly),
	(libbalsa_mailbox_get_config_prefix),
	(libbalsa_mailbox_get_has_unread_messages),
	(libbalsa_mailbox_clear_unread_messages),
	(libbalsa_mailbox_set_filters), (libbalsa_mailbox_set_url),
	(libbalsa_mailbox_set_first_unread),
	(libbalsa_mailbox_set_msg_tree_changed),
	(libbalsa_mailbox_set_is_directory),
	(libbalsa_mailbox_set_readonly),
	(libbalsa_mailbox_set_no_reassemble), (libbalsa_mailbox_set_name),
	(libbalsa_mailbox_set_view),
	(libbalsa_mailbox_set_has_unread_messages),
	(libbalsa_mailbox_set_config_prefix),
	(libbalsa_mailbox_add_to_unread_messages), (libbalsa_lock_mailbox),
	(libbalsa_unlock_mailbox):
	* libbalsa/mailbox.h:
	* libbalsa/mailbox_imap.c (message_info_from_msgno),
	(libbalsa_mailbox_imap_init), (libbalsa_mailbox_imap_finalize),
	(libbalsa_mailbox_imap_update_url), (mi_get_imsg),
	(idle_unread_update_cb), (imap_exists_idle),
	(libbalsa_mailbox_imap_get_selected_handle), (lbm_imap_get_unseen),
	(libbalsa_mailbox_imap_open),
	(libbalsa_mailbox_imap_get_matchings),
	(libbalsa_mailbox_imap_load_config),
	(libbalsa_mailbox_imap_force_disconnect),
	(libbalsa_mailbox_imap_reconnect), (lbmi_get_imap_sort_key),
	(libbalsa_mailbox_imap_set_threading), (lbmi_compare_func),
	(libbalsa_mailbox_imap_sort):
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_init),
	(libbalsa_mailbox_local_set_path),
	(libbalsa_mailbox_local_load_message),
	(libbalsa_mailbox_local_load_config), (lbm_local_save_tree),
	(lbm_local_restore_tree), (lbm_local_save_tree_real),
	(libbalsa_mailbox_local_close_mailbox), (message_match_real),
	(lbml_load_messages_idle_cb), (lbml_set_threading),
	(libbalsa_mailbox_local_set_threading),
	(lbm_local_update_view_filter),
	(libbalsa_mailbox_local_prepare_threading), (lbml_info_setup),
	(lbml_thread_messages), (lbml_unthread_message),
	(lbml_threading_flat), (lbm_local_sync_real),
	(libbalsa_mailbox_local_messages_change_flags):
	* libbalsa/mailbox_local.h:
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_new),
	(lbm_maildir_remove_files), (lbm_maildir_parse),
	(libbalsa_mailbox_maildir_open), (libbalsa_mailbox_maildir_check),
	(libbalsa_mailbox_maildir_sync):
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_new), (mbox_lock),
	(mbox_unlock), (libbalsa_mailbox_mbox_open),
	(libbalsa_mailbox_mbox_check), (libbalsa_mailbox_mbox_sync):
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_new),
	(lbm_mh_parse_mailbox), (libbalsa_mailbox_mh_open),
	(libbalsa_mailbox_mh_check), (libbalsa_mailbox_mh_sync):
	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_new),
	(message_cb), (libbalsa_mailbox_pop3_startup), (update_msg_list),
	(libbalsa_mailbox_pop3_check), (libbalsa_mailbox_pop3_set_inbox),
	(libbalsa_mailbox_pop3_set_msg_size_limit):
	* libbalsa/message.c (libbalsa_message_change_flags):
	* libbalsa/send.c (lbs_message_queue_real),
	(lbs_check_reachable_cb), (balsa_send_message_success):
	* libinit_balsa/assistant_page_directory.c (unconditional_mailbox):
	* libinit_balsa/assistant_page_user.c (create_pop3_mbx):
	* src/balsa-app.c (find_url), (balsa_get_short_mailbox_name),
	(ba_remove_children_mailbox_nodes):
	* src/balsa-index.c (bndx_scroll_on_open_idle),
	(bndx_mailbox_row_inserted_cb), (bndx_mailbox_changed_idle),
	(bndx_do_popup), (balsa_index_transfer), (balsa_index_expunge):
	* src/balsa-mblist.c (bmbl_mailbox_changed_cb),
	(bmbl_store_redraw_mbnode), (bmbl_node_style), (bmbl_mru_menu),
	(bmbl_mru_selected_cb), (bmbl_mru_activated_cb):
	* src/balsa-message.c (balsa_message_set),
	(balsa_message_copy_part):
	* src/filter-edit-callbacks.c (update_filters_mailbox):
	* src/filter-run-callbacks.c (save_filters),
	(fr_apply_selected_pressed_func), (fr_apply_selected_pressed),
	(fr_apply_now_pressed), (fr_add_pressed_func):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_new),
	(filters_run_dialog):
	* src/folder-conf.c (browse_button_cb),
	(folder_conf_imap_sub_node):
	* src/mailbox-conf.c (mailbox_conf_delete), (update_pop_mailbox),
	(mailbox_conf_update), (mailbox_conf_add),
	(local_mailbox_dialog_cb), (create_local_mailbox_dialog),
	(create_pop_mailbox_dialog), (mailbox_conf_view_check):
	* src/mailbox-node.c (balsa_mailbox_node_dispose),
	(load_mailbox_view), (imap_scan_attach_mailbox),
	(balsa_mailbox_node_new_from_mailbox),
	(balsa_mailbox_local_append), (bmbn_scan_children_idle),
	(remove_special_mailbox_by_url), (add_local_mailbox):
	* src/main-window.c (bw_enable_mailbox_menus),
	(bw_enable_message_menus), (bw_notebook_label_new),
	(balsa_window_real_open_mbnode), (bw_check_mailbox_progress_cb),
	(bw_check_mailbox_list), (check_new_messages_count),
	(bw_mailbox_check), (bw_notebook_switch_page_cb),
	(balsa_window_set_statusbar), (balsa_window_next_unread):
	* src/main.c (initial_open_unread_mailboxes), (initial_open_inbox),
	(balsa_get_stats), (scan_mailboxes_idle_cb), (periodic_expunge_cb):
	* src/message-window.c (mw_set_buttons_sensitive),
	(message_window_new):
	* src/pref-manager.c (update_view_defaults), (add_other_server),
	(update_mail_servers):
	* src/save-restore.c (mailbox_section_path),
	(config_mailbox_set_as_special), (config_mailbox_delete),
	(config_mailbox_init), (config_mailbox_filters_save):
	* src/save-restore.h:
	* src/sendmsg-window.c (sw_delete_draft), (create_info_pane),
	(send_message_handler):

2019-06-30  Albrecht Dreß  <albrecht.dress@arcor.de>

	Small LDAP address book improvements

	* libbalsa/address-book-ldap.c:
	  • implement helpers ldap_connection_get_uri(), ldap_connection_is_ldaps()
	    and ldap_use_config_value();
	  • libbalsa_address_book_ldap_open_connection(): use ldap_use_config_value()
	    for the server uri; do not attempt to run STARTTLS for a
	    ldaps connection--print warning instead;
	  • libbalsa_address_book_set_status(),
	    libbalsa_address_book_ldap_alias_complete(): use ldap_use_config_value()
	    for the base DN;
	  • use libbalsa_information() or g_debug() & friends with log domain “ab-ldap”
	    for messaging
	* src/address-book-config.c: fix misleading label in create_ldap_dialog()

2019-06-29  Albrecht Dreß  <albrecht.dress@arcor.de>

	Migrate print objects to new scheme

	Migrate the various print objects to the modern GObject scheme
	using G_DECLARE_*_TYPE() and G_DEFINE_TYPE().

	The main difficulty was the elimination of the direct access to
	the internal fields of BalsaPrintObject, i.e. the surrounding
	rectangle of the respective object, the page number and the
	logical depth.	I added setters/getters for this purpose, which
	required some refactoring in the derived classes.  However,
	IMO the result is actually cleaner…

	* src/balsa-print-object-decor.c
	(balsa_print_object_decor_class_init),
	(balsa_print_object_decor_init),
	(balsa_print_object_decor_destroy), (decor_new_real),
	(balsa_print_object_frame_begin), (bpo_decor_print_separator),
	(bpo_decor_print_frame_end), (bpo_decor_print_frame_begin),
	(balsa_print_object_decor_draw):
	* src/balsa-print-object-decor.h:
	* src/balsa-print-object-default.c
	(balsa_print_object_default_class_init),
	(balsa_print_object_default_init),
	(balsa_print_object_default_destroy), (balsa_print_object_default),
	(balsa_print_object_default_full),
	(balsa_print_object_default_draw):
	* src/balsa-print-object-default.h:
	* src/balsa-print-object-header.c
	(balsa_print_object_header_class_init),
	(balsa_print_object_header_init),
	(balsa_print_object_header_destroy),
	(balsa_print_object_header_new_real),
	(balsa_print_object_header_crypto),
	(balsa_print_object_header_draw):
	* src/balsa-print-object-header.h:
	* src/balsa-print-object-html.c
	(balsa_print_object_html_class_init), (balsa_print_object_html),
	(balsa_print_object_html_draw):
	* src/balsa-print-object-html.h:
	* src/balsa-print-object-image.c
	(balsa_print_object_image_class_init),
	(balsa_print_object_image_init),
	(balsa_print_object_image_destroy), (balsa_print_object_image),
	(balsa_print_object_image_draw):
	* src/balsa-print-object-image.h:
	* src/balsa-print-object-text.c
	(balsa_print_object_text_class_init),
	(balsa_print_object_text_init), (balsa_print_object_text_destroy),
	(balsa_print_object_text_plain), (balsa_print_object_text),
	(get_icon), (balsa_print_object_text_vcard),
	(balsa_print_object_text_calendar), (balsa_print_object_text_draw):
	* src/balsa-print-object-text.h:
	* src/balsa-print-object.c (balsa_print_object_init),
	(balsa_print_object_class_init), (balsa_print_object_draw),
	(balsa_print_object_get_page), (balsa_print_object_get_rect),
	(balsa_print_object_set_page_depth), (balsa_print_object_set_rect),
	(balsa_print_object_set_height), (balsa_print_object_destroy):
	* src/balsa-print-object.h:
	* src/print-gtk.c (draw_page):

2019-06-29  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix build error on Buster
	One last pair of redundant declarations…

	* src/spell-check.c: Do not declare
	balsa_spell_check_class_init() and balsa_spell_check_init().

2019-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-book-gpe.c: streamline.

2019-06-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address: rename add to append

	to make sure that addrs are in the same order as in the
	address-book, for address-books that support multiple addrs per
	address.

	* libbalsa/address-book-extern.c (lbe_load_cb):
	* libbalsa/address-book-gpe.c (gpe_read_attr):
	* libbalsa/address-book-ldap.c
	(libbalsa_address_book_ldap_get_address):
	* libbalsa/address-book-ldif.c (address_new_prefill):
	* libbalsa/address-book-rubrica.c (extract_net):
	* libbalsa/address-book-vcard.c
	(libbalsa_address_book_vcard_parse_address):
	* libbalsa/address.c (libbalsa_address_append_addr):
	* libbalsa/address.h:
	* libbalsa/rfc2445.c (cal_address_2445_to_lbaddress):
	* libbalsa/rfc6350.c (rfc6350_eval_line):
	* src/store-address.c (store_address_add_address):

2019-06-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address: Remove libbalsa_address_get_addr_list()

	Second and final step in keeping address->addr_list private.

	* libbalsa/address.c (libbalsa_address_get_n_addrs),
	(libbalsa_address_get_nth_addr): new functions to provide access
	  to the addr-list;
	* libbalsa/address-book-extern.c
	(libbalsa_address_book_externq_add_address):
	* libbalsa/address-book-gpe.c (gpe_read_address):
	* libbalsa/address-book-ldif.c (lbab_ldif_write_addresses):
	* libbalsa/address-book-osmo.c
	(libbalsa_address_book_osmo_alias_complete):
	* libbalsa/address-book-rubrica.c (lbab_rubrica_load_xml),
	(lbab_insert_address_node), (extract_cards), (extract_net):
	* libbalsa/address-book-text.c (lbab_text_load_file):
	* libbalsa/address-book-vcard.c (lbab_vcard_write_addresses):
	* libbalsa/address.h:
	* libbalsa/rfc6350.c (rfc6350_parse_from_stream):
	* src/ab-main.c (bab_load_cb):
	* src/ab-window.c (balsa_ab_window_load_cb): Use them.

2019-06-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address: Remove libbalsa_address_set_addr_list()

	Step 1 in keeping address->addr_list private.

	* libbalsa/address-book-ldif.c (address_new_prefill): use
	libbalsa_address_add_addr() instead;
	* libbalsa/address-book-rubrica.c (extract_cards),
	(extract_net): ditto;
	* libbalsa/address-book-vcard.c
	(libbalsa_address_book_vcard_parse_address): ditto;
	* libbalsa/address.c: remove it;
	* libbalsa/address.h: ditto.

2019-06-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Address edit widget cosmetics

	* libbalsa/address.c (lba_addr_list_widget): put the GtkTreeView
	in a GtkFrame;
	(libbalsa_address_set_edit_entries),
	(libbalsa_address_get_edit_widget),
	(libbalsa_address_new_from_edit_entries): use gtk_bin_get_child()
	to get the GtkTreeView from the GtkFrame.

2019-06-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-book-rubrica: Do not crash on bad card

	Do not crash if a card has multiple "Net" sections

	* libbalsa/address-book-rubrica.c (extract_cards): Call
	libbalsa_address_set_addr_list() only once, even when a card has
	multiple "Net" sections.

2019-06-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-book-rubrica.c
	(libbalsa_address_book_rubrica_modify_address): Fix the search
	for the card matching a given full-name.

2019-06-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Guard against null string.

	* libbalsa/abook-completion.c (completion_data_new):

2019-06-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix a thinko

	* libbalsa/address.c (libbalsa_address_new_from_edit_entries):

2019-06-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Allow address == NULL in libbalsa_address_set_edit_entries() and
	libbalsa_address_get_edit_widget()

	because the address book editor uses that.

	* libbalsa/address.c (libbalsa_address_set_edit_entries),
	(libbalsa_address_get_edit_widget),
	(libbalsa_address_new_from_edit_entries):

2019-06-18  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix crash using incomplete VCard items

	* libbalsa/address.c (vcard_strsplit): Ensure that the array
	  contains always 5 items.

2019-06-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Add -Wredundant-decls -Wshadow -Wformat-security compiler warnings

	* configure.ac:
	* meson.build:

2019-06-10  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix format string error

	* src/sendmsg-window.c (sw_insert_sig_activated): fix a “format
	  not a string literal and no format arguments” error (using
	    gcc w/ -Werror=format-security).

2019-06-10  Albrecht Dreß  <albrecht.dress@arcor.de>

	Implement VCalendar stuff using G_*_TYPE()

	* libbalsa/rfc2445.[ch]: implement LibBalsaVCal and LibBalsaVEvent
	  using G_DECLARE_FINAL_TYPE() and G_DEFINE_TYPE(); make the data
	  fields private; implement private member getters required for
	  display and printing
	* src/balsa-mime-widget-vcalendar.c: use new LibBalsaVCal and
	  LibBalsaVEvent getters; add missing “Created” DTSTAMP item
	* src/balsa-print-object-text.c: use new LibBalsaVCal and
	  LibBalsaVEvent getters; add missing “Created” DTSTAMP item;
	  use same labels as for screen display

2019-06-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaVfs

	Make the object private, and move the members of
	LibBalsaVfsPriv into LibBalsaVfs; as a final
	type, it does not need a private struct.

	* libbalsa/files.c (libbalsa_icon_finder):
	* libbalsa/libbalsa-vfs.c (libbalsa_vfs_class_init),
	(libbalsa_vfs_init), (libbalsa_vfs_finalize),
	(libbalsa_vfs_new_from_uri), (libbalsa_vfs_append),
	(libbalsa_vfs_dir_append), (libbalsa_vfs_get_folder),
	(libbalsa_vfs_get_uri), (libbalsa_vfs_get_uri_utf8),
	(libbalsa_vfs_get_basename_utf8), (libbalsa_vfs_get_mime_type),
	(libbalsa_vfs_get_charset), (libbalsa_vfs_get_text_attr),
	(libbalsa_vfs_get_size), (libbalsa_vfs_create_stream),
	(libbalsa_vfs_file_exists), (libbalsa_vfs_is_regular_file),
	(libbalsa_vfs_file_unlink), (libbalsa_vfs_launch_app),
	(libbalsa_vfs_launch_app_for_body), (gio_add_vfs_menu_item),
	(libbalsa_vfs_fill_menu_by_content_type),
	(libbalsa_vfs_mime_button):
	* libbalsa/libbalsa-vfs.h:

2019-06-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaServerCfg

	Make the object private, and move the members of
	LibBalsaServerCfgPrivate into LibBalsaServerCfg; as a final
	type, it does not need a private struct.

	* libbalsa/server-config.c (libbalsa_server_cfg_new),
	(libbalsa_server_cfg_valid), (libbalsa_server_cfg_add_check),
	(libbalsa_server_cfg_add_entry), (libbalsa_server_cfg_add_item),
	(libbalsa_server_cfg_add_row), (libbalsa_server_cfg_get_name),
	(libbalsa_server_cfg_assign_server), (libbalsa_server_cfg_init),
	(on_server_cfg_changed):
	* libbalsa/server-config.h:

2019-06-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaSmtpServer

	The object was already private.

	* libbalsa/smtp-server.c (libbalsa_smtp_server_finalize),
	(libbalsa_smtp_server_class_init), (libbalsa_smtp_server_init):
	* libbalsa/smtp-server.h:

2019-06-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaImapServer

	The object was already private.

	* libbalsa/imap-server.c (libbalsa_imap_server_set_username),
	(libbalsa_imap_server_set_host), (libbalsa_imap_server_class_init),
	(libbalsa_imap_server_finalize):
	* libbalsa/imap-server.h:

2019-06-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaServer

	and provide and use the necessary getters and setters.

	* libbalsa/folder-scanners.c (libbalsa_scanner_imap_tree):
	* libbalsa/imap-server.c (libbalsa_imap_server_set_username),
	(libbalsa_imap_server_set_host), (libbalsa_imap_server_init),
	(is_info_cb), (lb_imap_server_info_new),
	(libbalsa_imap_server_new_from_config), (handle_connection_error),
	(libbalsa_imap_server_get_handle),
	(libbalsa_imap_server_get_handle_with_user),
	(libbalsa_imap_server_subscriptions):
	* libbalsa/mailbox_imap.c (get_header_cache_path),
	(get_cache_name_pair), (libbalsa_mailbox_imap_reconnect),
	(libbalsa_imap_url), (libbalsa_mailbox_imap_add_messages),
	(libbalsa_mailbox_imap_messages_copy):
	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_init),
	(libbalsa_mailbox_pop3_startup), (update_msg_list),
	(libbalsa_mailbox_pop3_check):
	* libbalsa/send.c (lbs_check_reachable_cb),
	(lbs_process_queue_init_session):
	* libbalsa/server-config.c (libbalsa_server_cfg_new),
	(libbalsa_server_cfg_assign_server), (server_cfg_security_widget):
	* libbalsa/server.c (libbalsa_server_class_init),
	(libbalsa_server_init), (libbalsa_server_finalize),
	(libbalsa_server_set_password), (lbs_get_password),
	(libbalsa_server_real_set_username),
	(libbalsa_server_real_set_host),
	(libbalsa_server_load_security_config), (store_password_libsecret),
	(load_password_libsecret), (erase_password_libsecret),
	(libbalsa_server_load_config), (libbalsa_server_save_config),
	(libbalsa_server_get_auth), (libbalsa_server_get_cert_pass),
	(libbalsa_server_test_can_reach_full),
	(libbalsa_server_test_can_reach), (libbalsa_server_get_host),
	(libbalsa_server_get_user), (libbalsa_server_get_cert_file),
	(libbalsa_server_get_protocol), (libbalsa_server_get_password),
	(libbalsa_server_get_cert_passphrase),
	(libbalsa_server_get_security),
	(libbalsa_server_get_try_anonymous),
	(libbalsa_server_get_client_cert),
	(libbalsa_server_get_remember_password),
	(libbalsa_server_get_remember_cert_passphrase),
	(libbalsa_server_set_protocol), (libbalsa_server_set_cert_file),
	(libbalsa_server_set_security),
	(libbalsa_server_set_try_anonymous),
	(libbalsa_server_set_remember_password),
	(libbalsa_server_set_client_cert),
	(libbalsa_server_set_remember_cert_passphrase):
	* libbalsa/server.h:
	* libbalsa/smtp-server.c (libbalsa_smtp_server_init),
	(libbalsa_smtp_server_new):
	* libinit_balsa/assistant_page_user.c (create_pop3_mbx),
	(create_imap_mbx):
	* src/balsa-app.c (ask_password_real),
	(balsa_get_short_mailbox_name):
	* src/folder-conf.c (folder_conf_imap_sub_node):
	* src/mailbox-node.c (imap_dir_cb),
	(balsa_mailbox_node_new_from_config), (balsa_mailbox_node_is_imap):
	* src/save-restore.c (migrate_imap_mailboxes):

2019-06-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove redundant declarations

	and rename libbalsa_identity_new_config() to
	libbalsa_identity_new_from_config().

	* libbalsa/identity.c (libbalsa_identity_new_from_config):
	* libbalsa/identity.h:
	* src/save-restore.c (config_identity_load),
	(config_identities_load):

2019-06-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaIdentity

	Make the structure private, and provide and use the necessary
	getters and setters.

	* libbalsa/autocrypt.c (autocrypt_header):
	* libbalsa/autocrypt.h:
	* libbalsa/identity.c (libbalsa_identity_finalize),
	(libbalsa_identity_new_with_name), (libbalsa_identity_set_address),
	(libbalsa_identity_set_domain), (libbalsa_identity_get_signature),
	(libbalsa_identity_get_sig_prepend),
	(libbalsa_identity_get_sig_whenreply),
	(libbalsa_identity_get_sig_whenforward),
	(libbalsa_identity_get_sig_sending),
	(libbalsa_identity_get_send_mp_alternative),
	(libbalsa_identity_get_request_mdn),
	(libbalsa_identity_get_request_dsn),
	(libbalsa_identity_get_warn_send_plain),
	(libbalsa_identity_get_always_trust),
	(libbalsa_identity_get_gpg_sign),
	(libbalsa_identity_get_gpg_encrypt),
	(libbalsa_identity_get_sig_executable),
	(libbalsa_identity_get_sig_separator),
	(libbalsa_identity_get_crypt_protocol),
	(libbalsa_identity_get_identity_name),
	(libbalsa_identity_get_force_gpg_key_id),
	(libbalsa_identity_get_force_smime_key_id),
	(libbalsa_identity_get_replyto), (libbalsa_identity_get_bcc),
	(libbalsa_identity_get_reply_string),
	(libbalsa_identity_get_forward_string),
	(libbalsa_identity_get_domain), (libbalsa_identity_get_face_path),
	(libbalsa_identity_get_x_face_path),
	(libbalsa_identity_get_signature_path),
	(libbalsa_identity_get_address),
	(libbalsa_identity_get_smtp_server),
	(libbalsa_identity_get_autocrypt_mode):
	* libbalsa/identity.h:
	* libbalsa/send.c (libbalsa_message_create_mime_message),
	(lb_send_from):
	* src/balsa-message.c (handle_mdn_request), (create_mdn_reply),
	(mdn_dialog_response), (autocrypt_in_use):
	* src/balsa-mime-widget-message.c (extbody_send_mail):
	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget),
	(vevent_reply):
	* src/mailbox-conf.c (mailbox_conf_view_check):
	* src/save-restore.c (config_identity_load),
	(config_identities_save):
	* src/sendmsg-window.c (replace_identity_signature),
	(update_bsmsg_identity), (create_email_entry),
	(sw_insert_sig_activated), (generate_forwarded_subject),
	(bsmsg_set_subject_from_body), (set_identity_from_mailbox),
	(guess_identity_from_list), (setup_headers_from_identity),
	(sw_cc_add_list), (insert_initial_sig), (bsmsg2message),
	(check_suggest_encryption), (check_autocrypt_recommendation),
	(send_message_handler), (bsmsg_update_gpg_ui_on_ident_change),
	(sendmsg_window_new), (sendmsg_window_compose),
	(sendmsg_window_reply), (sendmsg_window_reply_embedded),
	(sendmsg_window_forward):

2019-06-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaCellRendererButton

	The object was already private.

	* libbalsa/cell-renderer-button.h:

2019-06-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressView

	The object was already private.

	* libbalsa/address-view.h:

2019-06-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddress

	Make the structure private, and provide and use the necessary
	getters and setters.

	* libbalsa/abook-completion.c (address_compare):
	* libbalsa/address-book-extern.c (lbe_load_cb),
	(libbalsa_address_book_externq_add_address):
	* libbalsa/address-book-gpe.c (gpe_read_attr), (create_name),
	(gpe_read_address):
	* libbalsa/address-book-ldap.c
	(libbalsa_address_book_ldap_get_address),
	(libbalsa_address_book_ldap_add_address),
	(libbalsa_address_book_ldap_remove_address),
	(libbalsa_address_book_ldap_modify_address):
	* libbalsa/address-book-ldif.c (build_name), (address_new_prefill),
	(lbab_ldif_write_dn), (lbab_ldif_write_addresses),
	(lbab_ldif_write_surname), (lbab_ldif_write_givenname),
	(lbab_ldif_write_nickname), (lbab_ldif_write_organization):
	* libbalsa/address-book-osmo.c (utf8_lba_strstr),
	(libbalsa_address_book_osmo_alias_complete), (osmo_read_addresses):
	* libbalsa/address-book-rubrica.c
	(libbalsa_address_book_rubrica_load),
	(libbalsa_address_book_rubrica_add_address),
	(libbalsa_address_book_rubrica_modify_address),
	(lbab_rubrica_load_xml), (lbab_insert_address_node),
	(extract_cards):
	* libbalsa/address-book-text.c (lbab_text_item_compare),
	(lbab_text_load_file), (libbalsa_address_book_text_load):
	* libbalsa/address-book-vcard.c (lbab_vcard_write_fn),
	(lbab_vcard_write_n), (lbab_vcard_write_nickname),
	(lbab_vcard_write_org), (lbab_vcard_write_addresses),
	(libbalsa_address_book_vcard_parse_address):
	* libbalsa/address-book.c:
	* libbalsa/address-book.h:
	* libbalsa/address.c (libbalsa_address_class_init),
	(libbalsa_address_init), (libbalsa_address_finalize),
	(libbalsa_address_new_from_vcard), (libbalsa_address_set_copy),
	(libbalsa_address_to_gchar), (lba_get_name_or_mailbox),
	(libbalsa_address_get_name_from_list),
	(libbalsa_address_get_mailbox_from_list),
	(libbalsa_address_n_mailboxes_in_list),
	(libbalsa_address_set_edit_entries), (lba_addr_list_widget),
	(addrlist_drag_received_cb), (libbalsa_address_get_edit_widget),
	(libbalsa_address_new_from_edit_entries),
	(libbalsa_address_compare), (libbalsa_address_get_full_name),
	(libbalsa_address_get_first_name),
	(libbalsa_address_get_last_name), (libbalsa_address_get_nick_name),
	(libbalsa_address_get_organization), (libbalsa_address_get_addr),
	(libbalsa_address_get_addr_list), (libbalsa_address_set_full_name),
	(libbalsa_address_set_first_name),
	(libbalsa_address_set_last_name), (libbalsa_address_set_nick_name),
	(libbalsa_address_set_organization),
	(libbalsa_address_set_addr_list), (libbalsa_address_add_addr):
	* libbalsa/address.h:
	* libbalsa/rfc2445.c (libbalsa_vevent_reply),
	(cal_address_2445_to_lbaddress):
	* libbalsa/rfc6350.c (rfc6350_parse_from_stream),
	(rfc6350_eval_line):
	* src/ab-main.c (bab_load_cb):
	* src/ab-window.c (balsa_ab_window_load_cb):
	* src/balsa-mime-widget-text.c (bm_widget_new_vcard):
	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget):
	* src/balsa-print-object-text.c (balsa_print_object_text_vcard):
	* src/store-address.c (store_address_add_address),
	(store_address_add_lbaddress):

2019-06-02  Albrecht Dreß  <albrecht.dress@arcor.de>

	GMimeGpgmeSigstat: use G_DECLARE_FINAL_TYPE(), G_DEFINE_TYPE()

	* libbalsa/gmime-gpgme-signature.ch: implement GMimeGpgmeSigstat
	  using G_DECLARE_FINAL_TYPE() and G_DEFINE_TYPE();
	  implement getter/setter functions
	* libbalsa/body.c, libbalsa/gmime-multipart-crypt.c, libbalsa/rfc3156.c,
	  src/balsa-message.c, src/balsa-mime-widget-crypto.c,
	  src/balsa-mime-widget-message.c, src/balsa-print-object-header.c:
	  use getter functions instead of accessing the object properties
	* libbalsa/libbalsa-gpgme.c: use setter functions
	  instead of manipulating the object propertiy directly
	* libbalsa/libbalsa-gpgme-widgets.[ch]: key argument to libbalsa_gpgme_key() is const

2019-06-02  Albrecht Dreß  <albrecht.dress@arcor.de>

	Make GpgME/E2EE support a hard requirement

	* INSTALL: ancient file, add pointer to README
	* README: remove --with-gpgme option; add gpgme as requirement;
	  briefly describe Balsa's E2EE support; clarify --with-libsecret
	* configure.ac, meson.build, meson_options.txt: remove --with-gpgme option;
	  fail if gpgme-config is unavailable; require gpgme >= 1.6.0
	* libbalsa/Makefile.am, libbalsa/meson.build: remove conditional building with/without gpgme
	* libbalsa/body.[ch], libbalsa/imap-server.c,
	  libbalsa/mailbox.[ch], libbalsa/message.[ch],
	  libbalsa/rfc3156.[ch], libbalsa/send.[ch],
	  src/balsa-app.[ch], src/balsa-icons.[ch],
	  src/balsa-message.[ch], src/balsa-mime-widget-crypto.[ch],
	  src/balsa-mime-widget-message.c, src/balsa-mime-widget-multipartc,
	  src/balsa-mime-widget.c, src/balsa-print-object-header.[ch],
	  src/balsa-print-object.c, src/main.c, src/print-gtk.c,
	  src/save-restore.c, src/sendmsg-window.[ch],
	  src/toolbar-factory.c: remove conditional compilation (HAVE_GPGME)
	* libbalsa/identity.c: remove conditional compilation (HAVE_GPGME);
	  simplify append_ident_notebook_page()
	* src/mailbox-conf.c: remove conditional compilation (HAVE_GPGME);
	  remove useless scope in mailbox_conf_view_new_full()

2019-06-02  Albrecht Dreß  <albrecht.dress@arcor.de>

	libnetclient: use G_DECLARE*

	* libnetclient/net-client-pop.[ch]: use G_DECLARE_FINAL_TYPE(),
	  and drop storing the private object data in a separate structure;
	  • net_client_pop_get_capa(): enable pipelining only if included
	    in the server's capabilities
	* libnetclient/net-client-siobuf.[ch], libnetclient/net-client-smtp.[ch]:
	  use G_DECLARE_FINAL_TYPE(), and drop storing the private object
	  data in a separate structure
	* libnetclient/net-client-utils.h: suppress Flexelint 9.00 false-positive
	* libnetclient/net-client.[hc]: use G_DECLARE_DERIVABLE_TYPE();
	  use net_client_get_instance_private() to access private data

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-commands.h: remove redundant declaration of
	imap_mbox_handle_can_do().

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-book-rubrica.c (lbab_rubrica_load_xml):
	  reduce scope of a GList* variable so that another does not
	  shadow it.

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	various: remove redundant declarations

	Some cleanup from using G_DEFINE_TYPE{,WITH_PRIVATE} macros

	* libbalsa/gmime-filter-header.c:
	* libbalsa/server-config.c:
	* src/main-window.c:

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-books: remove redundant declarations

	Some cleanup from using G_DECLARE_{DERIVABLE,FINAL}_TYPE macros

	* libbalsa/address-book-ldap.c:
	* libbalsa/address-book-osmo.h:
	* libbalsa/address-book-rubrica.c:
	* libbalsa/address-book-text.c:
	* libbalsa/address-book-vcard.c:

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookVcard

	Make the structure private; no need for getters and setters.

	* libbalsa/address-book-vcard.c (libbalsa_address_book_vcard_init),
	  (libbalsa_address_book_vcard_new):
	* libbalsa/address-book-vcard.h:

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: specify meson version >= 0.43

2019-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: Bump default version to 2.5.7;
	  use compiler.get_supported_arguments() to check all arguments at once,
	  instead of looping through a list and checking them one at a time.

2019-05-26  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac: correct typos; bump version base for git builds.

2019-05-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookRubrica

	Make the structure private; no need for getters and setters.

	* libbalsa/address-book-rubrica.c:
	* libbalsa/address-book-rubrica.h:

2019-05-25  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac: Release balsa-2.5.7

2019-05-22  Albrecht Dreß  <albrecht.dress@arcor.de>

	Mitigate “Re: What's Up Johnny?” vulnerabilities

	* src/balsa-app.h: add flag whether the user wants to be warned
	  when replying to an encrypted message
	* src/save-restore.c:
	  • save/restore new flag
	  • add reply selection dialogue to geometry manager
	* src/sendmsg-window.c:
	  • tree_add_quote_body(): refactoring, add information whether
	    the part has been decrypted
	  • scan_bodies(): use new tree_add_quote_body(), propagate
	    information about encrypted containers
	  • unselect_decrypted(): new function for deselecting all
	    decrypted parts in the dialogue for selecting cited parts
	  • quote_parts_select_dlg(): add message when replying to a
	    fully or partially encrypted message, use geometry manager
	  • show_decrypted_warning(): show dialogue when the user
	    replies to a single-part decrypted message
	  • collect_for_quote(): use new scan_bodies() api

2019-05-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not break user's config

	* libbalsa/address-book.c
	(libbalsa_address_book_new_from_config): if the type is
	LibBalsaAddressBookExtern, it is no longer recognized, so we use
	LibBalsaAddressBookExternq instead.

2019-05-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookOsmo

	Make the structure private; no need for getters and setters.

	Adopt ab_osmo as the identifier.

	* libbalsa/address-book-osmo.c (osmo_read_addresses):
	* libbalsa/address-book-osmo.h:

2019-05-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookLdif

	Make the structure private; no need for getters and setters.

	* libbalsa/address-book-ldif.c (libbalsa_address_book_ldif_init),
	(libbalsa_address_book_ldif_new):
	* libbalsa/address-book-ldif.h:

2019-05-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookLdap

	Make the structure private, and provide and use the necessary
	getters and setters.

	Adopt ab_ldap as the identifier.

	* libbalsa/address-book-ldap.c
	(libbalsa_address_book_ldap_class_init),
	(libbalsa_address_book_ldap_init),
	(libbalsa_address_book_ldap_finalize),
	(libbalsa_address_book_ldap_new),
	(libbalsa_address_book_ldap_close_connection), (abl_interaction),
	(libbalsa_address_book_ldap_open_connection),
	(libbalsa_address_book_ldap_load),
	(libbalsa_address_book_ldap_get_address),
	(libbalsa_address_book_ldap_add_address),
	(libbalsa_address_book_ldap_remove_address),
	(libbalsa_address_book_ldap_modify_address),
	(libbalsa_address_book_ldap_save_config),
	(libbalsa_address_book_ldap_load_config),
	(libbalsa_address_book_ldap_alias_complete),
	(libbalsa_address_book_ldap_get_host),
	(libbalsa_address_book_ldap_get_base_dn),
	(libbalsa_address_book_ldap_get_bind_dn),
	(libbalsa_address_book_ldap_get_passwd),
	(libbalsa_address_book_ldap_get_book_dn),
	(libbalsa_address_book_ldap_get_enable_tls),
	(libbalsa_address_book_ldap_set_host),
	(libbalsa_address_book_ldap_set_base_dn),
	(libbalsa_address_book_ldap_set_bind_dn),
	(libbalsa_address_book_ldap_set_passwd),
	(libbalsa_address_book_ldap_set_book_dn),
	(libbalsa_address_book_ldap_set_enable_tls):
	* libbalsa/address-book-ldap.h:
	* src/address-book-config.c (create_ldap_dialog), (create_book),
	(modify_book):

2019-05-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookGpe

	Make the structure private; no need for getters and setters.

	Adopt ab_gpe as the identifier.

	* libbalsa/address-book-gpe.c
	(libbalsa_address_book_gpe_class_init),
	(libbalsa_address_book_gpe_init),
	(libbalsa_address_book_gpe_finalize),
	(libbalsa_address_book_gpe_new),
	(libbalsa_address_book_gpe_close_db),
	(libbalsa_address_book_gpe_open_db), (gpe_read_address),
	(libbalsa_address_book_gpe_load):
	* libbalsa/address-book-gpe.h:

2019-05-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-book: Adopt ab as the identifier

	* libbalsa/address-book.c (libbalsa_address_book_new_from_config):
	* libbalsa/address-book.h:

2019-05-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_FINAL_TYPE to declare LibBalsaAddressBookExternq

	Make the structure private, and provide and use the necessary
	getters and setters.

	Adopt libbalsa_address_book_externq as the namespace, and
	ab_externq as the identifier.

	* libbalsa/address-book-extern.c
	(libbalsa_address_book_externq_class_init),
	(libbalsa_address_book_externq_init),
	(libbalsa_address_book_externq_finalize),
	(libbalsa_address_book_externq_new), (lbe_load_cb),
	(libbalsa_address_book_externq_load), (parse_externq_file),
	(libbalsa_address_book_externq_add_address),
	(libbalsa_address_book_externq_save_config),
	(libbalsa_address_book_externq_load_config),
	(libbalsa_address_book_externq_alias_complete),
	(libbalsa_address_book_externq_get_load),
	(libbalsa_address_book_externq_get_save),
	(libbalsa_address_book_externq_set_load),
	(libbalsa_address_book_externq_set_save):
	* libbalsa/address-book-extern.h:
	* libbalsa/libbalsa.c (libbalsa_init):
	* src/ab-main.c (bab_window_set_title),
	(file_new_externq_activated), (get_main_menu), (bab_init):
	* src/ab-window.c (balsa_ab_window_set_title):
	* src/address-book-config.c (create_dialog_from_type),
	(create_externq_dialog), (handle_close), (create_book),
	(modify_book), (add_externq_cb):
	* src/pref-manager.c (update_address_books):

2019-05-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaAddressBookText

	and provide and use the necessary getters and setters.

	* libbalsa/address-book-ldif.c (libbalsa_address_book_ldif_new):
	* libbalsa/address-book-rubrica.c
	(libbalsa_address_book_rubrica_class_init),
	(libbalsa_address_book_rubrica_init),
	(libbalsa_address_book_rubrica_new),
	(libbalsa_address_book_rubrica_load),
	(libbalsa_address_book_rubrica_alias_complete),
	(libbalsa_address_book_rubrica_add_address),
	(libbalsa_address_book_rubrica_modify_address),
	(lbab_rubrica_load_xml):
	* libbalsa/address-book-text.c (lbab_text_item_free),
	(libbalsa_address_book_text_class_init),
	(libbalsa_address_book_text_init),
	(libbalsa_address_book_text_finalize),
	(lbab_text_address_book_need_reload), (lbab_text_load_file),
	(lbab_text_lock_book), (lbab_text_unlock_book),
	(lbab_text_open_temp), (lbab_text_close_temp),
	(libbalsa_address_book_text_load),
	(libbalsa_address_book_text_add_address),
	(libbalsa_address_book_text_modify_address),
	(libbalsa_address_book_text_save_config),
	(libbalsa_address_book_text_load_config),
	(libbalsa_address_book_text_alias_complete),
	(libbalsa_address_book_text_get_path),
	(libbalsa_address_book_text_get_item_list),
	(libbalsa_address_book_text_get_mtime),
	(libbalsa_address_book_text_get_name_complete),
	(libbalsa_address_book_text_set_path),
	(libbalsa_address_book_text_set_item_list),
	(libbalsa_address_book_text_set_mtime),
	(libbalsa_address_book_text_set_name_complete):
	* libbalsa/address-book-text.h:
	* libbalsa/address-book-vcard.c (libbalsa_address_book_vcard_new):
	* src/address-book-config.c (create_local_dialog), (modify_book):

2019-05-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaAddressBook

	The macro defines _LibBalsaAddressBook to be a bare structure
	with a single GObject member. The instance data must be in a
	_LibBalsaAddressBookPrivate structure, access to which is
	channeled through getters and setters.

	* libbalsa/address-book-extern.c
	(libbalsa_address_book_externq_new),
	(libbalsa_address_book_externq_alias_complete):
	* libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_init),
	(libbalsa_address_book_gpe_new), (libbalsa_address_book_gpe_load):
	* libbalsa/address-book-ldap.c (libbalsa_address_book_ldap_init),
	(libbalsa_address_book_ldap_new),
	(libbalsa_address_book_ldap_open_connection),
	(libbalsa_address_book_ldap_add_address),
	(libbalsa_address_book_ldap_remove_address),
	(libbalsa_address_book_ldap_modify_address),
	(libbalsa_address_book_ldap_load_config),
	(libbalsa_address_book_ldap_alias_complete):
	* libbalsa/address-book-ldif.c (libbalsa_address_book_ldif_new):
	* libbalsa/address-book-osmo.c (libbalsa_address_book_osmo_init),
	(libbalsa_address_book_osmo_new),
	(libbalsa_address_book_osmo_load),
	(libbalsa_address_book_osmo_alias_complete):
	* libbalsa/address-book-rubrica.c
	(libbalsa_address_book_rubrica_new),
	(libbalsa_address_book_rubrica_alias_complete),
	(lbab_rubrica_load_xml):
	* libbalsa/address-book-text.c (lbab_text_load_file),
	(libbalsa_address_book_text_alias_complete):
	* libbalsa/address-book-vcard.c (libbalsa_address_book_vcard_new):
	* libbalsa/address-book.c (libbalsa_address_book_class_init),
	(libbalsa_address_book_init), (libbalsa_address_book_finalize),
	(libbalsa_address_book_set_status),
	(libbalsa_address_book_load_config),
	(libbalsa_address_is_dist_list),
	(libbalsa_address_book_real_save_config),
	(libbalsa_address_book_real_load_config),
	(libbalsa_address_book_strerror),
	(libbalsa_address_book_get_expand_aliases),
	(libbalsa_address_book_get_is_expensive),
	(libbalsa_address_book_get_dist_list_mode),
	(libbalsa_address_book_get_name),
	(libbalsa_address_book_get_config_prefix),
	(libbalsa_address_book_set_name),
	(libbalsa_address_book_set_is_expensive),
	(libbalsa_address_book_set_expand_aliases),
	(libbalsa_address_book_set_dist_list_mode):
	* libbalsa/address-book.h:
	* libbalsa/address-view.c (lbav_get_matching_addresses):
	* src/ab-main.c (bab_set_address_book), (bab_window_set_title),
	(address_book_change_state), (set_address_book_menu_items),
	(address_book_change), (file_delete_activated),
	(bab_set_intial_address_book):
	* src/ab-window.c (balsa_ab_window_load_books),
	(balsa_ab_window_init), (balsa_ab_window_set_title),
	(balsa_ab_window_load), (balsa_ab_window_dist_mode_toggled),
	(balsa_ab_window_menu_changed):
	* src/address-book-config.c (add_radio_buttons),
	(create_local_dialog), (create_osmo_dialog),
	(create_externq_dialog), (create_ldap_dialog), (create_gpe_dialog),
	(create_book), (modify_book):
	* src/pref-manager.c (update_address_books):
	* src/save-restore.c (address_book_section_path),
	(config_address_book_delete), (config_save):
	* src/store-address.c (store_address_book_frame),
	(store_address_add_list):

2019-05-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clean up conditional compilations after bumping required
	versions.

	* libbalsa/libbalsa.c (libbalsa_dialog_flags):
	* libbalsa/libbalsa.h:
	* src/ab-main.c (libbalsa_dialog_flags):
	* src/ab-window.c (balsa_ab_window_new):
	* src/balsa-message.c (balsa_message_init):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_image_dispose),
	(balsa_mime_widget_new_image):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_new):
	* src/pref-manager.c (pm_grid_attach):

2019-05-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Bump required version of GLib to 2.48, and Gtk3 to 3.18

	* configure.ac:
	* meson.build:

2019-05-12  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix “Johnny you are fired” vulnerabilities

	* configure.ac: require gnutls >= 3.0
	* libbalsa/body.[ch]: add helper functions for detecting multipart
	    and inline signed bodies
	* libbalsa/gmime-gpgme-signature.[ch]:
	  • g_mime_gpgme_sigstat_new_from_gpgme_ctx() classify multiple
	    signatures as possible attack, always load key if available;
	  • add g_mime_gpgme_sigstat_info() giving the protocol,
	    signer and signature status;
	  • g_mime_gpgme_sigstat_to_gchar() use changed
	    libbalsa_gpgme_sig_stat_to_gchar() interface, hide signature
	    timestamp if it is missing;
	  • add g_mime_gpgme_sigstat_signer() to get the OpenPGP or
	    S/MIME signer as human-readable string;
	  • add tokenize_subject() and cert_subject_cn_mail()
	    for better evaluation of a certificate DN, and use them in
	    libbalsa_cert_subject_readable()
	* libbalsa/html.c: fix segfault on NULL body (detected with one
	    of the broken “Johnny” samples)
	* libbalsa/libbalsa-gpgme.[ch]:
	  • add libbalsa_gpgme_protocol_name() to get consistent
	    protocol naming (replaces gpgme_get_protocol_name() or
	    hardcoded values);
	  • define error code for multiple signatures
	* libbalsa/rfc3156.[ch]:
	  • change libbalsa_gpgme_sig_stat_to_gchar() to return a
	    newly allocated string, possibly including error information
	    from gpgme;
	  • remove duplicated #define's
	* src/balsa-message.c:#
	  • get_crypto_content_icon() print extended signature info
	    in the tree view;
	  • libbalsa_msg_try_mp_signed() and libbalsa_msg_part_2440()
	    use new libbalsa_gpgme_sig_stat_to_gchar() api
	* src/balsa-mime-widget-crypto.c: drop code to
	    load a signature's key as this is now done in
	    g_mime_gpgme_sigstat_new_from_gpgme_ctx()
	* src/balsa-mime-widget-message.c:
	  • use new helpers for detecting signed parts;
	  • use new libbalsa_gpgme_sig_stat_to_gchar() api
	* src/balsa-print-object-header.[ch]:
	  • use new helpers for detecting signed parts and
	    g_mime_gpgme_sigstat_info();
	  • remove now unused parameter from
	    balsa_print_object_header_crypto(), and drop code to load a
	    signature's key
	* src/balsa-print-object.c: use modified
	    balsa_print_object_header_crypto() api
	* src/print-gtk.c: refactoring and simplification of printing
	    signed and/or encrypted parts
	* src/sendmsg-window.c: use libbalsa_gpgme_protocol_name()

2019-05-11  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix issue #15: NULL-pointer deref in pop3 code

	* libnetclient/net-client-pop.c: make sure
	net_client_pop_read_reply() does not return a NULL server reply
	string on success (fix issue #15)
	* libnetclient/net-client-siobuf.c: silence a bunch of Flexelint
	warnings, no change in code behaviour
	* libnetclient/test/echoserver.py: add missing executable flag

2019-05-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c (bm_find_bar_new): connect to
	GtkSearchEntry's "search-changed" signal instead of GtkEditable's
	"changed" signal; it provides a 150 msec delay:
	"To make filtering appear more reactive, it is a good idea
	to not react to every change in the entry text immediately,
	but only after a short delay. To support this, GtkSearchEntry
	emits the “search-changed” signal which can be used instead
	of the “changed” signal."


2019-05-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Clear the view filter when the search text is
	cleared.

	* src/main-window.c (bw_sos_icon_release): callback for the
	"icon-release" signal from the GtkEntry; act on it.
	(bw_create_index_widget): connect to the signal.

2019-05-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	main-window: Port the subject-or-sender search bar to GtkSearchEntry

	* src/main-window.c (bw_create_index_widget):

2019-05-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	balsa-message: Port the find-in-message bar to GtkSearchBar and
	GtkSearchEntry

	* src/balsa-message.c (bm_find_bar_new), (bm_disable_find_entry),
	(balsa_message_init), (balsa_message_find_in_message):

2019-05-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Use g_ptr_array_new_with_free_func() to manage
	deallocation of threading_info structures.

	* libbalsa/mailbox_local.c
	(libbalsa_mailbox_local_set_threading_info),
	(libbalsa_mailbox_local_msgno_removed)

2019-05-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox: Use g_ptr_array_new_with_free_func() to manage
	deallocation of LibBalsaMailboxIndexEntry.

	* libbalsa/mailbox.c (lbm_index_entry_free),
	(libbalsa_mailbox_free_mindex), (libbalsa_mailbox_open),
	(libbalsa_mailbox_msgno_removed)

2019-05-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-mbox: Use g_ptr_array_new_with_free_func() to manage
	deallocation of message_info structures.

	* libbalsa/mailbox_mbox.c (free_message_info): refactor;
	(libbalsa_mailbox_mbox_open): use g_ptr_array_new_with_free_func()
	instead of g_ptr_array_new();
	(libbalsa_mailbox_mbox_check),
	(libbalsa_mailbox_mbox_close_mailbox),
	(libbalsa_mailbox_mbox_sync): no need to manually deallocate.

2019-04-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	address-view: drop almost duplicate code

	* libbalsa/address-view.c (lbav_insert_text_cb): use
	lbav_clean_text to replace non-printable chars by spaces,
	instead of using almost duplicative code.

2019-04-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	send: Fix a compiler warning

	* libbalsa/send.c (libbalsa_set_message_id): strncpy() with n ==
	sizeof(dest) generates:
	"error: ‘__builtin_strncpy’ specified bound 16 equals
	destination size [-Werror=stringop-truncation]"
	We now specify one fewer bytes, and explicitly nullify the last
	byte.

2019-04-18  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix the build after commit e92ec3140a1c81dbf86d90d0155cb2e08f519db2

	* src/main-window.c (bw_update_progress_bar): cast with
	'(GSourceFunc)', not with 'G_SOURCE_FUNC()', since we do not yet
	require GLib 2.58!

2019-04-18  Albrecht Dreß  <albrecht.dress@arcor.de>

	geometry-manager: Remove a not-reached assertion

	* libbalsa/geometry-manager.c (geometry_manager_init): a second
	call with the same key is not necessarily an error.

2019-04-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Call Gtk only from the main thread
	https://mail.gnome.org/archives/balsa-list/2019-April/msg00006.html

	* src/main-window.c (bw_update_progress_bar_idle_cb): idle
	handler for calling gtk_status_bar_set_{fraction,text};
	(bw_update_progress_bar): schedule the idle handler;
	(bw_progress_bar_set_text), (bw_progress_bar_set_fraction):
	convenience functions for calling bw_update_progress_bar();
	(balsa_window_increase_activity),
	(balsa_window_decrease_activity), (balsa_window_setup_progress),
	(balsa_window_increment_progress): use them.

2019-04-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use more precise types

	* libbalsa/mailbox.c (mbox_model_init), (mbox_model_get_value):
	Use the GTypes that are expected in
	gtk_cell_renderer_text_set_property().

2019-04-01  Albrecht Dreß  <albrecht.dress@arcor.de>

	Improve IMAP folder parent selection, subscription management

	* libbalsa/folder-scanners.[ch]: implement new function
	libbalsa_scanner_imap_tree() for scanning an IMAP server's
	folder structure and subscription state into a GtkTreeStore,
	requires a bunch of helper functions
	* libbalsa/imap-server.[ch]: implement new function
	libbalsa_imap_server_subscriptions() for subscribing to and
	unsubscribing from arrays of folders using a single IMAP
	connection
	* libbalsa/mailbox_imap.[ch]: remove unused function
	libbalsa_mailbox_imap_subscribe() (obsoleted by
	libbalsa_imap_server_subscriptions())
	* src/folder-conf.c: implement new style subscription and parent
	folder selection:
	  • imap_apply_subscriptions() collects folders with modified
	  subscription states from the GtkTreeView;
	  • imap_update_subscriptions() applies changed subscription
	  states, called from folder_conf_clicked_ok();
	  • on_subscription_toggled() callback for subscription state checkbox;
	  • create_imap_folder_dialog() create the dialogue for parent
	  folder selection and subscription management;
	  • folder_conf_imap_subscriptions() runs the subscription
	  management dialogue;
	  • fcw_subscribed_toggled() callback for activating the
	  subscription management button;
	  • folder_conf_imap_node() add button for subscription management;
	  • select_parent_folder() find parent of a folder in the GtkTreeModel;
	  • on_parent_double_click() callback for double-click folder selection;
	  • browse_button_cb() modified, runs the parent selection dialogue;
	  • remove obsolete functions browse_button_select_row_cb(),
	  browse_button_row_activated(), browse_button_response(),
	  folder_selection_func(), browse_button_data_free()
	* src/mailbox-node.c: remove obsolete mailbox tree view entries
	for (un)subscribing
	* src/save-restore.c: add the two new dialogues to the geometry manager

2019-03-23  Albrecht Dreß  <albrecht.dress@arcor.de>

	Do not include a trailing period ('.') when matching an URL.
	Most often it's end-of-sentence punctuation rather than part of
	the URL. See the thread at
	<URL:https://mail.gnome.org/archives/balsa-list/2018-July/msg00000.html>.

	* libbalsa/mime.c (get_url_reg): do not match a trailing period.

2019-03-21  Albrecht Dreß  <albrecht.dress@arcor.de>

	I noticed that /sometimes/ closing the config dialogue of an
	existing maildir mailbox segfaults.  It appears that this
	is caused by an uninitialised file chooser (I modified the
	particular code snippet a while ago…).  I am quite sure I
	tested the changes, including maildir (the format I typically
	use), no idea why this slipped through, sorry!

	* src/mailbox-conf.c (create_local_mailbox_dialog):  Fix maildir
	config crash

2019-03-12  Albrecht Dreß  <albrecht.dress@arcor.de>

	Broken mailbox view after moving IMAP folder sideways

	I noticed a bug when a folder on a IMAP server is moved sideways,
	e.g. from “INBOX/Folder1/Test” to “INBOX/Folder2/Test”:
	after moving, a partial re-scan of the mailbox tree is performed,
	which makes all my local folders disappear.  The effect does
	not occur if the folder is moved up or down the tree.  I could
	track down the source of the issue to src/folder-conf.c, function
	subfolder_conf_clicked_ok().

	* src/folder-conf.c (subfolder_conf_clicked_ok): rescan the
	whole IMAP folder tree after a sideways move.

2019-03-05  Albrecht Dreß  <albrecht.dress@arcor.de>

	* libbalsa/send.c (libbalsa_create_rfc2440_buffer): fix confusing
	bcc: encryption warning in libbalsa_create_rfc2440_buffer()
	if no bcc: recipients are present;
	(do_multipart_crypto): use singular/plural form of this warning
	in do_multipart_crypto().

2019-03-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not attach files in response to clicking a "mailto:" URL

	Only if the URL is passed to Balsa on the command line by "-m"
	or "--compose".

	Also, accept either "attach=" or "attachment=" in a "mailto:"
	URL.

	* src/sendmsg-window.c (sendmsg_window_process_url),
	(sw_attach_file), (sendmsg_window_set_field),
	(set_list_post_rfc2369): attach a file only if the request comes
	from the command line;
	* src/balsa-mime-widget-text.c (url_send_cb), (handle_url): this
	request is not from the command line;
	* src/main.c (balsa_check_open_compose_window): this request is
	from the command line;
	* src/sendmsg-window.h: new argument "gboolean
	from_command_line" for sendmsg_window_process_url() and
	sendmsg_window_set_field().

2019-02-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Simplify handling "mailto:" URLs

	* src/sendmsg-window.c (decode_and_strdup): simplify;
	(sendmsg_window_process_url): drop the "field_setter func"
	argument; it's always "sendmsg_window_set_field";
	(set_list_post_rfc2369): use new API;
	* src/sendmsg-window.h: export new API;
	* src/balsa-mime-widget-text.c (handle_url): use new API;
	* src/main.c (balsa_check_open_compose_window): ditto.

2019-02-24  Pawel Salek  <pawsa0@gmail.com>

	Fix some issues raised by scan-build, the clang static analyzer

	* libbalsa/imap/imap-commands.c (imap_mbox_store_flag): insert
	missing "else";
	* libbalsa/imap/imap-handle.c (imap_get_flag),
	(imap_cmd_get_tag): always null-terminate the string;
	(imap_message_deserialize): omit a dead increment;
	(imap_cmd_exec_cmds): store the return code for return;
	* libbalsa/imap/imap_tst.c (test_mbox_append_common): check the
	return code for error.

2019-02-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	gtk_window_present() will be deprecated in later versions of
	Gtk-2.24, in favor of gtk_window_present_with_time().

	We never have a time-stamp readily available, so just pass
	gtk_get_current_event_time().

	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	(libbalsa_identity_config_dialog):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* src/address-book-config.c (balsa_address_book_config_new):
	* src/balsa-index.c (balsa_index_pipe):
	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/filter-run-dialog.c (filters_run_dialog):
	* src/folder-conf.c (folder_conf_imap_node),
	(folder_conf_imap_sub_node):
	* src/mailbox-conf.c (mailbox_conf_new), (mailbox_conf_edit):
	* src/main-window.c (check_new_messages_real):
	* src/main.c (balsa_activate_cb), (handle_remote):
	* src/message-window.c (mw_set_selected), (message_window_new):
	* src/pref-manager.c (open_preferences_manager):
	* src/sendmsg-window.c (address_book_cb),
	(sw_spell_check_activated), (sendmsg_window_continue):
	* src/store-address.c (balsa_store_address_from_messages):
	* src/toolbar-prefs.c (customize_dialog_cb):

2019-02-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/html.c: simpler regular expression for non-cid schemes.

2018-02-23  Albrecht Dreß  <albrecht.dress@arcor.de>

	Error in IMAP mailbox encoding

	Balsa has a bug in encoding IMAP mailbox names to modified UTF-7
	as defined in RFC 3501, sect. 5.1.3 [1], as the '\' (0x5c) is
	encoded as '\\' which is explicitly prohibited.  To reproduce:
	activate main() in libbalsa/imap/util.c, compile it, and run
	e.g. (yes, the mailbox name is weird, but it includes all special
	cases from the RFC…)

	/util 'ϴä ab c&d+e/f\~ßx'
	orig='ϴä ab c&d+e/f\~ßx' mbx='&A,QA5A- ab c&-d+e/f\\~&AN8-x' back='ϴä ab c&d+e/f\\~ßx'
	WRONG CONVERSION: --------------------------------^^

	* libbalsa/imap/util.c (imap_utf8_to_mailbox),
	  (imap_mailbox_to_utf8): replace the hand-coded conversion by
	  utilising g_convert(), and also fix the bug
	* libbalsa/imap/util.h: declare them with the
	  G_GNUC_WARN_UNUSED_RESULT attribute.

2019-02-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/html.c (lbh_web_view_new): use a static location when
	registering 'cid:' scheme; fix the regular expression for
	matching non-cid schemes (it was also matching 'cid:')

2019-02-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_imap.c (lbm_imap_get_msg_part_from_cache):
	plug memory leaks in error return paths;

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-image.c (img_check_size): avoid scan-build
	false positive.

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-handle.c (imap_body_from_stringi): guard
	against NULL pointer.

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-print-object-text.c (collect_attrs): initialize a
	region by structure assignment instead of g_memdup().


2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/send.c (libbalsa_message_create_mime_message): do not
	leak mime_type in error return paths; also reduce scope of
	mime_type.

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address.c (vcard_strsplit): eliminate one decrement,
	and add an assertion to avoid a scan-build false positive

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox.c (libbalsa_mailbox_view_new): initialize a
	view by structure assignment instead of g_memdup().

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address.c (libbalsa_address_new_from_vcard): do not
	leak a string.

2019-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Cast weak-pointer-location to (gpointer *) in calls to
	g_object{add,remove}_weak_pointer()

	* libbalsa/identity.c (libbalsa_identity_config_dialog):
	* libbalsa/mailbox_maildir.c (free_message_info):
	* libbalsa/mailbox_mbox.c (free_message_info):
	* libbalsa/mailbox_mh.c (lbm_mh_free_message_info):
	* src/balsa-index.c (bndx_clear_if_last_ref), (bndx_pipe_response):
	* src/balsa-mblist.c (balsa_mblist_get_store),
	(update_mailbox_idle), (bmbl_mailbox_changed_cb):
	* src/balsa-mime-widget-image.c
	(balsa_mime_widget_image_resize_all), (img_check_size):
	* src/filter-edit-callbacks.c (fe_edit_condition):
	* src/folder-conf.c (folder_conf_imap_node),
	(folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/mailbox-conf.c (mailbox_conf_new):
	* src/mailbox-node.c (imap_scan_attach_mailbox),
	(balsa_mailbox_node_scan_children), (bmbn_scan_children_idle):
	* src/main-window.c (balsa_window_new),
	(bw_real_open_mbnode_idle_cb), (bw_real_open_mbnode_thread),
	(balsa_window_real_open_mbnode), (bw_focus_idle),
	(balsa_window_real_close_mbnode), (bw_notebook_switch_page_cb):
	* src/main.c (balsa_activate_cb):
	* src/message-window.c (destroy_message_window),
	(message_window_new):
	* src/toolbar-prefs.c (customize_dialog_cb):

2019-02-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox.c: remove an unused function;
	* libbalsa/mailbox.h: do not export it.

2019-02-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	mailbox-local: Do not leak LibBalsaMessage

	* libbalsa/mailbox_local.c (lbml_message_pool_take_message): new
	name for 'lbml_add_message_to_pool', emphasizing that it takes
	over the reference count;
	(lbm_local_get_message_with_msg_info): use the new name;
	(libbalsa_mailbox_local_get_message): always return a reference
	to the LibBalsaMessage.

2019-02-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	imap-mbox-handle: Do not leak a GNode tree

	* libbalsa/imap/imap-handle.c (imap_mbox_handle_finalize):
	destroy the thread-root GNode tree.

2018-02-15  Albrecht Dreß  <albrecht.dress@arcor.de>

	Relax secret key selection

	Currently, the user can only select a key with a uid which matches
	the account's email address.  However, there are use-cases where
	this is not sufficient.  At work, we have an isolated network
	with “internal” email addresses.  Outgoing messages are
	re-written to public addresses, but the internal ones shall
	not be exposed to the outside world (see e.g. [1]), i.e. the
	key /must not/ carry a user-id for the internal address.  Thus,
	neither auto-selection nor defining the key id in the gui works
	(it would be possible to run gpg[sm] on the console to print
	the id, and then copy it into the input field, though).

	The patch enables selecting any valid private key in the identity
	dialogue, but /not/ when a message shall be sent and the private
	key cannot be determined.  Note that the vast majority of users
	will probably never use this feature, i.e. use automatic key
	selection (id is empty in the identity setup).

	* libbalsa/libbalsa-gpgme.c (libbalsa_gpgme_get_seckey): relax
	the selection of the private key in the identity setup dialogue

2018-02-15  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix broken decryption of s/mime messages loaded from imap

	* libbalsa/mailbox_imap.c
	(libbalsa_mailbox_imap_fetch_structure): fetch part if it is not
	multipart/*, instead of only fetching text/*.

2018-02-15  Albrecht Dreß  <albrecht.dress@arcor.de>

	Printing of HTML message parts

	* libbalsa/html.[ch]: implement function for rendering to a
	Cairo surface; refactor for extracting common code
	* src/balsa-print-object-html.[ch]: implement printing the HTML
	Cairo surface (new module)
	* src/Makefile.am, src/meson.build: add new module
	* src/balsa-print-object.c: use the new module for HTML (falls
	back to default if built w/o HTML support)
	* src/balsa-print-object.h: add the “volatile” HTML printing
	options to BalsaPrintSetup
	* src/print-gtk.c: refactor print dialogue to use GtkGrid;
	add new options; add function for selecting the proper part
	from multipart/alternative
	* src/balsa-print-object-html.[ch]: new files

2019-02-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/mailbox-node.c (balsa_mailbox_node_dispose): now that we
	unref POP3 mailboxes, which do not need to be saved in the
	config file, we must not try to save them.

2019-02-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Plug some memory leaks

	* src/balsa-mime-widget.[ch]: No need for a 'finalize' method
	* src/balsa-message.c: Unref the BalsaMimeWidget
	* src/balsa-app.c: Unref the POP3 mailboxes and free the list
	* libbalsa/mailbox_pop3.c: Do not leak the filter-cmd
	* libbalsa/address-book-rubrica.c: Do not leak the completion

2019-02-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Preserve tab order of open mailboxes across instances (#12)

	* libbalsa/mailbox.c (libbalsa_mailbox_set_position),
	  (libbalsa_mailbox_get_position): manage the mailbox's position
	  in the notebook;
	  (libbalsa_mailbox_set_open): unset the position when the
	  mailbox is closed;
	* libbalsa/mailbox.h: new member 'position';
	* libbalsa/mailbox_local.c (lbml_set_threading): guard against
	  NULL msg_tree;
	* src/balsa-app.c (position_compare_func),
	  (balsa_add_open_mailbox_urls): sort the mailboxes to be opened
	  by their position in the last instance;
	* src/balsa-app.h: new member 'gboolean in_destruction';
	* src/balsa-index.c (bndx_destroy), (bndx_selection_changed),
	  (balsa_index_load_mailbox_node): take a strong ref on the
	  BalsaMailboxNode instead of a weak ref;
	* src/mailbox-node.c (balsa_mailbox_node_dispose): do not bother
	  to close the mbnode;
	* src/main-window.c (bw_notebook_page_notify_cb): callback for
	  the "child-notify::position" signal;
	  (bw_real_open_mbnode_idle_cb): connect to it;
	  (balsa_window_destroy): set 'in_destruction';
	* src/save-restore.c (config_load_mailbox_view),
	  (config_save_mailbox_view): save and restore positions;
	  (config_mailbox_get_int_property),
	  (config_mailbox_get_position): new functions to get position;
	* src/save-restore.h: new API.

2019-02-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson_options.txt: make 'autocrypt' a boolean option, default
	false;
	* meson.build: rename 'autocryptcfg' to 'autocrypt', since it is
	now boolean.

2019-02-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Restore running the address book editor

	* src/meson.build: build the editor with the correct name:
	"balsa-ab", not "balsa_ab";
	* ui/balsa-ab.gresource.xml: use the correct prefix:
	"/org/desktop/BalsaAb", not "/org/desktop/Balsa".

2018-01-30  Albrecht Dreß  <albrecht.dress@arcor.de>

	LDAP address book: use all email attributes

	* libbalsa_address_book_ldap_get_address(): assign the GList
	  of all mail attribute strings to LibBalsaAddress instead of the
	  first one only;
	* lbabl_get_internet_address(): append separate InternetAddress
	  to a GList instead on returning the first one only.

2018-01-24  Albrecht Dreß  <albrecht.dress@arcor.de>

	* libbalsa/html.c (lbh_web_process_terminated_cb): new signal in
	  webkit version 2.20;
	  (libbalsa_html_new): do not auto-load images if any are
	  external (that is, not cid: data)
2019-01-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	More menu shuffling

	* ui/main-window.ui:
	  move "File → New → Message" to "Message → New…";
	  move  "Mailbox → Close" to the foot of the "Mailbox" menu, and
	  group "Remove Duplicates" and "Expunge Deleted Messages"
	  immediately above it;
	  move "Message → Next Message" and three friends to a new
	  "Go" top-level menu.

2019-01-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* ui/main-window.ui: Shuffle some menu items;
	see https://gitlab.gnome.org/GNOME/balsa/issues/14

2019-01-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* ui/main-window.ui: Restore 'm' shortcut for "New message"

2019-01-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove application menu

	GNOME has decided that application menus, shown in the top bar
	of the GNOME desktop, are a bad idea. It was kind of a stretch
	for Balsa to implement one, so it shouldn't be too hard to drop
	it.

	* src/main-window.c (settings_activated),
	(bw_add_win_action_entries), (balsa_window_add_action_entries),
	(bw_set_menus): move the appmenu items that are not already
	duplicate in the File: menu back there;
	* ui/main-window.ui: ditto.

2018-01-20  Albrecht Dreß  <albrecht.dress@arcor.de>

	Do not trigger a CRITICAL message when request for a Message
	Disposition Notification is activated
	Fixes
	https://mail.gnome.org/archives/balsa-list/2019-January/msg00018.html

	* libbalsa/message.c (libbalsa_message_set_dispnotify): test
	whether message->headers->dispnotify_to is NULL before unreffing
	it.

2018-01-13  Albrecht Dreß  <albrecht.dress@arcor.de>

	Get the Autocrypt headers from Balsa's user-headers instead of
	from a GMimeMessage, which doesn't always exist.

	* libbalsa/autocrypt.c (scan_autocrypt_headers): new function
	for scanning Balsa's user-headers;
	(autocrypt_from_message): use it, instead of
	g_mime_object_get_header_list() and friends;
	(parse_autocrypt_header): extend the (debug) output when
	checking the key data from an Autocrypt header fails.

2019-01-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Check for NULL message

	* libbalsa/imap/imap-commands.c (imap_mbox_sort_msgno_client):
	check for NULL message and for a message with a NULL envelope,
	to avoid dereferencing NULL pointers.

2018-01-10  Albrecht Dreß  <albrecht.dress@arcor.de>

	Minor autocrypt fixes

	* libbalsa/autocrypt.c: set a proper error message if no
	  fingerprint of a usable private key can be identified for a
	  mailbox; fix memory leak; attach Autocrypt database window to
	  geometry manager
	* libbalsa/send.c: do not add Autocrypt header when postponing;
	  propagate error from creating Autocrypt header
	* src/save-restore.c: restore Autocrypt database window geometry

2018-01-05  Albrecht Dreß  <albrecht.dress@arcor.de>

	make IMAP messages translatable

	* libbalsa/imap/auth-cram.c, libbalsa/imap/auth-gssapi.c,
	libbalsa/imap/imap-commands.c, libbalsa/imap/imap-handle.c:
	  make message strings translatable
	* libbalsa/imap/imap-handle.c, libbalsa/imap/imap_private.h:
	  implement imap_mbox_handle_set_msg() as function
	* libbalsa/imap/imap-commands.h, libbalsa/imap/imap-tls.c:
	  add GError to imap_handle_starttls() api

2019-01-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix the meson build

	* libbalsa/meson.build: add geometry manager module

2018-01-05  Albrecht Dreß  <albrecht.dress@arcor.de>

	Simplify window geometry management

	* libbalsa/Makefile.am: add geometry manager module
	* libbalsa/geometry-manager.[hc]: geometry manager module
	  implementation
	* libbalsa/libbalsa-gpgme-cb.c: use geometry manager for the
	  key list dialogue
	* libbalsa/libbalsa-gpgme-widgets.c: use geometry manager for
	  the key dialogue
	* libbalsa/libbalsa.h: simplify libbalsa_show_message_source()
	  api, remove unimplemented function prototype
	* libbalsa/source-viewer.c: use geometry manager, simplify
	  libbalsa_show_message_source() api
	* src/balsa-app.c: remove initialisation of obsolete balsa_app
	  items
	* src/balsa-app.h: remove obsolete balsa_app items
	* src/balsa-index.c: use new libbalsa_show_message_source() api
	* src/folder-conf.c, src/main-window.c, src/main.c,
	src/message-window.c, src/sendmsg-window.c: use geometry manager
	  and new libbalsa_show_message_source() api
	* src/save-restore.c: use geometry manager to load and save values

2018-01-05  Albrecht Dreß  <albrecht.dress@arcor.de>

	minor Autocrypt fixes

	* libbalsa/autocrypt.c:
	  * add missing include, required on Debian stretch
	  * make sure the ~/.balsa folder exists before initialising
	    the autocrypt sub-system (otherwise an error is thrown when
	    balsa is started for the first time)
	  * clarify debug messages, indicating if a database entry
	    has actually been changed

2018-12-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/mailbox-conf.c (create_local_mailbox_dialog): avoid
	possibly dereferencing a NULL pointer.

2018-12-18  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix broken display of expired application/pgp-keys parts

	* libbalsa/libbalsa-gpgme-keys.[hc]: add flag to
	  libbalsa_gpgme_list_keys() for listing expired etc. keys, use
	  the new api w/o allowing expired etc. keys
	* libbalsa/libbalsa-gpgme.c, libbalsa/rfc3156.c: use the new
	  api w/o allowing expired etc. keys
	* src/balsa-mime-widget-crypto.c: use the new api, allowing
	  expired etc. keys


2018-12-18  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix buffer overflow and missing include

	* libbalsa/folder-scanners.c: fix missing include on old systems
	  which do not indirectly import string.h, remove obsolete macro
	* libbalsa/libbalsa.c: fix one-byte buffer overflow in
	  x509_fingerprint()

2018-12-18  Albrecht Dreß  <albrecht.dress@arcor.de>

	SMTP, POP: fall back to auth w/ password if GSS failed

	* libnetclient/net-client-pop.c, libnetclient/net-client-smtp.c:
	  retry auth with password if GSS auth failed; small performance
	  improvement checking the various auth methods
	* libnetclient/net-client-utils.c: print more (internal) debug
	  info about failed GSS operations, fix nit-picks

2018-12-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Stop using GSlice; it may go away

	* libbalsa/mailbox.c (libbalsa_mailbox_search_iter_new): use
	g_new(), not g_slice_new();
	(libbalsa_mailbox_search_iter_unref): use g_free(), not
	g_slice_free().

2018-12-13  Albrecht Dreß  <albrecht.dress@arcor.de>

	Replace readdir() by g_dir_read_name()

	* libbalsa/folder-scanners.c: replace opendir/readdir/closedir
	  by g_dir_*, and refactor functions libbalsa_scanner_mdir()
	  and libbalsa_scanner_local_dir_helper
	* libbalsa/mailbox_imap.c: replace opendir/readdir/closedir
	  by g_dir_*

2018-12-09  Albrecht Dreß  <albrecht.dress@arcor.de>

	Clean up deadwood

	* src/mailbox-conf.c (run_mailbox_conf),
	(create_local_mailbox_dialog): remove the “deadwood”, and
	a stray debug message…

2018-12-08  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix some issues detected by cppcheck

	* libbalsa/imap/auth-gssapi.c: fix (unlikely) uninitialised use of rc
	* libbalsa/imap/imap-auth.c: do not dereference NULL pointer if
	  an error occurred
	* libbalsa/libbalsa.c: fix signed/unsigned mismatch, and use
	  g_debug instead of printf
	* libbalsa/mailbox_imap.c: fix signed/unsigned mismatch
	* libinit_balsa/assistant_page_directory.c: fix different
	  parameters names in function prototype and implementation
	* src/balsa-message.c, src/save-restore.c: do no dereference
	  pointer before checking it it is not NULL
	* src/sendmsg-window.c: fix false-positive about NULL pointer dereference
	* src/store-address.c: fix false-positive by splitting an
	  over-complex construct

2018-12-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* libbalsa/mime.c (libbalsa_text_to_html):
	pango_unichar_direction() is deprecated in Pango 1.44; a commit
	message suggests using fribidi directly.
	* configure.ac: add direct fribidi dependency; it is already an
	indirect dependency through Pango.
	* meson.build: ditto.

2018-12-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not include no-longer-existing libbalsa/libbalsa-marshal.h

	* src/main-window.c:

2018-11-30  Albrecht Dreß  <albrecht.dress@arcor.de>

	Replace custom ELEMENTS macro with Glib G_N_ELEMENTS

	* libbalsa/filter-funcs.c (libbalsa_condition_new_from_string),
	(append_header_names), (append_flag_names):
	* libbalsa/identity.c (md_sig_path_changed):
	* libbalsa/imap/imap-commands.c (need_fetch), (imap_mbox_status),
	(enum_flag_to_str):
	* libbalsa/imap/imap-handle.c (ir_capability_data),
	(ir_resp_text_code), (ir_list_lsub), (ir_status),
	(ir_msg_att_flags), (ir_fetch_seq), (ir_handle_response):
	* libbalsa/libbalsa.h:
	* libbalsa/mailbox.c (mbox_model_get_value):
	* src/balsa-index.c (bndx_instance_init), (bndx_popup_menu_create):
	* src/balsa-mblist.c (balsa_mblist_default_signal_bindings):
	* src/filter-edit-callbacks.c (build_condition_dialog):
	* src/filter-edit-dialog.c (build_match_page), (build_action_page):
	* src/main-window.c (bw_create_index_widget):
	* src/sendmsg-window.c (find_locale_index_by_locale),
	(create_email_entry), (sw_attachment_list), (create_text_area),
	(create_lang_menu):
	* src/toolbar-factory.c:

2018-11-30  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix confusing signature info

	* libbalsa/gmime-gpgme-signature.c: hide unavailable data if a
	signature is bad, the public key missing, or without signature
	data at all
	* libbalsa/libbalsa-gpgme-widgets.c: find proper subkey even if
	only the end of the fingerprint is given
	* src/balsa-mime-widget-crypto.c: remove useless debug message

2018-11-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Pass NULL instead of a stock marshaller to g_signal_new().

	* libbalsa/address-view.c (libbalsa_address_view_class_init):
	* libbalsa/cell-renderer-button.c
	(libbalsa_cell_renderer_button_class_init):
	* libbalsa/imap/imap-handle.c (imap_mbox_handle_class_init):
	* libbalsa/mailbox.c (libbalsa_mailbox_class_init):
	* src/balsa-index.c (bndx_class_init):
	* src/balsa-mblist.c (bmbl_class_init):
	* src/balsa-message.c (balsa_message_class_init):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_class_init):
	* src/mailbox-node.c (balsa_mailbox_node_class_init):
	* src/main-window.c (balsa_window_class_init):
	* src/toolbar-factory.c (balsa_toolbar_model_class_init):

2018-11-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove marshal lists

	* libbalsa/imap/libimap-marshal.list:
	* libbalsa/libbalsa-marshal.list:

2018-11-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	GNotification does not use HTML markup

	* libbalsa/information.c (libbalsa_information_varg): so do not
	escape markup characters in the text

2018-11-27  Albrecht Dreß  <albrecht.dress@arcor.de>

	Clear passwords if authentication fails

	* libbalsa/mailbox_pop3.c, libbalsa/send.c: clear appropriate
	password when libnetclient reports an authentication failure
	(SMTP, POP), or could not decrypt a user certificate's private key
	* libnetclient/net-client-pop.[ch]: report auth failure if the
	server reports any error in the authentication phase (AUTH,
	APOP, USER/PASS); fix nagging by Flexelint
	* libnetclient/net-client-smtp.[ch]: report auth failure if
	the server replies with status codes 534 or 535; fix nagging
	by Flexelint
	* libnetclient/net-client.[ch]: report a certificate key
	decryption error if the passphrase is wrong


2018-11-27  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix broken IMAP special folders & other migration issues

	* libbalsa/mailbox.[ch]: tell libbalsa_mailbox_new_from_config()
	if a folder is special, so it is processed even if it is an
	IMAP one
	* libbalsa/mailbox_imap.c: always set the "Migrated" flag for
	LibBalsaMailboxImap mailboxes
	* src/save-restore.c: in the migration process, track "user@host"
	folder ids in a hash table to avoid duplicates; keep special IMAP
	folders; load folders before mailboxes so special IMAP mailboxes
	do not overwrite the folder's IMAP configs (the server config
	originates from the first server seen)

2018-11-27  Albrecht Dreß  <albrecht.dress@arcor.de>

	Password dialogue improvements

	* libbalsa/imap-server.c, libbalsa/server-config.c,
	libinit_balsa/assistant_page_user.c, src/save-restore.c: use
	changed libbalsa_server_set_password() api
	* libbalsa/libbalsa.[c]: implement GTK_DIALOG_USE_HEADER_BAR
	detection as boolean for GCR dialogue
	* libbalsa/server.[ch]: clean up signal definitions (remove
	obsolete marshallers); remove unused class method;
	adjust api's for libbalsa_server_set_password(),
	libbalsa_server_get_password() and libbalsa_server_get_cert_pass()
	* libnetclient/net-client.[ch]: pass cert subject only
	instead of full binary data in the passphrase signal
	* src/balsa-app.[ch]: use GCR password dialogue if available;
	drop set_passwd_from_matching_server() which is never used

2018-11-04  Albrecht Dreß  <albrecht.dress@arcor.de>

	Unified server configuration GUI

	* libbalsa/Makefile.am, libbalsa/meson.build: add new
	server-config module
	* libbalsa/imap-server.c: use common config class; ensure server
	hash key required by changed folder conf approach
	* libbalsa/libbalsa-conf.[ch]: add option for obfuscated private
	string, so libbalsa_rot() is used only locally
	* libbalsa/address-book-ldap.c: use changed libbalsa-conf api
	* libbalsa/libbalsa.[ch]: libbalsa_rot() moved to
	libbalsa/libbalsa-conf.c
	* libbalsa/mailbox_pop3.c: properly initialise procmail command
	* libbalsa/send.c: fix broken signal connections if a user
	certificate is used
	* libbalsa/server-config.[ch]: implement new server config
	gui class
	* libbalsa/server.[ch]: use new config gui; refactor libsecret
	stuff; store user cert passphrase using libsecret if requested;
	clean up exported types
	* libbalsa/smtp-server.c: use new config gui
	* src/folder-conf.c: use new config gui; Note: slightly changed
	approach for adding an IMAP folder
	* src/mailbox-conf.[ch]: use new config gui, removes loads of
	obsolete exported code
	* src/mailbox-node.c: use g_debug() for debug messages
	* src/save-restore.c: use changed libbalsa-conf api

2018-10-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_create_index_widget):
	gtk_container_*_focus_chain functions are deprecated.

2018-10-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-callbacks.c (bmw_set_can_focus),
	(balsa_mime_widget_limit_focus), (balsa_mime_widget_unlimit_focus):
	gtk_container_*_focus_chain functions are deprecated.

2018-09-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/information.c (libbalsa_information_varg): use
	  g_markup_escape_text to entity-escape the body of a
	  GNotification, instead of our home-brewed non-UTF8-safe version.

2018-09-05  Albrecht Dreß  <albrecht.dress@arcor.de>

	Fix crash listing S/MIME certificates

	* libbalsa/gmime-gpgme-signature.c
	(libbalsa_cert_subject_readable): restore a missing termination
	check.

2018-08-29  Albrecht Dreß  <albrecht.dress@arcor.de>

	Move single IMAP mailboxes to folders

	* libbalsa/mailbox.c: print paranoid warning if
	  libbalsa_mailbox_new_from_config() is called for an IMAP mailbox
	* src/mailbox-conf.[ch]: remove obsolete
	  mailbox_conf_add_imap_cb(), create_imap_mailbox_dialog() and
	  dependent functions
	* src/mailbox-node.[ch]: make sure BalsaMailboxNode::dir
	  is properly initialised; remove obsolete
	  balsa_mailbox_node_new_imap()
	* src/pref-manager.c: clean up menu
	* src/save-restore.c: migrate IMAP mailboxes to IMAP folders

2018-08-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Apply threading changes on 'Update'

	* src/mailbox-conf.c (thread_messages_toggled),
	(mailbox_conf_view_new_full), (mailbox_conf_view_check):
	apply threading changes on 'Update' instead of instantly on
	checking the boxes.

2018-08-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Check for valid msgno

	* libbalsa/mailbox.c (mbox_get_thread_date_traverse_func): check
	that the msgno that we get from the GNode is in the valid range
	1 <= msgno <= mindex->len.

2018-08-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clear timeout source id in handler

	* libbalsa/mailbox_local.c (lbm_local_sync_real),
	(lbm_local_sync_idle): clear LibBalsaMailboxLocal::sync_id in
	the timeout handler, not in the thread that it creates.

2018-08-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Add UI for 'merge threads by subject'

	* libbalsa/mailbox.c (libbalsa_mailbox_set_subject_gather),
	(libbalsa_mailbox_get_subject_gather): new methods.
	* libbalsa/mailbox.h: add LibBalsaMailboxView::subject_gather
	and declare the getter/setter.
	* src/balsa-index.c (balsa_index_set_thread_messages): use
	thread-messages and subject-gather to decide whether threading
	is flat, simple, or JWZ.
	* src/mailbox-conf.c (thread_messages_toggled),
	(subject_gather_toggled), (mailbox_conf_view_new_full),
	(mailbox_conf_view_check): add the UI to the mailbox config
	dialog.
	* src/main-window.c (bw_enable_mailbox_menus),
	(balsa_window_set_thread_messages): export -set-thread-messages.
	* src/main-window.h: ditto.

2018-08-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Limit use of LibBalsaMailboxThreadingType in src/ to balsa-index.c

	* src/main-window.c (threading_change_state): pass
	gboolean thread_messages to balsa-index, instead of
	LibBalsaMailboxThreadingType threading_type;
	* src/balsa-index.c (balsa_index_set_thread_messages): ditto;
	* src/balsa-index.h: change API.

2018-08-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Simplify threading

	Change THREADING_SIMPLE to mean JWZ without the 'subject gather'
	phase, and change the UI to enable or disable threading instead
	of offering the choice of threading algorithms.

	Still to do: add UI for choosing JWZ instead of SIMPLE.

	* libbalsa/mailbox.c (lbm_need_threading_idle_cb),
	(libbalsa_mailbox_set_view_filter), (lbm_set_threading_idle_cb),
	(lbm_set_threading), (libbalsa_mailbox_set_threading): do not
	pass threading type to _set_threading, just get it from the
	view.
	* libbalsa/mailbox.h: ditto.
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_close_mailbox),
	(lbml_set_threading), (lbml_set_threading_idle_cb),
	(libbalsa_mailbox_local_set_threading), (lbm_local_thread_idle),
	(lbml_thread_messages), (lbml_unthread_message),
	(lbml_threading_flat): change THREADING_SIMPLE to mean JWZ
	without the 'subject gather' phase, and simplify THREADING_FLAT.
	* src/balsa-index.c (balsa_index_set_threading_type): do nothing
	if the type has not changed.
	* src/balsa-index.h: the threading type is
	LibBalsaMailboxThreadingType.
	* src/main-window.c (threading_change_state),
	(bw_add_win_action_entries), (balsa_window_new),
	(bw_enable_expand_collapse), (bw_enable_mailbox_menus),
	(bw_set_thread_messages), (bw_real_open_mbnode_idle_cb): remove
	the threading type radio buttons, and replace them with a
	'Thread messages' check-box.
	* src/main.c (balsa_get_stats): new API for
	libbalsa_mailbox_set_threading.
	* src/pref-manager.c (update_view_defaults), (apply_prefs),
	(set_prefs), (pm_grid_add_threading_group),
	(open_preferences_manager): remove the threading type combo box,
	and replace it with a 'Thread messages by default' check-box.
	* ui/main-window.ui: remove the threading type radio buttons,
	and replace them with a 'Thread messages' check-box.

2018-08-11  Albrecht Dreß  <albrecht.dress@arcor.de>

	Improve IMAP folder configuration
	Commit b821fb65cec529f52fee7757c870fb9ef131d653 was erased from
	the git log by a later merge--oops!

	* src/folder-conf.c: simplify folder_conf_imap_sub_node()
	  which is now used only for modifying an existing folder,
	  not for creating a new one;
	  put the logic for the latter into folder_conf_add_imap_sub_cb().
	  Note that folder_conf_imap_sub_node() still needs some refactoring…
	* src/mailbox-node.[ch]: replace empty items by separators in add_menu_entry();
	  export helper balsa_mailbox_node_is_imap()
	  indicating if a BalsaMailboxNode is on an IMAP server;
	  in balsa_mailbox_node_get_context_menu() remove the “Remote IMAP folder”
	  and show “Remote IMAP subfolder” for IMAP BalsaMailboxNodes only
	* src/main-window.c: “Remote IMAP folder”, activate “Remote IMAP subfolder”
	  for selected IMAP BalsaMailboxNodes only
	* ui/main-window.ui: remove “Remote IMAP folder” from the ui

2018-07-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: Change the pkg-config test for enchant from
	  "<= 1.6.0" to "!= 1.6.1"; Gentoo provides enchant versions 2.x.x
	  with enchant.pc, not enchant-2.pc.

2018-07-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac: Change the pkg-config test for enchant from
	  "<= 1.6.0" to "!= 1.6.1"; Gentoo provides enchant versions 2.x.x
	  with enchant.pc, not enchant-2.pc.

2018-07-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Oops, forgot this in the previous commit.

	* src/sendmsg-window.c (create_text_area): MR
	  gtk!236 has been merged; the fix will be in Gtk 3.24 when it
	  is released, but for building against unstable versions the
	  test is GTK_CHECK_VERSION(3, 23, 1).

2018-07-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text): MR
	  gtk!236 has been merged; the fix will be in Gtk 3.24 when it
	  is released, but for building against unstable versions the
	  test is GTK_CHECK_VERSION(3, 23, 1).

2018-07-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/html.c: Handle the deprecation of GtkAction more
	  cleanly.

2018-07-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	More work around MR gtk!236

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text): set
	  the GtkTextView margins to zero;
	* src/sendmsg-window.c (create_text_area): ditto.

2018-07-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Work around MR gtk!236

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text): use
	GtkWidget margins instead of GtkTextView margins, to make the
	window shrinkable and to avoid button creep;
	* src/sendmsg-window.c (create_text_area): ditto, to make the
	window shrinkable (does not fix the problem when GtkSourceView
	is used).

2018-07-07  Albrecht Dreß <albrecht.dress@arcor.de>

	Fix HTML rendering with webkit2gtk-4.0 < 2.20

	* README: document use of G_MESSAGES_DEBUG=…
	* libbalsa/html.c (lbh_navigation_policy_decision):
	  allow the rendering of “about:blank”.

2018-07-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use g_debug() instead of conditionally compiled printing

	* libbalsa/html.c (lbh_navigation_policy_decision),
	(lbh_new_window_policy_decision), (lbh_response_policy_decision),
	(lbh_resource_notify_response_cb), (lbh_web_process_crashed_cb),
	(lbh_cid_cb), (libbalsa_html_new):

2018-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget.c (balsa_mime_widget_new): Do not leak
	  the GtkAdjustment.

2018-07-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c (bm_find_scroll_to_rectangle), (select_part):
	  Use gtk_scrolled_window_get_{h,v}adjustment() instead of
	  GObject properties (and consequently, do not leak the
	  adjustments).

2018-07-03  Albrecht Dreß <albrecht.dress@arcor.de>

	libnetclient private data fixes

	* libnetclient/net-client-pop.c, libnetclient/net-client-siobuf.c,
	  libnetclient/net-client-smtp.c: properly access and destroy the private data
	* libnetclient/test/Makefile.am: fix lcov cleaning the test app
	  from the coverage data
	* libnetclient/test/cert.pem, libnetclient/test/cert_u.pem:
	  replace expired snakeoil certs for testing

2018-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/mailbox-conf.c: Really build with gpgme desabled.

2018-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libnetclient/net-client.c (net_client_class_init),
	(net_client_init): g_type_class_add_private() is soon to be
	deprecated; use G_DEFINE_TYPE_WITH_PRIVATE intead;
	also use net_client_get_instance_private() instead of
	G_TYPE_INSTANCE_GET_PRIVATE().

2018-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (about_activated): Update the 'about'
	dialog.

2018-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_real_open_mbnode_idle_cb),
	(bw_real_open_mbnode_thread), (balsa_window_real_open_mbnode),
	(bw_mailbox_check): Use g_application_{hold,release} to keep the
	GApplication alive while mailboxes are being opened.

2018-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox.c (libbalsa_mailbox_finalize),
	(lbm_changed_idle_cb), (lbm_changed_schedule_idle),
	(lbm_run_filters_on_reception_idle_cb),
	(libbalsa_mailbox_run_filters_on_reception): manage idle ids.
	* libbalsa/mailbox.h: new idle id for run-filters-on-reception
	idle handler.

2018-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa-conf.c (libbalsa_conf_foreach_group): check
	that the key-file has not been dropped.

2018-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap_search.c (imap_search_exec): keep the
	handle alive while searching.

2018-06-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Make the 'Balsa closes…' notification outlive the main window,
	and close it when shut-down is complete.

	* src/main-window.c (quit_activated): NULL parent makes the
	notification outlive the window.
	* src/main.c (balsa_shutdown_cb): send an empty notification
	string to withdraw the notification.

2018-06-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/information.c (libbalsa_information_varg): if message
	is an empty string, withdraw the notification.

2018-06-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap-server.c (lb_imap_server_info_free),
	(lb_imap_server_cleanup): Check for NULL 'struct handle_info *'.

2018-06-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main.c (balsa_activate_cb): Present the main-window, if we
	already have one.

2018-06-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Migrate from libnotify to GNotification

	* README: Remove reference to libnotify.
	* configure.ac: Do not configure it.
	* meson.build: Ditto.
	* meson_options.txt: Ditto.
	* libbalsa/information.c (lbi_notification_parent_weak_notify),
	(libbalsa_information_varg), (libbalsa_notification_new): Use
	GNotification instead, and we do not need to drop through to
	balsa-information.
	* libbalsa/information.h: New function libbalsa_notification_new.
	* libbalsa/libbalsa.c (libbalsa_init): Clean up initialization.
	* libbalsa/libbalsa.h: Ditto.
	* src/main.c (balsa_notification_notify_cb),
	(balsa_setup_libbalsa_notification), (balsa_startup_cb): Get a
	GNotification, and use its "notify" signal to show or withdraw
	it.
	* src/ab-main.c (balsa_ab_notification_notify_cb),
	(balsa_ab_notification_shutdown_cb),
	(balsa_ab_setup_libbalsa_notification), (main): Ditto.

2018-06-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-icons.c (balsa_icon_id): Return NULL if the
	icon-table has been destroyed;
	(balsa_register_pixbufs): cope with it;
	* src/toolbar-prefs.c (tp_store_set): ditto.

2018-06-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_imap.c (lbm_imap_check): Object-ref handle
	while we check for a list-response.

2018-06-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_is_active_notify),
	(bw_display_new_mail_notification):
	get the application from the window, not using g_object_get();

2018-06-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac, Makefile.am, meson.build: Rename balsa.desktop
	to org.desktop.Balsa.desktop.

2018-06-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (view_source_activated), (bw_set_menus):
	get the application from the window, not using g_object_get();
	(balsa_window_new): do not leak adjustments.

2018-06-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Migrate new mail notification from NotifyNotification to
	GNotification.

	* src/main-window.c (bw_is_active_notify),
	(check_new_messages_count), (bw_display_new_mail_notification):
	Migrate new mail notification from NotifyNotification to
	GNotification.
	* src/main-window.h: Use a boolean to remember when a
	notification is being shown.

2018-06-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (view_source_activated), (bw_set_menus): Do
	not leak application.

2018-06-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c
	(balsa_window_new): Pass the GtkApplication as an argument to
	balsa_window_new();
	(view_source_activated), (bw_set_menus): Get the GtkApplication
	as a property of BalsaWindow, instead of from the balsa-app
	structure;
	* src/main-window.h: New API for balsa_window_new().

2018-06-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main.c (balsa_startup_cb), (balsa_shutdown_cb),
	(balsa_activate_cb), (balsa_command_line_cb), (main): Use all the
	GApplication signals, instead of doing it all in the
	command-line handler.

2018-06-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/mailbox-conf.c: Build with gpgme desabled.

2018-06-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libinit_balsa/assistant_page_directory.c
	(unconditional_mailbox): adapt to new libbalsa_server_set_host()
	API.

2018-06-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/meson.build: Edit libimap_a_sources to reflect
	the previous commit, and add libnetclient_include to the
	include_directories for imap_tst.

2018-06-05  Albrecht Dreß <albrecht.dress@arcor.de>

	IMAP goes GIO

	Changes to libnetclient/*:
	As I mentioned above, in the libnetclient library I added a module
	which “simulates” the character-buffering methods of libbalsa/imap/siobuf.[hc].
	Other improvements include:
	- transparent compression (RFC 4978) support – which revealed a bug
	  in GIO sending crap when finalising the connection.
	  This is not really harmful, but may confuse a network-based IDS
	  (see <https://bugzilla.gnome.org/show_bug.cgi?id=795985>);
	- helper function for wiping auth data with random chars
	  before freeing the string;
	- improved unit tests.

	Changes to libbalsa/imap/*:
	- siobuf.[hc] are removed, siobuf-nc.h providing a “glue layer”
	  for libnetclient is added
	- auth-cram.c, imap-auth.[ch]: partly re-written; uses libnetclient signals;
	  replace fixed-length strings by dynamically allocated glib strings
	  which is safer; simplifications by using libnetclient functions
	- auth-gssapi.c: simplified by using libnetclient helpers;
	  glib strings as above
	- imap-commands.c, imap-handle.[ch], imap_search.c, imap_tst.c:
	  simplifications by using libnetclient functions, removed some unused functions
	- imap-tls.c, imap_compress.[ch]: massive simplification
	  as all “real” work is implemented in GIO via libnetclient
	- imap_private.h: modification of struct _ImapMboxHandle
	  to use libnetclient stuff, and remove obsolete fields
	- util.c: simplified quoting function, removed unused unquoting
	In all modules, I replaced the mixture of debugging functions ([f]printf)
	by g_debug etc.

	Changes to libbalsa/*:
	- imap-server.c: cleaned up unused monitor cb, use unified security
	  (from libnetclient) instead of separate ssl/tls settings
	- libbalsa.c: replace OpenSSL-based certificate functions
	  by GTlsCertificate and GnuTLS (if GCR is not available,
	  remember that GIO is based on GnuTLS)
	- misc.c: tiny improvement for assuring ~/.balsa
	- server.[ch]: use NetClientCryptMode instead of use_ssl and tls_mode;
	  remove obsolete libbalsa_server_user_cb (replaced by libnetclient's signals);
	  simplify libbalsa_server_check_cert
	- smtp-server.c: use changed server api

	Changes to libinit_balsa/*:
	- assistant_page_user.c: use changed server api

	Changes to src/*:
	- folder-conf.c: configure IMAP according to changed server api
	  (note: widget (de)activation logic not yet fully functional)
	- src/mailbox-conf.[ch]: ditto, but with a working (de)activation logic
	  (I think)
	- mailbox-node.c: use g_debug instead of printf
	- main.c: remove IMAP debug option (use G_MESSAGES_DEBUG, as always)
	- save-restore.c: remove obsolete item

	On the top-level:
	- the configure/meson checks for OpenSSL and ZLib have been removed

2018-06-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-book-rubrica.c (extract_net): Fix a typo that
	broke the build.

2018-06-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not seg fault on delayed exit

	* libbalsa/mailbox.c
	(lbm_changed_schedule_idle): ref the mailbox
	(lbm_changed_idle_cb): and unref it;
	* src/main-window.c (check_new_messages_real): check for
	balsa_app.mblist_tree_store == NULL, and do not dereference it.

2018-06-01  Pawel Salek  <pawsa0@gmail.com>

	* NEWS, configure.ac: release balsa-2.5.6
	* src/Makefile.am: add missing xml files

2018-06-01  Pawel Salek  <pawsa0@gmail.com>

	* src/balsa-icons.c: don't let missing icons stop balsa.

2018-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use g_strcmp0() for NULL-safe comparisons

	* libbalsa/address-book-rubrica.c (extract_net):
	* libbalsa/gmime-gpgme-signature.c
	(libbalsa_cert_subject_readable):
	* libbalsa/html.c (lbh_mouse_target_changed_cb),
	(libbalsa_html_search):
	* libbalsa/identity.c (libbalsa_identity_combo_box):
	* libbalsa/mailbox.c (libbalsa_mailbox_set_identity_name),
	(lbm_try_reassemble):
	* libbalsa/mailbox_mbox.c (lbm_mbox_message_new):
	* libbalsa/smtp-server.c (smtp_server_compare):
	* src/ab-main.c (bab_config_init):
	* src/balsa-app.c (find_path), (balsa_quote_regex_new):
	* src/balsa-icons.c (load_balsa_pixmap):
	* src/filter-edit-callbacks.c (change_filter_name):
	* src/folder-conf.c (subfolder_conf_clicked_ok),
	(folder_conf_imap_sub_node):
	* src/mailbox-node.c (remove_special_mailbox_by_url):
	* src/pref-manager.c (open_preferences_manager_idle):
	* src/save-restore.c (config_address_book_load):
	* src/sendmsg-window.c (sw_preferred_charset),
	(find_locale_index_by_locale), (has_file_attached):

2018-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/filter-edit-callbacks.c (fe_new_pressed): Do not leak
	new_item.

2018-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-index.c (bndx_pipe_queue_last): Do not leak
	PipeData.

2018-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_get_matchings):
	Do not leak ImapSearchData.

2018-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-handle.c (ir_body_type_1part): Do not leak
	ImapEnvelope.

2018-05-31  Albrecht Dreß <albrecht.dress@arcor.de>

	Mitigate EFail vulnerability for Webkit2

	* libbalsa/html.c (lbh_navigation_policy_decision): ignore all
	decisions except WEBKIT_NAVIGATION_TYPE_LINK_CLICKED;
	(libbalsa_html_new): disable Java and JavaScript.

2018-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-index.c (bndx_compose_foreach): Count skipped
	messages only when replying to group.

2018-05-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-index.c (bndx_compose_foreach): When replying to
	group, count how many messages were skipped for not having the
	"list-post" header, and report them.

2018-05-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/message-window.c (message_window_new): Disable "reply to
	group" when the message is not from an RFC-2369-compliant
	mailing list.
	<URL:https://tools.ietf.org/html/rfc2369>

2018-05-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-index.c (bndx_selection_changed): Emit
	"index-changed" even if the preview does not need to be updated,
	so that the main window menus can be enabled/disabled
	appropriately.

2018-05-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/sendmsg-window.c (sendmsg_window_reply): If the message is
	a reply to a mailing list, check that the message we are
	replying to actually came from a mailing list; if not, return
	NULL.

2018-05-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_enable_message_menus): Disable "reply to
	group" when the message is not from an RFC-2369-compliant mail list.
	<URL:https://tools.ietf.org/html/rfc2369>

2018-05-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	New files for migrating to GResource

	* ui/balsa-ab.gresource.xml:
	* ui/balsa.gresource.xml:

2018-05-01  Albrecht Dreß <albrecht.dress@arcor.de>

	Display time stamps of date-only RFC 5545 iCalendar events

I noticed that “VALUE=DATE” time stamps (date only, without time) in RFC 5545 iCalendar parts (MIME type text/calendar) are not displayed.

The attached trivial patch add parsing, displaying and printing such values  As to simplify life, the date-only values are printed using the “%x” conversion specification, instead of extracting the date part from balsa_app.date_string.

	* libbalsa/rfc2445.c (libbalsa_vcal_new_from_body),
	(date_time_2445_to_time_t):
	* libbalsa/rfc2445.h:
	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget):
	* src/balsa-print-object-text.c (balsa_print_object_text_calendar):

2018-04-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix the "scroll on click" issue
	(https://bugzilla.gnome.org/show_bug.cgi?id=795085)

	* src/balsa-message.c (balsa_message_init): wrap the
	BalsaMimeWidget::widget in a GtkViewport; if we do not,
	GtkContainer does it for us, but also sets it up to scroll when
	first clicked, which leaves the wrong text under the pointer.

2018-03-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-commands.c (imap_mbox_handle_fetch_body):
	silence a gcc gripe about snprintf.

2018-03-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-commands.c (imap_mbox_handle_fetch_body):
	silence a gcc gripe about strncpy.

2018-02-27  Pawel Salek <pawsa0@gmail.com>

	* src/main-window.c: update a date.
	* meson.build, configure.ac: update version strings.
	* NEWS: balsa-2.5.5 release notes

2018-02-12  Albrecht Dreß <albrecht.dress@arcor.de>

	Crypto performance improvements

	* libbalsa/body.c: calculate protection state without the key
	* libbalsa/gmime-gpgme-signature.[ch]: do not try to load the key when
	creating the signature object, add and rename some signature-only
	related functions from rfc3156.[hc], set 'crypto' log domain
	* libbalsa/libbalsa-gpgme-keys.[ch]: add function to load a public key,
	properly restore the context attributes when listing keys, set 'crypto'
	log domain
	* libbalsa/libbalsa-gpgme-widgets.[ch]: improved function for creating a
	string from the key data (shifted from rfc3156.[hc]), set 'crypto' log
	domain
	* libbalsa/rfc3156.[ch]: refoctoring; shift some signature-only related
	functions to gmime-gpgme-signature.[ch], set 'crypto' log domain
	* src/balsa-message.c: use renamed signature info functions, calculate
	protection state without the key
	* src/balsa-mime-widget-crypto.c: add callback to load the key when the
	user wants to show it, drop condition which cannot be TRUE, use renamed
	signature info functions
	* src/balsa-mime-widget-message.c: use renamed signature info functions
	* src/balsa-print-object-header.c: try to load the key before printing,
	use renamed signature info functions
	* README, configure.ac, meson.build: require gpgme ≥ 1.5.0
	* libbalsa/libbalsa-gpgme.c: set 'crypto' log domain, adjust debug
	messages
	* libbalsa/gmime-application-pkcs7.c, libbalsa/gmime-multipart-crypt.c,
	libbalsa/gmime-part-rfc2440.c, libbalsa/libbalsa-gpgme-cb.c: set
	'crypto' log domain

2018-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clean up generated marshalling files

	* libbalsa/Makefile.am: create a CLEANFILES variable to arrange
	for libbalsa-marshal.[ch] to be removed with "make clean".

2018-02-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In glib-2.56, g_object_ref() propagates the type from its argument
	to its return type, which can raise incompatible-pointer-type
	warnings; previously it returned a gpointer, which could conceal
	a coding error.

	* src/main-window.c (bw_check_mailbox_done),
	(bw_check_mailbox_list): make the mailbox member of
	bw_pop_mbox_t a LibBalsaMailbox, so that it can accept the value
	of g_object_ref(mailbox) without a warning; rename it from
	'object' to 'mailbox' because, well, that's what it is.

2018-02-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox.c (lbm_sort): check for zero-length array.

2018-02-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix two use-after-free false positives

	* src/filter-edit-callbacks.c (change_filter_name): Use
	g_list_delete_link() with a valid link instead of
	g_list_remove() with the address of freed data.

2018-02-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix a use-after-free bug

	* src/sendmsg-window.c (edit_with_gnome_check): unlink the file
	before freeing its name.

2018-01-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: use Unicode quotation marks.

2018-01-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: fix the definition of HAVE_CTIME_R.

2018-01-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: test for <locale.h> and set HAVE_LOCALE_H if
	found.

2018-01-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Meson build system changes to mirror the autotools changes in
	the previous commit

	* meson.build: check if the selected conversion tool
	accepts “--unicode-snob”.

2018-01-20  Albrecht Dreß <albrecht.dress@arcor.de>

	 Improve replying to html-only messages

	* configure.ac: check if the selected conversion tool
	accepts “--unicode-snob”.
	* libbalsa/html.c (html2text): run the conversion tool
	with “--unicode-snob” if supported.

2018-01-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Meson build system changes to mirror the autotools changes in
	the previous commit

	* libnetclient/meson.build: add c_args: '-DG_LOG_DOMAIN="libnetclient"'
	to static_library arguments.
	* meson.build: drop sed and ncat prerequisites.

2018-01-20  Albrecht Dreß <albrecht.dress@arcor.de>

	Improve low-level network library, POP3 responsiveness on error

	* configure.ac: add missing flags and libs for libnetclient unit tests,
	drop sed and ncat prerequisites
	* libbalsa/mailbox_pop3.c: shut down the connection on error,
	so un'refing it does not wait for the QUIT command
	* libnetclient/Makefile.am: fix log domain
	* libnetclient/README: update documentation
	* libnetclient/net-client-pop.c: execute QUIT only if the connection exists
	* libnetclient/net-client-smtp.c: fix FlexeLint warnings
	about ignored function return values,
	execute QUIT only if the connection exists
	* libnetclient/net-client.[ch]: implement new methods
	for shutting down the network connection
	and for checking the connection status
	* libnetclient/test/Makefile.am: drop sed and ncat requirements,
	fix test application build error
	* libnetclient/test/echoserver.py: (new file) trivial echo server in Python
	* libnetclient/test/start-test-env.sh.in: control the echo server for testing
	* libnetclient/test/tests.c: improve unit tests

2018-01-11  Albrecht Dreß <albrecht.dress@arcor.de>

	Fix progress dialogue on error

	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_check): send
	the “finalise” notification to the dialogue even if opening
	the connection fails.

2018-01-06  Albrecht Dreß <albrecht.dress@arcor.de>

	Fix the meson build

	* src/meson.build: threads.h is no more.

2018-01-05  Albrecht Dreß <albrecht.dress@arcor.de>

	Enable multi-threaded POP3 retrieval

	* libbalsa/libbalsa-marshal.list, libbalsa/mailbox.[ch]:
	new simplified signature for the mailbox '' signal
	and the related helper libbalsa_mailbox_progress_notify()
	* libbalsa/libbalsa-progress.[ch]: heavy re-factoring of the progress dialogue,
	including a fully thread-safe interface, simplified access functions,
	and a new activity mode
	* libbalsa/mailbox_pop3.c, libbalsa/send.[ch]:
	use new progress dialogue interface,
	pass option to disable send progress dialogue
	* src/balsa-app.[ch]: define and initialise enable progress dialogue settings,
	use changed send function signature
	* src/balsa-message.c, src/balsa-mime-widget-message.c,
	src/balsa-mime-widget-vcalendar.c, src/sendmsg-window.c:
	use changed send function signature
	* src/main-window.[ch]: implement multi-threaded POP3 retrieval,
	remove old progress implementation, use changed send function signature,
	replace two-state enum by bool
	* src/main.c: remove old progress implementation stuff
	* src/pref-manager.c: replace progress dialogue settings
	by two new bool values and related check boxes
	* src/save-restore.c: save/restore new progress dialogue bool values
	* src/threads.h: completely remove the file

2018-01-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix a use-after-free bug

	* libbalsa/mailbox.c (mbox_model_get_value): get the date format
	string indirectly through balsa_app.date_string.
	* libbalsa/mailbox.h: declare libbalsa_mailbox_date_format as
	gchar **.
	* src/main.c (real_main): initialize it here
	* src/save-restore.c (config_global_load): ...not here.

2017-12-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Avoid possible repeated dynamic cast

	* src/main-window.c (balsa_window_setup_progress): cast the
	result of g_object_ref() instead of its argument.

2017-12-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Revise configuration of enchant spell-checking lib

	Version 2.1.3 of enchant is parallel-installable with version
	1.6, so we first check for enchant-2. If that fails, check for
	enchant; we want version <= 1.6.0, to avoid issues with 1.6.1.

	* configure.ac: do it.
	* meson.build: ditto.

2017-12-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	In glib-2.56, g_object_ref() propagates the type from its argument
	to its return type, which can raise incompatible-pointer-type
	warnings; previously it returned a gpointer, which could conceal
	a coding error.

	* libbalsa/send.c (send_message_info_new): do not cast arguments
	to GObject.
	* src/main-window.c (balsa_window_setup_progress): cast argument
	window->progress_bar to GtkProgressBar.

2017-12-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove a webkitgtk workaround

	* src/main.c (main): do not set the
	WEBKIT_DISABLE_COMPOSITING_MODE environment variable to "1"--it
	doesn't seem to be needed any more.

2017-12-03  Albrecht Dreß <albrecht.dress@arcor.de>

	Fix documentation

	* README: remove description of two configure options (--with-gpg-app,
	--enable-smime) that have gone away.

2017-12-02  Albrecht Dreß <albrecht.dress@arcor.de>

	Expand lists in address book window

	* src/ab-window.c (balsa_ab_window_init): use GtkWidget's
	hexpand and vexpand functions to properly expand the
	address lists in the address book window when the dialogue is
	enlarged.

2017-11-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not crash if no spell-checker dictionaries are found

	* src/sendmsg-window.c (create_text_area): do not set up
	spell checker if no dictionary is found;
	(create_lang_menu): return value is now the current locale;
	first check whether any dictionaries can be found, and return
	NULL if none;
	(set_locale): check whether spell-checking is disabled;
	(sendmsg_window_new): set up language menu early, so that we can
	find out whether any dictionaries are found.

2017-11-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/toolbar-prefs.c (tp_store_set): map the pixmap id.

2017-11-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some icon issues

	* images/meson.build: remove pointless comment.
	* meson.build: install desktop icon.

2017-11-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Install appstream metadata to non-deprecated location

	Fixes bgo 790076, thanks to Jeremy Bicha
	<URL:https://bugzilla.gnome.org/show_bug.cgi?id=790076>

	* Makefile.am: install balsa.appdata.xml in $(datarootdir)/metainfo.
	* meson.build: ditto.

2017-11-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Old glib-genmarshal has no --output option

	Thanks to Jack for the report
	<URL:https://mail.gnome.org/archives/balsa-list/2017-November/msg00003.html>

	* libbalsa/imap/meson.build: use the 'capture' option of
	customtarget, because the old glib-genmarshal has no --output
	option.
	* libbalsa/meson.build: ditto.

2017-09-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove unused make_gradient function, and build with
	quote-color.[ch] only if spell-checker == internal

	* src/Makefile.am: move quote-color.[ch] to
	balsa_spell_extra[,_dist]
	* src/meson.build: move quote-color.[ch] to balsa_spell_extra
	* src/quote-color.c: remove unused make_gradient function.
	* src/quote-color.h: ditto.

2017-09-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/meson.build: fix prefix in marshal files.
	* libbalsa/meson.build: ditto.

2017-09-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/meson.build: fix basename of marshal files.
	* libbalsa/meson.build: ditto.

2017-09-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: .split() strings returned by custom config commands.

2017-09-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use gnome.genmarshal if glib is new enough

	* meson.build: check whether glib version >= 2.53.4.
	* libbalsa/imap/meson.build: use gnome.genmarshal if glib is new
	enough; otherwise, use glib-genmarshal directly instead of in a
	sh command.
	* libbalsa/meson.build: ditto.

2017-09-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use --output option of glib-genmarshal

	* libbalsa/imap/meson.build:
	* libbalsa/meson.build:

2017-09-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use include_directories instead of explicit -I…

	* libbalsa/imap/meson.build:
	* libbalsa/meson.build:
	* libinit_balsa/meson.build:
	* libnetclient/meson.build:
	* libnetclient/test/meson.build:
	* meson.build:
	* src/meson.build:

2017-09-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/filter-run-dialog.c: include filter-funcs.h instead of
	libbalsa/filter-funcs.h, same as elsewhere.

2017-09-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-app.c (balsa_find_iter_by_data): we no longer ever define
	BALSA_DEBUG_THREADS.

2017-09-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove 'debug-threads' option

	* meson.build: do not use it.
	* meson_options.txt: do not define it.

2017-09-23  Albrecht Dreß <albrecht.dress@arcor.de>

	Remove deprecated gdk_threads_* stuff

	In an attempt to clean up the code and to simplify the configure
	file, this patch:
	* removes gdk_threads_(enter|leave) calls from the code,
	* removes the related “--enable-debug-threads” configure option and
	* replaces the calls to gdk_threads_add_idle() by g_idle_add().

	* configure.ac:
	* libbalsa/address-view.c (lbav_ensure_blank_line):
	* libbalsa/identity.c (sd_response_ok):
	* libbalsa/information.c (libbalsa_information_idle_handler):
	* libbalsa/libbalsa-gpgme-cb.c (get_passphrase_idle):
	* libbalsa/libbalsa.c (ask_idle), (libbalsa_ask):
	* libbalsa/libbalsa.h:
	* libbalsa/mailbox.c (libbalsa_mailbox_close),
	(libbalsa_mailbox_msgno_inserted),
	(libbalsa_mailbox_msgno_filt_in), (libbalsa_mailbox_msgno_removed),
	(libbalsa_mailbox_msgno_filt_out), (lbm_set_threading),
	(mbox_set_sort_column_id), (libbalsa_mailbox_unlink_and_prepend),
	(lbm_set_msg_tree), (libbalsa_mailbox_set_msg_tree):
	* libbalsa/mailbox_imap.c (idle_unread_update_cb),
	(imap_exists_idle):
	* libbalsa/mailbox_local.c (lbm_local_restore_tree),
	(lbml_load_messages_idle_cb),
	(libbalsa_mailbox_local_set_threading):
	* libbalsa/send.c:
	* libinit_balsa/assistant_init.c (balsa_init_begin):
	* src/balsa-app.c (ask_passwd_idle), (balsa_open_mailbox_list),
	(balsa_find_mailbox), (balsa_find_dir):
	* src/balsa-index.c (bndx_destroy),
	(bndx_mailbox_row_inserted_idle), (balsa_index_load_mailbox_node),
	(balsa_index_expunge):
	* src/balsa-mblist.c (bmbl_set_property_node_style),
	(balsa_mblist_close_lru_peer_mbx), (bmbl_sort_idle),
	(balsa_mblist_mailbox_node_append):
	* src/balsa-mime-widget-image.c (img_check_size):
	* src/balsa-mime-widget-text.c (statusbar_pop):
	* src/balsa-mime-widget.c (resize_idle):
	* src/information-dialog.c (status_bar_refresh):
	* src/mailbox-node.c (bmbn_scan_children_idle):
	* src/main-window.c (bw_focus_idle), (mail_progress_notify_cb),
	(bw_idle_replace), (bw_progress_timeout):
	* src/main.c (initial_open_unread_mailboxes), (initial_open_inbox),
	(balsa_get_stats), (scan_mailboxes_idle_cb), (periodic_expunge_cb),
	(balsa_progress_set_fraction), (balsa_progress_set_activity),
	(real_main), (handle_remote):
	* src/message-window.c (message_window_idle_handler):
	* src/pref-manager.c (open_preferences_manager_idle):
	* src/save-restore.c (config_warning_idle):
	* src/sendmsg-window.c (edit_with_gnome_check),
	(sw_autosave_timeout_cb), (sw_grab_focus_to_text):
	* src/spell-check.c (highlight_idle):

2017-09-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Drop 'enable-' and 'with-', inherited from autotools,
	from option names.

	* libnetclient/meson.build:
	* libnetclient/test/meson.build:
	* meson.build:
	* meson_options.txt:

2017-09-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* sounds/meson.build: use documented option syntax for msgfmt.

2017-09-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Replace 'yes'|'no' option values inherited from autotools with
	'true'|'false' string values.

	* libbalsa/meson.build:
	* meson.build:
	* meson_options.txt:

2017-09-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* sounds/meson.build: make an absolute path to the po dir.

2017-09-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Pass '-lz' link argument as a dependency of libimap instead of through
	add_global_link_arguments

	* libbalsa/imap/meson.build: add the dependency.
	* meson.build: do not use add_global_link_arguments.

2017-09-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use 'glib-genmarshal --header --body' to generate marshal.c
	files, instead of catting a header line to the file

	* libbalsa/imap/meson.build:
	* libbalsa/meson.build:

2017-09-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not include internal dependencies in declare_dependency()

	* libbalsa/imap/meson.build:
	* libbalsa/meson.build:
	* libinit_balsa/meson.build:
	* libnetclient/meson.build:
	* libnetclient/test/meson.build:
	* src/meson.build:

2017-09-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: adapt the meson build to reflect the GNOME option
	changes.
	* meson_options.txt: ditto.

2017-09-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove obsolete option to build with deprecated GnomeKeyring

	* configure.ac: do not check for the lib and do not define
	HAVE_GNOME_KEYRING and friends.
	* libbalsa/imap-server.c (libbalsa_imap_server_new_from_config):
	do not use it.
	* libbalsa/server.c (libbalsa_server_load_config),
	(libbalsa_server_save_config): ditto.
	* libbalsa/server.h: ditto.
	* src/balsa-app.c (ask_password_real): ditto.
	* src/folder-conf.c (folder_conf_imap_node): ditto.
	* src/mailbox-conf.c (create_imap_mailbox_dialog): ditto.

2017-09-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	HAVE_GNOME is redundant

	* configure.ac: do not define it.
	* libbalsa/filter-file.c (libbalsa_condition_new_2_0): do not
	refer to it.
	* src/toolbar-factory.c (balsa_toolbar_model_finalize),
	(tm_gsettings_change_cb), (balsa_toolbar_model_new),
	(tm_default_style): use GSettings without checking it.

2017-09-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Allow installing the help files

	* meson.build:
	* src/meson.build:

2017-09-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Meson uses msgfmt rather than intltool-merge, so we do not use
	underscore prefixes to mark strings for translation.

	* balsa-mailto-handler.desktop.meson: new file
	* balsa.desktop.meson: ditto
	* sounds/balsa.soundlist.meson: ditto

2017-09-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/meson.build: make balsa and balsa_ab installable.

2017-09-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* meson.build: fix install directory.
	* ui/meson.build: ditto.

2017-08-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/misc.c (libbalsa_get_domainname): use
	utsname.domainname if it is available.

2017-08-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa.c (libbalsa_init): drop unused call to
	uname.

2017-08-22  Tony Nelson <tonynelson@georgeanelson.com>

	Fix https://bugzilla.redhat.com/show_bug.cgi?id=1483354,
	balsa message window Queue toolbar button sends immediately

	* src/sendmsg-window.c: respect
	balsa_app.always_queue_sent_mail.

2017-08-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not crash if DSN header is absent

	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1483355

	* libbalsa/send.c (lbs_process_queue_msg): check for missing
	X-Balsa-DSN header, and do not pass NULL to atoi.

2017-08-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-handle.c (idle_start): assert that the
	  handle is not NULL, to avoid the appearance of dereferencing a
	  NULL pointer.

2017-08-10  Albrecht Dreß

	Crypto-related (mostly) fixes and improvements

	* libbalsa/gmime-multipart-crypt.c: do not qp-encode 7-bit parts for encryption
	* libbalsa/identity.[ch]: implement separate forced signing key id's
	  for gpg and s/mime including selection from the key list; clarify option text
	* libbalsa/libbalsa-gpgme-cb.c: simplify key list, show key details on double-click
	* libbalsa/libbalsa-gpgme-keys.[ch]: add functions for exporting
	  and importing ascii-armoured keys; re-factor import result evaluation
	* libbalsa/libbalsa-gpgme-widgets.c: extend subkey details
	* libbalsa/libbalsa-gpgme.[ch]: fix context creation for s/mime;
	  add helpers for configuring the gpgme context's home folder,
	  for exporting a key to ASCII and for identifying the proper key id of a secret key;
	  fix confusing comment
	* libbalsa/message.[ch]: use a reference to the sending identity
	  instead of copying the key id
	* libbalsa/misc.c: re-factor deleting a folder and creating a temp folder
	  (re-sent from last week's patch)
	* libbalsa/rfc3156.c: fix mem leak when encrypting a message
	  (re-sent from last week's patch)
	* libbalsa/send.c: add helper for creating a gpg public key attachment
	  and attach the key on request; fix mem leak in encryption
	* libbalsa/smtp-server.c: remove misleading/confusing comment
	  (re-sent from last week's patch)
	* src/balsa-mime-widget-crypto.[ch]: implement display of application/pgp-keys parts
	  and the import of the keys within them
	* src/balsa-mime-widget.c: call handler for application/pgp-keys parts
	* src/information-dialog.c: add missing dialogue flags
	* src/sendmsg-window.[ch], ui/sendmsg-window.ui: add user interface
	  for attaching the GnuPG public key

2017-08-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-tls.c (imap_create_ssl): unlock
	global_tls_lock and print the SSL error stack before returning.

2017-08-05  Zhouyang Jia <jiazhouyang09@gmail.com>

	* libbalsa/imap/imap-tls.c (imap_create_ssl): check for NULL
	value from SSL_CTX_new.

2017-08-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Save and restore the spell checking language when built with the
	internal checker

	* src/balsa-app.h: include the spell_check_lang member in all
	builds.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore it in all builds.
	* src/sendmsg-window.c (create_lang_menu), (lang_set_cb): use it
	in all builds.

2017-07-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa-gpgme.c (get_key_from_name): do not
	dereference a NULL pointer.

2017-07-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Avoid some whining from the clang static analyzer

	* libbalsa/libbalsa-gpgme-keys.c (gpgme_import_key):
	value stored to 'gpgme_err' is never read.
	* libbalsa/libbalsa-gpgme-widgets.c (create_subkey_widget):
	value stored to 'subkey_row' is never read.

2017-07-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-message.c (foreach_label): the only
	children that have a "populate-popup" signal are GtkLabels.

2017-07-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/server.c (libbalsa_server_load_config): dereference
	server->cert_passphrase.

2017-07-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not use local variables that shadow other variables

	* libbalsa/address-book-text.c (lbab_text_load_file):
	* libbalsa/address-view.c (lbav_set_text):
	* libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_verify),
	(g_mime_part_rfc2440_decrypt):
	* libbalsa/imap/imap-tls.c (imap_check_server_identity):
	* libbalsa/libbalsa-conf.c (lbc_init):
	* libbalsa/libbalsa.c (libbalsa_is_cert_known):
	* libbalsa/mailbox.c (libbalsa_mailbox_add_messages):
	* libbalsa/mailbox_imap.c (imap_expunge_cb),
	(internet_address_new_list_from_imap_address),
	(libbalsa_mailbox_imap_add_messages), (icm_restore_from_cache):
	* libbalsa/mailbox_local.c
	(libbalsa_mailbox_local_prepare_threading):
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_get_message_stream),
	(libbalsa_mailbox_mh_check), (libbalsa_mailbox_mh_sync),
	(libbalsa_mailbox_mh_fetch_message_structure),
	(lbm_mh_add_message):
	* libbalsa/mime.c (libbalsa_text_to_html):
	* libbalsa/send.c (libbalsa_message_create_mime_message):
	* src/balsa-mblist.c (bmbl_select_mailbox):
	* src/balsa-message.c (balsa_part_info_free):
	* src/filter-run-dialog.c (filters_run_dialog):
	* src/main-window.c:
	* src/save-restore.c (config_global_load):
	* src/sendmsg-window.c (sw_edit_activated),
	(update_bsmsg_identity), (scan_bodies), (create_lang_menu),
	(send_message_handler), (sendmsg_window_new_from_list),
	(sendmsg_window_continue):

2017-07-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-app.c (balsa_find_dir): put braces around empty "if"
	block.

2017-07-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address.c (libbalsa_address_get_edit_widget): do not
	use old style declaration.

2017-07-15  Albrecht Dreß

	* libbalsa/libbalsa-progress.c (revealer_destroy_notify),
	(libbalsa_progress_dialog_update), (remove_progress_widget):
	save a time-out id and remove the source if the progress dialog
	is closed before the time-out expires.

2017-07-02  Albrecht Dreß

	Gpgme-related improvements

	* libbalsa/libbalsa-gpgme-keys.[ch]: (new) implement key listing
	  and key server operations
	* libbalsa/libbalsa-gpgme-widgets.[ch]: (new) implement key widget and dialogue
	* configure.ac: drop otions "--with-gpg-app" and "--enable-smime"
	* libbalsa/Makefile.am: remove option for building without s/mime support
	* libbalsa/gmime-multipart-crypt.c, libbalsa/identity.c,
	libbalsa/send.c, src/balsa-print-object.c, src/sendmsg-window.c: remove conditionals
	  for s/mime support
	* libbalsa/libbalsa-gpgme-cb.[ch]: use new key dialogue, fix prototype indent
	* libbalsa/libbalsa-gpgme.[ch]: export functions for setting a gpgme error
	  and creating a context, do not set gpg application, remove conditionals
	  for s/mime support, fix loading a key for a name or fingerprint,
	  use new key listing function
	* libbalsa/rfc3156.[ch}: remove conditionals for s/mime support,
	  use convenience functions exported by libbalsa-gpgme.c,
	  export new function creating a short signature status,
	  remove functions talking to the keyserver through gpg directly,
	  use GLib functions to check to the trust db update lock,
	  check for public key availibility by using the new key list function
	* src/balsa-mime-widget-crypto.c: use new key widget, drop GPG-related conditionals

2017-06-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Add assertions to remove some clang-static-analyzer false
	positives

	* libbalsa/imap-server.c (lb_imap_server_info_free): assert that
	info is non-NULL.
	* libbalsa/mailbox_imap.c (imap_expunge_cb): assert that
	msg_info is non-NULL;
	(get_struct_from_cache): assert that message->headers is
	non-NULL.
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_set_path):
	assert that klass is non-NULL.

2017-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Assert that a child widget is non-NULL

	* src/balsa-mime-widget-message.c (foreach_label): assert that
	the widget is non-NULL.

2017-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Assert that the BalsaWindow is not NULL

	* src/main-window.c (bw_action_set_enabled): assert that the
	BalsaWindow is not NULL.

2017-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Handle GError pointer more carefully

	* libbalsa/body.c
	(libbalsa_message_body_set_text_rfc822headers): do not create a
	GError and then ignore it;
	(libbalsa_message_body_get_stream): allow NULL GError pointer,
	and take more care in setting errors when it is non-NULL.

2017-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Assert that a node is not NULL

	* libbalsa/mailbox.c (lbm_next): assert that node is not NULL
	before testing whether it is the root node


2017-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Check for NULL pointer

	* libbalsa/mailbox.c (lbm_sort): check for NULL prev.

2017-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Handle broken pipe and other errors before writing to pipe

	* src/balsa-index.c (pipe_in_watch): handle G_IO_HUP or G_IO_ERR
	and return, before writing to the pipe.

2017-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove dead assignment

	* libbalsa/rfc6350.c (rfc6350_eval_line):

2017-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Assert that getpwuid returns a valid passwd structure

	* libbalsa/rfc3156.c (gpg_updates_trustdb): Assert that
	  getpwuid returns a valid passwd structure.

2017-06-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Assert that a mailbox is either IMAP or local

	* src/main-window.c (bw_mailbox_check): assert that a mailbox is
	either IMAP or local.

2017-06-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not store label values that are never read

	* src/folder-conf.c (folder_conf_imap_sub_node):

2017-06-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove unused initializer

	* src/toolbar-prefs.c (tp_page_swap_rows):

2017-06-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Decode all RFC-2047-encoded headers

	* libbalsa/message.c
	  (prepend_header_misc): decode header value;
	  (libbalsa_message_user_hdrs_from_gmime): streamline code.

2017-06-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Possible fix for Red Hat Bugzilla #1462546, reported by jamesbdonovan@rambler.ru

	* src/balsa-mime-widget-text.c (statusbar_pop): check that the
	  main window and the status bar are still valid.

2017-06-18  Albrecht Dreß

	Implement automatic sending in background

	* libbalsa/libbalsa-progress.[ch]: new files, implementing the progress dialogue.
	    Its update operation shall be called using idle callbacks.  For the time being,
	    it is used for SMTP only, but it might also be useful for receiving messages.
	* libbalsa/Makefile.am: add the aforementioned new files
	* libbalsa/send.c: implement the core of the patch, and do some re-factoring
	    to make the source better readable.  Add functions for the auto-send timer stuff.
	    Remove the old send message dialogue implementation.
	* libbalsa/send.h: export functions for controlling the auto-send feature,
	    and remove the old progress dialogue stuff
	* libbalsa/smtp-server.[ch]: extend the smtp server class by a lock flag,
	    implemented as atomic variable
	* src/balsa-app.c: implement auto-send callback, and initialise the feature
	* src/balsa-app.h: add auto-send application variables
	* src/main-window.c: remove old progress dialogue callback
	* src/main.c, src/threads.h: remove old progress dialogue globals and initialisation
	* src/pref-manager.c: configuration of the auto-send feature
	* src/save-restore.c: load and save the configuration of the auto-send feature

2017-06-16  Albrecht Dreß

	Build with Gtk version < 3.22

	* src/toolbar-factory.c (tm_popup_context_menu_cb): GdkEvent has
	no member "time"; use gtk_get_current_event_time.

2017-06-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use gdk_event_triggers_context_menu instead of checking event
	type and button

	* src/balsa-index.c (bndx_button_event_press_cb):
	* src/balsa-mblist.c (bmbl_button_press_cb):
	* src/balsa-message.c (tree_button_press_cb):
	* src/balsa-mime-widget-image.c (balsa_image_button_press_cb):
	* src/balsa-mime-widget-text.c (balsa_gtk_html_button_press_cb):
	* src/sendmsg-window.c (attachment_button_press_cb):

2017-06-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Simplify popping up a toolbar's context menu, and make icons
	visible after changing style

	* src/toolbar-factory.c
	  (tm_populate): set the toolbar style before showing-all;
	  (tm_changed_cb): tm_set_style is redundant and has been removed;
	  (tm_popup_context_menu_cb): new callback for
	    "popup-context-menu" signal;
	  (balsa_toolbar_new): no need to connect to "realized" signal;
	    connect to GtkToolbar's "popup-context-menu" signal instead of
	    GtkWidget's "button-press-event" and "popup-menu" signals.

2017-06-14  Albrecht Dreß

	Use John Jack's new icons for "mail-queue" and
	"balsa-send-queued" actions

	* images/16x16/Makefile.am: add the file names.
	* images/24x24/Makefile.am: ditto.
	* src/balsa-icons.c (balsa_register_pixmaps): use them.
	* src/balsa-icons.h: ditto.
	* src/main-window.c: ditto.
	* src/sendmsg-window.c: ditto.
	* src/toolbar-factory.c: ditto.

2017-06-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/filter-run-dialog.c (balsa_filter_run_dialog_new): build
	with gtk version < 3.12.

2017-06-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use a wrapper for an environment variable

	* src/filter-run-dialog.c (balsa_filter_run_dialog_new): use
	  libbalsa_dialog_flags() instead of directly checking the
	  BALSA_DIALOG_HEADERBAR environment variable.

2017-06-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove obsolete reference in configure summary

	* configure.ac: $install_mimeicons was removed in commit
	4400b65d2325e0446cbc45bcf0c250476c8caea7.

2017-06-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Recent pref-manager changes break display

	* src/pref-manager.c (open_preferences_manager): put a
	horizontal box in the dialog's content area, instead of making
	the content area horizontal.

2017-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Code cleanup

	* src/pref-manager.c (option_menu_cb), (pgdown_modified_cb):
	simplify callback placement.

2017-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Port preferences window from GtkNotebook to GtkStack

	* src/pref-manager.c (pm_combo_box_info_free), (pm_combo_box_new),
	(pm_combo_box_set_level), (pm_combo_box_get_level),
	(pm_selection_changed), (destroy_pref_window_cb),
	(update_view_defaults), (check_font_button), (apply_prefs),
	(set_prefs), (update_address_books), (add_other_server),
	(add_button_to_box), (add_show_menu), (create_pref_option_menu),
	(create_layout_types_menu), (create_action_after_move_menu),
	(balsa_help_pbox_display), (create_information_message_menu),
	(create_mdn_reply_menu), (update_smtp_servers), (pm_grid_new),
	(pm_grid_attach), (pm_group_label), (pm_grid_attach_check),
	(pm_grid_attach_label), (pm_grid_attach_pref_menu),
	(pm_grid_attach_entry), (pm_grid_attach_color_box),
	(font_button_check_font_size), (pm_grid_attach_font_button),
	(pm_grid_attach_information_menu), (properties_modified_cb),
	(server_edit_cb), (smtp_server_update), (smtp_server_add_cb),
	(smtp_server_edit_cb), (smtp_server_del_cb), (smtp_server_changed),
	(address_book_change), (address_book_edit_cb),
	(address_book_set_default_cb), (add_menu_cb),
	(address_book_delete_cb), (pop3_add_cb), (server_add_menu_widget),
	(server_del_cb), (timer_modified_cb), (browse_modified_cb),
	(mark_quoted_modified_cb), (wrap_modified_cb),
	(pgdown_modified_cb), (option_menu_cb),
	(mailbox_close_timer_modified_cb), (filter_modified_cb),
	(expunge_on_close_cb), (expunge_auto_cb), (imap_toggled_cb),
	(convert_8bit_cb), (use_system_fonts_cb), (font_modified_cb),
	(default_font_size_cb), (response_cb),
	(pm_grid_add_main_window_group), (pm_grid_add_threading_group),
	(pm_grid_add_progress_group), (pm_append_page),
	(pm_mailserver_page), (pm_incoming_page), (pm_outgoing_page),
	(pm_display_page), (pm_threading_page), (pm_message_page),
	(pm_colors_page), (pm_format_page), (pm_status_messages_page),
	(create_address_book_page), (pm_spelling_page), (pm_startup_page),
	(pm_misc_page), (create_mail_options_section),
	(create_display_section), (open_preferences_manager_idle),
	(open_preferences_manager), (update_mail_servers): replace
	mutiple notebooks by a single stack; refactor code into groups
	of options, pages of one or more groups, and sections where
	multiple pages are related.

2017-05-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Port preferences window to GtkGrid

	* src/pref-manager.c (add_button_to_box), (pm_grid_new),
	(pm_grid_attach), (pm_group_label), (pm_grid_attach_check),
	(pm_grid_attach_label), (pm_grid_attach_pref_menu),
	(pm_grid_attach_entry), (pm_grid_attach_color_box),
	(font_button_check_font_size), (pm_grid_attach_font_button),
	(pm_grid_attach_information_menu),
	(pm_grid_add_remote_mailbox_servers_group),
	(pm_grid_add_local_mail_group), (pm_grid_add_outgoing_mail_group),
	(mailserver_subpage), (pm_grid_add_checking_group),
	(pm_grid_add_mdn_group), (incoming_subpage),
	(pm_grid_add_word_wrap_group), (pm_grid_add_other_options_group),
	(outgoing_subpage), (create_mail_options_page),
	(pm_grid_add_main_window_group),
	(pm_grid_add_message_window_group), (display_subpage),
	(pm_grid_add_threading_group), (threading_subpage),
	(pm_grid_add_preview_font_group), (pm_grid_add_quoted_group),
	(pm_grid_add_alternative_group), (message_subpage),
	(pm_grid_add_message_colors_group), (pm_grid_add_link_color_group),
	(colors_subpage), (pm_grid_add_display_formats_group),
	(pm_grid_add_broken_8bit_codeset_group), (format_subpage),
	(pm_grid_add_information_messages_group),
	(pm_grid_add_progress_group), (status_messages_subpage),
	(create_display_page), (pm_grid_add_address_books_group),
	(create_address_book_page), (pm_grid_add_misc_spelling_group),
	(create_spelling_page), (pm_grid_add_startup_options_group),
	(pm_grid_add_folder_scanning_group), (create_startup_page),
	(pm_grid_add_misc_group), (pm_grid_add_deleting_messages_group),
	(create_misc_page): make each page a single GtkGrid and use
	fewer nested GtkBoxes.

2017-05-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use widget alignment instead of label alignment

	* src/pref-manager.c (attach_entry_full), (attach_label),
	  (checking_group), (quoted_group), (mdn_group), (main_window_group),
	  (add_pref_menu), (deleting_messages_group),
	  (folder_scanning_group), (pm_group_new): scrap set_align, and use
	  gtk_widget_set_[hv]align instead of gtk_label_set_[xy]align or
	  deprecated gtk_misc_set_alignment.

2017-05-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use widget alignment instead of label alignment

	* src/balsa-mime-widget-message.c (add_header_gchar): use
	  gtk_widget_set_halign instead of gtk_label_set_xalign or
	  deprecated gtk_misc_set_alignment.

2017-05-28  Albrecht Dreß

	Adjust SMTP timeouts

	* libnetclient/net-client-smtp.c (net_client_smtp_connect),
	  (net_client_smtp_send_msg): adjust all SMTP client transaction timeouts
	  to the minimum values (which are *very* long imho!)
	  required by RFC 5321, sect. 4.5.3.2.1. - 4.5.3.2.6.


2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Increase a timeout interval

	* src/main.c (real_main): increase the fix-panes timeout again,
	  from 700 to 800 msec.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove unused code

	* libbalsa/misc.c: libbalsa_guess_pop_server and
	libbalsa_guess_ldif_file are not used.
	* libbalsa/misc.h: do not export libbalsa_guess_ldif_file.
	* libbalsa/libbalsa.h: do not export libbalsa_guess_pop_server.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clean up file finder code

	* libbalsa/files.c (balsa_file_finder): remove unused arguments.
	* libbalsa/files.h: ditto.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove unused code

	* libinit_balsa/assistant_helper.c: remove balsa_init_get_png,
	  as it is not used.
	* libinit_balsa/assistant_helper.h: do not export it.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use Balsa's main window as parent of a dialog

	* src/sendmsg-window.c (send_message_handler): use
	  balsa_app.main_window as the parent for the sending progress
	  dialog, to allow the compose window to close before sending is
	  finished.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	After a transient error, leave messages ready to resend

	* libbalsa/send.c (balsa_send_message_real): clear FLAGGED flag
	  if sending failed because of a transient error, so that the
	  messages can be resent just using send-queued-mail.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Keep a parent window alive

	* libbalsa/send.c
	  (lbs_process_queue): object-ref the parent window...
	  (lbs_check_reachable_cb): and unref it.

2017-05-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Plug leak

	* libbalsa/libbalsa.c (libbalsa_source_view_new): use the
	  default GtkSourceStyleSchemeManager instead of leaking a new
	  one.

2017-05-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Plug leak

	* src/sendmsg-window.c (sendmsg_window_new): free ui_file
	string.

2017-05-26  Albrecht Dreß

	Test whether we can reach an SMTP server

	* libbalsa/send.c: use atomic operations for the sending state;
	  check if the smtp server is reachable before sending;
	  simplify some API's;
	  replace the term "MTA" in user dialogues by "SMTP server" which is more common
	* libbalsa/send.h: export simplified API
	* libbalsa/server.c: ignore port in server host string
	* src/balsa-message.c,
	  src/balsa-mime-widget-message.c,
	  balsa-mime-widget-vcalendar.c,
	  src/main-window.c,
	  src/sendmsg-window.c: use simplified API

2017-05-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use is-maximized property instead of window-state-event signal

	* src/main-window.c (bw_notify_is_maximized_cb),
	(balsa_window_new): connect to "notify::is-maximized" signal
	instead of "window-state-event" to avoid irrelevant state
	changes.
	* src/main.c (real_main): increase the fix-panes timeout again,
	from 600 to 700 msec.

2017-05-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Revert 45b7ce83a56690beb40c37f911f7c61b553d8828, and just
	increase the timeout from 500 to 600 msec.

	* src/main-window.c (bw_window_state_event_cb), (balsa_window_new),
	(balsa_window_fix_paned): revert 45b7ce83a56690beb40c37f911f7c61b553d8828.
	* src/main.c (real_main): increase the fix-panes timeout from 500 to 600 msec.

2017-05-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Try to avoid geometry creep

	* src/main-window.c
	(balsa_window_new): connect to "notify::is-maximized" instead of
	  "window-state-event"; set the GtkPaned positions in a timeout,
	  to let the window geometry settle down.
	(bw_notify_is_maximized_cb): new version of bw_window_state_event_cb.
	(bw_window_new_idle_cb): the timeout handler.
	(balsa_window_fix_paned): move connecting to "notify::position"
	  to the timeout handler.

2017-05-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use the LibBalsaMailbox method to test whether we can reach IMAP
	mailboxes and POP3 hosts

	* src/main-window.c (bw_network_changed_cb):
	  add a timeout whenever we get the "network-changed" signal,
	  because the reachability of hosts may have changed even when
	  the network is still "available"; save the timeout source id;
	  (balsa_window_destroy): remove the GSource, if any;
	  (mw_mbox_can_reach_cb): new callback for testing whether we
	  can reach an IMAP mailbox;
	  (mw_mbox_change_connection_status): use the new
	  LibBalsaMailbox method for testing reachability;
	  (bw_change_connection_status_can_reach_cb): new callback for
	  testing whether we can reach a POP3 host;
	  (bw_change_connection_status_idle): use the new
	  LibBalsaMailbox method for testing reachability.
	* src/main-window.h: New member guint
	BalsaWindow::network_changed_source_id.

2017-05-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Test whether a LibBalsaMailbox can be reached by testing its
	server

	* libbalsa/mailbox.c (libbalsa_mailbox_class_init),
	  (libbalsa_mailbox_set_background),
	  (libbalsa_mailbox_test_can_reach): LibBalsaMailbox support.
	* libbalsa/mailbox.h: ditto.
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
	  (libbalsa_mailbox_local_test_can_reach): LibBalsaMailboxLocal
	  support.
	* libbalsa/mailbox_remote.c (libbalsa_mailbox_remote_class_init),
	  (libbalsa_mailbox_remote_test_can_reach):
	  LibBalsaMailboxRemote support.

2017-05-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Needed for previous LibBalsaServer commit

	* libbalsa/libbalsa.h: typedef the callback for testing whether
	  a server can be reached.

2017-05-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Implement testing reachability of a server

	* libbalsa/server.c (libbalsa_server_can_reach_cb),
	  (libbalsa_server_test_can_reach_full),
	  (libbalsa_server_test_can_reach): new methods for testing
	  whether a server's host can be reached over the network;
	* libbalsa/server.h: declare them.

2017-05-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-handle.c (idle_start): clear
	  ImapMboxHandle::enable_idle_id before returning FALSE.

2017-05-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_mbox.c (parse_mailbox): try to recover when
	the GMimeParser returns a NULL GMimeMessage.

2017-05-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_pop3.c (message_cb): reset the GMimeStream
	  before passing it to libbalsa_mailbox_add_message.

2017-05-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not dereference NULL GError pointer

	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_check): check
	for err == NULL.

2017-05-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Assistant improvements

	* libbalsa/libbalsa.c (libbalsa_guess_email_address): read
	  /etc/mailname using glib, and remove everything starting with
	  the 1st newline.
	* libinit_balsa/assistant_page_user.[ch]: replace the "SSL"
	  checkbox by a combo asking for the requested security mode.

2017-04-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Restore support for $(DESTDIR) installations

	* images/Makefile.am:

2017-04-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Restore updating the icon cache, and remove a redundant action

	* configure.ac: find the path to gtk-update-icon-cache.
	* images/Makefile.am: re-enable updating the cache.
	* libbalsa/files.c (libbalsa_icon_finder): do not redundantly
	  append BALSA_DATA_PREFIX "/hicolor/48x48/mimetypes" to the
	  default icon theme search path.

2017-04-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-icons.c: disable debug output, left enabled by
	mistake.

2017-04-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not define an unused path

	* configure.ac: do not define BALSA_STD_PREFIX, it is not used.
	* libbalsa/files.c: do not put it in a search path.
	* src/balsa-icons.c (balsa_register_pixmaps),
	  (balsa_register_pixbufs): do not append it to the
	  icon-theme-search-path.

2017-04-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/files.c (libbalsa_icon_finder): more carefully check
	  names of extra mime icons.

2017-04-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac: pass install directories on the compile command
	line instead of in config.h;
	* libbalsa/files.c: use the directories.

2017-04-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac: fix a warning about changing the permissions
	  of a generated file
	* libbalsa/imap/Makefile.am: fix building outside the source
	  directory.

2017-04-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix access to local POP3 server

	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_startup):
	  allow all auth methods, in order to allow connections to
	  localhost;
	* libnetclient/net-client-pop.c (net_client_pop_get_capa):
	  cosmetics

2017-04-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac: replace --with-spell-checker=no with
	--with-spell-checker=internal.

2017-04-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix a bug in the SMTP code, and generally clean up;
	https://mail.gnome.org/archives/balsa-list/2017-April/msg00040.html

	* libnetclient/net-client-smtp.c (net_client_smtp_send_msg): do
	not set SMTP DSN parameters for a server not supporting it;
	(net_client_smtp_finalise): fix long delay when sending a
	message fails in the callback;
	* libnetclient/test/inetsim.conf:
	* libnetclient/test/start-test-env.sh.in:
	* libnetclient/test/tests.c (msg_data_cb), (test_smtp): improve
	SMTP unit tests; improve the test environment script as to
	place the results readable in the cwd.

2017-04-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove unused code

	* libbalsa/misc.c: remove unused function libbalsa_truncate_string;
	* libbalsa/misc.h: remove obsolete declarations.

2017-04-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clean up identity code

	* libbalsa/identity.c (libbalsa_identity_get_signature): use
	g_spawn_async instead of popen and libbalsa_readfile_nostat.
	* libbalsa/misc.c: libbalsa_readfile_nostat is no longer needed.
	* libbalsa/misc.h: ditto.

2017-04-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some more conversion specifier mismatches

	* libnetclient/net-client-pop.c (net_client_pop_list): cast gsize
	  to unsigned long, to print portably with %lu.
	* libnetclient/net-client.c (net_client_read_line): use
	  G_GSIZE_FORMAT to scan portably a POP3 message list.

2017-04-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/misc.h: define libbalsa_urlencode and libbalsa_decode
	  to use g_uri_escape_string and g_uri_unescape_string, instead of
	  declaring the custom functions;
	* libbalsa/misc.c: remove the custom functions.

2017-04-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_pop3.c (notify_progress),
	  (libbalsa_mailbox_pop3_check): cast gsize to unsigned long, to
	  print portably with %lu.

2017-04-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-book-ldif.c (string_to_value_spec),
	(value_spec_to_string): remove custom base64 encode and decode stuff.

2017-04-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa-vfs.c (libbalsa_vfs_create_stream): retain
	ownership of priv->gio_gfile.

2017-04-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/auth-gssapi.c (ag_get_token), (ag_parse_request),
	(ag_negotiate_parameters): use existing buffers for base-64
	conversions.

2017-04-09  Albrecht Dreß

	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_check): do not
	unref NULL NetClientPop object.

2017-04-09  Albrecht Dreß

	* libnetclient/net-client.c (net_client_new): do not return
	pointer to finalized object.

2017-04-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

Streamline code

	* src/spell-check.c: remove redundant gboolean
	quoted_rex_compiled;
	(balsa_spell_check_start): do not use it;
	(next_word): ditto;
	(balsa_spell_check_destroy): ditto; also use g_clear_pointer.

2017-04-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c (select_part): reset adjustments only when
	  displaying a real message part.

2017-04-07  Albrecht Dreß

Do not emit a critical warning

	* src/balsa-mime-widget.c (balsa_mime_widget_new_unknown): Do
	  not emit a critical warning on the console, e.g. when I select
	  an encrypted message, but cancel the decryption:

2017-04-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* libbalsa/gmime-filter-header.c (g_mime_filter_header_new): use
	g_object_new instead of g_object_newv, because the latter is
	deprecated in glib-2.54.

2017-03-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use GMime's native GIO Stream module

	* libbalsa/gmime-stream-gio.h: removed.
	* libbalsa/libbalsa-vfs.c: do not include it.
	* libbalsa/gmime-stream-gio.c: removed.
	* libbalsa/Makefile.am: remove references to them.


2017-03-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/identity.c (libbalsa_identity_combo_box): compare
	active name with the identity name, not the parenthesized
	version

2017-03-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/mailbox_local.c (lbml_load_messages_idle_cb): clear
	load_messages_id even when returning early.

2017-03-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Lock mailbox while accessing an idle callback id

	* libbalsa/mailbox.c (lbm_need_threading_idle_cb),
	(libbalsa_mailbox_msgno_inserted),
	(libbalsa_mailbox_msgno_removed): lock mailbox while accessing
	need_threading_idle_id.

2017-03-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_master_position_cb),
	(bw_slave_position_cb), (bw_size_allocate_cb): remember the new
	position even if maximized.

2017-03-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

Use dialog buttons more consistently

	* src/mailbox-conf.c
	(create_generic_dialog): use GTK_RESPONSE_CANCEL instead of CLOSE
	(run_mailbox_conf): ditto.

2017-03-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use an idle callback to rethread the mailbox display.

	* libbalsa/mailbox.c (libbalsa_mailbox_finalize): remove an
	  outstanding idle source;
	  (lbm_need_threading_idle_cb): the idle callback;
	  (libbalsa_mailbox_check): schedule the idle callback;
	  (libbalsa_mailbox_msgno_inserted): ditto;
	  (libbalsa_mailbox_msgno_removed): ditto;
	  (libbalsa_mailbox_sync_storage): just signal mailbox changed;
	  (lbm_check_idle): ref the mailbox here...
	  (lbm_queue_check): not here.
	* libbalsa/mailbox.h: add guint
	  LibBalsaMailbox::need_threading_idle_id;
	  we no longer need LIBBALSA_MAILBOX_UNTHREADED.
	* libbalsa/mailbox_local.c (lbml_info_setup):
	  LIBBALSA_MAILBOX_UNTHREADED is now irrelevant.

2017-02-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	gtk_show_uri is deprecated in favor of gtk_show_uri_on_window

	* libbalsa/identity.c (help_ident_cb): fix it.
	* libbalsa/smtp-server.c (smtp_server_response): fix it, and
	  correct the help file URI.
	* src/address-book-config.c (create_local_dialog): fix it, and
	  move the Cancel button to the left;
	  (help_button_cb): fix it.
	* src/balsa-mime-widget-message.c (extbody_call_url): fix it.
	* src/balsa-mime-widget-text.c (handle_url): ditto.
	* src/filter-edit-callbacks.c (condition_dialog_response),
	  (fe_dialog_response): ditto.
	* src/filter-run-callbacks.c (fr_dialog_response): ditto.
	* src/folder-conf.c (folder_conf_response): ditto.
	* src/main-window.c (help_activated), (bw_find_real): ditto.
	* src/pref-manager.c (balsa_help_pbox_display): ditto.
	* src/sendmsg-window.c (on_open_url_cb): ditto.
	* src/toolbar-prefs.c (tp_dialog_response_cb): ditto.

2017-02-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-tls.c: fix OPENSSL_VERSION_NUMBER check

2017-02-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Give the user the option to ignore PIPELINING capability in a
	POP3 server

	* libbalsa/imap/pop3.c (pop_connect): respect
	  PopHandle::enable_pipe.
	* libbalsa/mailbox_pop3.c (libbalsa_mailbox_pop3_check): set
	  the option in PopHandle;
	  (libbalsa_mailbox_pop3_save_config): save it;
	  (libbalsa_mailbox_pop3_load_config): load it;
	* libbalsa/mailbox_pop3.h: new member
	  LibBalsaMailboxPop3::enable_pipe;
	* src/mailbox-conf.c (mailbox_conf_set_values),
	  (update_pop_mailbox), (create_pop_mailbox_dialog):
	  new check-box in the UI.

2017-02-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	SMTP extensions: TLS client cert; rework config dialog

	* README: make it not quite so out of date.
	* libbalsa/send.c (get_auth), (get_cert_pass),
	(lbs_process_queue): use client cert if required.
	* libbalsa/smtp-server.c (libbalsa_smtp_server_finalize),
	(libbalsa_smtp_server_new_from_config),
	(libbalsa_smtp_server_save_config),
	(libbalsa_smtp_server_require_client_cert),
	(libbalsa_smtp_server_get_cert_file), (smtp_server_response),
	(smtp_server_changed), (libbalsa_smtp_server_dialog): add
	cert-related entries to LibBalsaSmtpServer, and set and use
	them.
	* libbalsa/smtp-server.h: add cert-related API.

2017-02-19  Albrecht Dreß

	Make "Select Filters..." dialogue respect the headerbars config

	* src/filter-run-dialog.c (balsa_filter_run_dialog_new): check
	the BALSA_DIALOG_HEADERBAR environment variable.

2017-02-19  Albrecht Dreß

	Fix unsafe permissions for config-private

	* libbalsa/libbalsa-conf.c (lbc_init), (lbc_lock), (lbc_sync):
	  ensure that permissons on $HOME/.balsa/config-private are 0600
	  after saving it.

2017-02-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not access a stale pointer

	* src/main-window.c (balsa_window_destroy): nullify window->preview;
	(bw_action_set_enabled): check for NULL window->preview;
	(bw_idle_replace): ditto.

2017-01-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some conditional compilation code so that uncrustify does
	not break the build.

	* src/balsa-message.c (balsa_headers_attachments_popup),
	(tree_button_press_cb): fix it.
	* src/balsa-mime-widget-text.c (prepare_url_offsets): ditto.
	* src/sendmsg-window.c (attachment_button_press_cb),
	(attachment_popup_cb): ditto.

2017-01-03  Albrecht Dreß

	Use glib for digest calculations

	* libbalsa/imap/auth-cram.c (imap_auth_cram):
	* libbalsa/imap/pop3.c (compute_auth_hash):

2016-12-28  Pawel Salek <pawsa0@gmail.com>

	* libbalsa/imap/imap-tls.c: avoid warnings with openssl-1.1.x

2016-12-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Get notifications about GtkPaned's position to save the new
	position, instead of the size-allocate signal for the child.

	* src/main-window.c (bw_master_position_cb): callback for
	  changes in the paned-master's position;
	  (bw_slave_position_cb): ditto paned-slave;
	  (balsa_window_fix_paned): change signal connections.

2016-12-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Avoid geometry creep when maximized.

	* src/main.c (real_main): when initially maximized,
	delay 500 msec before setting paned positions and connecting to
	signals.

2016-12-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build with gpgme version >= 1.8

	* configure.ac: use $gpgmecfg --thread=pthread --libs only for
	gpgme version < 1.8.

2016-12-10  Pawel Salek <pawsa0@gmail.com>

	* Makefile.am: do not include mkinstalldirs any more
	* libbalsa/imap/auth-cram.c:
	* libbalsa/imap/pop3.c:  fix regression in CRAM-MD5 code; build against
	openssl-1.1.0

2016-12-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Version bump to 2.5.3

	* configure.ac: bump the version string to 2.5.3

2016-11-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Correct alignment of recipient labels.

	* src/sendmsg-window.h: remove redundant GtkSizeGroup;
	* src/sendmsg-window.c (create_email_or_string_entry),
	(create_info_pane), (sw_attachment_list): do not use it.

2016-11-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/misc.c (libbalsa_font_string_to_css): make new CSS
	parsing conditional on gtk version 3.22.

2016-11-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Adapt to new recipient strings

	* src/sendmsg-window.c (update_bsmsg_identity),
	(setup_headers_from_message), (setup_headers_from_identity),
	(set_cc_from_all_recipients), (sendmsg_window_set_field),
	(bsmsg2message), (check_suggest_encryption):

2016-11-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Save the correct window geometry

	* libbalsa/source-viewer.c (lsv_size_allocate_cb): save the window
	  geometry from gtk_window_get_size instead of the GtkAllocation.
	* src/balsa-mblist.c (bmbl_mru_size_allocate_cb): ditto.
	* src/message-window.c (size_alloc_cb): ditto.
	* src/sendmsg-window.c (sw_size_alloc_cb): ditto.
	* src/main-window.c (bw_window_state_event_cb): simplify the
	  code.

2016-11-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Disable accelerated compositing in webkit2, to avoid some gdk
	warnings; see thread at
	https://lists.webkit.org/pipermail/webkit-gtk/2016-November/002863.html

	* src/main.c (main): set WEBKIT_DISABLE_COMPOSITING_MODE
	environment variable.

2016-11-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Save the main window state more carefully

	* src/main-window.c (bw_window_state_event_cb): note when the
	main window is either maximized or fullscreen, and save the
	information as TRUE or FALSE.

2016-11-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Save the correct window geometry

	* src/main-window.c (bw_size_allocate_cb): save the window
	geometry from gtk_window_get_size instead of the GtkAllocation.

2016-11-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/misc.c: document libbalsa_font_string_to_css.

2016-11-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Silence some whining about "Using Pango syntax for the font:
	style property is deprecated; please use CSS syntax".

	* libbalsa/misc.c (libbalsa_font_string_to_css): new function.
	* libbalsa/misc.h: export it.
	* libbalsa/source-viewer.c (libbalsa_show_message_source): use
	it.
	* src/balsa-mime-widget-message.c (add_header_gchar): ditto.
	* src/balsa-mime-widget-text.c (bm_modify_font_from_string):
	ditto.
	* src/sendmsg-window.c (create_email_or_string_entry),
	(create_text_area): ditto.

2016-11-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use Unicode characters for double quotation marks and ellipses.

	* libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_open_db),
	(libbalsa_address_book_gpe_load):
	* libbalsa/address-book-ldap.c (libbalsa_address_book_ldap_load),
	(libbalsa_address_book_ldap_add_address),
	(libbalsa_address_book_ldap_remove_address),
	(libbalsa_address_book_ldap_modify_address):
	* libbalsa/address-book-text.c (lbab_text_open_temp),
	(lbab_text_close_temp),
	(libbalsa_address_book_text_modify_address):
	* libbalsa/application-helpers.c (libbalsa_window_add_accelerator):
	* libbalsa/files.c (balsa_file_finder):
	* libbalsa/html.c (lbh_navigation_policy_decision_requested_cb):
	* libbalsa/libbalsa-conf.c (lbc_readfile), (lbc_init), (lbc_sync):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_accept_low_trust_key):
	* libbalsa/libbalsa-gpgme.c (get_key_from_name):
	* libbalsa/mailbox.c (get_from_field),
	(libbalsa_mailbox_new_from_config), (mbox_model_get_value):
	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_load_config),
	(imap_cache_manager_new_from_file):
	* libbalsa/mailbox_local.c (lbm_local_save_tree),
	(lbml_subject_gather), (lbm_local_sync_real):
	* libbalsa/mailbox_maildir.c (lbm_maildir_parse),
	(maildir_sync_add):
	* libbalsa/mailbox_mbox.c (lbm_mbox_check_files),
	(lbm_mbox_stream_seek_to_message), (lbm_mbox_save),
	(libbalsa_mailbox_mbox_sync):
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_sync):
	* libbalsa/message.c (lbmsg_set_header):
	* libbalsa/misc.c (libbalsa_lock_file):
	* libbalsa/send.c (ensure_send_progress_dialog):
	* libbalsa/source-viewer.c (lsv_show_message):
	* libinit_balsa/assistant_helper.c
	(balsa_init_create_to_directory):
	* libinit_balsa/assistant_page_directory.c (unconditional_mailbox),
	(verify_mailbox_entry):
	* src/balsa-app.c (check_new_messages_auto_cb),
	(open_mailbox_by_url):
	* src/balsa-index.c (bndx_popup_menu_create),
	(balsa_index_transfer), (pipe_out_watch):
	* src/balsa-mblist.c (bmbl_mru_menu), (bmbl_mru_combo_box_setup):
	* src/balsa-message.c (tree_mult_selection_popup),
	(balsa_message_set), (mpart_content_name), (display_part),
	(part_create_menu), (create_mdn_reply), (libbalsa_msg_try_decrypt),
	(libbalsa_msg_try_mp_signed), (libbalsa_msg_part_2440):
	* src/balsa-mime-widget-message.c (bm_header_extend_popup):
	* src/balsa-mime-widget-text.c (text_view_url_popup),
	(text_view_populate_popup), (handle_url),
	(bmwt_populate_popup_menu), (check_text_encoding):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar):
	* src/filter-edit-callbacks.c (fe_apply_pressed):
	* src/filter-edit-dialog.c (build_action_page),
	(filters_edit_dialog):
	* src/filter-run-callbacks.c (fr_apply_selected_pressed),
	(fr_apply_now_pressed), (fr_add_pressed_func):
	* src/folder-conf.c (folder_conf_imap_sub_node),
	(folder_conf_delete):
	* src/mailbox-conf.c (mailbox_conf_delete):
	* src/mailbox-node.c (check_local_path), (imap_dir_cb),
	(bmbn_scan_children_idle), (balsa_mailbox_node_get_context_menu),
	(add_local_mailbox), (handle_imap_path), (check_imap_path),
	(mark_imap_path):
	* src/main-window.c (bw_get_action), (quit_activated),
	(header_change_state), (threading_change_state),
	(ensure_check_mail_dialog):
	* src/main.c (check_special_mailboxes), (periodic_expunge_cb):
	* src/message-window.c (mw_set_enabled), (mw_set_active),
	(mw_header_change_state):
	* src/pref-manager.c (broken_8bit_codeset_group), (mdn_group),
	(deleting_messages_group), (server_add_menu_widget):
	* src/save-restore.c (config_global_load), (config_defclient_save):
	* src/sendmsg-window.c (sw_set_charset), (add_attachment),
	(add_urlref_attachment), (tree_add_quote_body), (scan_bodies),
	(append_parts), (sendmsg_window_set_field),
	(sw_gpg_mode_change_state):
	* src/spell-check.c (check_word):
	* src/store-address.c (store_address_from_entries):
	* src/toolbar-factory.c (balsa_toolbar_model_insert_icon),
	(tm_do_popup_menu):
	* src/toolbar-prefs.c (create_toolbar_page),
	(tp_page_refresh_available):

2016-11-09  Albrecht Dreß

	Support for Osmo address book

	* libbalsa/address-book-osmo.c, libbalsa/address-book-osmo.h:
	  new files; implement read-only Osmo address book core
	* libbalsa/rfc6350.c, libbalsa/rfc6350.h: new files;
	  simple RFC 6350 to LibBalsaAddress parser
	* README: add note about new configure item
	* configure.ac: make Osmo address book configurable (default
	  disabled)
	* libbalsa/Makefile.am: add new sources
	* libbalsa/libbalsa.c: initialise address book type
	* libbalsa/libbalsa.h: include header
	* src/address-book-config.c: implement configuration dialogue
	* src/pref-manager.c: add to pref manager

2016-10-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Improve pop-up menu positioning.

	* src/pref-manager.c (remote_mailbox_servers_group): use a
	common helper to connect to "clicked-up" signal;
	(address_books_group): ditto;
	(add_menu_cb): common helper;

2016-10-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not crash after cancelling the add-address-book dialog.

	* src/address-book-config.c (edit_book_response): do not free
	the AddressBookConfig;
	(add_vcard_cb),
	(add_externq_cb), (add_ldif_cb), (add_ldap_cb), (add_gpe_cb),
	(add_rubrica_cb): do not remove the weak ref that frees
	the AddressBookConfig.

2016-10-23  Albrecht Dreß

Support GCR to display a certificate widget

	* configure.ac: new option --with-gcr.
	* libbalsa/libbalsa.c (ask_cert_real): use gcr certificate API
	to display the certificate.

2016-10-23  Albrecht Dreß

Disable header bars in the address book widgets if the
environment variable BALSA_DIALOG_HEADERBAR is 0.

	* src/ab-window.c (balsa_ab_window_new): respect
	BALSA_DIALOG_HEADERBAR environment variable.

2016-10-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	We no longer use libiconv.

	* configure.ac: remove --with-iconv option.
	* libbalsa/address-book-ldap.c: do not include iconv.h.
	* src/balsa-message.c: ditto.

2016-10-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix deprecation issues in gtk 3.22

	Replace gtk_window_set_wmclass, which is deprecated in gtk 3.22,
	with gtk_window_set_role.

	* libbalsa/libbalsa.c (ask_cert_real), (ask_timeout_real):
	* libbalsa/send.c (ensure_send_progress_dialog):
	* libbalsa/source-viewer.c (libbalsa_show_message_source):
	* src/ab-window.c (balsa_ab_window_init):
	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_new):
	* src/folder-conf.c (folder_conf_imap_node),
	(folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/main-window.c (ensure_check_mail_dialog),
	(bw_display_new_mail_notification):
	* src/message-window.c (message_window_new):
	* src/sendmsg-window.c (sendmsg_window_new):
	* src/toolbar-prefs.c (customize_dialog_cb):

2016-10-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix deprecation issues in gtk 3.22

	The Gtk+ API for popping up context menus has changed in 3.22;
	gtk_menu_popup is deprecated.

	* src/balsa-index.c (bndx_do_popup):
	* src/balsa-mblist.c (bmbl_do_popup):
	* src/balsa-message.c (balsa_headers_attachments_popup),
	(tree_mult_selection_popup), (tree_button_press_cb):
	* src/balsa-mime-widget-image.c (balsa_image_button_press_cb):
	* src/balsa-mime-widget-text.c (balsa_gtk_html_popup):
	* src/pref-manager.c (address_book_add_cb), (server_add_cb):
	* src/sendmsg-window.c (attachment_button_press_cb),
	(attachment_popup_cb):
	* src/toolbar-factory.c (tm_do_popup_menu):

2016-10-18  Albrecht Dreß

	Usually, RFC 3156 (PGP/MIME) signature parts
	(application/pgp-signature, see RFC 3156, sect. 9.2.) should
	never be encoded as they are 7-bit clean.  However, there are
	implementations which apply an (superfluous) encoding to such
	parts, which Balsa fails to interpret properly.  The attached
	patch fixes this behaviour, and as a side effect plugs a gmime
	stream leak when checking a S/MIME signature which is always
	encoded.

	* libbalsa/gmime-multipart-crypt.c (g_mime_gpgme_mps_verify):
	always decrypt the signature; do not leak sigstream.

2016-10-03  Albrecht Dreß

	Implement the 'AUTH PLAIN' SASL mechanism for POP3
	according to RFC 5043 and RFC 4616

	* libbalsa/imap/pop3.c (pop_get_capa), (pop_auth_sasl_plain):
	  implement the 'AUTH PLAIN' SASL mechanism for POP3.

2016-10-03  Albrecht Dreß

	Deprecation cleanups

	* AUTHORS:
	* README:
	* configure.ac:
	* libbalsa/imap/imap_tst.c (main):
	* src/balsa-message.c (balsa_message_get_type),
	(balsa_message_init), (balsa_message_new), (tree_activate_row_cb),
	(balsa_message_set), (atattchments_menu_cb),
	(toggle_all_inline_cb), (message_recheck_crypto_cb):
	* src/balsa-message.h:
	* src/toolbar-prefs.c (create_toolbar_page):

2016-09-06  Albrecht Dreß

	* configure.ac: make the help string match the actual default,
	webkit2.

2016-09-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Respond to
	<URL:https://bugzilla.gnome.org/show_bug.cgi?id=770500>
	by making webkit2 the default instead of webkit, and warning if
	Balsa is configured for webkit.

	* configure.ac: make webkit2 the default HTML widget, and warn
	  if Balsa is configured for webkit.

2016-08-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Plug memory leak.

	* src/main-window.c (bw_create_index_widget): do not leak
	focus-chain GList.

2016-08-21  Albrecht Dreß

	Always use multithreading, and use only the glib abstraction
	instead of "native" pthreads.

	* configure.ac: remove --enable-threads configure option and its
	consequences.
	* libbalsa/filter-file.c: remove reference to BALSA_USE_THREADS.
	* libbalsa/gmime-gpgme-signature.c
	(g_mime_gpgme_sigstat_new_from_gpgme_ctx):
	* libbalsa/imap-server.c (libbalsa_imap_server_set_username),
	(libbalsa_imap_server_set_host), (libbalsa_imap_server_init),
	(libbalsa_imap_server_finalize), (lb_imap_server_cleanup),
	(connection_cleanup), (get_or_create),
	(libbalsa_imap_server_get_handle),
	(libbalsa_imap_server_get_handle_with_user),
	(libbalsa_imap_server_release_handle),
	(libbalsa_imap_server_force_disconnect),
	(libbalsa_imap_server_close_all_connections),
	(libbalsa_imap_server_has_free_handles):
	* libbalsa/imap/imap-commands.c (imap_mbox_handle_noop),
	(imap_mbox_select), (imap_mbox_examine), (imap_mbox_create),
	(imap_mbox_delete), (imap_mbox_rename), (imap_mbox_subscribe),
	(imap_mbox_list), (imap_mbox_lsub), (imap_mbox_status),
	(imap_mbox_append_multi), (imap_mbox_close), (imap_mbox_expunge),
	(imap_mbox_expunge_a), (imap_mbox_find_all),
	(imap_mbox_find_unseen), (imap_mbox_handle_msgno_has_flags),
	(imap_mbox_handle_fetch_range), (imap_mbox_handle_fetch_set),
	(imap_mbox_handle_fetch_rfc822),
	(imap_mbox_handle_fetch_rfc822_uid), (imap_mbox_handle_fetch_body),
	(imap_mbox_store_flag), (imap_mbox_store_flag_a),
	(imap_mbox_handle_copy), (imap_mbox_unselect), (imap_mbox_thread),
	(imap_mbox_sort_msgno), (imap_mbox_sort_filter),
	(imap_mbox_filter_msgnos), (imap_mbox_complete_msgids),
	(imap_mbox_get_quota), (imap_mbox_get_my_rights),
	(imap_mbox_get_acl):
	* libbalsa/imap/imap-handle.c (imap_mbox_handle_init),
	(async_process), (idle_start), (imap_mbox_handle_connect),
	(imap_mbox_handle_reconnect), (imap_handle_force_disconnect),
	(imap_mbox_handle_get_delim), (imap_mbox_handle_finalize):
	* libbalsa/imap/imap-tls.c (locking_function), (id_function),
	(dyn_create_function), (dyn_lock_function), (dyn_destroy_function),
	(imaptls_thread_setup), (imaptls_thread_cleanup),
	(imap_create_ssl):
	* libbalsa/imap/imap_private.h:
	* libbalsa/imap/imap_search.c (imap_search_exec):
	* libbalsa/information.h:
	* libbalsa/libbalsa-conf.c (lbc_lock), (lbc_unlock),
	(libbalsa_conf_sync), (libbalsa_conf_queue_sync):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_passphrase),
	(get_passphrase_idle):
	* libbalsa/libbalsa-gpgme.c (g_set_error_from_gpgme):
	* libbalsa/libbalsa.c (libbalsa_init), (ask_idle), (libbalsa_ask),
	(libbalsa_certs_destroy), (libbalsa_is_cert_known),
	(libbalsa_am_i_subthread), (libbalsa_lock_mailbox),
	(libbalsa_unlock_mailbox):
	* libbalsa/libbalsa.h:
	* libbalsa/libbalsa_private.h:
	* libbalsa/mailbox.c (libbalsa_mailbox_class_init),
	(lbm_index_entry_populate_from_msg), (lbm_index_entry_new_pending),
	(lbm_index_entry_free), (libbalsa_mailbox_finalize),
	(libbalsa_mailbox_check), (libbalsa_mailbox_real_lock_store),
	(lbm_msgno_changed_expunged_cb), (lbm_msgnos_changed_idle_cb),
	(lbm_msgno_changed), (lbm_msgno_filt_check_idle_cb),
	(libbalsa_mailbox_msgno_filt_check), (lbm_cache_message),
	(libbalsa_mailbox_get_message),
	(libbalsa_mailbox_messages_change_flags),
	(lbm_set_threading_idle_cb), (lbm_set_threading),
	(lbm_get_index_entry_expunged_cb), (lbm_get_index_entry_real),
	(lbm_get_index_entry), (lbm_check_idle),
	(libbalsa_mailbox_unlock_store):
	* libbalsa/mailbox.h:
	* libbalsa/mailbox_imap.c:
	* libbalsa/mailbox_local.c (lbm_local_save_tree_idle),
	(message_match_real), (lbml_set_threading_idle_cb),
	(libbalsa_mailbox_local_set_threading):
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_class_init),
	(libbalsa_mailbox_mbox_lock_store):
	* libbalsa/mime-stream-shared.c
	(libbalsa_mime_stream_shared_unlock):
	* libbalsa/mime-stream-shared.h:
	* libbalsa/missing_time.c (ctime_r):
	* libbalsa/rfc3156.c (libbalsa_gpgme_sig_stat_to_gchar):
	* libbalsa/send.c (lbs_process_queue), (handle_successful_send),
	(libbalsa_smtp_event_cb), (libbalsa_process_queue),
	(balsa_send_message_real):
	* libbalsa/send.h:
	* src/ab-main.c:
	* src/balsa-app.c (ask_passwd_idle), (ask_password_mt),
	(ask_password):
	* src/filter-edit-callbacks.c:
	* src/information-dialog.h:
	* src/main-window.c (bw_delete_cb), (balsa_window_new),
	(bw_real_open_mbnode_thread), (balsa_window_real_open_mbnode),
	(bw_register_open_mailbox), (bw_unregister_open_mailbox),
	(bw_is_open_mailbox), (check_new_messages_real),
	(bw_check_messages_thread):
	* src/main.c (threads_init), (threads_destroy), (real_main),
	(balsa_cleanup):
	* src/save-restore.c (pop3_progress_notify):
	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler):
	* src/threads.h: ditto.

2016-07-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Implement a GtkComboBox for selecting a LibBalsaIdentity, and
	use it for the mailbox properties dialog and as the From address
	in the compose window.

	* libbalsa/identity.c (libbalsa_identity_combo_box): implement
	  the widget;
	* libbalsa/identity.h: export it;
	* src/mailbox-conf.c (check_for_blank_fields): allow NULL
	  argument;
	  (mailbox_conf_view_new_full): use the widget;
	  (mailbox_conf_view_check): get the identity from the widget
	  instead of the list;
	* src/sendmsg-window.c (create_from_entry): use the widget.

2016-07-28  Albrecht Dreß

	Fix a bug in the configure script discovered by Jack
	<URL:https://mail.gnome.org/archives/balsa-list/2016-July/msg00039.html>

	* configure.ac: when no external html-to-text converter could
	  be found, undef HTML2TEXT instead of defining it to "".

2016-07-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Andreas Schmidt suggested an improvement to the list of identities
	in the mailbox properties dialog.
	<URL:https://mail.gnome.org/archives/balsa-list/2016-July/msg00034.html>

	* src/mailbox-conf.c (mailbox_conf_view_new_full): include the
	  identity name as well as the mailing address in the identities
	  combo-box.

2016-07-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Since porting to GtkApplication, command line options have been
	handled in a subsequent invocation of Balsa, but not in the
	startup invocation.

	* src/main.c (real_main), (parse_options), (handle_remote),
	  (command_line_cb): handle command line options at startup time.

2016-07-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac: issue an error if building in a git tree with
	  deprecated GnomeKeyring.

2016-07-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix building with toolchains that predefine _FORTIFY_SOURCE

	* configure.ac: undefine _FORTIFY_SOURCE before defining it to
	have the value 2.

2016-06-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use Gspell-1.2 API

	* configure.ac: check whether we can use the Gspell-1.2 API;
	* src/sendmsg-window.c (create_text_area): if so, set the
	enable-language-menu property, to allow the user to change the
	spell-checker language from the context menu as well as from
	Balsa's menubar menu.

2016-06-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Support Gspell as an alternative to GtkSpell

	* configure.ac: replace --with-gtkspell with
	--with-spell-checker = (no|gtkspell|gspell) and change the
	AM_CONDITIONAL BUILD_WITH_GTK_SPELL to BUILD_WITH_SPELL_CHECKER.
	* src/Makefile.am: use the new AM_CONDITIONAL.
	* src/balsa-app.c (balsa_app_init): support Gspell.
	* src/balsa-app.h: ditto.
	* src/pref-manager.c (apply_prefs), (set_prefs): ditto.
	* src/save-restore.c (config_global_load), (config_save): ditto.
	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler),
	(create_text_area), (create_lang_menu), (message_postpone),
	(set_locale), (sw_spell_check_change_state), (lang_set_cb),
	(sendmsg_window_new): Gspell has a different API from GtkSpell.

2016-06-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Symbolic icon names like pan-down-symbolic now contain hyphens
	and can no longer use underscores.

	* src/balsa-message.c: fix symbolic icon names.

2016-06-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	As of gtksource version 2.21.?, only <gtksourceview/gtksource.h>
	can be included directly.

	* libbalsa/libbalsa.c: include only gtksource.h.
	* src/balsa-mime-widget-text.c: ditto.
	* src/spell-check.c: ditto.

2016-06-22  Albrecht Dreß

	Fix shrinking message list

	* src/main-window.c (balsa_window_new),
	(balsa_window_fix_paned): set the size of the elements of the
	main window in an idle callback instead of the window creator;
	* src/main-window.h: export the idle callback;
	* src/main.c (real_main): add the idle call.

2016-06-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-main.c (libbalsa_dialog_flags): set check_done to a
	non-zero value.

2016-06-19  Albrecht Dreß

	Make Gtk3 dialog header bars configurable
	Basically, a new function libbalsa_dialog_flags() is added to
	libbalsa.c (or simply expanded to 0 for older Gtk versions than
	3.12.0).  When being called for the first time, the function
	checks if the environment variable BALSA_DIALOG_HEADERBAR exists
	and is set to 0.  Only in this case, the header bars are
	disabled.  The function call replaces the macro
	BALSA_DIALOG_FLAGS.

	* configure.ac: remove definition of BALSA_DIALOG_FLAGS.
	* libbalsa/libbalsa.c (libbalsa_dialog_flags): define it;
	  (ask_cert_real): use it.
	* libbalsa/libbalsa.h: declare it.
	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	  (libbalsa_identity_config_dialog):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key),
	  (get_passphrase_real):
	* libbalsa/send.c (ensure_send_progress_dialog):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* src/ab-main.c (libbalsa_dialog_flags):
	* src/address-book-config.c (create_generic_dialog):
	* src/balsa-app.c (ask_password_real):
	* src/balsa-index.c (balsa_index_pipe):
	* src/balsa-mblist.c (bmbl_mru_show_tree):
	* src/filter-edit-callbacks.c (fe_edit_condition):
	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/folder-conf.c (folder_conf_imap_node), (browse_button_cb),
	  (subfolder_conf_clicked_ok), (folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/mailbox-conf.c (create_generic_dialog):
	* src/main-window.c (ensure_check_mail_dialog), (bw_find_real):
	* src/pref-manager.c (open_preferences_manager):
	* src/sendmsg-window.c (sw_get_user_codeset),
	  (quote_parts_select_dlg), (subject_not_empty):
	* src/store-address.c (store_address_dialog):
	* src/toolbar-prefs.c (customize_dialog_cb): all use it.

2016-06-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix saving address when user has only one address book
	(https://mail.gnome.org/archives/balsa-list/2016-June/msg00030.html)

	* src/store-address.c (store_address_dialog): always set current
	address book;
	(store_address_book_frame): no need to check
	balsa_app.address_book_list != NULL.

2016-06-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Set line-wrapping of a long label to TRUE and do not change it.

	* src/balsa-mime-widget-message.c (expanded_cb): do not change
	line-wrapping;
	(add_header_gchar): set line-wrapping to TRUE even if the label
	is to be ellipsized.

2016-06-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-message.c (add_header_gchar): in an
	address, replace '\r' or '\n' with a space.

2016-06-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-message.c (add_header_gchar): comment on
	why show-all-headers is used to set the initial state of the
	expander;
	(add_header_address_list): new parameter show_all_headers;
	(bmw_message_set_headers_d): use it.

2016-06-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-message.c (expanded_cb): cut redundant
	dynamic cast.

2016-06-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Drop the --enable-touch-ui configuration option and the
	corresponding conditionally compiled code

	* configure.ac: drop the option;
	* libbalsa/address-view.c and below: drop the code.
	* libbalsa/imap-server.c (libbalsa_imap_server_init):
	* libinit_balsa/assistant_init.c (balsa_initdruid_apply),
	(balsa_initdruid):
	* libinit_balsa/assistant_page_directory.c
	(balsa_druid_page_directory_init),
	(balsa_druid_page_directory_next):
	* libinit_balsa/assistant_page_directory.h:
	* libinit_balsa/assistant_page_user.c (balsa_druid_page_user_init),
	(balsa_druid_page_user_next):
	* libinit_balsa/assistant_page_user.h:
	* src/balsa-app.c (balsa_app_init):
	* src/balsa-app.h:
	* src/balsa-index.c (bi_apply_other_column_settings):
	* src/balsa-mblist.c (bmbl_core_mailbox):
	* src/balsa-message.c:
	* src/folder-conf.c (folder_conf_clicked_ok),
	(folder_conf_imap_node):
	* src/mailbox-conf.c (mailbox_conf_set_values),
	(update_imap_mailbox), (create_imap_mailbox_dialog):
	* src/main-window.c (bw_create_index_widget),
	(new_message_activated), (balsa_window_new),
	(bw_enable_mailbox_menus), (bw_enable_message_menus),
	(bw_enable_edit_menus), (balsa_window_enable_continue),
	(bw_set_threading_menu), (bw_select_part_cb),
	(bw_send_msg_window_destroy_cb), (update_view_menu):
	* src/main.c (periodic_expunge_cb):
	* src/message-window.c:
	* src/pref-manager.c:
	* src/save-restore.c (config_global_load), (config_save):
	* src/sendmsg-window.c (update_bsmsg_identity), (add_attachment),
	(create_info_pane), (setup_headers_from_identity),
	(sendmsg_window_set_field), (bsmsg2message),
	(sw_page_setup_activated), (check_readiness),
	(sw_reply_to_change_state), (sw_gpg_helper),
	(sw_gpg_mode_change_state), (init_menus),
	(bsmsg_update_gpg_ui_on_ident_change), (sendmsg_window_continue):
	* src/sendmsg-window.h:

2016-06-05  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Install gtksourceview helper files in the new folder.

	* configure.ac: fix BUILD_WITH_GTKSOURCEVIEW.

2016-06-05  Albrecht Dreß

	As Webkit does not have a method to convert html to text,
	we cannot quote html-only messages.
	As a workaround, try to use html2text.

	* configure.ac: detect an html-to-text-or-markdown filter;
	* libbalsa/html.c (html2text), (libbalsa_html_to_string):
	  use it.

2016-06-04  Albrecht Dreß

	Force proper icon sizes

	* libbalsa/files.c (libbalsa_icon_finder): force proper icon
	sizes (e.g. in the message structure view).

2016-06-04  Albrecht Dreß

	We always use gtksourceview-3.0

	* Makefile.am: store helper files in a properly named folder;
	* configure.ac: clean up setting the #define;
	* libbalsa/libbalsa.c (libbalsa_source_view_new): clean up, use
	  proper helper files folder;
	* src/balsa-mime-widget-text.c (create_text_widget): clean up;
	* src/sendmsg-window.c (create_text_area): ditto.

2016-06-04  Albrecht Dreß

	Delete the Gtkhtml2 code

	* libbalsa/html.c (libbalsa_html_print): delete the Gtkhtml2 code.

2016-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* configure.ac: restore AC_SUBST(GLIB_GENMARSHAL).

2016-05-31  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build with builddir != srcdir

	* autogen.sh: chdir to srcdir to create configure, then back to
	  builddir to use it.
	* libbalsa/imap/Makefile.am: provide path to
	  libimap-marshal.list.

2016-05-31  Albrecht Dreß

	Reduce the code complexity (in particular conditional parts)
	by weeding out deprecated stuff.

	* configure.ac: apply the aforementioned simplifications
	* libbalsa/filter-funcs.c, libbalsa/filter-private.h, libbalsa/mime.c,
	  libbalsa/misc.h, src/balsa-app.c, src/balsa-app.h,
	  src/balsa-print-object-text.c, src/quote-color.c, src/quote-color.h,
	  src/sendmsg-window.c, src/spell-check.c: always use GRegex
	* libbalsa/gmime-multipart-crypt.c, libbalsa/gmime-stream-gio.c,
	  libbalsa/mailbox_mbox.c: drop conditional code for gmime < 2.6
	* libbalsa/html.h: remove hack for Gtkhtml 2
	* libbalsa/libbalsa.c, libbalsa/libbalsa.h: use GDateTime,
	  simplify API of libbalsa_date_to_utf8()
	* libbalsa/mailbox.c, libbalsa/message.h, libbalsa/rfc3156.c,
	  src/balsa-mime-widget-vcalendar.c, src/balsa-print-object-text.c:
	  use simplified libbalsa_date_to_utf8() API
	* libbalsa/missing.h, libbalsa/missing_time.c: remove localtime_r,
	  gmtime_r implementations
	* libbalsa/rfc2445.c: use ISO 8601 GTimeVal and GDateTime functions
	* libbalsa/send.c: use GTimeZone functions
	* src/filter-edit-callbacks.c: use GDateTime functions

2016-05-27  Albrecht Dreß

	Fix accessing MBox files > 2 GByte

	* libbalsa/mailbox_mbox.c (lbm_mbox_check_file),
	(lbm_mbox_newline), (lbm_mbox_add_message): use 64-bit sizes;
	* libbalsa/send.c (libbalsa_message_cb): comment about file size
	limitation.

2016-05-24  Albrecht Dreß

	Use G_{BEGIN,END}_DECLS

	* libbalsa/gmime-application-pkcs7.h:
	* libbalsa/gmime-gpgme-signature.h:
	* libbalsa/gmime-multipart-crypt.h:
	* libbalsa/gmime-part-rfc2440.h:
	* libbalsa/identity.h:
	* libbalsa/libbalsa-gpgme-cb.h:
	* libbalsa/libbalsa-gpgme.h:
	* libinit_balsa/assistant_init.h:
	* libinit_balsa/assistant_page_defclient.h:
	* libinit_balsa/assistant_page_directory.h:
	* libinit_balsa/assistant_page_finish.h:
	* libinit_balsa/assistant_page_user.h:
	* libinit_balsa/assistant_page_welcome.h:
	* src/balsa-index.h:
	* src/balsa-message.h:
	* src/balsa-mime-widget-callbacks.h:
	* src/balsa-mime-widget-crypto.h:
	* src/balsa-mime-widget-image.h:
	* src/balsa-mime-widget-message.h:
	* src/balsa-mime-widget-multipart.h:
	* src/balsa-mime-widget-text.h:
	* src/balsa-mime-widget.h:
	* src/filter-run.h:
	* src/print.h:
	* src/quote-color.h:
	* src/sendmsg-window.h:
	* src/spell-check.h:

2016-05-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap_search.c (imap_write_key_date): drop
	redundant glib version check.

2016-05-20  Albrecht Dreß

	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget): pack the GtkExpander in a
	GtkBox, to work around a Gtk bug that limits the mouse-sensitive
	area of the expander when the border-width is set.

2016-05-20  Albrecht Dreß

	* libbalsa/gmime-multipart-crypt.c (g_mime_gpgme_mps_sign):
	refactor;
	(g_mime_gpgme_mpe_encrypt): ditto, removing leak.

2016-05-20  Albrecht Dreß

	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget): remove confusing signature
	info.

2016-05-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-message.c (add_header_gchar),
	(add_header_sigstate): use GtkGrid API better.

2016-05-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use top line of digital signature for GtkExpander label instead
	of "Digital Signature"

	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget):

2016-05-16  Albrecht Dreß

	Make SSL mandatory

	* libbalsa/imap/md5-utils.c: remove.
	* libbalsa/imap/md5-utils.h: ditto.

2016-05-16  Albrecht Dreß

	With this patch, Balsa will pop up the key selection dialogue
	containing /all/ keys which may be used for encryption in this
	case.  The user can either select a key, or cancel the
	operation.  This basically is the same behaviour as of
	Thunderbird.

	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key),
	(key_selection_changed_cb), (sort_iter_cmp_fn):
	* libbalsa/libbalsa-gpgme-cb.h:
	* libbalsa/libbalsa-gpgme.c (get_key_from_name), (get_pubkey),
	(gpgme_add_signer), (gpgme_build_recipients):
	* libbalsa/libbalsa-gpgme.h:

2016-05-16  Albrecht Dreß

	* libbalsa/gmime-gpgme-signature.c
	(libbalsa_cert_subject_readable):
	This trivial patch makes sure that the GPG key or S/MIME
	certificate subject string as returned by
	libbalsa_cert_subject_readable() is utf8-clean.

2016-03-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_display_new_mail_notification):
	  duplicate some lines of code to simplify conditional
	  compilation.

2016-03-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/imap-handle.c (imap_message_new): use whitespace
	  to resolve ambiguous assignment.

2016-03-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa-gpgme-cb.h: remove Emacs hack.

2016-03-12  Albrecht Dreß

	* Bug fixes: due to broken assignments in libbalsa_gpgme_init(),
	  the callbacks for selecting a GnuPG key from a list
	  or for accepting low-trust keys individually are never called.
	  When selecting a key, only the first subkey is checked,
	  instead of all potential ones.
	* Message improvements: When checking a GnuPG signed message
	  where the key has expired, Balsa displays a
	  "Signature could not be checked" error
	  and an informational message containg the "real" result.
	  The patch removes the (wrong) former message.
	* Code cleanups: change the return value of all crypto-related
	  functions which return an essentially bool value to gboolean
	  instead of (g)int, remove hacks for Emacs (still someone using it?)
	  in header files which confuse almost all other tools,
	  fix a few minor glitches, and remove a few unused statements.

	* libbalsa-gpgme.c: fix callback assignment bug,
	  implement new function to verify all subkeys of a key
	* rfc3156.c: remove confusing error message
	* gmime-application-pkcs7.h, gmime-application-pkcs7.c,
	  gmime-multipart-crypt.c, gmime-multipart-crypt.h,
	  gmime-part-rfc2440.c, gmime-part-rfc2440.h, libbalsa-gpgme.c,
	  libbalsa-gpgme.h: change function return types to gboolean
	* rfc3156.c: used changed api
	* gmime-gpgme-signature.h, gmime-multipart-crypt.h,
	  gmime-part-rfc2440.h, libbalsa-gpgme.h: remove Emacs hack
	* gmime-multipart-crypt.c: reorder statements to avoid duplicated ones
	  (g_mime_gpgme_mps_sign)
	* gmime-multipart-crypt.c, rfc3156.c: use error checking macro instead of cast
	* libbalsa-gpgme.c: remove assignments of variables which are never used
	* send.c, smtp-server.c, src/filter-edit-callbacks.c: remove unused statements

2016-02-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build without libnotify

	* src/main-window.c (bw_is_active_notify): fix conditional code.

2016-02-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Gtk 3.20 deprecation cleanup

	* libbalsa/mime.c (is_in_url): gtk_text_iter_begins_tag is
	deprecated;
	* src/balsa-mime-widget-text.c (text_view_url_popup),
	(prepare_url_offsets): ditto; also gdk_display_get_device_manager
	is deprecated;
	* src/main-window.c (bw_notebook_label_new):
	gtk_button_set_focus_on_click is deprecated.

2016-02-15  Albrecht Dreß

	Build with Gtk+ < 3.12

	* configure.ac: define BALSA_DIALOG_FLAGS as either
	GTK_DIALOG_USE_HEADER_BAR or 0.
	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	(libbalsa_identity_config_dialog):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key),
	(get_passphrase_real):
	* libbalsa/libbalsa.c (ask_cert_real):
	* libbalsa/send.c (ensure_send_progress_dialog):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* src/address-book-config.c (create_generic_dialog):
	* src/balsa-app.c (ask_password_real):
	* src/balsa-index.c (balsa_index_pipe):
	* src/balsa-mblist.c (bmbl_mru_show_tree):
	* src/filter-edit-callbacks.c (fe_edit_condition):
	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/folder-conf.c (folder_conf_imap_node), (browse_button_cb),
	(subfolder_conf_clicked_ok), (folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/mailbox-conf.c (create_generic_dialog):
	* src/main-window.c (ensure_check_mail_dialog), (bw_find_real):
	* src/pref-manager.c (open_preferences_manager):
	* src/sendmsg-window.c (sw_get_user_codeset),
	(quote_parts_select_dlg), (subject_not_empty),
	(bsmsg_check_format_compatibility):
	* src/store-address.c (store_address_dialog):
	* src/toolbar-prefs.c (customize_dialog_cb): use it.

2015-09-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_ctx_menu_save): use only the basename of an
	attachment's filename.

2015-09-21  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/body.c (libbalsa_message_body_save_temporary): use
	only the basename of an attachment's filename.

2015-07-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix the image-loading option for HTML message parts

	* libbalsa/html.c (lbh_navigation_policy_decision):
	do not hide the info-bar unless we are loading an actual image;
	(lbh_resource_notify_response_cb): new function--we do not know
	what we are loading until we have an actual response;
	(lbh_resource_load_started_cb): just connect to the
	"notify::response" signal;
	(libbalsa_html_new): add debugging.

2015-06-07  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix bgo #750516 (pachoramos1@gmail.com)

	* balsa.desktop.in.in: use the same macro TOOLKIT_CATEGORIES as
	in balsa-mailto-handler.desktop.in.in.
	* configure.ac: actually define said macro.

2015-05-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Silence some autoconf and automake complaints.

	* configure.ac: silence autoconf.
	* libbalsa/imap/Makefile.am: silence automake.
	* libinit_balsa/Makefile.am: ditto.

2015-04-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/sendmsg-window.c (delete_handler),
	(bsmsg_check_format_compatibility): mark strings for
	translation.

2015-04-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/information-dialog.c (balsa_information_list): make the
	"Close" button use GTK_RESPONSE_CANCEL, to move the button
	to the left.

2015-04-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/sendmsg-window.c (quote_parts_select_dlg),
	(collect_for_quote), (quote_body): add a cancel button and
	provide a parent for the quote-parts dialog.

2015-03-30  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clean up store-address dialog

	* src/store-address.c (store_address_book_frame): add a label to
	explain address-book combo-box;
	(store_address_note_frame): add space after header name;
	(store_address_add_address): increase notebook tab label to 15
	characters;
	(store_address_add_lbaddress): ditto.

2015-03-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget): put digital signature info
	in a GtkExpander.

2015-03-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c: do not crash when current part is changed
	while the find-bar is showing.

2015-03-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/store-address.c (store_address_dialog): grab the keyboard
	focus to the default button, "OK", instead of the address book
	combo-box.

2015-03-26  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/store-address.c (balsa_store_address_from_messages): clean
	up code;
	(store_address_response): drop response for "save this address
	and keep the dialog open";
	(store_address_dialog): use header bar, and change buttons to
	standard OK/Cancel;
	(store_address_book_frame): do not put a GtkFrame around the
	address-book combo-box;
	(store_address_note_frame): do not put a GtkFrame around the
	address notebook.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Do not use header bar in GtkMessageDialog, it does nothing

	* libbalsa/identity.c (delete_ident_cb):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_accept_low_trust_key):
	* libbalsa/libbalsa.c (ask_timeout_real):
	* libbalsa/rfc3156.c (check_gpg_child):
	* src/ab-main.c (ab_warning):
	* src/balsa-message.c:
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_ctx_menu_save):
	* src/folder-conf.c (folder_conf_delete):
	* src/information-dialog.c (balsa_information_dialog):

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/sendmsg-window.c (sw_get_user_codeset),
	(quote_parts_select_dlg), (bsmsg_check_format_compatibility):
	use header bars in dialogs.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/pref-manager.c (open_preferences_manager): use a header
	bar.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (ensure_check_mail_dialog), (bw_find_real):
	use header bars in dialogs.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/mailbox-conf.c (create_local_mailbox_dialog): use
	GTK_RESPONSE_CANCEL instead of CLOSE;
	(create_generic_dialog): use header bar.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/information-dialog.c (balsa_information_dialog),
	(balsa_information_list): use header bars in dialogs.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/folder-conf.c (folder_conf_imap_node), (browse_button_cb),
	(subfolder_conf_clicked_ok), (folder_conf_imap_sub_node),
	(folder_conf_delete): use header bars in dialogs.

2015-03-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/filter-edit-callbacks.c (fe_edit_condition): use header
	bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_ctx_menu_save): use header bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/balsa-message.c: use header bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/balsa-mblist.c (bmbl_mru_show_tree): use header bar in
	dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/balsa-index.c (balsa_index_pipe): use header bar in
	dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/balsa-app.c (ask_password_real): use header bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/address-book-config.c (create_generic_dialog): use header
	bar in all dialogs.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-window.c (balsa_ab_window_new): avoid multiple dynamic
	casts.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-window.c (balsa_ab_window_new): drop redundant dynamic
	casts to GtkWidget

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/ab-window.c (balsa_ab_window_new): use header bar in
	dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* src/ab-main.c (ab_warning): use header bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog): use a
	header bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* libbalsa/send.c (ensure_send_progress_dialog): use a header
	bar in dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bar

	* libbalsa/rfc3156.c (check_gpg_child): use a header bar in
	dialog.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bars

	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key),
	(lb_gpgme_accept_low_trust_key), (get_passphrase_real): use
	header bars in dialogs.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use GtkDialog API and GTK_DIALOG_* flags instead of g_object_new
	and GObject properties

	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/sendmsg-window.c (subject_not_empty):
	* src/toolbar-prefs.c (customize_dialog_cb):

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/libbalsa.c (ask_cert_real), (ask_timeout_real): use
	header bars.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/misc.c (libbalsa_create_grid_entry): set hexpand on
	the entry.

2015-03-24  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use header bars in identity dialogs

	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	(delete_ident_cb), (libbalsa_identity_config_dialog): use header
	bars.
	(append_ident_notebook_page), (setup_ident_frame): remove
	redundant argument.

2015-03-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Set minimum vertical space for recipient list

	* src/sendmsg-window.c (create_email_entry): try to give the
	recipient list around two lines of space.

2015-03-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup--I missed one :(

	* src/balsa-mime-widget-text.c (fill_text_buf_cited):
	GtkTextTag:foreground-gdk is deprecated.

2015-03-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-mime-widget-text.c (quote_tag):
	GtkTextTag:foreground-gdk is deprecated.

2015-03-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-app.c (balsa_app_init):
	GtkSettings:gtk-fallback-icon-theme is deprecated.

2015-03-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use a transient parent and a header bar in the no-subject dialog

	* src/sendmsg-window.c (subject_not_empty): use a transient parent
	and a header bar.

2015-03-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use a transient parent for filter dialogs

	* libbalsa/filter.h: add parent window to filters_edit_dialog
	and filters_export_dialog API.
	* src/filter-edit-dialog.c (filters_edit_dialog): use it, and
	add a header bar.
	* src/filter-export-dialog.c (filters_export_dialog): ditto.
	* src/main-window.c (filters_activated),
	(export_filters_activated): pass the main window as the
	transient parent.

2015-03-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use a transient parent for the BalsaFilterRunDialog, and manage
	sensitivity of various buttons

	* libbalsa/filter.h: add parent window to filters_run_dialog
	API.
	* src/filter-run-dialog.c (balsa_filter_run_dialog_new): use it,
	and add a header bar.
	(available_list_selection_changed),
	(selected_list_selection_changed): callbacks for selection
	"changed" signals, so we can set the sensitivity of various
	buttons.
	(balsa_filter_run_dialog_init): connect to the signals, and save
	the buttons in BalsaFilterRunDialog.
	(filters_run_dialog): new API.
	* src/filter-run.h: new members in BalsaFilterRunDialog for the
	buttons.
	* src/mailbox-node.c (mb_filter_cb): pass the main window as the
	transient parent for the dialog.
	* src/main-window.c (select_filters_activated): ditto.

2015-03-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use a header bar in the toolbar editor

	* src/toolbar-prefs.c (customize_dialog_cb): use a header bar.
	(create_toolbar_page): add tooltips to direction buttons.

2015-03-14  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Abandon buttons with both an icon and text, and use a symbolic
	icon where we keep the icon.

	* src/balsa-app.c: remove balsa_stock_button_with_label.
	* src/balsa-app.h: ditto.
	* src/ab-window.c (balsa_ab_window_init): drop icons.
	* src/filter-edit-dialog.c (build_left_side),
	(build_right_side): ditto.
	* src/filter-run-dialog.c (balsa_filter_run_dialog_init): drop
	icons from "Apply" buttons; drop labels from direction buttons.
	* src/spell-check.c (balsa_spell_check_init): drop icons.
	* src/toolbar-prefs.c (create_toolbar_page): drop labels from
	direction buttons.

2015-03-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-window.c (balsa_ab_window_init): use
	gtk_button_new_from_icon_name for a button with only an icon,
	no text.

2015-03-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-message.c: use gtk_button_new_from_icon_name for a
	button with only an icon, no text.

2015-03-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use symbolic icons

	* src/balsa-icons.c (balsa_register_pixbufs): use
	window-close-symbolic instead of window-close.
	* src/message-window.c: ditto.
	* src/sendmsg-window.c: ditto.
	* src/toolbar-factory.c: ditto.
	* src/main-window.c (bw_notebook_label_new): ditto, and give up
	on making close-button small--it's not working.

2015-03-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Clean up spell checker

	* src/spell-check.c (balsa_spell_check_new): set the window
	title as an object property;
	(balsa_spell_check_new_with_text): use static cast instead of
	dynamic cast; indentation;
	(balsa_spell_check_init): title is now set as an object
	property.

2015-03-12  Peter Bloomfield  <pbloomfield@bellsouth.net>

	BalsaSpellCheck no longer uses any properties of GtkDialog, so
	instead make it a direct subclass of GtkWindow

	* src/sendmsg-window.c (sw_spell_check_activated),
	(sw_spell_check_weak_notify): weak-ref the spell checker
	instead of waiting for the "response" signal.
	* src/spell-check.c (balsa_spell_check_class_init),
	(balsa_spell_check_new), (balsa_spell_check_init),
	(balsa_spell_check_start), (balsa_spell_check_destroy),
	(spch_finish): make BalsaSpellCheck a subclass of GtkWindow,
	instead of GtkDialog.

2015-03-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Avoid critical message from GtkSourceView

	* src/spell-check.c (balsa_spell_check_start), (spch_finish):
	save the current state in a GtkSourceBuffer when we are using
	GtkSourceview.

2015-03-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Build with the home-grown spell checker

	* src/spell-check.c (balsa_spell_check_init): put button grid in
	the content-area, now that accessing the action-area is
	deprecated.

2015-03-09  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-icons.c (balsa_register_pixbufs): use
	freedesktop.org standard window-close icon instead of gtk-close
	<https://specifications.freedesktop.org/icon-naming-spec/latest/>

2015-03-04  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Respect the "All headers" option on the "View" menu (Helmut
	Jarausch,
	<https://mail.gnome.org/archives/balsa-list/2015-March/msg00001.html>)

	* src/balsa-mime-widget-message.c
	(balsa_mime_widget_message_set_headers),
	(balsa_mime_widget_message_set_headers_d): set the
	show-all-headers parameter correctly.

2015-03-03  Albrecht Dreß

	Improve printing of text/rfc822-headers parts

	* src/balsa-print-object-header.c
	(balsa_print_object_header_new_real),
	(balsa_print_object_header_from_message),
	(balsa_print_object_header_from_body), (header_add_string),
	(header_add_list): implement and respect new parameter gboolean
	print_all_headers.

2015-03-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove unnecessary parameter

	* src/balsa-mime-widget-message.c (add_header_gchar),
	(add_header_address_list), (bmw_message_set_headers_d): we do
	not need to pass the BalsaMessage.

2015-03-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Show all headers in a text/rfc822-headers part

	* src/balsa-mime-widget-message.c (add_header_gchar): new
	parameter gboolean show_all_headers;
	(balsa_mime_widget_new_message),
	(add_header_address_list),
	(bmw_message_set_headers_d), (bmw_message_set_headers),
	(balsa_mime_widget_message_set_headers),
	(balsa_mime_widget_message_set_headers_d): use it.

2015-03-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Provide a parent window for the send-progress dialog

	* libbalsa/send.c (ensure_send_progress_dialog),
	(libbalsa_message_send), (lbs_process_queue),
	(libbalsa_process_queue): new parameter GtkWindow *parent.
	* libbalsa/send.h: ditto.
	* src/balsa-message.c: use it.
	* src/balsa-mime-widget-message.c (extbody_send_mail): ditto.
	* src/balsa-mime-widget-vcalendar.c (vevent_reply): ditto.
	* src/main-window.c (send_queued_mail_activated): ditto.
	* src/sendmsg-window.c (send_message_handler): ditto.

2015-03-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix alignment of text/rfc822-headers parts widget

	* src/balsa-mime-widget-message.c
	(balsa_mime_widget_new_message): do not override default
	settings of horizontal align and expand.

2015-03-01  Albrecht Dreß

	Display and print text/rfc822-headers parts

	* libbalsa/body.[hc]: parse text/rfc822-headers parts,
	and store them in the body structure
	* src/balsa-mime-widget.c, src/balsa-mime-widget-message.c:
	display a text/rfc822-headers part
	* src/balsa-print-object.c: print a text/rfc822-headers part

2015-03-01  Albrecht Dreß

	Obfuscate the message-id header

	* libbalsa/send.c (libbalsa_set_message_id): obfuscate the
	message-id header (in response to bgo #738155).

2015-03-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Use pan-down-symbolic instead of balsa-drop-down

	* images/16x16/Makefile.am: balsa-drop-down has been removed
	* src/balsa-icons.c (balsa_register_pixmaps): change to
	pan-down-symbolic

2015-03-01  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* images/16x16/balsa-drop-down.png: remove it.

2015-02-27  Albrecht Dreß

	Enable the request of Delivery Status Notifications

	* libbalsa/identity.[hc]: define default DSN setting, load and store it
	* libbalsa/identity.c, src/balsa-index.c, src/filter-edit-callbacks.c:
	fix clang nagging about a misplaced 'static const' qualifier
	* libbalsa/message.h: add request dsn flag
	* libbalsa/send.c: instruct libesmtp to request the DSN
	* libbalsa/send.c: pass const parameter as const
	* src/balsa-icons.c: add braces around macro
	* src/sendmsg-window.[hc]: add GUI stuff for requesting the DSN

2015-02-23  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Actually change spell-checking language

	* src/sendmsg-window.c (sw_spell_detach), (sw_spell_attach):
	detach any current spell-checker before attaching a new one.

2015-02-22  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some spacing issues

	* src/toolbar-prefs.c (customize_dialog_cb): allocate extra
	vertical space to the available and current toolbar item lists;
	(create_toolbar_page): separate the 'restore' and 'current'
	buttons by minimum 5px.

2015-02-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (bw_enable_mailbox_menus): suppress cppcheck
	null pointer error.

2015-02-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-main.c (address_book_change_state): do not crash after
	deleting address book.

2015-02-20  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/application-helpers.c (libbalsa_window_get_menu_bar),
	(libbalsa_window_set_accels): remove old accel group before
	setting new one.

2015-02-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Make the address book editor accelerators actually work

	* libbalsa/application-helpers.c (libbalsa_window_set_accels):
	new helper;
	(libbalsa_window_get_menu_bar) use it.
	* libbalsa/application-helpers.h: export it.
	* src/ab-main.c (set_address_book_menu_items): use it.

2015-02-19  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/address-book-text.c (lbab_text_group_address):
	compile with MAKE_GROUP_BY_ORGANIZATION defined.

2015-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/toolbar-prefs.c (customize_dialog_cb), (standard_button_cb),
	(create_toolbar_page), (tp_page_refresh_available),
	(tp_page_add_selected), (tp_page_remove_selected): conditionally
	compiled debug code to check for unimplemented action names.

2015-02-18  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix broken toolbar items

	* src/message-window.c: correct action names.
	* src/main-window.c (show_all_headers_change_state),
	(show_preview_pane_change_state), (bw_add_win_action_entries):
	ditto, and implement missing actions.

2015-02-18  Albrecht Dreß

	* src/balsa-mime-widget-text.c (create_text_widget): allow for
	GtkSourceView versions greater than 2.

2015-02-17  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Restore toolbar editing

	* src/main-window.c (balsa_window_get_toolbar_model),
	(bw_add_app_action_entries), (bw_add_win_action_entries),
	(balsa_window_add_action_entries), (bw_set_menus),
	(balsa_window_new):
	* src/main-window.h:
	* src/message-window.c (message_window_get_toolbar_model),
	(message_window_add_action_entries), (message_window_new):
	* src/message-window.h:
	* src/sendmsg-window.c (sendmsg_window_get_toolbar_model),
	(sendmsg_window_add_action_entries), (sendmsg_window_new):
	* src/sendmsg-window.h:
	* src/toolbar-factory.c (balsa_toolbar_model_finalize),
	(balsa_toolbar_model_init), (balsa_toolbar_remove_all),
	(tm_load_model), (tm_save_model), (balsa_toolbar_model_new),
	(tm_add_action), (balsa_toolbar_model_add_entries),
	(balsa_toolbar_model_get_current),
	(balsa_toolbar_model_is_standard),
	(balsa_toolbar_model_insert_icon), (balsa_toolbar_model_clear),
	(tm_has_second_line), (tm_populate), (tm_changed_cb),
	(tm_toolbar_weak_notify), (balsa_toolbar_new):
	* src/toolbar-factory.h:
	* src/toolbar-prefs.c (customize_dialog_cb), (wrap_toggled_cb),
	(create_toolbar_page), (tp_find_icon), (tp_page_refresh_available),
	(tp_page_refresh_current), (tp_store_set), (replace_nl_with_space):

2015-02-16  Albrecht Dreß

	Disable SSLv3, with an option in the code to override, and
	enable TLSv1.1 and 1.2

	* libbalsa/imap/imap-tls.c (imap_create_ssl):

2015-02-16  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix some alignment issues

	* src/pref-manager.c (open_preferences_manager), (set_align),
	(attach_entry_full), (attach_information_menu), (attach_label),
	(checking_group), (quoted_group), (mdn_group), (main_window_group),
	(threading_group), (add_pref_menu), (deleting_messages_group),
	(message_window_group), (folder_scanning_group),
	(create_mdn_reply_menu), (pm_group_new), (pm_combo_box_new):
	revert to deprecated GtkMisc stuff until gtk_label_set_{xy}align
	is available.

2015-02-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/sendmsg-window.c (create_lang_menu): do not leak language
	names.

2015-02-15  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* libbalsa/imap/auth-cram.c (imap_auth_cram): cosmetic change to
	length of copy in strncat.

2015-02-15  Albrecht Dreß

	Build with clang (ver. LLVM 3.4)

	* libbalsa/files.c: remove unused assignment (detected by cppcheck)
	* libbalsa/imap/auth-cram.c: fix possible writing behind buffer end
	* libbalsa/imap/imap-commands.c: remove check for a value >= 0 for an
	unsigned value
	* libbalsa/imap/imap-handle.c, libbalsa/mailbox_imap.c: add empty
	'if' body
	* libbalsa/mailbox_imap.c, libbalsa/send.c, libbalsa/smtp-server.c:
	fix enum mismatch
	* libbalsa/mailbox_mbox.c: don't assign a signed value to an unsigned
	* libbalsa/message.h, libbalsa/mailbox_mh.c: introduce proper
	"invalid" flag (clang optimises the current solution away,
	as it can never be true)

2015-02-11  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Port BalsaMessage from GtkNotebook to GtkStack

	* src/balsa-message.c (balsa_message_get_type): BalsaMessage now
	subclasses GtkBox instead of GtkNotebook.
	* src/balsa-message.h: ditto.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/sendmsg-window.c (create_email_or_string_entry),
	(create_text_area):
	gtk_widget_override_font is deprecated, use CSS instead.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-mime-widget-text.c (draw_cite_bar_real):
	gtk_widget_override_color is deprecated, use CSS instead.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-mime-widget-text.c (bm_modify_font_from_string):
	gtk_widget_override_font is deprecated, use CSS instead.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-mime-widget-image.c
	(balsa_mime_widget_image_dispose): fix typo.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-mime-widget-message.c (add_header_gchar):
	gtk_widget_override_font is deprecated, use CSS instead.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-mime-widget-image.c (balsa_mime_widget_image_dispose),
	(balsa_mime_widget_new_image):
	gtk_style_context_get_background_color and
	gtk_widget_override_background_color are deprecated; when we
	replace the GtkNotebook with a GtkStack, we should get
	consistent backgrounds again.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* src/balsa-message.c (balsa_message_init):
	gtk_style_context_get_background_color and
	gtk_widget_override_background_color are deprecated; when we
	replace the GtkNotebook with a GtkStack, we should get
	consistent backgrounds again.

2015-02-10  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* libbalsa/source-viewer.c (libbalsa_show_message_source):
	gtk_widget_override_font is deprecated, use CSS instead.

2015-02-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/main-window.c (balsa_window_new): vertically center the
	new skinny progress bar.

2015-02-08  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Allow for quoted strings in vcal items

	* libbalsa/rfc2445.c (vcal_strchr): replacement for strchr that
	ignores matches in quoted strings;
	(vcal_strsplit_at_char): replacement for g_strsplit that uses
	vcal_strchr;
	(libbalsa_vcal_new_from_body): use them.

2015-02-03  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Simplify BalsaMailboxConfView destruction

	* src/mailbox-conf.c (mailbox_conf_view_new_full): use g_free as
	a weak-ref-notify instead of a wrapper.

2015-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Simplify notebook-label destruction

	* src/main-window.c (bw_notebook_label_new): use
	g_signal_connect_object to handle destruction of label, instead
	of a weak-ref.

2015-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Close compose windows on exit

	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler),
	(sendmsg_window_new): weak-ref the main-window and close any
	compose window that is still open.

2015-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Prune some dead code

	* src/balsa-message.c (balsa_message_init), (balsa_message_new):
	close-with-msg is unused.
	* src/balsa-message.h: remove it, and its setter.
	* src/message-window.c (message_window_idle_handler),
	(mw_set_selected): setter has gone away.

2015-02-02  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Compose window may outlive main window

	* src/main-window.c (bw_send_msg_window_destroy_cb): check for
	NULL main-window.
	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler): ditto.

2015-01-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Possible fix for RedHat bug #1050738 (Geoff Leach)

	* src/balsa-index.c (bndx_compose_foreach): check for NULL
	compose window.

2015-01-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Possible fix for RedHat bug #831889 (Geoff Leach)

	* src/sendmsg-window.c (collect_for_quote): check for NULL root.

2015-01-29  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Possible fix for RedHat bug #1097953 (Geoff Leach)

	* src/main-window.c (balsa_window_class_init), (balsa_window_new),
	(bw_close_mailbox_on_timer): use balsa_window_real_close_mbnode
	to close the mailbox instead of directly removing the notebook page.
	* src/message-window.c (destroy_message_window),
	(message_window_new): disconnect mailbox signals more carefully.

2015-01-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* balsa.appdata.xml: new appdata file

2015-01-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/balsa-icons.c (load_balsa_pixmap),
	(balsa_register_pixmaps): prune much pointless code.
	* src/sendmsg-window.c (subject_not_empty),
	(check_suggest_encryption): fix broken icons.
	* src/toolbar-factory.c (balsa_toolbar_new): ditto.

2015-01-28  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-main.c (bab_cleanup), (set_address_book_menu_items),
	(get_main_menu), (bab_window_list_new), (bab_window_new),
	(ab_warning), (bab_set_intial_address_book), (main): streamline
	code.

2015-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Fix bug #741805 (Anders Jonsson)

	* help/C/balsa.sgml: fix spelling of "Portuguese".
	* src/sendmsg-window.c: ditto.

2015-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Deprecation cleanup

	* .gitignore: add "compile"
	* configure.ac: use webkit2gtk-4.0
	* libbalsa/address.c (libbalsa_address_get_edit_widget):
	* libbalsa/html.c (lbh_navigation_policy_decision),
	(lbh_new_window_policy_decision):
	* libbalsa/imap/imap-handle.c:
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key):
	* libbalsa/send.c:
	* libbalsa/url.c:
	* src/address-book-config.c (add_radio_buttons),
	(create_externq_dialog):
	* src/balsa-app.c (balsa_stock_button_with_label):
	* src/balsa-icons.c (load_balsa_pixmap):
	* src/balsa-message.c (bm_find_bar_new), (balsa_message_init):
	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget):
	* src/balsa-mime-widget-message.c (add_header_gchar),
	(add_header_sigstate):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar):
	* src/filter-edit-dialog.c (build_action_page):
	* src/main-window.c (bw_window_state_event_cb),
	(bw_is_active_notify), (bw_notebook_label_new),
	(bw_display_new_mail_notification):
	* src/main-window.h:
	* src/pref-manager.c (attach_label), (checking_group),
	(quoted_group), (mdn_group), (main_window_group), (add_pref_menu),
	(deleting_messages_group), (folder_scanning_group), (pm_group_new):
	* src/print-gtk.c (message_prefs_widget):
	* src/sendmsg-window.c (create_email_or_string_entry),
	(sw_attachment_list), (quote_parts_select_dlg),
	(subject_not_empty), (check_suggest_encryption):

2015-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/ab-main.c (bab_load_cb), (bab_set_address_book),
	(address_book_change_state), (set_address_book_menu_items),
	(address_book_change), (file_new_vcard_activated),
	(file_new_extern_activated), (file_new_ldif_activated),
	(file_new_ldap_activated), (file_new_gpe_activated),
	(file_new_rubrica_activated), (file_properties_activated),
	(file_delete_activated), (file_quit_activated),
	(entry_new_activated), (entry_delete_activated),
	(help_about_activated), (get_main_menu),
	(list_selection_changed_cb), (list_row_activated_cb),
	(bab_get_filter_box), (bab_window_new), (main): port to
	GApplication and friends.
	* ui/Makefile.am: add ab-main.ui.

2015-01-27  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* ui/ab-main.ui: GtkBuilder description of address-book editor
	UI.

2014-01-28  Pawel Salek

	* src/spell-check.c: do not use deprecated icon names.

2014-01-25  Peter Bloomfield  <pbloomfield@bellsouth.net>

	Remove accelerators from app-menu; duplicate "new message",
	"address book", and "quit" on main-window's "file" menu.

	* src/main-window.c (bw_set_menus): duplicate "new message",
	"address book", and "quit" on main-window's "file" menu, with
	accelerators;
	* ui/main-window.ui: remove accelerators from app-menu.

2013-12-16  Albrecht Dreß

	* libbalsa/rfc3156.c (libbalsa_body_decrypt): tree view icons
	were handled differently for GPG and S/MIME.

2013-12-16  Albrecht Dreß

	Fix bgo #720443 (Lilith Bryant, dark141 at gmail dot com)

	* libbalsa/rfc3156.c (libbalsa_body_decrypt): trivial patch
	to fix the OL pk7 S/MIME issue.

2013-12-13  Peter Bloomfield

	Fix S/MIME sending and Outlook2007 reception; bgo #720423
	(Lilith Bryant, dark141 at gmail dot com)

	* libbalsa/rfc3156.c (libbalsa_message_body_protection):
	x-pkcs7-mime is synonymous with pkcs7-mime;
	(libbalsa_encrypt_mime_object): use pkcs7 instead of leaking it.
	* src/balsa-message.c (libbalsa_msg_try_decrypt):
	x-pkcs7-mime is synonymous with pkcs7-mime.

2013-09-20  Peter Bloomfield

	Disable GtkInfoBar workarounds

	* libbalsa/html.c (lbh_info_bar): disable GtkInfoBar workaround.
	* src/balsa-mime-widget-message.c (bm_header_widget_new): ditto.

2013-09-14  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bm_header_widget_new):
	replace GtkInfoBar with a simple GtkBox and a GtkButtonBox,
	because GtkInfoBar prevents the GtkLabel from wrapping (bgo
	#707093)

2013-08-30  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bm_header_widget_new): make
	sure buttons are arranged vertically; would not be an issue,
	except that GtkLabels are not wrapped in a GtkInfoBar (bgo
	#707093).

2013-08-30  Peter Bloomfield

	* libbalsa/html.c (lbh_info_bar): make sure buttons are arranged
	vertically.

2013-08-30  Peter Bloomfield

	* libbalsa/html.c (lbh_info_bar): break message string into
	three separate lines, to work around GtkInfoBar breakage (bgo
	#707093).

2013-08-16  Peter Bloomfield

	Deprecation cleanup

	* src/main-window.h:
	* src/message-window.h:
	* src/sendmsg-window.h:
	* src/toolbar-factory.c:
	* src/toolbar-factory.h:

2013-08-16  Peter Bloomfield

	* src/sendmsg-window.c (sw_close_activated): mark window as
	being destroyed;
	(sw_get_action): check for window being destroyed, and return
	NULL if so;
	(sw_action_set_enabled), (sw_action_get_enabled),
	(sw_action_set_active), (sw_action_get_active): check for NULL
	action.

2013-08-15  Peter Bloomfield

	* src/main-window.c (bw_get_action): wrapper for
	g_action_map_lookup_action;
	(bw_action_set_boolean), (bw_action_get_boolean),
	(bw_action_set_string), (bw_action_set_enabled),
	(hide_change_state), (balsa_window_new),
	(balsa_window_update_book_menus): use it;
	(bw_set_filter_menu): use g_simple_action_set_state, to avoid
	recursion;
	(update_view_menu): remove redundant call to
	balsa_message_set_wrap.

2013-08-14  Peter Bloomfield

	* src/main-window.c (hide_change_state), (bw_set_filter_menu),
	(bw_filter_to_int): initialize the hide-messages menu items
	with g_simple_action_set_state instead of g_action_change_state,
	which does not seem to work for these items.

2013-08-13  Peter Bloomfield

	* src/toolbar-factory.c (tm_toolbar_weak_notify): disconnect
	model's "changed" signal handler when toolbar is destroyed.

2013-08-13  Pawel Salek

	* src/sendmsg-window.c: compile without gpgme.

2013-08-13  Peter Bloomfield

	* src/sendmsg-window.c (sendmsg_window_continue): fix action
	name.

2013-08-13  Peter Bloomfield

	* src/sendmsg-window.c (bsmsg_setup_gpg_ui_by_mode): set gpg
	mode correctly.

2013-08-13  Peter Bloomfield

	* src/sendmsg-window.c (init_menus): add transition code to read
	old message header choices.

2013-08-10  Peter Bloomfield

	* src/main-window.c (bw_action_set_boolean): use
	g_action_change_state instead of g_simple_action_set_state, so
	that the state is actually changed (Carlos Franke).

2013-08-04  Pawel Salek

	* src/sendmsg-window.c: compile with GtkSourceview

2013-07-31  Peter Bloomfield

	Port compose window to GMenu and friends

	* src/sendmsg-window.c (delete_event_cb), (sw_close_activated),
	(destroy_event_cb), (sw_edit_activated),
	(sw_select_ident_activated), (sw_get_action),
	(sw_action_set_enabled), (sw_actions_set_enabled),
	(sw_action_get_enabled), (sw_action_set_active),
	(sw_action_get_active), (update_bsmsg_identity),
	(add_urlref_attachment), (sw_attach_file_activated),
	(sw_include_messages_activated), (sw_attach_messages_activated),
	(sw_can_undo_cb), (sw_can_redo_cb), (quote_parts_select_dlg),
	(sw_insert_sig_activated), (sw_quote_activated),
	(sendmsg_window_get_toolbar_model), (bsmsg_identities_changed_cb),
	(insert_initial_sig), (bsm_prepare_for_setup), (bsm_finish_setup),
	(set_cc_from_all_recipients), (decode_and_strdup),
	(sendmsg_window_process_url), (sw_attach_file),
	(sw_include_file_activated), (subject_not_empty),
	(check_suggest_encryption), (send_message_handler),
	(sw_toolbar_send_activated), (sw_send_activated),
	(sw_queue_activated), (message_postpone), (sw_postpone_activated),
	(sw_save_activated), (sw_page_setup_activated),
	(sw_print_activated), (sw_buffer_insert_text),
	(sw_buffer_set_undo), (sw_spell_attach), (sw_undo_activated),
	(sw_redo_activated), (sw_cut_activated), (sw_copy_activated),
	(sw_paste_activated), (sw_select_text_activated),
	(sw_wrap_body_activated), (sw_reflow_activated), (check_readiness),
	(sw_entry_helper), (sw_from_change_state),
	(sw_recips_change_state), (sw_reply_to_change_state),
	(sw_fcc_change_state), (sw_request_mdn_change_state),
	(sw_show_toolbar_change_state), (sw_flowed_change_state),
	(sw_send_html_change_state), (sw_gpg_helper),
	(sw_sign_change_state), (sw_encrypt_change_state),
	(sw_gpg_mode_change_state), (init_menus),
	(sw_spell_check_change_state), (sw_spell_check_activated),
	(lang_set_cb), (bsmsg_update_gpg_ui_on_ident_change),
	(bsmsg_setup_gpg_ui), (bsmsg_setup_gpg_ui_by_mode),
	(sw_menubar_foreach), (sendmsg_window_new),
	(sendmsg_window_compose), (sendmsg_window_compose_with_address),
	(sendmsg_window_reply), (sendmsg_window_reply_embedded),
	(sendmsg_window_forward), (sendmsg_window_continue):
	* src/sendmsg-window.h: add member ready-to-send.
	* src/toolbar-factory.c (tm_toolbar_weak_notify),
	(balsa_toolbar_new): drop GtkUIManager code.
	* src/toolbar-prefs.c (customize_dialog_cb): ditto.
	* ui/Makefile.am: add sendmsg-window.ui.

2013-07-31  Peter Bloomfield

	* ui/sendmsg-window.ui: new file with xml input for GtkBuilder.

2013-07-29  Peter Bloomfield

	Fix part of bug #704718 (Geoffrey Leach).

	* src/pref-manager.c (apply_prefs), (set_prefs): apply and set
	BalsaApplication::fatal_message.

2013-07-28  Peter Bloomfield

	* src/message-window.c (mw_reset_show_all_headers),
	(mw_set_buttons_sensitive), (mw_set_message),
	(message_window_move_message), (mw_mru_menu_cb),
	(mw_select_part_cb), (message_window_new): move code to
	eliminate local declarations.

2013-07-28  Peter Bloomfield

	* src/message-window.c: make message-window a
	GtkApplicationWindow, and port menus from GtkUIManager to
	GtkBuilder and from GtkAction to GAction.
	* src/toolbar-prefs.c: temporarily disable editing message-window
	toolbar.
	* ui/message-window.ui: new file.
	* ui/Makefile.am: add it.

2013-07-28  Peter Bloomfield

	* libbalsa/application-helpers.c (libbalsa_window_get_menu_bar):
	add callback-data argument;
	(libbalsa_window_add_accelerator): new public method;
	(libbalsa_radio_activated): common callback for the "activated"
	signal of a radio-GAction.
	* libbalsa/application-helpers.h: new API.
	* libbalsa/source-viewer.c (libbalsa_show_message_source): use
	new API.
	* src/main-window.c (bw_set_menus): ditto,

2013-07-23  Peter Bloomfield

	* src/main-window.c (bw_alt_n_cb), (bw_set_alt_bindings),
	(balsa_window_new): restore <alt>n key bindings to change
	mailbox tab.

2013-07-22  Peter Bloomfield

	* src/main-window.c (toolbars_activated), (identities_activated),
	(bw_set_menus): restore Settings submenu.

2013-07-22  Peter Bloomfield

	* src/toolbar-factory.c (tm_load_model): do not load stale
	options.

2013-07-22  Peter Bloomfield

	* src/main-window.c (bw_set_menus): use installed ui file.
	* ui/Makefile.am: install it.
	* ui/main-window.ui: new file.

2013-07-22  Peter Bloomfield

	Move GAction-toggled callback to application-helpers

	* libbalsa/application-helpers.c (libbalsa_window_get_menu_bar),
	(libbalsa_toggle_activated): install GAction-toggled callback.
	* libbalsa/application-helpers.h: declare it.
	* libbalsa/source-viewer.c: use it.
	* src/main-window.c (bw_set_menus): ditto.

2013-07-22  Peter Bloomfield

	Make main-window a GtkApplicationWindow, and port menus from
	GtkUIManager to GtkBuilder and from GtkAction to GAction

	* src/main-window.c (balsa_window_get_toolbar_model),
	(bw_action_set_boolean), (bw_action_get_boolean),
	(bw_action_set_string), (bw_action_set_enabled),
	(bw_app_action_set_enabled), (bw_actions_set_enabled),
	(toggle_activated), (radio_activated), (bw_show_or_hide_widget),
	(new_message_activated), (new_mbox_activated),
	(new_maildir_activated), (new_mh_activated),
	(new_imap_box_activated), (new_imap_folder_activated),
	(new_imap_subfolder_activated), (address_book_activated),
	(prefs_activated), (help_activated), (about_activated),
	(quit_activated), (continue_activated), (get_new_mail_activated),
	(send_queued_mail_activated), (send_and_receive_mail_activated),
	(page_setup_activated), (print_activated), (copy_activated),
	(select_all_activated), (select_thread_activated),
	(find_activated), (find_next_activated),
	(find_in_message_activated), (filters_activated),
	(export_filters_activated), (expand_all_activated),
	(collapse_all_activated), (zoom_in_activated),
	(zoom_out_activated), (zoom_normal_activated),
	(next_message_activated), (previous_message_activated),
	(next_unread_activated), (next_flagged_activated),
	(reset_filter_activated), (mailbox_select_all_activated),
	(mailbox_edit_activated), (mailbox_delete_activated),
	(mailbox_expunge_activated), (mailbox_close_activated),
	(empty_trash_activated), (select_filters_activated),
	(remove_duplicates_activated), (reply_activated),
	(reply_all_activated), (reply_group_activated),
	(forward_attached_activated), (forward_inline_activated),
	(pipe_activated), (next_part_activated), (previous_part_activated),
	(save_part_activated), (view_source_activated),
	(copy_message_activated), (select_text_activated),
	(move_to_trash_activated), (toggle_flag),
	(toggle_flagged_activated), (toggle_deleted_activated),
	(toggle_new_activated), (toggle_answered_activated),
	(store_address_activated), (show_mailbox_tree_change_state),
	(show_mailbox_tabs_change_state), (show_toolbar_change_state),
	(show_statusbar_change_state), (show_sos_bar_change_state),
	(wrap_change_state), (hide_change_state),
	(bw_reset_show_all_headers), (header_change_state),
	(threading_change_state), (bw_set_menus), (bw_enable_next_unread),
	(balsa_window_new), (bw_enable_expand_collapse),
	(bw_next_unread_mailbox), (bw_enable_mailbox_menus),
	(balsa_window_update_book_menus), (bw_enable_message_menus),
	(bw_enable_edit_menus), (bw_enable_view_menus),
	(enable_empty_trash), (balsa_window_enable_continue),
	(bw_enable_part_menu_items), (bw_set_threading_menu),
	(bw_set_filter_menu), (bw_filter_to_int),
	(bw_get_condition_from_int), (balsa_window_open_mbnode),
	(balsa_window_close_mbnode), (bw_notebook_label_style),
	(bw_mailbox_changed), (bw_notebook_label_notify),
	(bw_notebook_label_new), (bw_real_open_mbnode_idle_cb),
	(bw_real_open_mbnode_thread), (balsa_window_real_open_mbnode),
	(bw_focus_idle), (balsa_window_real_close_mbnode),
	(balsa_identities_changed), (bw_close_mailbox_on_timer),
	(balsa_window_destroy), (balsa_window_refresh),
	(bw_register_open_mailbox), (bw_unregister_open_mailbox),
	(bw_is_open_mailbox), (bw_check_mailbox_list),
	(bw_add_mbox_to_checklist), (bw_imap_check_test),
	(bw_progress_dialog_destroy_cb), (bw_progress_dialog_response_cb),
	(ensure_check_mail_dialog), (bw_mailbox_check),
	(check_new_messages_real), (bw_check_new_messages),
	(check_new_messages_count), (bw_check_messages_thread_idle_cb),
	(bw_check_messages_thread), (mail_progress_notify_cb),
	(send_progress_notify_cb),
	(bw_get_new_message_notification_string),
	(bw_display_new_mail_notification),
	(mw_mbox_change_connection_status),
	(bw_change_connection_status_idle),
	(balsa_window_find_current_index), (bw_open_mailbox_cb),
	(bw_find_real), (bw_hide_changed_set_view_filter),
	(bw_reset_filter), (update_view_menu),
	(balsa_window_set_statusbar), (balsa_window_next_unread):
	* src/main-window.h: BalsaWindow now subclasses
	GtkApplicationWindow.
	* src/message-window.c (message_window_new): use new toolbar
	API.
	* src/sendmsg-window.c (sendmsg_window_new): ditto.
	* src/toolbar-factory.c (balsa_toolbar_model_add_entries),
	(tm_has_second_line), (tm_changed_cb), (tm_changed_old_cb),
	(tm_toolbar_weak_notify), (tm_realize_cb), (balsa_toolbar_new):
	main-window has a GActionMap, not a GtkUIManager.
	* src/toolbar-factory.h: temporary API.
	* src/toolbar-prefs.c (customize_dialog_cb),
	(create_toolbar_page): temporary transition code.

2013-07-22  Peter Bloomfield

	* src/balsa-icons.c (load_balsa_pixmap): do not leak pixbuf.

2013-07-22  Peter Bloomfield

	* src/balsa-icons.c (load_balsa_pixmap): add built-in icon with
	the correct size.

2013-07-22  Peter Bloomfield

	More GtkStock deprecation cleanup

	* src/balsa-app.c (balsa_stock_button_with_label):
	* src/balsa-icons.c (load_balsa_pixmap), (balsa_register_pixmaps),
	(balsa_register_pixbufs):
	* src/balsa-message.c (bm_header_tl_buttons):
	* src/balsa-mime-widget-crypto.c (balsa_mime_widget_crypto_frame):
	* src/main-window.c:

2013-07-21  Peter Bloomfield

	* libbalsa/application-helpers.c (extract_accels_from_menu),
	(get_accel_group), (libbalsa_window_get_menu_bar): make the
	application-window not show the application's menubar here.
	* libbalsa/source-viewer.c (libbalsa_show_message_source):
	instead of here.

2013-07-21  Peter Bloomfield

	* libbalsa/application-helpers.c (accel_info_free),
	(accel_activate), (extract_accel_from_menu_item),
	(extract_accels_from_menu), (libbalsa_window_get_accel_group),
	(libbalsa_window_get_menu_bar): new file defining
	libbalsa_window_get_menu_bar.
	* libbalsa/application-helpers.h: ditto.
	* libbalsa/Makefile.am: add them to SOURCES.
	* libbalsa/source-viewer.c: use libbalsa_window_get_menu_bar to
	construct the menu-bar and add the accelerators to the window.

2013-07-21  Peter Bloomfield

	More GtkStock deprecation cleanup

	* src/balsa-index.c (bndx_popup_menu_create),
	(create_stock_menu_item):
	* src/balsa-message.c (bm_header_tl_buttons),
	(get_crypto_content_icon):
	* src/balsa-mime-widget-crypto.c (balsa_mime_widget_crypto_frame):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
	* src/balsa-mime-widget-text.c (bmwt_populate_popup_menu):

2013-07-20  Peter Bloomfield

	* README: minor updates.

2013-07-20  Peter Bloomfield

	Install and use a directory for GtkBuilder *.ui files

	* ui/Makefile.am: new file.
	* ui/main-window.ui: ditto.
	* ui/source-viewer.ui: ditto.
	* Makefile.am: add ui to SUBDIRS.
	* configure.ac: add ui/Makefile to AC_OUTPUT.
	* libbalsa/source-viewer.c: use installed ui file.

2013-07-20  Peter Bloomfield

	* src/main-window.c: use new prototype for source viewer.

2013-07-20  Peter Bloomfield

	* libbalsa/source-viewer.c (lsv_close_activated),
	(lsv_copy_activated), (lsv_select_activated),
	(lsv_toggle_activated), (lsv_escape_change_state),
	(lsv_app_set_menus), (libbalsa_show_message_source): port source
	viewer to GMenu.
	* libbalsa/libbalsa.h: new prototype for source viewer.
	* src/balsa-index.c (bndx_view_source): use it.
	* src/message-window.c (view_msg_source_cb): ditto.
	* src/sendmsg-window.c (sendmsg_window_new_from_list): ditto.

2013-07-18  Peter Bloomfield

	More GtkStock deprecation cleanup

	* configure.ac: to build, we must drop -DGDK_MULTIHEAD_SAFE.
	* libbalsa/files.c (libbalsa_icon_finder):
	gtk_icon_size_lookup_for_settings is deprecated for
	gtk_icon_size_lookup.
	* src/balsa-index.c (balsa_index_set_column_widths): ditto.
	* src/balsa-app.c (balsa_stock_button_with_label):
	gtk_image_new_from_stock is deprecated for
	gtk_image_new_from_icon_name.

2013-07-18  Peter Bloomfield

	Clean up deprecation of stock icons

	* libbalsa/html.c (lbh_info_bar), (lbh_show_info_bar):
	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	(libbalsa_identity_config_dialog):
	* libbalsa/information.c (libbalsa_information_varg):
	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_select_key),
	(get_passphrase_real):
	* libbalsa/send.c (ensure_send_progress_dialog):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* libbalsa/source-viewer.c:
	* src/ab-main.c (bab_get_edit_button_box), (bab_get_filter_box):
	* src/ab-window.c (balsa_ab_window_new), (balsa_ab_window_init):
	* src/address-book-config.c (create_local_dialog),
	(create_generic_dialog):
	* src/balsa-app.c (ask_password_real):
	* src/balsa-icons.c (load_balsa_pixmap), (balsa_register_pixbufs):
	* src/balsa-icons.h:
	* src/balsa-index.c (bndx_popup_menu_create), (balsa_index_pipe):
	* src/balsa-mblist.c (bmbl_mru_show_tree):
	* src/balsa-message.c (part_context_dump_all_cb):
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_ctx_menu_save):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
	* src/balsa-mime-widget-text.c (bmwt_populate_popup_menu):
	* src/filter-edit-callbacks.c (fe_edit_condition):
	* src/filter-edit-dialog.c (build_left_side), (build_action_page),
	(build_right_side), (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_init):
	* src/folder-conf.c (folder_conf_imap_node), (browse_button_cb),
	(folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/mailbox-conf.c (mailbox_conf_delete),
	(create_local_mailbox_dialog), (create_generic_dialog):
	* src/main-window.c:
	* src/message-window.c:
	* src/pref-manager.c (open_preferences_manager):
	* src/sendmsg-window.c (delete_handler), (sw_get_user_codeset),
	(add_urlref_attachment), (sw_attach_dialog),
	(quote_parts_select_dlg), (include_file_cb), (subject_not_empty),
	(check_suggest_encryption), (bsmsg_check_format_compatibility):
	* src/spell-check.c (balsa_spell_check_init):
	* src/store-address.c (store_address_dialog):
	* src/toolbar-factory.c:
	* src/toolbar-prefs.c (customize_dialog_cb), (create_toolbar_page):

2013-07-14  Peter Bloomfield

	Fix bgo #704159 (Igor Pashev)

	* configure.ac: add check for struct utsname.domainname, and
	AC_USE_SYSTEM_EXTENSIONS.
	* libbalsa/filter-file.c: do not define __EXTENSIONS__.
	* libbalsa/send.c (libbalsa_set_message_id): check
	HAVE_STRUCT_UTSNAME_DOMAINNAME as well as _GNU_SOURCE.

2013-06-23  Peter Bloomfield

	* src/sendmsg-window.c (to_add), (create_email_entry): restore
	drag-and-drop of a string to the To: header.

2013-06-23  Peter Bloomfield

	* src/sendmsg-window.c (create_email_entry),
	(sw_attachment_list): clean up dead and redundant code.

2013-06-21  Peter Bloomfield

	* src/sendmsg-window.c (create_email_or_string_entry),
	(create_string_entry), (create_email_entry), (create_from_entry),
	(create_info_pane): consolidate most size-group code.

2013-06-21  Peter Bloomfield

	* src/sendmsg-window.c (create_info_pane), (sw_attachment_list):
	use a GtkSizeGroup to restore alignment of attachment list.
	* src/sendmsg-window.h: new member size_group.

2013-06-21  Peter Bloomfield

	* src/sendmsg-window.c (drag_data_quote), (bsmsg2message),
	(send_message_handler): check for NULL tree-view.

2013-06-21  Peter Bloomfield

	* src/sendmsg-window.c (remove_attachment), (change_attach_mode),
	(show_attachment_widget), (add_attachment),
	(add_urlref_attachment), (create_info_pane), (sw_attachment_list),
	(sendmsg_window_new): put attachment list in its own pane.
	* src/sendmsg-window.h: add members tree_view and paned, and
	remove member attachments[].

2013-06-17  Peter Bloomfield

	* src/sendmsg-window.c (create_info_pane): allow the recipients
	widget and the attachments list to expand;
	(sendmsg_window_new): use a GtkPaned to allow the user to change
	the space allocated to the headers.

2013-06-10  Peter Bloomfield

	* src/save-restore.c (config_global_load): change default to
	UseSystemFonts=true.
	* src/balsa-app.c (balsa_app_init): ditto.

2013-06-09  Peter Bloomfield

	Add the option to use system fonts

	* src/balsa-app.h: new member gboolean use_system_fonts.
	* src/balsa-app.c (balsa_app_init): initialize it.
	* src/balsa-mime-widget-message.c (add_header_gchar): respect
	it.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(bm_modify_font_from_string): ditto.
	* src/pref-manager.c (open_preferences_manager), (apply_prefs),
	(attach_font_button), (preview_font_group),
	(use_system_fonts_cb): allow user to choose it.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore it.
	* src/sendmsg-window.c (create_email_or_string_entry),
	(create_text_area): respect it also for compose window.

2013-05-30  Peter Bloomfield

	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler),
	(sw_broker_cb), (create_lang_menu), (sendmsg_window_continue),
	(sw_spell_language_changed_cb), (sw_spell_attach), (set_locale),
	(lang_set_cb): handle language changes fromGtkSpell's
	context menu.
	* src/sendmsg-window.h: spell_check_lang is no longer const.

2013-05-29  Peter Bloomfield

	GNOME Goal: Notification Sources

	* balsa.desktop.in.in: add X-GNOME-UsesNotifications=true
	* libbalsa/information.c (libbalsa_information_varg): set
	"desktop-entry" hint for NotifyNotification.
	* src/main-window.c: ditto.

2013-05-28  Peter Bloomfield

	* configure.ac: check GtkSpell version, and avoid explicit
	dependence on enchant when possible.
	* src/sendmsg-window.c: use gtkspell_get_language_list when
	available, instead of enchant API.

2013-05-26  Peter Bloomfield

	* src/main-window.c: report network availability with a
	human-readable time; combine two idle callbacks into one.

2013-05-22  Peter Bloomfield

	Cast new mailboxes as LibBalsaMailbox, to reduce static and
	dynamic casting.

	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_new): return
	new mailbox as (LibBalsaMailbox *).
	* libbalsa/mailbox_imap.h: ditto.
	* libbalsa/mailbox_local.c: ditto.
	* libbalsa/mailbox_local.h: ditto.
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_new):
	ditto.
	* libbalsa/mailbox_maildir.h: ditto.
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_new): ditto.
	* libbalsa/mailbox_mbox.h: ditto.
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_new): ditto.
	* libbalsa/mailbox_mh.h: ditto.
	* libinit_balsa/assistant_page_directory.c
	(unconditional_mailbox): remove static casts to (LibBalsaMailbox *).
	* src/mailbox-node.c (imap_scan_attach_mailbox),
	(balsa_mailbox_node_new_imap), (add_local_mailbox): avoid
	dynmaic casts to LIBBALSA_MAILBOX.

2013-05-22  Peter Bloomfield

	* src/balsa-message.c (part_info_init): do not mess with scroll
	bars.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text):
	ditto.

2013-05-22  Peter Bloomfield

	* src/sendmsg-window.c (create_info_pane): use
	create_email_or_string_entry for Fcc header.

2013-05-20  Peter Bloomfield

	* libbalsa/html.c: drop obsolete include.

2013-05-19  Peter Bloomfield

	Implement add-messages at LibBalsaMailboxLocal level, and use a
	new add-message method for the backends.

	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init):
	new add-messages method.
	* libbalsa/mailbox_local.h: new member
	LibBalsaMailboxLocalClass::add_message.
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_class_init),
	(lbm_maildir_add_message): implement
	LibBalsaMailboxLocalClass::add_message.
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_class_init),
	(lbm_mbox_add_message): ditto.
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_class_init),
	(lbm_mh_add_message): ditto.

2013-05-18  Peter Bloomfield

	* libbalsa/mailbox_local.c: avoid zero-divide.
	* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_open): do
	not change LibBalsaMailboxLocal::sync_time or ::sync_cnt.
	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_open): ditto.
	* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_open): ditto.

2013-05-18  Peter Bloomfield

	* libbalsa/mailbox_local.c: restore syncing mailbox in a thread.

2013-05-16  Peter Bloomfield

	* libbalsa/imap/imap-handle.c (idle_start): use try-lock to
	avoid blocking main thread;
	(imap_handle_idle_enable): use g_timeout_add_seconds.

2013-05-16  Peter Bloomfield

	* libbalsa/mailbox.h: scrap
	LibBalsaMailboxView::mailing_list_address.
	* libbalsa/mailbox.c (libbalsa_mailbox_view_free): ditto.
	* src/save-restore.c (config_load_mailbox_view),
	(config_save_mailbox_view): ditto.
	* src/sendmsg-window.c (set_list_post_address): ditto.

2013-05-04  Peter Bloomfield

	* src/balsa-mime-widget-message.c (add_header_sigstate): fix
	typo.

2013-05-02  Peter Bloomfield

	* configure.ac: bump glib and gtk required versions.
	* libbalsa/imap-server.c (libbalsa_imap_server_init),
	(libbalsa_imap_server_finalize): drop conditional code.
	* libbalsa/libbalsa-conf.c (lbc_lock), (lbc_unlock): ditto.
	* libbalsa/libbalsa.c (libbalsa_init): ditto.
	* libbalsa/mime-stream-shared.c (lbmss_stream_class_init),
	(libbalsa_mime_stream_shared_lock),
	(libbalsa_mime_stream_shared_unlock): ditto.
	* libinit_balsa/assistant_page_user.c
	(balsa_druid_page_user_init): ditto.
	* src/balsa-mime-widget-text.c (bm_widget_new_vcard): ditto.
	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget):
	ditto.
	* src/filter-edit-callbacks.c (fe_apply_pressed),
	(fe_filters_list_selection_changed): ditto.
	* src/filter-edit-dialog.c (fe_make_color_buttons): ditto.
	* src/folder-conf.c (folder_conf_imap_sub_node): ditto.
	* src/main-window.c: ditto.
	* src/main-window.h: ditto.
	* src/main.c (threads_init): ditto.
	* src/sendmsg-window.c (render_attach_size): ditto.

2013-05-02  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_init): reduce glib requirement
	to 2.32.
	* src/main.c (threads_init): ditto.
	* src/balsa-message.c (balsa_message_init): typo.

2013-05-01  Peter Bloomfield

	Replace "ghelp:" help URIs by "help:" URIs

	* libbalsa/identity.c (help_ident_cb):
	* libbalsa/smtp-server.c (smtp_server_response):
	* src/address-book-config.c (help_button_cb):
	* src/filter-edit-callbacks.c (condition_dialog_response),
	(fe_dialog_response):
	* src/filter-run-callbacks.c (fr_dialog_response):
	* src/folder-conf.c (folder_conf_response):
	* src/main-window.c:
	* src/pref-manager.c (balsa_help_pbox_display):
	* src/toolbar-prefs.c (tp_dialog_response_cb):

2013-04-30  Peter Bloomfield

	* configure.ac: fix broken NetworkManager-glib logic.

2013-04-29  Peter Bloomfield

	* src/sendmsg-window.c (delete_handler): tell the user the
	message is to "(No name)" only as a last resort; thanks to Jack
	Ostroff for reporting.

2013-04-27  Pawel Salek

	* NEWS: release balsa-2.5.1

2013-04-27  Peter Bloomfield

	Port to new documentation infrastructure

	* .gitignore: change as in <URL:https://live.gnome.org/
	GnomeGoals/NewDocumentationInfrastructure>
	* Makefile.am: ditto.
	* autogen.sh: remove gnome-doc-tool code.
	* bootstrap.sh: ditto.
	* configure.ac: test `which yelp-build` to detect yelp-tools
	package, warn if not found, but continue to configure with
	documentation disabled.

2013-04-25  Peter Bloomfield  <peter@w500.bellsouth.net>

	Improve path checking in the first-time assistant

	* libinit_balsa/assistant_helper.c (balsa_init_add_grid_entry):
	return the GtkEntry.
	* libinit_balsa/assistant_helper.h: modified API.
	* libinit_balsa/assistant_page_directory.c
	(unconditional_mailbox): report NULL mailbox error;
	(verify_mailbox_entry), (verify_button_clicked_cb),
	(verify_button): add a button for the user to verify paths.
	(entry_changed_cb), (balsa_druid_page_directory_init):
	desensitize the "next" button when any entry is changed, to make
	the user verify the new path;
	(balsa_druid_page_directory): set row spacing for vbox;
	(balsa_druid_page_directory_prepare): desensitize the "next"
	button initially;
	(balsa_druid_page_directory_back): declare as void, not
	gboolean.
	(balsa_druid_page_directory_next): ditto; move path verification
	to verify_mailbox_entry.
	* libinit_balsa/assistant_page_directory.h: remove
	Entry{Data,Master} members, and for convenience add GtkAssistant
	*druid; balsa_druid_page_directory_later is conditional on
	ENABLE_TOUCH_UI.

2013-04-25  Peter Bloomfield

	* configure.ac: detect _FILE_OFFSET_BITS in configure.ac;
	pancake, https://github.com/xtraeme/xbps-packages/commit/
	a06181186ef559d84c120e3e9a3a557d4e4914dc.

2013-04-23  Peter Bloomfield

	* src/main-window.c: build with glib < 2.32.

2013-04-23  Peter Bloomfield

	Clean up LibESMTP header includes

	* libbalsa/message.h:
	* libbalsa/misc.h:
	* libbalsa/send.c:
	* libbalsa/send.h:
	* libbalsa/smtp-server.c:
	* libbalsa/smtp-server.h:

2013-04-23  Peter Bloomfield

	* configure.ac: fix URI for finding libesmtp.

2013-04-23  Peter Bloomfield

	* Makefile.am: use HAVE_GNOME_DOC_UTILS instead of
	BUILD_WITH_G_D_U.
	* configure.ac: make sure HAVE_GNOME_DOC_UTILS and ENABLE_SK are
	defined.

2013-04-22  Peter Bloomfield

	More efficient use of space in header widget

	* src/balsa-message.c (display_face): hide the face-box when
	empty.
	* src/balsa-mime-widget-message.c (bm_header_widget_new): allow
	the face-box to be non-homogeneous.

2013-04-22  Peter Bloomfield

	Port to GNetworkMonitor from NetworkManager

	* configure.ac: if configure --with-nm when GNetworkMonitor
	is available (glib >= 2.32), announce that we will actually
	use GNetworkMonitor.
	* src/main-window.c: Use GNetworkMonitor, when available,
	instead of NetworkManager.
	* src/main-window.h: replace NMState nm_state with gboolean
	network_available.

2013-04-22  Peter Bloomfield

	New message header widget, based on GtkInfoBar

	* src/balsa-message.c (bm_header_tl_buttons),
	(balsa_message_init): return an array of buttons instead of a
	widget;
	(display_face): get container from BalsaMessage.
	* src/balsa-message.h: new member.
	* src/balsa-mime-widget-message.c
	(balsa_mime_widget_new_message_tl), (bm_header_extend_popup),
	(bm_header_widget_new), (label_size_allocate_cb), (expanded_cb),
	(add_header_gchar), (add_header_address_list), (foreach_label),
	(balsa_mime_widget_message_set_headers),
	(balsa_mime_widget_message_set_headers_d),
	(add_header_sigstate): new widget.
	* src/balsa-mime-widget-message.h: new API for passing buttons.

2013-04-22  Peter Bloomfield

	* src/balsa-index.c (bndx_scroll_on_open_idle),
	(balsa_index_scroll_on_open): scroll in an idle handler, after
	the mailbox has been opened.

2013-04-16  Peter Bloomfield

	* libbalsa/address-view.c (lbav_drop_down_activated_cb),
	(libbalsa_address_view_new): use LibBalsaCellRendererButton for
	the drop-down icon, so that we can drop down the combo-box when
	the icon is clicked.

2013-04-15  Peter Bloomfield

	Fix miscounting of unread messages

	* libbalsa/mailbox_local.h: new member
	gboolean _LibBalsaMailboxLocalMessageInfo::loaded.
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_load_message),
	(lbm_local_restore_tree): use it to indicate when we are
	changing flags on a message that has not yet been counted.
	* libbalsa/mailbox_mbox.c (parse_mailbox), (lbm_mbox_restore):
	initialize it to FALSE.

2013-04-12  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bm_header_widget_realized):
	set colors from the treeview instead of the scrolled window.

2013-04-11  Peter Bloomfield  <peter@w500.bellsouth.net>

	* libbalsa/misc.c (lb_create_size_group_func): we no longer use
	GtkTable.

2013-04-11  Peter Bloomfield

	* src/balsa-message.c (bm_on_set_style),
	(bm_find_scroll_to_rectangle), (balsa_message_init),
	(select_part): remove dependence on GtkViewPort.
	* src/balsa-message.h: ditto.
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_key_press_event): ditto.
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
	ditto.

2013-04-11  Peter Bloomfield

	* src/toolbar-prefs.c (create_toolbar_page):
	gtk_scrolled_window_add_with_viewport is deprecated.

2013-04-11  Peter Bloomfield

	* libbalsa/misc.c (lb_create_size_group_func): GtkTable is
	deprecated.

2013-04-11  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_init): g_thread_supported is
	deprecated in glib-2.36.

2013-04-10  Peter Bloomfield

	* src/balsa-mblist.c (update_mailbox_idle),
	(bmbl_mailbox_changed_cb): replace Gdk lock with our own lock.

2013-04-09  Peter Bloomfield

	* libbalsa/imap/imap_tst.c (main): g_type_init is deprecated.
	* src/main.c (threads_init): ditto.

2013-04-08  Peter Bloomfield

	* configure.ac: add webkit2 as an option for --with-html-widget.

2013-04-08  Peter Bloomfield

	* libbalsa/html.c (lbh_get_web_view): can-select and select-all
	sometimes pass the web-view and sometimes the container.
	* src/balsa-mime-widget-text.c (bm_select_all_cb),
	(bmwt_populate_popup_menu): add "select all" to the
	webKitWebView context menu, the same as for a GtkTextView

2013-04-08  Peter Bloomfield

	* libbalsa/html.c (lbh_context_menu_cb): pass the GdkEvent when
	emitting "popup-menu";
	* libbalsa/html.h: define key for GdkEvent.
	* src/balsa-mime-widget-text.c (balsa_gtk_html_popup): use it to
	pass the event time when popping up the menu.

2013-04-08  Peter Bloomfield

	* libbalsa/send.c (libbalsa_set_message_id): constify two
	strings.

2013-04-07  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bmwm_set_headers_d_idle_cb),
	(balsa_mime_widget_message_set_headers_d): queue iheader widget
	resize in an idle handler, to get the size right the first time.
	* src/main-window.c: initially hide the preview.

2013-04-06  Peter Bloomfield

	* configure.ac: simplify WebKit2 configuration.

2013-04-06  Peter Bloomfield

	* configure.ac: require GtkSourceView 3.2
	* src/sendmsg-window.c: gtksource.h is the main header; fixes
	bgo #697454 (Dominique Leuenberger).

2013-04-06  Peter Bloomfield

	* libbalsa/html.c (libbalsa_html_popup_menu_widget),
	(libbalsa_html_print): actually print the HTML part.

2013-04-05  Peter Bloomfield

	* libbalsa/html.c (lbh_context_menu_cb), (libbalsa_html_new):
	catch WebKit's "context-menu" signal, and emit "popup-menu" on
	the parent widget instead.
	* src/balsa-mime-widget-text.c (balsa_gtk_html_popup): do not
	unref the popup menu.

2013-04-04  Peter Bloomfield

	* libbalsa/html.c (lbh_info_bar_response_cb): no need to reload;
	(lbh_resource_load_started_cb): no need for cache;
	(lbh_cid_cb), (libbalsa_html_new): register the "cid:" protocol
	handler only once, to avoid crashing the web process.

2013-04-04  Peter Bloomfield

	Handle "cid:" protocol for images

	* libbalsa/html.c (lbh_info_bar_response_cb), (lbh_info_bar):
	simplify info-bar code.
	(lbh_resource_load_started_cb), (lbh_cid_cb),
	(libbalsa_html_new): set up a handler for "cid:" protocol.

2013-04-03  Peter Bloomfield

	* libbalsa/filter-funcs.c (append_header_names),
	(append_flag_names): do not mark text-free string for
	translation.
	* libbalsa/imap-server.c (is_info_cb): ditto.

2013-04-02  Peter Bloomfield

	* libbalsa/html.c (lbh_get_body_content_utf8): sanitize UTF-8
	text.

2013-03-31  Peter Bloomfield

	Do not leak search-text

	* libbalsa/html.c (lbh_webkit_info_free), (libbalsa_html_new),
	(lbh_search_failed_to_find_text_cb), (lbh_search_found_text_cb),
	(lbh_search_init), (lbh_search_continue), (libbalsa_html_search):
	move search info to LibBalsaWebKitInfo, and free search-text in
	the GDestroyNotify function.

2013-03-30  Peter Bloomfield

	Refactor HTML search code to work with asynchronous search in
	Webkit2.

	* libbalsa/html.c (lbh_web_process_crashed_cb): spew message
	only when debugging;
	(lbh_search_failed_to_find_text_cb), (lbh_search_found_text_cb),
	(lbh_search_init), (lbh_search_continue),
	(libbalsa_html_search): work with asynchronous search;
	(libbalsa_html_get_selection_bounds): is now gboolean, return
	FALSE in Webkit2 version.
	* libbalsa/html.h: new protoypes.
	* src/balsa-message.c (bm_find_cb), (bm_find_entry_changed_cb),
	(bm_find_again), (balsa_message_destroy): work with asynchronous
	search.
	* src/balsa-message.h: add gpointer member to store HTML search
	info.

2013-03-28  Peter Bloomfield

	* libbalsa/html.c (lbh_navigation_policy_decision),
	(lbh_new_window_policy_decision), (lbh_response_policy_decision):
	Clicking a link may cause a new window policy decision, instead
	of a navigation policy decision; we handle both cases.

2013-03-27  Peter Bloomfield

	* libbalsa/html.c: reduce zoom factor to +/- 20%.

2013-03-27  Peter Bloomfield

	* libbalsa/html.c (lbh_info_bar_response_cb),
	(lbh_info_bar_realize_cb), (lbh_show_info_bar),
	(lbh_resource_load_started_cb), (libbalsa_html_new):
	Use regex scan of HTML text to detect downloads, because Webkit2
	does not alert us in time to control them.

2013-03-24  Peter Bloomfield

	Initial check in support for WebKitGtk2

	* configure.ac: add webkit2 as an html-engine option; default is
	still webkit.
	* libbalsa/html.c (lbh_get_body_content_utf8),
	(lbh_webkit_info_free), (lbh_mouse_target_changed_cb),
	(lbh_navigation_policy_decision), (lbh_new_window_policy_decision),
	(lbh_response_policy_decision), (lbh_decide_policy_cb),
	(lbh_info_bar_response_cb), (lbh_show_info_bar),
	(lbh_resource_load_started_cb), (lbh_web_process_crashed_cb),
	(libbalsa_html_new), (libbalsa_html_to_string), (lbh_get_web_view),
	(libbalsa_html_can_zoom), (libbalsa_html_zoom),
	(libbalsa_html_can_select), (libbalsa_html_select_all),
	(libbalsa_html_copy), (libbalsa_html_can_search),
	(lbh_js_run_script), (lbh_js_object_get_property),
	(libbalsa_html_search_text), (libbalsa_html_get_selection_bounds),
	(libbalsa_html_popup_menu_widget), (libbalsa_html_get_view_widget),
	(libbalsa_html_can_print), (libbalsa_html_print): support
	webkit2 option.

2013-03-21  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_set_view_filter): clean
	up logic.

2013-03-21  Peter Bloomfield

	* src/main-window.c: set mailbox view filter on opening, not on
	notebook page change.

2013-03-19  Peter Bloomfield

	* src/balsa-index.c (balsa_index_load_mailbox_node),
	(bndx_mailbox_changed_cb): connect signal not swapped.

2013-03-19  Peter Bloomfield

	GdkThreads deprecation cleanup

	* libbalsa/libbalsa.c (libbalsa_lock_mailbox),
	(libbalsa_unlock_mailbox): strip out GdkThreads-related code.
	* libbalsa/libbalsa.h: ditto.
	* libbalsa/mailbox.c (libbalsa_mailbox_msgno_find),
	(mbox_model_get_path), (libbalsa_mailbox_search_iter_step):
	ditto.
	* src/main.c (threads_init), (threads_destroy): ditto.

2013-03-19  Peter Bloomfield

	* src/main-window.c: use thread to check for new mail.

2013-03-17  Peter Bloomfield

	* src/mailbox-node.c (mb_rescan_cb): reopen mailboxes in the UI
	callback,
	(balsa_mailbox_node_rescan): not in the recursive function
	* src/balsa-app.c (balsa_open_mailbox_list): make sure first
	mailbox in the list is not hidden.

2013-03-17  Peter Bloomfield

	* src/balsa-app.c (open_mailbox_by_url),
	(balsa_open_mailbox_list): change gboolean
	open_mailboxes_idle_cb() to void balsa_open_mailbox_list().
	* src/balsa-app.h: ditto.
	* src/mailbox-node.c (balsa_mailbox_node_rescan): ditto.
	* src/main.c (open_mailboxes_idle_cb), (scan_mailboxes_idle_cb):
	open_mailboxes_idle_cb is now just the idle callback.

2013-03-17  Peter Bloomfield

	Reopen mailboxes after rescanning

	* src/mailbox-node.c (imap_dir_cb): do not unref mbnode;
	(imap_scan_create_mbnode): do not ref mbnode; protect view
	during rescanning;
	(balsa_mailbox_node_rescan): reopen mailboxes after scanning.

2013-03-17  Peter Bloomfield

	* libbalsa/libbalsa-conf.c (libbalsa_conf_sync),
	(libbalsa_conf_sync_idle_cb): remove source in public method.

2013-03-16  Peter Bloomfield

	* libbalsa/mailbox_local.c (lbm_local_queue_save_tree): build
	with threads disabled.

2013-03-16  Peter Bloomfield

	* libbalsa/libbalsa-conf.c (libbalsa_conf_sync_idle_cb),
	(libbalsa_conf_queue_sync): fix error and use lock only when
	using threads.

2013-03-16  Peter Bloomfield

	Queue config syncs instead of syncing immediately, except on
	exit cleanup

	* libbalsa/libbalsa-conf.c (libbalsa_conf_sync_idle_cb),
	(libbalsa_conf_queue_sync): new API libbalsa_conf_queue_sync.
	* libbalsa/libbalsa-conf.h: ditto.
	* src/ab-main.c (address_book_change), (file_delete_cb): use it.
	* src/save-restore.c (config_address_book_save),
	(config_address_book_delete), (config_mailbox_add),
	(config_folder_add), (config_mailbox_delete),
	(config_folder_delete), (config_mailbox_update),
	(config_folder_update), (config_filters_save),
	(config_mailbox_filters_save): ditto.

2013-03-16  Peter Bloomfield

	* src/main-window.c: do not leak object refs on error.

2013-03-16  Peter Bloomfield

	* src/mailbox-node.c (balsa_mailbox_node_dispose): make sure
	LibBalsaMailboxView::open is correct before saving the view.

2013-03-15  Peter Bloomfield

	* src/balsa-app.c (append_url_if_open): libbalsa_conf_foreach
	passes an encoded URL.
	* src/mailbox-node.c (check_url_func): ditto.

2013-03-14  Peter Bloomfield

	Streamline handling of LibBalsaMailboxView

	* libbalsa/mailbox.c (libbalsa_mailbox_finalize): free the view;
	(libbalsa_mailbox_view_free), (lbm_get_view): check for NULL
	view;
	(libbalsa_mailbox_set_identity_name),
	(libbalsa_mailbox_set_threading_type),
	(libbalsa_mailbox_set_sort_type),
	(libbalsa_mailbox_set_sort_field), (libbalsa_mailbox_set_show),
	(libbalsa_mailbox_set_subscribe), (libbalsa_mailbox_set_exposed),
	(libbalsa_mailbox_set_open), (libbalsa_mailbox_set_filter),
	(libbalsa_mailbox_set_unread), (libbalsa_mailbox_set_total),
	(libbalsa_mailbox_set_mtime), (libbalsa_mailbox_get_filter):
	drop LibBalsaMailboxView::frozen and the hash table.
	* libbalsa/mailbox.h: ditto.
	* src/balsa-app.c (balsa_app_destroy), (append_url_if_open),
	(open_mailbox_by_url), (open_mailboxes_idle_cb),
	(balsa_add_open_mailbox_urls): traverse views in the config
	instead of in the hash table.
	* src/mailbox-conf.c (mailbox_conf_add),
	(mailbox_conf_view_check): ditto.
	* src/mailbox-node.c (balsa_mailbox_node_dispose),
	(check_url_func), (check_local_path), (load_mailbox_view),
	(check_imap_path): ditto.
	* src/pref-manager.c (update_view_defaults), (apply_prefs):
	ditto.
	* src/main.c (real_main), (balsa_cleanup): no hash table.
	* src/save-restore.c (config_view_remove),
	(config_defclient_save): no hash table.
	(config_mailbox_had_property), (config_mailbox_was_open),
	(config_mailbox_was_exposed), (config_load_mailbox_view),
	(config_save_mailbox_view): new methods.
	* src/save-restore.h: ditto.

2013-03-14  Peter Bloomfield

	* libbalsa/libbalsa-conf.c (libbalsa_conf_has_key): new
	function.
	* libbalsa/libbalsa-conf.h: ditto.

2013-03-11  Peter Bloomfield

	Lock mailbox to avoid race

	* libbalsa/mailbox.c (lbm_changed_idle_cb),
	(lbm_changed_schedule_idle), (libbalsa_mailbox_changed),
	(lbm_check_idle), (lbm_queue_check): lock the mailbox while
	storing the id of an idle call, to avoid a race with the main
	thread callback.
	* libbalsa/mailbox_local.c (lbm_local_queue_save_tree),
	(lbml_load_messages_idle_cb),
	(libbalsa_mailbox_local_load_messages),
	(libbalsa_mailbox_local_prepare_threading): ditto.

2013-03-07  Peter Bloomfield

	Use --with-gnome more carefully

	* configure.ac: set HAVE_GNOME when configuring --with-gnome.
	* libinit_balsa/assistant_init.c (balsa_initdruid):
	default-client makes sense on non-GNOME builds.
	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient_toggle): ditto.
	* libinit_balsa/assistant_page_defclient.h: ditto.
	* src/main.c (config_init), (mailboxes_init): ditto.
	* src/save-restore.c (config_defclient_save): ditto.
	* src/main-window.c: gnome-triggers code is totally dead.

2013-03-06  Peter Bloomfield

	* src/main.c (scan_mailboxes_idle_cb): do not pass unowned
	string.

2013-03-06  Peter Bloomfield

	Combine all mailboxes to be opened at startup into a single
	array.

	* src/balsa-app.c (open_mailboxes_idle_cb),
	(balsa_add_open_mailbox_urls):
	* src/balsa-app.h: new method balsa_add_open_mailbox_urls; drop
	hacky extra-open-ref.
	* src/main.c (initial_open_inbox), (balsa_check_open_mailboxes),
	(scan_mailboxes_idle_cb), (balsa_cleanup), (handle_remote):
	collect mailbox URLs in an array.

2013-03-06  Peter Bloomfield

	* src/balsa-index.c (bndx_queue_draw_idle_cb),
	(bndx_mailbox_changed_idle): queue redrawing the message index
	each time anything changes, to try to fix mis-rendering.

2013-03-04  Peter Bloomfield

	* src/main.c (initial_open_inbox), (balsa_cleanup): remember
	when we have opened Inbox twice.
	* src/balsa-app.h: add member to remember it.

2013-03-03  Peter Bloomfield

	* src/balsa-index.c (balsa_index_scroll_on_open): always use an
	idle callback to select a message or set the tree-view's cursor.

2013-03-02  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_changed_schedule_idle),
	(libbalsa_mailbox_msgno_filt_in),
	(libbalsa_mailbox_msgno_filt_out): set mailbox_changed only when
	it really has changed.
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
	(libbalsa_mailbox_local_changed), (lbm_local_save_tree_real),
	(lbm_local_queue_save_tree), (lbml_load_messages_idle_cb),
	(libbalsa_mailbox_local_load_messages): implement the "changed"
	vfunc, and use it to schedule saving the message tree structure.
	* libbalsa/mailbox_local.h: new member to temporarily hold the
	current last msgno.

2013-03-02  Peter Bloomfield

	* libbalsa/server.c (libbalsa_server_save_config): report
	error saving password.

2013-03-02  Peter Bloomfield

	Re-enable mailbox check in a subthread

	* libbalsa/mailbox.c (libbalsa_mailbox_progress_notify),
	(libbalsa_mailbox_msgno_inserted),
	(libbalsa_mailbox_msgno_removed),
	(libbalsa_mailbox_unlink_and_prepend), (lbm_set_msg_tree):
	insert subthread warnings.
	(lbm_check_idle): check mailbox in a subthread.
	* libbalsa/mailbox_local.c (lbml_load_messages_idle_cb),
	(libbalsa_mailbox_local_load_messages): load messages in the
	main thread, in an idle callback;
	(libbalsa_mailbox_local_finalize): remove any pending idle call.
	* libbalsa/mailbox_local.h: new member of LibBalsaMailboxLocal
	for the idle id.

2013-03-01  Peter Bloomfield

	* libbalsa/mailbox.h: idle id is guint, not gulong.

2013-03-01  Peter Bloomfield

	* libbalsa/mailbox.h: new LibBalsaMailbox members
	changed_idle_id and queue_check_idle_id.
	* libbalsa/mailbox.c (libbalsa_mailbox_finalize),
	(libbalsa_mailbox_check), (lbm_changed_idle_cb),
	(lbm_changed_schedule_idle), (libbalsa_mailbox_changed),
	(libbalsa_mailbox_msgno_filt_in),
	(libbalsa_mailbox_msgno_filt_out), (lbm_check_real),
	(lbm_queue_check): use them.

2013-02-28  Peter Bloomfield

	* src/balsa-index.c: refactor and simplify.

2013-02-28  Peter Bloomfield

	* src/main-window.c: survive torture test.

2013-02-28  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_filt_check),
	(lbm_msgno_filt_check_idle_cb),
	(libbalsa_mailbox_msgno_filt_check): check message against view
	filter synchronously when in the main thread.

2013-02-28  Pawel Salek

	* configure.ac: remove dependency on legacy gnome-icon-scheme pkg.
	* NEWS, configure.ac: release balsa-2.5.0

2013-02-28  Peter Bloomfield

	* libbalsa/mailbox.c: build with threads disabled.

2013-02-27  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_run_filters_on_reception_idle_cb),
	(libbalsa_mailbox_run_filters_on_reception): run filters in an
	idle callback.

2013-02-26  Peter Bloomfield

	* src/main-window.c: do not use another idle handler to set the
	mailbox view-filter.

2013-02-26  Peter Bloomfield

	Instead of forgetting open mailboxes, do not remember them in
	the first place.

	* src/balsa-app.c (append_url_if_open): revert.
	* src/main.c (scan_mailboxes_idle_cb): ditto.
	* src/save-restore.c (save_view): remember open mailbox only if
	balsa_app.remember_open_mboxes.

2013-02-26  Peter Bloomfield

	* src/balsa-app.c (ask_password): use a mutex to make sure that
	only one dialog pops up at a time.

2013-02-26  Peter Bloomfield

	* libbalsa/mailbox_local.c (lbm_local_save_tree_real),
	(lbm_local_queue_save_tree): check that the message tree has
	changed in the idle handler, instead of in the scheduler.

2013-02-26  Peter Bloomfield

	* src/balsa-app.c (append_url_if_open): in_sync is gboolean.

2013-02-26  Peter Bloomfield

	* src/balsa-app.c (append_url_if_open): mark view out-of-sync
	only if it really is.

2013-02-26  Peter Bloomfield

	* src/balsa-app.c (append_url_if_open),
	(open_mailboxes_idle_cb): if we are not remembering open
	mailboxes, forget them.
	* src/main.c (scan_mailboxes_idle_cb): always call
	open_mailboxes_idle_cb so we can forget them.

2013-02-25  Peter Bloomfield

	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler),
	(sendmsg_window_new), (bsmsg2message), (sw_buffer_changed):
	remove annoying wrap timeout, and carry out autosave timeout
	without disturbing the compose window.
	* src/sendmsg-window.h: remove timeout id.

2013-02-25  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_filt_check): check that mailbox
	is still open.

2013-02-25  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_search_iter_ref): allow
	NULL iter.

2013-02-25  Peter Bloomfield

	* configure.in: actually error out if libsecret devel is not
	installed.

2013-02-24  Peter Bloomfield

	Port from GnomeKeyring to libsecret.

	* configure.in: implement --with-libsecret as an alternative to
	GnomeSecret.
	* libbalsa/imap-server.c (libbalsa_imap_server_new_from_config):
	use libsecret if configured.
	* libbalsa/server.c (libbalsa_server_load_config),
	(libbalsa_server_save_config): ditto.
	* libbalsa/server.h: ditto.
	* src/balsa-app.c (ask_password_real): new string to request
	saving in secret service.
	* src/folder-conf.c (folder_conf_imap_node): ditto.
	* src/mailbox-conf.c (create_imap_mailbox_dialog): ditto.

2013-02-23  Peter Bloomfield

	* update all copyrights to 2013.

2013-02-23  Peter Bloomfield

	* src/main.c (handle_remote): handle -h option.

2013-02-23  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_changed),
	(libbalsa_mailbox_msgno_changed): make sure parent message is
	checked.

2013-02-23  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_filt_check),
	(libbalsa_mailbox_msgno_filt_check): use an idle callback to
	check whether to filter a message in or out.

2013-02-21  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_finalize),
	(lbm_msgno_row_changed), (lbm_msgnos_changed_idle_cb),
	(lbm_msgno_changed), (lbm_get_index_entry): restore threaded
	versions of get_index_entry and msgno_changed.

2013-02-21  Peter Bloomfield

	* src/ab-main.c (main): deprecation cleanup.

2013-02-21  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_finalize): build without
	threads.

2013-02-21  Peter Bloomfield

	* src/main-window.c: do not leave progress bar crawling.

2013-02-21  Peter Bloomfield

	* src/balsa-index.c (balsa_index_load_mailbox_node): move
	libbalsa_mailbox_open call to balsa_window_real_open_mbnode.
	* src/balsa-index.h: drop unused argument.
	* src/main-window.c: open mailbox in a thread.

2013-02-21  Peter Bloomfield

	* src/main.c (balsa_progress_set_text): do not check for
	subthread, as balsa_window_setup_progress is thread-safe.

2013-02-20  Peter Bloomfield

	* src/main-window.c: set up progress bar in an idle callback.

2013-02-20  Peter Bloomfield

	* src/main-window.c: change button sensitivity in an idle
	callback.

2013-02-20  Peter Bloomfield

	* src/balsa-app.c (balsa_find_iter_by_data): check for
	sub-thread.

2013-02-20  Peter Bloomfield

	* src/balsa-app.c (balsa_find_url): thread-safe.

2013-02-20  Peter Bloomfield

	* libbalsa/send.c (balsa_send_message_real_idle_cb),
	(balsa_send_message_real): close outbox in an idle callback.

2013-02-20  Peter Bloomfield

	* libbalsa/libbalsa-gpgme.c (libbalsa_gpgme_init): use g_message
	instead of g_warning.

2013-02-20  Peter Bloomfield

	* configure.in: new option --enable-debug-threads.
	* libbalsa/libbalsa.h: use it to define gdk_threads_enter() to
	detect a sub-thread.

2013-02-20  Peter Bloomfield

	Build with enable-threads; check POP3 mail and send messages in
	threads.

	* libbalsa/libbalsa.c (libbalsa_lock_mailbox),
	(libbalsa_threads_init), (libbalsa_threads_has_lock): rip out
	gdk_threads-related code.
	* libbalsa/libbalsa.h: ditto.
	* src/main.c (threads_init): ditto.
	* libbalsa/imap-server.c (connection_cleanup): not ready for
	threads.
	* libbalsa/mailbox.c (libbalsa_mailbox_class_init),
	(lbm_get_index_entry), (lbm_check_idle): ditto.
	* libbalsa/mailbox_local.c (lbm_local_save_tree_idle): ditto
	* libbalsa/mailbox_pop3.c: use a thread.
	* libbalsa/mailbox_pop3.h: ditto.
	* libbalsa/send.c (lbs_process_queue), (libbalsa_process_queue):
	* src/main-window.c: ditto.

2013-02-16  Peter Bloomfield

	* libbalsa/libbalsa-conf.c (lbc_lock), (lbc_unlock): call
	lbc_init() only once.

2013-01-15  Peter Bloomfield

	* src/main-window.c: emit signal instead of calling NULL class
	method.

2013-01-08  Peter Bloomfield

	* src/pref-manager.c (create_layout_types_menu): use relevant
	enum.

2013-01-08  Peter Bloomfield

	* src/main-window.c: mailbox index cannot shrink.

2012-12-08  Peter Bloomfield

	* src/main-window.c: use idle callback to check mail when not
	threaded.

2012-11-27  Peter Bloomfield

	* src/balsa-index.c (balsa_index_scroll_on_open): use idle
	callback only from a subthread.

2012-11-21  Peter Bloomfield

	Build with gtk 3.6, at least without threads

	* libbalsa/information.c: include libbalsa.h.
	* libbalsa/libbalsa.h: when not threaded, define
	gdk_threads_{enter,leave} to nothing.
	* libbalsa/mailbox.c (lbm_cache_message): when not threaded,
	avoid recursive signal call.
	* libbalsa/misc.c: remove deprecated GtkTable code.
	* libbalsa/misc.h: ditto.
	* src/balsa-mime-widget-image.c (img_check_size): build with
	gdk_threads_{enter,leave} defined to nothing.
	* src/filter-edit-callbacks.c (fe_apply_pressed),
	(fe_filters_list_selection_changed): deprecation cleanup.
	* src/filter-edit-dialog.c (fe_make_color_buttons): ditto.
	* src/main-window.c: CSS cleanup.
	* src/pref-manager.c (apply_prefs), (set_prefs): deprecation
	cleanup.

2012-11-14  Peter Bloomfield

	Port to newly released Gtkspell 3.0

	* configure.in: renamed pkg-config file.
	* src/sendmsg-window.c (sw_spell_attach), (sw_spell_detach): new
	API.

2012-10-29

	* configure.in, NEWS: release 2.4.91

2012-10-22  Pawel Salek

	* libbalsa/imap/pop3.c: fix long-line POP3 bug reported by Rob Landley.

2012-09-30  Peter Bloomfield

	* src/store-address.c (store_address_add_address),
	(store_address_add_list): store a group as a distribution list,
	if the address book implements lists.

2012-09-30  Peter Bloomfield

	* libbalsa/libbalsa.c (ask_cert_real): replace "&" by "&amp;" in
	marked-up string.

2012-09-17  Peter Bloomfield

	Fix bgo #684124

	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient_init): capitalize "Balsa".
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_ctx_menu_save): capitalize "URI".
	* src/filter-edit-dialog.c (filters_edit_dialog): space after
	".".

2012-09-17  Ildar Mulyukov <ildar@altlinux.ru>

	* balsa.desktop.in.in: fix desktop categories.

2012-09-17  Peter Bloomfield

	Revert all changes moving Gtk access from subthreads to main
	thread.

	* libbalsa/libbalsa.c (libbalsa_threads_enter):
	* libbalsa/mailbox.c (lbm_index_entry_new_from_msg),
	(libbalsa_mailbox_close), (libbalsa_mailbox_msgno_inserted),
	(libbalsa_mailbox_msgno_removed),
	(libbalsa_mailbox_msgno_filt_check), (lbm_cache_message):
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_load_messages):
	* src/balsa-app.c (find_url), (balsa_find_url):
	* src/balsa-index.c (balsa_index_load_mailbox_node):
	* src/balsa-index.h:
	* src/main-window.c:
	* src/main.c (balsa_progress_set_text),
	(balsa_progress_set_fraction):

2012-09-08  Peter Bloomfield

	* configure.in:  _NL_MEASUREMENT_MEASUREMENT is an enum and not
	a define.
	* src/print-gtk.c (get_default_user_units): use
	HAVE__NL_MEASUREMENT_MEASUREMENT.

2012-08-10  Peter Bloomfield

	* libbalsa/body.c (libbalsa_message_body_get_part_stream):
	simplify filter selection switch.

2012-08-09  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bm_header_widget_realized):
	use BalsaMessage::scroll as the context for header widget
	colors.

2012-07-22  Peter Bloomfield

	* src/store-address.c (store_address_book_frame): reduce scope
	of variables.

2012-07-22  Peter Bloomfield

	* src/sendmsg-window.c (update_bsmsg_identity): reduce scope of
	variables;
	(tree_add_quote_body): suppress null pointer warning.

2012-07-22  Peter Bloomfield

	* src/save-restore.c (pop3_progress_notify): suppress memory
	leak warning.

2012-07-22  Peter Bloomfield

	* src/main-window.c: use sscanf field limits; suppress null
	pointer warning.

2012-07-22  Peter Bloomfield

	* src/mailbox-conf.c (mailbox_conf_update): reduce scope of
	variable.

2012-07-22  Peter Bloomfield

	* src/balsa-mime-widget.c (balsa_mime_widget_new_unknown):
	reduce scope of variables.

2012-07-22  Peter Bloomfield

	* src/balsa-index.c (pipe_out_watch): reduce scope of variable.

2012-07-22  Peter Bloomfield

	* libinit_balsa/assistant_page_directory.c
	(unconditional_mailbox): reduce scope of variable.

2012-07-22  Peter Bloomfield

	* libbalsa/send.c (balsa_send_message_real): suppress memory
	leak warning.

2012-07-22  Peter Bloomfield

	* libbalsa/message.c (prepend_header_misc): check loop index
	value before using it.

2012-07-22  Peter Bloomfield

	* libbalsa/mailbox_pop3.c (mp_load_uids): reduce scope of
	variable.

2012-07-22  Peter Bloomfield

	* libbalsa/mailbox_mh.c (lbm_mh_parse_mailbox),
	(lbm_mh_handle_seq_line), (lbm_mh_check): use sscanf field
	limits.

2012-07-22  Peter Bloomfield

	* libbalsa/mailbox_mbox.c (lbm_mbox_stream_seek_to_message):
	avoid unread variable error.

2012-07-22  Peter Bloomfield

	* libbalsa/mailbox_imap.c (is_child_of), (create_cache_copy),
	(libbalsa_mailbox_imap_sort): reduce scope of variables.

2012-07-22  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_type_from_path): reduce
	scope of variable.

2012-07-22  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_guess_mail_spool),
	(asn1time_to_string), (x509_get_part): reduce scope of
	variables;
	(libbalsa_get_image_from_x_face_header): use sscanf field limit.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/siobuf.c (sio_set_tlsclient_ssl),
	(sio_set_tlsserver_ssl), (raw_read): reduce scope of variables.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/pop3.c (parse_list_response): use sscanf field
	limits.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/imap_tst.c (get_user), (user_cb): reduce scope
	of variables.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/imap_search.c (imap_search_key_new_string),
	(imap_search_exec_unlocked): reduce scope of variables.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/imap-tls.c (imap_check_server_identity): reduce
	scope of variable.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/imap-handle.c (imap_handle_disconnect),
	(imap_cmd_step), (imap_get_sequence), (ir_get_append_copy_uids),
	(ir_status), (ir_quota), (ir_body_extension),
	(ir_handle_response): suppress unread-variable error, use sscanf
	field limits, reduce scope.

2012-07-22  Peter Bloomfield

	* libbalsa/imap/imap-commands.c (imap_assure_needed_flags),
	(imap_mbox_sort_msgno_srv), (imap_mbox_sort_filter): reduce
	scope of variables.

2012-07-22  Peter Bloomfield

	* libbalsa/imap-server.c (libbalsa_imap_server_get_handle,
	libbalsa_imap_server_get_handle_with_user): reduce scope of
	variables; suppress incorrect null pointer error.

2012-07-22  Peter Bloomfield

	* libbalsa/gmime-multipart-crypt.c (sign_prepare): reduce scope.

2012-07-22  Peter Bloomfield

	* libbalsa/gmime-gpgme-signature.h: suppress cppcheck syntax
	error.

2012-07-22  Peter Bloomfield

	* libbalsa/address-book-extern.c (parse_externq_file): use
	*scanf field limits to satisfy cppcheck.

2012-07-15  Peter Bloomfield

	* src/mailbox-node.c (balsa_mailbox_local_append): simplify.

2012-07-15  Peter Bloomfield

	* libbalsa/mailbox_imap.c (imap_cache_manager_new_from_file): do
	not leak FILE on error.

2012-07-15  Peter Bloomfield

	* libbalsa/imap/pop3.c (pop_check_status): remove redundant else
	clause.

2012-07-15  Peter Bloomfield

	* libbalsa/identity.h: typo.

2012-07-15  Peter Bloomfield

	* libbalsa/identity.c (libbalsa_identity_get_signature): limit
	scope of fp.

2012-07-15  Peter Bloomfield

	* src/sendmsg-window.c (edit_with_gnome): plug mem leak.

2012-07-15  Peter Bloomfield

	* libbalsa/address.c (libbalsa_address_extract_name): plug mem
	leak.

2012-07-15  Peter Bloomfield

	* libbalsa/address-book-ldif.c
	(libbalsa_address_book_ldif_save_address): fseek before writing
	to stream.

2012-07-15  Peter Bloomfield

	* libbalsa/imap/imap_compress.c (imap_compress_init): memset
	size of struct, not size of pointer to struct.

2012-07-15  Peter Bloomfield

	* src/balsa-mime-widget-text.c (structured_phrases_toggle):
	typo.

2012-07-15  Peter Bloomfield

	* libbalsa/imap/imap_search.c (imap_write_key_string): typo.

2012-07-15  Albrecht Dreß

	* src/sendmsg-window.c (edit_with_gnome): fix mem leak on error.

2012-07-15  Albrecht Dreß

	* src/mailbox-conf.c (mailbox_conf_delete): fix mem leak on
	error.

2012-07-15  Albrecht Dreß

	* src/information-dialog.c (balsa_information_real): fix mem
	leak on NULL main widget.

2012-07-15  Albrecht Dreß

	* src/folder-conf.c (folder_conf_imap_sub_node): fix mem leak
	on error.

2012-07-15  Albrecht Dreß

	* src/balsa-index.c (bndx_start_pipe_messages_array): fix mem
	leak on error.

2012-07-15  Albrecht Dreß

	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_add_message):
	fix mem leak on error.

2012-07-15  Albrecht Dreß

	* libbalsa/mailbox_imap.c (imap_cache_manager_new_from_file): do
	not leak open file on error.

2012-07-15  Albrecht Dreß

	* libbalsa/filter-funcs.c (libbalsa_filter_export_sieve): do not
	leak open file.

2012-07-15  Albrecht Dreß

	* libbalsa/address-book-ldap.c
	(libbalsa_address_book_ldap_get_address): drop useless
	assignment to nick_name, fix mem leak;
	(libbalsa_address_book_ldap_modify_address): fix mem leak.

2012-07-15  Albrecht Dreß

	* libbalsa/address-book-extern.c (parse_externq_file): pipe
	stream must be closed with pclose, not fclose.

2012-07-13  Peter Bloomfield

	* libbalsa/mime.c (process_mime_part): build
	--with-html-widget=no; fixes bgo #679869 (Aljosha).

2012-07-04  Peter Bloomfield

	* src/main-window.c: manage sensitivity of check mail button in
	unthreaded build.

2012-06-27  Peter Bloomfield

	* src/save-restore.c (config_load_sections), (config_mailbox_init),
	(config_address_book_load), (config_address_books_load),
	(config_identities_load), (load_mru): prepend to GList and
	reverse it, instead of appending; use g_list_free_full().

2012-06-25  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_msgno_filt_out),
	(lbm_msgno_filt_check): find node once, not twice.

2012-06-19  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_node_has_unseen_child),
	(lbm_get_index_entry), (mbox_model_get_value): get index entry
	by message number instead of by GNode.

2012-06-13  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_inserted_idle_cb): lock mutex
	before signalling cond.

2012-06-13  Peter Bloomfield

	* src/balsa-app.c (find_url_idle_cb): lock mutex before
	signalling cond.

2012-06-12  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_message_expunged_cb),
	(lbm_msgno_removed_idle_cb), (libbalsa_mailbox_msgno_removed),
	(lbm_msgno_filt_check_idle_cb),
	(libbalsa_mailbox_msgno_filt_check): update message number if a
	message is expunged.

2012-06-11  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_filt_check_idle_cb): unref the
	LibBalsaMailboxSearchIter.

2012-06-11  Peter Bloomfield

	* libbalsa/imap-server.c: remove redundant parentheses.

2012-06-11  Peter Bloomfield

	Ref count LibBalsaMailboxSearchIter

	* libbalsa/mailbox.c (libbalsa_mailbox_run_filters_on_reception),
	(libbalsa_mailbox_msgno_filt_check),
	(libbalsa_mailbox_search_iter_new),
	(libbalsa_mailbox_search_iter_ref),
	(libbalsa_mailbox_search_iter_unref),
	(libbalsa_mailbox_messages_change_flags): ref count
	LibBalsaMailboxSearchIter, and unref it instead of free.
	* libbalsa/mailbox.h: new member ref_count.
	* libbalsa/mailbox_local.c (lbm_local_update_view_filter): unref
	LibBalsaMailboxSearchIter instead of free.
	* src/balsa-index.c (bndx_destroy),
	(bndx_select_next_with_flag): ditto.
	* src/filter-run-callbacks.c (run_filters_on_mailbox): ditto.
	* src/main-window.c: ditto.

2012-06-10  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_scanner_error_quark),
	(libbalsa_mailbox_error_quark), (libbalsa_image_error_quark):
	GQuarks for GError.
	* libbalsa/libbalsa.h: export them.

2012-06-10  Peter Bloomfield

	* libbalsa/imap/pop3.c (pop_imap_error_quark): a GQuark for use
	in g_set_error.
	* libbalsa/imap/pop3.h: export it.

2012-06-09  Peter Bloomfield

	* libbalsa/mailbox.h: do not export
	libbalsa_mailbox_msgno_filt_{in,out}.
	* libbalsa/mailbox.c: declare them static.

2012-06-09  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_filt_check),
	(lbm_msgno_filt_check_idle_cb),
	(libbalsa_mailbox_msgno_filt_check): check whether message
	matches current view filter in an idle callback instead of in
	subthread.

2012-06-08  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_removed_idle_cb),
	(libbalsa_mailbox_msgno_removed): use GSlice instead of g_new();
	use g_idle_add instead of gdk_threads_add_idle.

2012-06-08  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_check_and_sort),
	(lbm_set_threading_idle_cb), (lbm_set_threading): sort in an
	idle callback instead of subthread.
	* libbalsa/mailbox_local.c (lbml_set_threading),
	(lbml_set_threading_idle_cb),
	(libbalsa_mailbox_local_set_threading): set threading type in an
	idle callback instead of subthread.

2012-06-07  Peter Bloomfield

	* src/main.c (progress_set_text), (progress_set_text_idle_cb),
	(balsa_progress_set_text), (progress_set_fraction),
	(progress_set_fraction_idle_cb), (balsa_progress_set_fraction):
	call Gtk in idle callbacks instead of subthreads.

2012-06-07  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_msgno_inserted),
	(lbm_msgno_inserted_idle_cb), (libbalsa_mailbox_msgno_inserted):
	block subthread and use an idle callback to insert message in
	main thread.
	* libbalsa/mailbox_local.c
	(libbalsa_mailbox_local_load_messages): do not grab GDK lock.

2012-06-07  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_threads_enter): warn when
	locking a subthread, to help find bad code paths.

2012-06-07  Peter Bloomfield

	* src/main-window.c: check for NULL index.

2012-06-07  Peter Bloomfield

	* src/balsa-index.c (bndx_find_root): check for NULL tree model.

2012-06-07  Peter Bloomfield

	* src/main-window.c: check for NULL focus widget.

2012-06-06  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_close), (lbm_msgno_removed),
	(lbm_msgno_removed_idle_cb), (libbalsa_mailbox_msgno_removed):
	use an idle callback to remove the message from the tree-model.

2012-06-06  Peter Bloomfield

	* src/balsa-app.c (find_url_func), (find_url), (find_url_idle_cb),
	(balsa_find_url): block the subthread and use an idle callback
	to find the BalsaMailboxNode for the URL.

2012-06-06  Peter Bloomfield

	* libbalsa/mime-stream-shared.c
	(libbalsa_mime_stream_shared_lock): build with glib < 2.32.

2012-06-05  Peter Bloomfield

	Make changes in previous commit conditional on glib version
	at least 2.32.

	* libbalsa/imap-server.c (libbalsa_imap_server_init),
	(libbalsa_imap_server_finalize): make previous changes
	conditional on glib version at least 2.32.
	* libbalsa/libbalsa-conf.c (lbc_lock), (lbc_unlock): ditto.
	* libbalsa/mime-stream-shared.c (lbmss_stream_class_init),
	(libbalsa_mime_stream_shared_lock),
	(libbalsa_mime_stream_shared_unlock): ditto.

2012-06-05  Peter Bloomfield

	Deprecation cleanup; fixes bgo #677381

	* libbalsa/imap-server.c (libbalsa_imap_server_init),
	(libbalsa_imap_server_finalize): deprecation cleanup.
	* libbalsa/libbalsa-conf.c (lbc_lock), (lbc_unlock): ditto.
	* libbalsa/mime-stream-shared.c (lbmss_stream_class_init),
	(libbalsa_mime_stream_shared_lock),
	(libbalsa_mime_stream_shared_unlock): ditto.

2012-06-03  Peter Bloomfield

	* src/main-window.c: change sensitivity of mail-check button in
	the main thread, in an idle callback.

2012-06-03  Peter Bloomfield

	Call Gtk from only the main thread when opening a mailbox

	* libbalsa/mailbox.c (lbm_cache_message): avoid infinite
	recursion.
	* libbalsa/mailbox.h: do not export
	libbalsa_mailbox_index_entry_new_from_msg.
	* src/balsa-index.c (bndx_set_mailbox), (bndx_open_mailbox),
	(balsa_index_load_mailbox_node): open mailbox in a subthread.
	* src/balsa-index.h: do not export balsa_index_load_mailbox_node
	and balsa_index_scroll_on_open.
	* src/main-window.c: start opening mailbox in the main thread.

2012-05-28  Peter Bloomfield

	* src/balsa-index.c (bi_view_on_open,
	balsa_index_scroll_on_open): set the cursor on the most recent
	message, even when not selecting it.

2012-05-28  Peter Bloomfield

	* src/main-window.c: restore "identities-changed" signal.

2012-05-28  Peter Bloomfield

	* src/main-window.c: show mailbox list on startup only if
	necessary; fixes point 1 of
	<URL:https://mail.gnome.org/archives/balsa-list/2012-May/
	msg00011.html> (Carlos Franke).

2012-05-27  Peter Bloomfield

	* src/main-window.c: use class methods instead of emitting
	signals.
	* src/main-window.h: define class getter.

2012-05-21  Peter Bloomfield

	* libbalsa/imap/md5-utils.c (md5_final): avoid gcc whining.

2012-04-22  Pawel Salek

	* src/balsa-app.{c,h}: free mem on exit. Longer 'short' mailbox names.
	* src/balsa-mblist.c: use them.
	* src/mailbox-node.h: remove unused bit field.
	* src/main-window.c: check_mailboxes must be called from main thread.

2012-04-20  Peter Bloomfield

	* src/main-window.c: hide current message immediately, instead
	of in the idle callback; use gdk_threads_add_idle convenience
	function.
	* src/balsa-message.c (balsa_message_set): message is already
	hidden.

2012-04-19  Peter Bloomfield

	* libbalsa/body.c (libbalsa_message_body_get_pixbuf): apply
	embedded orientation to pixbuf.

2012-04-16  Peter Bloomfield

	* src/balsa-mblist.c (balsa_mblist_mru_add): add folder to the
	MRU folder list as well as to the given list, if different.

2012-04-16  Peter Bloomfield

	Revert previous commit; fixes
	<URL:https://mail.gnome.org/archives/balsa-list/2012-April/msg00003.html>
	from Ildar Mulyukov

	* src/balsa-app.c (balsa_app_init):
	* src/balsa-app.h:
	* src/save-restore.c (config_mailbox_set_as_special),
	(config_global_load), (config_save):
	* src/sendmsg-window.c (create_info_pane):

2012-03-27  Peter Bloomfield

	Use a single MRU folder list

	* src/balsa-app.h: drop separate Fcc list.
	* src/balsa-app.c (balsa_app_init): ditto.
	* src/save-restore.c (config_mailbox_set_as_special): use
	combined list;
	(config_global_load), (config_save): do not save and restore
	separate Fcc list.
	* src/sendmsg-window.c (create_info_pane): use combined list.

2012-03-27  Peter Bloomfield

	Remember geometry of MRU mailbox tree

	* src/balsa-app.h: new members mru_tree_{width,height}
	* src/balsa-mblist.c (bmbl_mru_size_allocate_cb): save them when
	the dialog's size is changed;
	(bmbl_mru_show_tree): use the saved values.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore them.

2012-03-20  Peter Bloomfield

	* configure.in: work around "intltool-update -m" bug: it knows
	about m4_esyscmd, not m4_esyscmd_s.

2012-03-06  Peter Bloomfield

	* src/main-window.c: update last-check-time only if connected.

2012-03-06  Peter Bloomfield

	* src/main-window.c: check local mailboxes even when network is
	not connected.

2012-03-06  Peter Bloomfield

	* libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_passphrase): build
	with --disable-threads.

2012-02-08  Albrecht Dreß

	* libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_verify):
	check for empty return from GpgME.

2012-02-03  Peter Bloomfield

	* configure.in: remove obsolete BUILD_WITH_GNOME.

2011-12-20  Peter Bloomfield

	* configure.in: use git tag to set version.

2011-12-20  Peter Bloomfield

	* Makefile.am: drop GNOME_Balsa.server.in from balsa_extra_dist.

2011-12-20  Peter Bloomfield

	* .gitignore: add .libs.

2011-12-20  Albrecht Dreß

	* libbalsa/rfc3156.c: suppress GLib warning when the message is
	only encrypted; return 'no error' for encrypted-only RFC 2440
	messages; re-wrap a few over-long lines
	* src/balsa-message.c: properly pick up return values from
	libbalsa
	* src/balsa-mime-widget-crypto.[hc]: changes needed for drawing
	encrypted-only frame
	* src/balsa-mime-widget-multipart.c: use new crypto frame api
	* src/balsa-mime-widget.c: draw frame around encrypted-only rfc
	2440 part
	* src/print-gtk.c: encrypted-only frame print implementation

2011-12-18  Peter Bloomfield

	* src/main.c (balsa_check_open_mailboxes),
	(scan_mailboxes_idle_cb), (balsa_check_open_compose_window),
	(real_main), (handle_remote): reuse identical code.

2011-12-18  Peter Bloomfield

	* .cvsignore: delete.
	* .gitignore: add.

2011-12-17  Peter Bloomfield

	* src/main.c (handle_remote): do not leak option-handling
	resources.

2011-12-17  Peter Bloomfield

	* src/main-window.c: build --without-nm; thanks to Jack
	<URL:https://mail.gnome.org/archives/balsa-list/2011-December/msg00013.html>.

2011-12-17  Peter Bloomfield

	* src/main.c (handle_remote): use the capabilities of
	g_application_command_line_print.

2011-12-17  Peter Bloomfield

	* src/main.c (scan_mailboxes_idle_cb), (real_main),
	(handle_remote), (command_line_cb): free option-handling resources
	when no longer needed, instead of later; ignore other options
	when --get-stats is requested by a second instance, as in the
	primary instance; add comments to document logic.

2011-12-16  Peter Bloomfield

	* src/main.c: do not leak option-context; use opt-attach-list as
	gchar ** instead of GSlist; do not pass GApplication to
	handle-remote.

2011-12-16  Peter Bloomfield

	* src/sendmsg-window.c: drop ctrl-Q accelerator for
	file:queue-for-sending.

2011-12-15  Peter Bloomfield

	Migrate to GApplication

	* GNOME_Balsa.server.in: remove obsolete file.
	* Makefile.am: remove reference to obsolete file.
	* configure.in: remove libUnique configuration, and bump glib
	requirement to 2.28.
	* src/main.c (balsa_init), (scan_mailboxes_idle_cb), (real_main),
	(balsa_cleanup), (handle_remote), (command_line_cb), (main):
	migrate to GApplication.

2011-12-10  Peter Bloomfield

	* libbalsa/libbalsa-gpgme-cb.c: include stdlib.h directly.

2011-12-10  Albrecht Dreß

	New crypto implementation

	* libbalsa/Makefile.am: new files.
	* libbalsa/body.c (libbalsa_message_body_protect_state): use new
	implementation.
	* libbalsa/gmime-application-pkcs7.c
	(g_mime_application_pkcs7_decrypt_verify),
	(g_mime_application_pkcs7_encrypt): ditto.
	* libbalsa/gmime-application-pkcs7.h: ditto.
	* libbalsa/gmime-gpgme-context.c: new file.
	* libbalsa/gmime-gpgme-context.h: ditto.
	* libbalsa/gmime-gpgme-signature.c
	(g_mime_gpgme_sigstat_new_from_gpgme_ctx),
	(g_mime_gpgme_sigstat_finalize), (hex_decode),
	(libbalsa_cert_subject_readable), (g_mime_gpgme_sigstat_init):
	ditto.
	* libbalsa/gmime-gpgme-signature.h: ditto.
	* libbalsa/gmime-part-rfc2440.c (g_mime_part_check_rfc2440),
	(g_mime_part_rfc2440_sign_encrypt), (g_mime_part_rfc2440_verify),
	(g_mime_part_rfc2440_decrypt): use new implementation.
	* libbalsa/gmime-part-rfc2440.h: ditto.
	* libbalsa/rfc3156.c (libbalsa_sign_mime_object),
	(libbalsa_encrypt_mime_object), (libbalsa_body_check_signature),
	(libbalsa_body_decrypt), (libbalsa_rfc2440_sign_encrypt),
	(libbalsa_rfc2440_verify), (libbalsa_rfc2440_decrypt),
	(libbalsa_gpgme_validity_to_gchar_short), (append_time_t),
	(libbalsa_signature_info_to_gchar): ditto.
	* libbalsa/rfc3156.h: ditto.
	* src/balsa-message.c (libbalsa_msg_part_2440): ditto.
	* src/main.c (main): ditto.

2011-12-03  Peter Bloomfield

	* src/sendmsg-window.c (create_text_area): remove redundant
	dynamic cast; use more appropriate identifier.

2011-12-03  Peter Bloomfield

	* src/sendmsg-window.c (create_text_area): build without
	GtkSourceView.

2011-12-02  Peter Bloomfield

	Add mailto-handler desktop file

	* balsa-mailto-handler.desktop.in.in: new file.
	* balsa.desktop.in.in: do not use -m.

2011-11-12  Peter Bloomfield

	* libbalsa/rfc3156.c (libbalsa_body_check_signature): use only
	one dynamic cast.

2011-11-10  Peter Bloomfield

	* libbalsa/rfc3156.c (libbalsa_body_check_signature): restore
	handling of application/x-pkcs7-signature.

2011-11-09  Peter Bloomfield

	Build with GMime version >= 2.5.7

	* configure.in: check GMime version.
	* libbalsa/gmime-application-pkcs7.c
	(g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
	(g_mime_application_pkcs7_encrypt),
	(g_mime_application_pkcs7_decrypt): build with GMime version >=
	2.5.7.
	* libbalsa/gmime-application-pkcs7.h: ditto.
	* libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
	(g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
	(g_mime_gpgme_digest_id): ditto.
	* libbalsa/gmime-gpgme-context.h: ditto.
	* libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
	(g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
	* libbalsa/gmime-part-rfc2440.h: ditto.
	* libbalsa/rfc3156.c (password_request_func),
	(libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
	(libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.

2011-10-26  Peter Bloomfield

	* src/sendmsg-window.c (create_info_pane): do not set vertical
	expand flag on attachment frame, it causes weird vertical
	spacing when the attachments are shown.

2011-10-26  Peter Bloomfield

	* src/main.c (threads_init): use g_type_init, which is required,
	not g_threads_init, which is redundant.

2011-10-24  Peter Bloomfield

	* src/main.c (balsa_handle_automation_options), (balsa_init),
	(scan_mailboxes_idle_cb): handle multiple -o options.

2011-10-22  Peter Bloomfield

	* src/balsa-app.c (open_mailboxes_idle_cb): select first
	command-line mailbox; see discussion at
	https://mail.gnome.org/archives/balsa-list/2011-October/msg00010.html

2011-10-21  Peter Bloomfield

	* src/main-window.c: when network is connected, check mail in
	the subthread, so that the signal handler can return.

2011-10-14  Peter Bloomfield

	gtk_assistant_set_page_header_image and
	gtk_assistant_set_page_side_image are deprecated.

	* images/Makefile.am: no need for balsa-logo.png and
	balsa-watermark.png.
	* libinit_balsa/assistant_init.c (balsa_initdruid):
	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient):
	* libinit_balsa/assistant_page_defclient.h:
	* libinit_balsa/assistant_page_directory.c
	(balsa_druid_page_directory):
	* libinit_balsa/assistant_page_directory.h:
	* libinit_balsa/assistant_page_finish.c (balsa_druid_page_finish):
	* libinit_balsa/assistant_page_finish.h:
	* libinit_balsa/assistant_page_user.c (balsa_druid_page_user):
	* libinit_balsa/assistant_page_user.h:
	* libinit_balsa/assistant_page_welcome.c
	(balsa_druid_page_welcome):
	* libinit_balsa/assistant_page_welcome.h: deprecation cleanup.

2011-10-14  Peter Bloomfield

	Gtk{HV}Paned is deprecated.

	* src/main-window.c: deprecation cleanup.

2011-10-14  Peter Bloomfield

	Gtk{HV}Separator is deprecated.

	* src/filter-edit-dialog.c (filters_edit_dialog): deprecation
	cleanup.

2011-10-14  Peter Bloomfield

	Gtk{HV}ButtonBox is deprecated.

	* src/ab-main.c (bab_get_edit_button_box):
	* src/ab-window.c (balsa_ab_window_init):
	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget):
	* src/filter-edit-dialog.c (build_left_side), (build_right_side):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_init):
	* src/main-window.c:
	* src/toolbar-prefs.c (create_toolbar_page): deprecation
	cleanup.


2011-10-13  Peter Bloomfield

	Gtk{HV}Box is deprecated.

	* libbalsa/address.c (libbalsa_address_get_edit_widget):
	* libbalsa/html.c (libbalsa_html_new):
	* libbalsa/identity.c (append_ident_notebook_page),
	(ident_dialog_add_boxes), (libbalsa_identity_config_dialog):
	* libbalsa/rfc3156.c (select_key_from_list), (get_passphrase_real):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* libbalsa/source-viewer.c (libbalsa_show_message_source):
	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient):
	* libinit_balsa/assistant_page_directory.c
	(balsa_druid_page_directory):
	* libinit_balsa/assistant_page_user.c (balsa_druid_page_user):
	* src/ab-main.c (bab_get_filter_box), (bab_window_new):
	* src/ab-window.c (balsa_ab_window_init):
	* src/balsa-app.c (balsa_stock_button_with_label):
	* src/balsa-message.c (bm_header_tl_buttons), (bm_find_bar_new),
	(balsa_message_init):
	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget),
	(balsa_mime_widget_crypto_frame):
	* src/balsa-mime-widget-message.c (balsa_mime_widget_new_message),
	(bmw_message_extbody_url), (bmw_message_extbody_mail),
	(balsa_mime_widget_new_message_tl), (bm_header_widget_new):
	* src/balsa-mime-widget-multipart.c
	(balsa_mime_widget_new_multipart):
	* src/balsa-mime-widget-vcalendar.c
	(balsa_mime_widget_new_vcalendar), (balsa_vevent_widget):
	* src/balsa-mime-widget.c (balsa_mime_widget_new_unknown):
	* src/filter-edit-callbacks.c (build_type_notebook),
	(build_condition_dialog):
	* src/filter-edit-dialog.c (build_left_side), (build_match_page),
	(build_action_page), (build_right_side), (filters_edit_dialog):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_init):
	* src/folder-conf.c (folder_conf_imap_sub_node):
	* src/mailbox-conf.c (balsa_server_conf_get_advanced_widget):
	* src/main-window.c:
	* src/message-window.c (message_window_new):
	* src/pref-manager.c (open_preferences_manager),
	(vbox_in_container), (color_box), (remote_mailbox_servers_group),
	(outgoing_mail_group), (checking_group), (message_colors_group),
	(add_pref_menu), (misc_group), (deleting_messages_group),
	(folder_scanning_group), (address_books_group), (pm_page_new),
	(pm_group_new):
	* src/print-gtk.c (message_prefs_widget):
	* src/sendmsg-window.c (sw_get_user_codeset),
	(quote_parts_select_dlg), (sendmsg_window_new),
	(subject_not_empty), (check_suggest_encryption):
	* src/toolbar-prefs.c (customize_dialog_cb),
	(create_toolbar_page): deprecation cleanup.

2011-10-13  Peter Bloomfield

	* src/sendmsg-window.h: remove redundant member header_table.
	* src/sendmsg-window.c (create_email_or_string_entry),
	(create_string_entry), (create_email_entry), (create_from_entry),
	(create_info_pane), (create_text_area): ditto; migrate from
	GtkTable to GtkGrid.

2011-10-13  Peter Bloomfield

	* src/print-gtk.c (begin_print), (add_font_button),
	(add_margin_spinbtn), (message_prefs_widget): migrate from
	GtkTable to GtkGrid.

2011-10-13  Peter Bloomfield

	* src/pref-manager.c (attach_entry), (attach_entry_full),
	(attach_information_menu), (attach_label), (checking_group),
	(quoted_group), (broken_8bit_codeset_group), (mdn_group),
	(word_wrap_group), (other_options_group), (main_window_group),
	(display_formats_group), (information_messages_group),
	(attach_font_button), (preview_font_group), (create_grid),
	(message_window_group): migrate from GtkTable to GtkGrid.

2011-10-06  Peter Bloomfield

	* src/main-window.c: migrate from GtkTable to GtkGrid.

2011-10-06  Peter Bloomfield

	* src/mailbox-conf.c (balsa_server_conf_get_advanced_widget),
	(balsa_server_conf_add_checkbox), (balsa_server_conf_add_spinner),
	(create_local_mailbox_dialog), (create_pop_mailbox_dialog),
	(create_imap_mailbox_dialog), (mailbox_conf_view_new_full),
	(mailbox_conf_view_new): migrate from GtkTable to GtkGrid.
	* src/mailbox-conf.h: ditto.

2011-10-06  Peter Bloomfield

	* src/folder-conf.c (folder_conf_imap_node),
	(folder_conf_imap_sub_node): migrate from GtkTable to GtkGrid.

2011-10-06  Peter Bloomfield

	* src/filter-edit-dialog.c (build_match_page),
	(fe_make_color_buttons), (build_action_page),
	(build_right_side): migrate from GtkTable to GtkGrid.

2011-10-06  Peter Bloomfield

	* src/filter-edit-callbacks.c (build_type_notebook): add a
	margin to notebook pages.

2011-10-06  Peter Bloomfield

	* src/filter-edit-callbacks.c (add_button), (add_check),
	(get_field_frame), (build_type_notebook): migrate from GtkTable
	to GtkGrid.

2011-10-05  Peter Bloomfield

	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget):
	migrate from GtkTable to GtkGrid.

2011-10-05  Peter Bloomfield

	* src/address-book-config.c (create_gpe_dialog): build with GPE
	address book.

2011-10-05  Peter Bloomfield

	* src/balsa-mime-widget-text.c (bm_widget_new_vcard): make
	button span two columns, and left-align labels instead of right.

2011-10-04  Peter Bloomfield

	* src/balsa-mime-widget-text.c (bm_widget_new_vcard): migrate
	from GtkTable to GtkGrid.

2011-10-04  Peter Bloomfield

	* src/address-book-config.c (add_radio_buttons),
	(create_local_dialog), (create_externq_dialog),
	(create_ldap_dialog), (create_gpe_dialog): migrate from GtkTable
	to GtkGrid.

2011-10-04  Peter Bloomfield

	* src/ab-window.c (balsa_ab_window_init): migrate from GtkTable
	to GtkGrid.

2011-10-03  Peter Bloomfield

	Migrate from GtkTable to GtkGrid

	* libinit_balsa/assistant_helper.c (balsa_init_add_grid_entry),
	(balsa_init_add_grid_option), (balsa_init_add_grid_checkbox):
	* libinit_balsa/assistant_helper.h:
	* libinit_balsa/assistant_page_directory.c
	(balsa_druid_page_directory_init):
	* libinit_balsa/assistant_page_user.c (balsa_druid_page_user_init):

2011-10-03  Peter Bloomfield

	* libbalsa/smtp-server.c (smtp_server_add_widget),
	(libbalsa_smtp_server_dialog): migrate from GtkTable to GtkGrid.

2011-10-03  Peter Bloomfield

	* libbalsa/identity.c (append_ident_notebook_page),
	(setup_ident_frame), (ident_dialog_add_checkbutton),
	(ident_dialog_add_check_and_entry), (ident_dialog_add_entry),
	(ident_dialog_add_file_chooser_button), (ident_dialog_add_boxes),
	(ident_dialog_add_gpg_menu), (ident_dialog_add_smtp_menu):
	migrate from GtkTable to GtkGrid.

2011-10-03  Peter Bloomfield

	* libbalsa/address.c (libbalsa_address_get_edit_widget): migrate
	from GtkTable to GtkGrid.

2011-10-03  Peter Bloomfield

	* libbalsa/misc.c (libbalsa_create_grid),
	(libbalsa_create_grid_label), (libbalsa_create_grid_check),
	(libbalsa_create_grid_entry), (lb_create_size_group_func):
	new GtkGrid helpers.
	* libbalsa/misc.h: export them.

2011-10-03  Peter Bloomfield

	* src/pref-manager.c (remote_mailbox_servers_group),
	(address_books_group), (address_book_add_cb), (server_add_cb),
	(server_add_menu_widget): do not leak menus.

2011-10-02  Peter Bloomfield

	* src/pref-manager.c (address_book_add_cb), (server_add_cb): do
	not ref-sink and unref popup menus.

2011-10-02  Peter Bloomfield

	* src/save-restore.c (config_defclient_save): do not use
	uninitialized GError.

2011-09-28  Peter Bloomfield

	* configure.in: check for javascriptcoregtk with recent webkit;
	thanks to Vincent Untz and Marcus Hüwe; fixes bgo #660263.

2011-09-18  Peter Bloomfield

	* src/print-gtk.c (draw_page): use ngettext for plural; fixes
	bgo #659390.

2011-09-09  Peter Bloomfield

	* src/main-window.c: use checking_mail_lock to protect access to
	checking_mail.
	* src/main.c (balsa_cleanup): ditto.
	* src/threads.h: declare checking_mail.

2011-09-08  Peter Bloomfield

	* src/main-window.c: set view-filter in an idle callback.

2011-09-06  Peter Bloomfield

	* src/balsa-mblist.c (bmbl_mru_show_tree): try better default
	size for mblist widget.

2011-09-01  Peter Bloomfield

	* libbalsa/misc.c (lb_text_attr): add gssize len argument;
	(libbalsa_text_attr_string): pass -1;
	(libbalsa_text_attr_file): pass len; avoid stack buffer
	overflow.

2011-08-31  Peter Bloomfield

	* libbalsa/misc.c (libbalsa_text_attr_file): use GFile methods.
	* src/sendmsg-window.c (sw_set_charset): check for error return.

2011-08-30  Peter Bloomfield

	* src/main-window.c: call gtk_container_resize_children after
	adding the notebook page for a newly opened mailbox; should not
	be necessary, but seems to fix
	<URL:https://mail.gnome.org/archives/balsa-list/2011-August/msg00017.html>.

2011-08-30  Peter Bloomfield

	* configure.in: webkit can be used with threads disabled if glib
	version is 2.24 or later.

2011-08-29  Pawel Salek

	* libbalsa/filter-funcs.c: implement libbalsa_condition_to_string_user
	* libbalsa/filter.h: add libbalsa_condition_to_string_user() proto.
	* src/filter-edit-callbacks.c: use it to provide more user-friendly
	filter view.

2011-08-28  Peter Bloomfield

	* src/main-window.c: when network connection is reestablished,
	check mail if elapsed time since last check exceeds mail check
	interval.
	* src/main-window.h: new member last_check_time.

2011-08-28  Peter Bloomfield

	* libbalsa/body.c (libbalsa_message_body_get_pixbuf): check for
	error before closing loader.
	* src/balsa-print-object-image.c (balsa_print_object_image): use
	g_message instead of g_warning for image format error.

2011-08-26  Peter Bloomfield

	Make BalsaMimeWidgetImage a subclass of BalsaMimeWidget

	* src/balsa-mime-widget-image.h: subclass boilerplate.
	* src/balsa-mime-widget-image.c (balsa_mime_widget_image_init),
	(balsa_mime_widget_image_class_init): ditto.
	(balsa_mime_widget_image_dispose): disconnect signal handler.
	(balsa_mime_widget_new_image): store signal handler id.

2011-08-21  Peter Bloomfield

	* libbalsa/libbalsa-vfs.c (libbalsa_vfs_get_size): get size as
	guint64.
	* libbalsa/libbalsa-vfs.h: ditto.
	* src/sendmsg-window.c (add_attachment), (add_urlref_attachment),
	(create_info_pane): ditto;
	(render_attach_size): use g_format_size() instead of deprecated
	g_format_size_for_display().

2011-08-21  Peter Bloomfield

	* libbalsa/address-view.c (lbav_ensure_blank_line_idle_cb):
	remove irrelevant comment.
	* src/sendmsg-window.c (create_info_pane): create "Reply-To:"
	entry before regular recipients, so the latter get the focus.

2011-08-20  Peter Bloomfield

	* src/main-window.h: add BalsaWindow::bottom_bar.
	* src/main-window.c: use it to hide both the progress bar and
	the status bar.

2011-08-20  Peter Bloomfield

	(lbav_ensure_blank_line): use gdk_threads_add_idle() for
	convenience;
	* libbalsa/address-view.c (lbav_ensure_blank_line_idle_cb): no
	need to check GSource removal.

2011-08-20  Peter Bloomfield

	* src/sendmsg-window.c (create_lang_menu): use
	enchant_broker_dict_exists() to check languages for Balsa's
	spell-checker.

2011-08-19  Peter Bloomfield

	* libbalsa/address-view.c (lbav_ensure_blank_line_idle_cb),
	(lbav_set_text), (lbav_editing_done), (lbav_row_editing_cb),
	(libbalsa_address_view_new): use GtkCellEditable's
	"editing-done" signal to capture address, instead of
	GtkCellRendererText's "edited" and "editing-canceled" signals.

2011-08-15  Peter Bloomfield

	* configure.in: when building with-gtkspell, check for
	gtkspell-3.0; do not warn about gtkspell or html widget.

2011-08-09  Peter Bloomfield

	Migrate spell-checker from PSpell to Enchant

	* configure.in: change tests.
	* src/balsa-app.c (balsa_app_init): remove all PSpell options.
	* src/balsa-app.h: ditto
	* src/pref-manager.c (open_preferences_manager), (apply_prefs),
	(set_prefs), (create_spelling_page): ditto.
	* src/save-restore.c (config_global_load), (config_save):
	* src/sendmsg-window.c (spell_check_cb): ditto.
	* src/spell-check.c (balsa_spell_check_class_init),
	(spch_set_property), (spch_get_property), (balsa_spell_check_new),
	(balsa_spell_check_new_with_text), (balsa_spell_check_set_text),
	(balsa_spell_check_set_language), (balsa_spell_check_init),
	(ignore_cb), (ignore_all_cb), (change_cb), (change_all_cb),
	(learn_cb), (cancel_cb), (done_cb), (balsa_spell_check_start),
	(balsa_spell_check_next), (highlight_idle),
	(balsa_spell_check_learn), (balsa_spell_check_fix),
	(balsa_spell_check_destroy), (spch_finish), (setup_suggestions),
	(check_word), (finish_check), (check_error), (next_word),
	(switch_word), (spch_save_word_iters), (spch_restore_word_iters):
	migrate.
	* src/spell-check.h: remove PSpell options.

2011-07-21  Peter Bloomfield

	* libbalsa/imap/siobuf.c (raw_write), (sio_flush_buffer),
	(sio_flush): indicate when buffer has been deallocated.

2011-07-13  Peter Bloomfield

	* configure.in: remove references to gtk+-2.0.

2011-06-22  Peter Bloomfield

	Drop bad-address-color

	* src/balsa-app.h:
	* src/balsa-mime-widget-message.c (add_header_sigstate):
	* src/pref-manager.c (open_preferences_manager), (apply_prefs),
	(set_prefs), (colors_subpage):
	* src/save-restore.c (config_global_load), (config_save):
	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler),
	(create_info_pane):
	* src/sendmsg-window.h:

2011-06-22  Peter Bloomfield

	* src/sendmsg-window.c (add_attachment): do not cast non-widget
	to GtkWidget*.

2011-06-10  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bm_header_widget_realized):
	set the foreground and background colors for SELECTED state as
	well as for NORMAL, so that selected text is distinguished.

2011-06-05  Peter Bloomfield

	* src/save-restore.c (config_identities_load): load identities
	in the order in which they were saved.
	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler),
	(sw_combo_box_changed), (create_from_entry): move selected
	identity to the front of
	balsa_app.identities; see
	<URL:https://mail.gnome.org/archives/balsa-list/2011-May/msg00025.html>
	(Carlos Franke).

2011-06-01  Peter Bloomfield

	Respond to
	<URL:https://mail.gnome.org/archives/balsa-list/2011-May/msg00023.html>

	* src/sendmsg-window.c (setup_headers_from_message): make the
	blank line in the recipient widget not a Bcc: line;
	(setup_headers_from_identity): ditto.

2011-05-31  Peter Bloomfield

	* src/main.c (mw_message_received_cb): present compose window;
	(main): give unique_app_new_with_commands a non-NULL startup-id,
	because when NULL it creates a fake timestamp, which results in
	the running window being presented.

2011-05-28  Peter Bloomfield

	* src/main.c (balsa_handle_automation_options): do not send
	ACTIVATE when asked for status; see
	https://mail.gnome.org/archives/balsa-list/2011-May/msg00015.html

2011-04-16  Peter Bloomfield

	Use GDesktopAppInfo instead of GAppInfo

	* configure.in: add gio-unix-2.0 to gnome-extras so we can use
	GDesktopAppInfo.
	* src/save-restore.c (config_defclient_save): use GDesktopAppInfo
	instead of GAppInfo to set Balsa as default client.

2011-04-15  Peter Bloomfield

	Fix bz #647695; Pawel's patch for master, with one change.

	* src/balsa-message.c (bm_find_bar_new), (balsa_message_init),
	(balsa_message_find_in_message): show all of the widget before
	adding the find bar.
	* src/message-window.c (message_window_new): show the widget,
	not show all.

2011-04-14  Peter Bloomfield

	* src/save-restore.c (config_defclient_save): fix launch
	commandline.

2011-04-13  Peter Bloomfield

	Migrate from GConf

	* configure.in: do not check gconf-2.0.
	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient_init), (balsa_druid_page_defclient),
	(balsa_druid_page_defclient_toggle): use GAppInfo to check
	default mailer.
	* src/save-restore.c (config_defclient_save): use GAppInfo to
	set default mailer.
	* website/faq.html: update.

2011-04-06  Peter Bloomfield

	* src/main-window.c: implement alt-n to switch to mailbox n.

2011-04-06  Peter Bloomfield

	* balsa.desktop.in: declare Balsa to be
	MimeType=x-scheme-handler/mailto.

2011-04-05  Peter Bloomfield

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text): new
	GtkSourceView macro.

2011-02-05  Peter Bloomfield

	* src/balsa-message.c (hide_all_parts): just destroy the
	children, no need to recurse deeper.

2011-02-05  Peter Bloomfield

	* src/balsa-mblist.c (bmbl_init): remove redundant and crashing
	column-set-visible.

2011-02-05  Peter Bloomfield

	* configure.in: GtkHtml-4 is the new GtkHtml-3.
	* libbalsa/html.c (libbalsa_html_new), (lbh_size_request_cb):
	ditto; do not connect to "size-request" signal.

2011-01-30  Peter Bloomfield

	Revert from GSettings to GConf for default client stuff

	* configure.in:
	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient):
	* src/save-restore.c (config_defclient_save):

2011-01-30  Peter Bloomfield

	Silence whining from gcc-4.6

	* libbalsa/files.c (libbalsa_icon_finder):
	* libbalsa/filter-funcs.c (libbalsa_filter_export_sieve):
	* libbalsa/identity.c (libbalsa_identity_get_signature):
	* libbalsa/imap-server.c (libbalsa_imap_server_finalize):
	* libbalsa/imap/imap-handle.c (ir_esearch):
	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_open):
	* libbalsa/mailbox_local.c (libbalsa_mailbox_local_load_config):
	* libbalsa/mailbox_maildir.c
	(libbalsa_mailbox_maildir_add_message):
	* libbalsa/rfc2445.c (date_time_2445_to_time_t):
	* libbalsa/rfc3156.c (get_passphrase_cb):
	* libbalsa/server.c (libbalsa_server_user_cb):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_finalize),
	(libbalsa_smtp_server_class_init):
	* src/address-book-config.c (create_generic_dialog):
	* src/main.c (config_init), (mailboxes_init):
	* src/save-restore.c (config_filter_load), (config_filters_save),
	(config_defclient_save):
	* src/sendmsg-window.c (edit_with_gnome_check):
	* src/spell-check.c (balsa_spell_check_class_init):

2011-01-30  Peter Bloomfield

	* src/toolbar-factory.c (balsa_toolbar_model_finalize),
	(balsa_toolbar_model_new): do not refer to "org.gnome.*" when
	not HAVE_GNOME;
	(tm_populate), (tm_default_style): add empty second line only
	for GTK_TOOLBAR_BOTH.

2011-01-30  Peter Bloomfield

	* configure.in: restore HAVE_GNOME to wrap reference to
	"org.gnome.*".

2011-01-30  Peter Bloomfield

	* balsa.desktop.in: add MimeType=x-scheme-handler/mailto.

2011-01-29  Peter Bloomfield

	* src/toolbar-factory.c (balsa_toolbar_model_finalize),
	(tm_gsettings_change_cb), (balsa_toolbar_model_new),
	(tm_default_style): really use the desktop default when so
	configured.

2011-01-28  Peter Bloomfield

	Migrate from GConf to GSettings

	* libinit_balsa/assistant_page_defclient.c
	(balsa_druid_page_defclient):
	* src/ab-main.c (main):
	* src/main.c (config_init), (mailboxes_init), (main):
	* src/save-restore.c (config_global_load), (config_defclient_save):
	* src/save-restore.h:
	* src/toolbar-factory.c (tm_gsettings_change_cb),
	(balsa_toolbar_model_new), (tm_default_style):

2011-01-28  Peter Bloomfield

	* src/balsa-index.c (balsa_index_load_mailbox_node): fix failed
	assertion.

2011-01-24  Peter Bloomfield

	* configure.in: new deprecation tests GDK_MULTIHEAD_SAFE,
	GDK_MULTIDEVICE_SAFE.
	* libbalsa/files.c (libbalsa_icon_finder): add widget argument
	so we can find settings.
	* libbalsa/files.h: ditto.
	* libbalsa/filter.c (libbalsa_filter_mailbox_messages):
	deprecation cleanup.
	* libbalsa/identity.c (help_ident_cb), (md_response_cb): ditto.
	* libbalsa/smtp-server.c (smtp_server_response): ditto.
	* libbalsa/source-viewer.c (copy_cb): ditto.
	* src/address-book-config.c (help_button_cb): ditto.
	* src/balsa-app.c (balsa_app_init): ditto.
	* src/balsa-icons.c (load_balsa_pixmap): ditto.
	* src/balsa-index.c (balsa_index_set_column_widths): ditto.
	* src/balsa-message.c (display_part): ditto.
	* src/balsa-mime-widget-message.c (extbody_call_url): ditto.
	* src/balsa-mime-widget-text.c (fix_text_widget), (url_copy_cb),
	(check_over_url), (handle_url), (fill_text_buf_cited): ditto.
	* src/balsa-print-object-default.c (balsa_print_object_default):
	ditto.
	* src/balsa-print-object-text.c (balsa_print_object_text_vcard),
	(balsa_print_object_text_calendar): ditto.
	* src/filter-edit-callbacks.c (condition_dialog_response),
	(fe_dialog_response): ditto.
	* src/filter-run-callbacks.c (fr_dialog_response): ditto.
	* src/folder-conf.c (folder_conf_response): ditto.
	* src/main-window.c: ditto.
	* src/pref-manager.c (balsa_help_pbox_display): ditto.
	* src/sendmsg-window.c (on_open_url_cb), (add_attachment):
	ditto.
	* src/toolbar-prefs.c (tp_dialog_response_cb): ditto.

2011-01-23  Peter Bloomfield

	* src/balsa-mime-widget-text.c (text_view_url_popup):
	deprecation cleanup.

2011-01-23  Peter Bloomfield

	* libbalsa/address-view.c (lbav_ensure_blank_line_idle_cb),
	(libbalsa_address_view_new): clean up, and make
	LibBalsaAddressView opaque.
	* libbalsa/address-view.h: ditto.

2011-01-23  Peter Bloomfield

	* configure.in: change html-widget default to "webkit", and warn
	if it is not chosen; change gtkspell default to "no", and warn
	if it is not chosen; clarify GtkSourceView option.

2011-01-21  Peter Bloomfield

	* libbalsa/html.c (lbh_show_info_bar), (libbalsa_html_new): use
	GtkBox packing instead of the event-box.

2011-01-21  Peter Bloomfield

	* libbalsa/html.c (lbh_info_bar_response_cb), (lbh_show_info_bar),
	(lbh_resource_request_starting_cb), (libbalsa_html_new): put
	info-bar in an event-box, and only when needed.

2011-01-19  Peter Bloomfield

	* src/save-restore.c (config_global_load), (save_color),
	(load_color): save rgba() colors with "RGBA" suffix.

2011-01-19  Peter Bloomfield

	Pass default screen instead of NULL to gtk_show_uri

	* libbalsa/identity.c (help_ident_cb):
	* libbalsa/smtp-server.c (smtp_server_response):
	* src/address-book-config.c (help_button_cb):
	* src/balsa-mime-widget-message.c (extbody_call_url):
	* src/balsa-mime-widget-text.c (store_button_coords),
	(check_over_url), (handle_url):
	* src/filter-edit-callbacks.c (condition_dialog_response),
	(fe_dialog_response):
	* src/filter-run-callbacks.c (fr_dialog_response):
	* src/folder-conf.c (folder_conf_response):
	* src/main-window.c:
	* src/pref-manager.c (balsa_help_pbox_display):
	* src/sendmsg-window.c (on_open_url_cb):
	* src/toolbar-prefs.c (tp_dialog_response_cb):

2011-01-17  Peter Bloomfield

	* src/sendmsg-window.c (create_email_or_string_entry): new
	override font API.

2011-01-17  Peter Bloomfield

	* src/balsa-mime-widget-image.c (bmwi_context_changed_cb),
	(balsa_mime_widget_new_image): set background color from
	viewport.

2011-01-17  Peter Bloomfield

	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget),
	(balsa_mime_widget_crypto_frame): reorganize window-showing.

2011-01-17  Peter Bloomfield

	* src/balsa-icons.c (balsa_register_pixbufs): new icon-render
	API.
	* src/balsa-mime-widget.c (balsa_mime_widget_new),
	(balsa_mime_widget_new_unknown): ditto.
	* src/toolbar-prefs.c (tp_store_set): ditto.

2011-01-17  Peter Bloomfield

	* src/balsa-app.h: port from GdkColor to GdkRGBA.
	* src/balsa-cite-bar.c (balsa_cite_bar_draw): ditto, and from
	GtkStyle to GtkStyleContext.
	* src/balsa-message.c (bm_on_set_style), (balsa_message_init),
	(get_crypto_content_icon): ditto.
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
	ditto.
	* src/balsa-mime-widget-message.c (balsa_mime_widget_new_message),
	(balsa_mime_widget_new_message_tl), (bm_header_widget_realized),
	(bm_header_widget_set_style), (bm_header_widget_new),
	(bmwm_buffer_set_prefs),
	(balsa_mime_widget_message_set_headers_d): ditto, and reorganize
	widget-showing.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(bm_modify_font_from_string), (quote_tag), (draw_cite_bar_real),
	(bm_widget_new_vcard), (fill_text_buf_cited): ditto, and drop
	allocate_quote_colors.
	* src/balsa-mime-widget-vcalendar.c: reorganize widget-showing.
	* src/balsa-print-object-text.c (balsa_print_object_text_draw):
	port from GdkColor to GdkRGBA.
	* src/main-window.c: port from GtkStyle to GtkStyleContext.
	* src/pref-manager.c (apply_prefs), (set_prefs): port from
	GdkColor to GdkRGBA.
	* src/quote-color.c (is_a_quote): drop allocate_quote_colors.
	* src/quote-color.h: ditto.
	* src/save-restore.c (save_color), (load_color): port from
	GdkColor to GdkRGBA.
	* src/sendmsg-window.c (add_urlref_attachment),
	(create_email_or_string_entry), (create_text_area): ditto.

2011-01-17  Peter Bloomfield

	* libbalsa/source-viewer.c (libbalsa_show_message_source): new
	override font API.

2011-01-17  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_source_view_new): drop support
	for GtkSourceView-1.
	* libbalsa/libbalsa.h: ditto.

2011-01-15  Pawel Salek

	* autogen.sh: port fixes from bootstrap.sh (inspired by pancake).
	* configure.in: support libgtkhtml-3.15 lib version.

	* libbalsa/imap-server.c: libbalsa_imap_server_get_handle() check
	if the parameter passed is non-null (credit to pancake).
	* libbalsa/imap/imap-handle.c: zeroize released pointers (pancake).
	* libinit_balsa/assistant_page_user.c: fix widget packing (pancake).
	* src/balsa-index.c: return FALSE on failure (pancake).

2011-01-11  Peter Bloomfield

	* src/balsa-mime-widget-message.c
	(balsa_mime_widget_new_message): show the message.

2011-01-09  Peter Bloomfield

	* configure.in: do not configure Bonobo/Corba; do not check
	GtkSourceview version.
	* Makefile.am: unversioned GtkSourceview test.

2011-01-08  Peter Bloomfield

	* src/pref-manager.c (quoted_group), (mdn_group): let GtkLabel
	wrap text.

2011-01-08  Peter Bloomfield

	* src/balsa-mblist.c (bmbl_mru_show_tree): make the mailbox tree
	dialog a reasonable size.

2010-12-29  Peter Bloomfield

	* src/balsa-mime-widget-image.c (img_check_size): revert; use
	previous calculation, with a different magic number (16).

2010-12-28  Peter Bloomfield

	* src/balsa-mime-widget-image.c (img_check_size): use parent
	width.

2010-12-28  Peter Bloomfield

	* libbalsa/filter.c (libbalsa_filter_mailbox_messages): do not
	use GnomeSound.

2010-12-28  Peter Bloomfield

	Clean up dead code and trailing white space

	* libbalsa/address.c (addrlist_drag_drop_cb):
	* libbalsa/identity.c (ident_dialog_get_path):
	* libinit_balsa/assistant_helper.c (entry_changed_cb):
	* src/ab-window.c (balsa_ab_window_init):
	* src/balsa-index.c (bndx_string_width),
	(bndx_popup_position_func):
	* src/balsa-mblist.c (bmbl_drag_motion), (bmbl_drag_cb):
	* src/balsa-message.c (bm_find_pass_to_entry),
	(balsa_get_parent_window), (balsa_message_grab_focus):
	* src/main-window.c:
	* src/sendmsg-window.c (drag_data_quote), (subject_not_empty),
	(check_suggest_encryption):
	* src/toolbar-factory.c (tm_popup_position_func),
	(tm_do_popup_menu):

2010-12-28  Peter Bloomfield

	Do not support BonoboActivation

	* src/balsa-bonobo.c: deleted.
	* src/balsa-bonobo.h: ditto.

2010-12-28  Peter Bloomfield

	Initial commit for gtk3 development branch

	* configure.in:
	* libbalsa/address-view.c (lbav_key_pressed_cb):
	* libbalsa/body.c (libbalsa_message_body_get_pixbuf):
	* libbalsa/cell-renderer-button.c
	(libbalsa_cell_renderer_button_activate):
	* libbalsa/html.c (lbh_resource_request_starting_cb),
	(lbh_info_bar_widget), (libbalsa_html_new):
	* libbalsa/identity.c (ident_dialog_add_gpg_menu), (add_show_menu),
	(ident_dialog_add_smtp_menu):
	* libbalsa/misc.c (libbalsa_charset_button_new):
	* libbalsa/smtp-server.c (smtp_server_tls_widget):
	* libinit_balsa/assistant_helper.c (balsa_init_add_table_option):
	* src/ab-main.c (ew_key_pressed):
	* src/ab-window.c (balsa_ab_window_load_books),
	(balsa_ab_window_init):
	* src/address-book-config.c (create_generic_dialog):
	* src/balsa-app.c (balsa_app_init), (balsa_app_destroy):
	* src/balsa-app.h:
	* src/balsa-cite-bar.c (balsa_cite_bar_class_init),
	(balsa_cite_bar_init), (balsa_cite_bar_get_preferred_width),
	(balsa_cite_bar_get_preferred_height), (balsa_cite_bar_draw):
	* src/balsa-index.c (bndx_class_init), (bndx_destroy),
	(bndx_popup_position_func), (bndx_pipe_response),
	(balsa_index_pipe):
	* src/balsa-mblist.c (bmbl_class_init), (bmbl_mru_show_tree):
	* src/balsa-message.c (balsa_message_class_init),
	(bm_find_scroll_to_rectangle), (bm_find_pass_to_entry),
	(balsa_message_destroy), (select_part):
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_key_press_event):
	* src/balsa-mime-widget-crypto.c
	(balsa_mime_widget_signature_widget),
	(balsa_mime_widget_crypto_frame):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image),
	(img_check_size):
	* src/balsa-mime-widget-text.c (gtk_widget_destroy_insensitive),
	(text_view_populate_popup), (fill_text_buf_cited):
	* src/balsa-mime-widget.c (balsa_mime_widget_new),
	(balsa_mime_widget_new_unknown):
	* src/filter-edit-callbacks.c (fe_user_header_add),
	(get_field_frame):
	* src/filter-edit-dialog.c (fe_build_option_menu):
	* src/folder-conf.c (browse_button_cb):
	* src/mailbox-conf.c (mailbox_conf_combo_box_make),
	(balsa_server_conf_get_advanced_widget),
	(mailbox_conf_view_new_full):
	* src/mailbox-node.c (balsa_mailbox_node_get_context_menu):
	* src/main-window.c:
	* src/message-window.c (message_window_new):
	* src/pref-manager.c (apply_prefs), (checking_group),
	(quoted_group), (word_wrap_group), (main_window_group),
	(pspell_settings_group), (misc_group), (deleting_messages_group),
	(folder_scanning_group), (option_menu_cb), (add_show_menu),
	(pm_combo_box_new):
	* src/quote-color.c (allocate_quote_colors):
	* src/sendmsg-window.c (sw_get_user_codeset),
	(sw_scroll_size_request), (create_email_entry), (create_info_pane),
	(create_text_area):
	* src/spell-check.c (balsa_spell_check_class_init),
	(balsa_spell_check_destroy):
	* src/store-address.c (store_address_book_frame):
	* src/toolbar-factory.c (tm_popup_position_func):

2010-12-09  Peter Bloomfield

	* balsa.1.in: do not use macro URL; fixes gnome bz #636801.

2010-12-09  Pawel Salek

	* configure.in: make detection more automatic; fix gnome bz #636805.

2010-12-05  Peter Bloomfield

	* src/toolbar-factory.c (tm_populate): do not make 2-line
	toolbar button text if we are using the desktop default and it
	is GTK_TOOLBAR_BOTH_HORIZ; fixes a strange vertical alignment
	issue when using the default and it is GTK_TOOLBAR_BOTH_HORIZ.

2010-11-19  Pawel Salek

	* Configure.in: compile against libnotify-0.4.x as well. 

2010-11-19  Pawel Salek

	* src/main-window.c:
	* libbalsa/information.c: compile against libnotify-0.7.0
	* configure.in, NEWS: release 2.4.9

2010-11-16  Peter Bloomfield

	* libbalsa/mailbox_imap.c (multi_append_cb): cast quotient, not
	numerator.

2010-11-16  Peter Bloomfield

	* libbalsa/mailbox_imap.c (multi_append_cb): do not break
	gettext with concatenated string.

2010-11-12  Peter Bloomfield

	* src/balsa-message.c (bm_next_part_info): look for next part
	above current part, if necessary; fixes
	https://mail.gnome.org/archives/balsa-list/2010-November/msg00003.html

2010-11-07  Peter Bloomfield

	Implement LibBalsaCompletion as a copy of (deprecated)
	GCompletion

	* libbalsa/completion.c: new file.
	* libbalsa/completion.h: new file.
	* libbalsa/Makefile.am: build them.
	* libbalsa/abook-completion.c: use LibBalsaCompletion.
	* libbalsa/address-book-extern.c
	(libbalsa_address_book_externq_alias_complete): ditto.
	* libbalsa/address-book-gpe.c: ditto.
	* libbalsa/address-book-ldap.c
	(libbalsa_address_book_ldap_alias_complete): ditto.
	* libbalsa/address-book-rubrica.c
	(libbalsa_address_book_rubrica_init),
	(libbalsa_address_book_rubrica_alias_complete),
	(lbab_rubrica_load_xml): ditto.
	* libbalsa/address-book-text.c (libbalsa_address_book_text_init),
	(libbalsa_address_book_text_finalize), (lbab_text_load_file),
	(libbalsa_address_book_text_alias_complete): ditto.
	* libbalsa/address-book-text.h:  ditto.
	* libbalsa/address-book.c
	(libbalsa_address_book_alias_complete): ditto.
	* libbalsa/address-book.h: ditto.
	* libbalsa/address-view.c (lbav_get_matching_addresses): ditto.

2010-11-07  Albrecht Dreß

	Gtk3 deprecation cleanup

	* libbalsa/address.c (addrlist_drag_drop_cb):
	* libbalsa/imap/imap-handle.c (imap_get_flag), (imap_cmd_get_tag):
	* libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_message_match),
	(libbalsa_mailbox_imap_get_matchings),
	(libbalsa_mailbox_imap_subscribe),
	(libbalsa_imap_rename_subfolder), (libbalsa_imap_new_subfolder):
	* src/ab-window.c (balsa_ab_window_init):
	* src/balsa-cite-bar.c (balsa_cite_bar_expose):
	* src/balsa-icons.c:
	* src/balsa-icons.h:
	* src/balsa-mblist.c (bmbl_drag_motion), (bmbl_drag_cb):
	* src/main-window.c:
	* src/sendmsg-window.c (drag_data_quote), (subject_not_empty):

2010-10-14  Peter Bloomfield

	* libbalsa/mailbox_imap.c (imap_expunge_cb): do not remove
	invalid array element.

2010-09-26  Peter Bloomfield

	Use separate mutexes for mailbox locking and checking mail

	* libbalsa/libbalsa.c (libbalsa_lock_mailbox),
	(libbalsa_unlock_mailbox): make the mutex static.
	* libbalsa/libbalsa_private.h: ditto.
	* src/main-window.c: use checking_mail_lock.
	* src/main.c (threads_init), (threads_destroy), (balsa_cleanup):
	* src/threads.h: ditto.

2010-09-01  Peter Bloomfield

	* src/main-window.c: hold gdk lock while updating UI.

2010-08-31  Peter Bloomfield

	* src/main-window.c: remove unintended debug spew.

2010-08-30  Peter Bloomfield

	* src/balsa-mblist.c (balsa_mblist_mailbox_node_redraw): update
	notebook tab when redrawing.
	* src/mailbox-conf.c (mailbox_conf_update): ...so we do not need
	to here.
	* src/save-restore.c (sr_special_notify,
	config_mailbox_set_as_special): use weak refs consistently; set
	names of new special mailboxes to the standard names, and names
	of previously special mailboxes to what they will be in the
	next session.

2010-08-21  Pawel Salek

	* configure.in, NEWS: release 2.4.8

2010-08-13  Pawel Salek

	* libbalsa/imap/imap-commands.c: check state after locking the handle.
	* libbalsa/imap/imap-handle.c: ditto.
	* libbalsa/imap/imap-handle.h: modify state checking macros accordingly.
	* libbalsa/imap/siobuf.c: set sio->ssl to null after SSL_free().

2010-08-13  Peter Bloomfield

	* src/mailbox-conf.c (create_local_mailbox_dialog): use window
	title to show mailbox type; fixes bgo #625695 (Jack Ostroff).

2010-08-12  Peter Bloomfield

	* src/balsa-message.c (balsa_message_set): do not crash when
	message == NULL.

2010-08-05  Peter Bloomfield

	* libbalsa/mailbox_imap.c
	(message_info_from_msgno): return NULL if msgno out of range;
	(imap_flags_cb), (imap_exists_idle), (imap_expunge_cb),
	(libbalsa_mailbox_imap_message_match),
	(libbalsa_mailbox_imap_get_message), (lbm_imap_change_user_flags),
	(libbalsa_mailbox_imap_msgno_has_flags): test for NULL return
	from message_info_from_msgno.

2010-07-28  Peter Bloomfield

	* libbalsa/identity.c (libbalsa_identity_init),
	(libbalsa_identity_finalize), (ident_dialog_update),
	(display_frame_update), (libbalsa_identity_new_config),
	(libbalsa_identity_save), (display_frame_set_gpg_mode),
	(ident_dialog_get_value): do not forget gpgme-related settings
	when running --without-gpgme.
	* libbalsa/identity.h: ditto.
	* libbalsa/rfc3156.h: ditto.

2010-07-28  Peter Bloomfield

	* src/mailbox-conf.c (balsa_server_conf_get_advanced_widget):
	disable SSL and TLS widgets when building --without-ssl.

2010-07-25  Pawel Salek

	* libbalsa/imap/imap-handle.c: work around buggy Gmail.
	* libbalsa/imap/imap-tls.c: change openssl api used for cert checks.
	* src/balsa-mime-widget-message.c: warn the user when no embedded
	message info available.

2010-07-14  Peter Bloomfield

	Install dialog to ask the user before selecting a different
	mailbox, and an option to not use it; fixes bug #620221
	(ghisha email it).

	* src/balsa-app.h: new member ask_before_select.
	* src/balsa-app.c (balsa_app_init): initialize it FALSE.
	* src/main-window.c: uncomment dialog and make it conditional on
	balsa_app.ask_before_select.
	* src/pref-manager.c (open_preferences_manager), (apply_prefs),
	(set_prefs), (main_window_group): manage it.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore it, default FALSE.

2010-07-10  Peter Bloomfield

	Support IMAP server that complies with RFC 2086 but not with
	RFC 4013; fixes bug #623910 (Helmut Jarausch).

	* libbalsa/imap/imap-handle.c
	(ir_capability_data): check for "RIGHTS=" capability to
	distinguish RFC-4013-compliant server;
	(extract_acl): check for "cd" rights when server does not comply with
	RFC 4013.
	* libbalsa/imap/imap-handle.h: add IMCAP_RIGHTS to ImapCapability
	enum.
	* libbalsa/imap/libimap.h: add IMAP_ACL_OBS_CREATE and
	IMAP_ACL_OBS_DELETE to ImapAclType enum, and define
	IMAP_RIGHTS_CAN_WRITE(rights) macro.
	* libbalsa/mailbox_imap.c
	(imap_acl_to_str): show "cd" rights when server does not comply with
	RFC 4013;
	(libbalsa_mailbox_imap_get_selected_handle): use
	IMAP_RIGHTS_CAN_WRITE(rights) macro.

2010-07-07  Peter Bloomfield

	* libbalsa/libbalsa.c (libbalsa_date_to_utf8): return NULL when
	date is zero; fixes bug #623740 (Helmut Jarausch).

2010-06-04  Peter Bloomfield

	Drop legacy icon names.

	* images/16x16/Makefile.am: rename stock_inbox and stock_outbox.
	* images/16x16/mail-inbox.png: new name.
	* images/16x16/mail-outbox.png: ditto.
	* images/16x16/stock_inbox.png: old name.
	* images/16x16/stock_outbox.png: ditto.
	* src/balsa-icons.c (load_balsa_pixmap),
	(balsa_register_pixmaps): use new names.
	* src/balsa-print-object-text.c
	(balsa_print_object_text_calendar): ditto.
	* src/main-window.c: ditto.

2010-06-01  Peter Bloomfield

	Copy icons removed from gnome-icon-theme-2.30 from an earlier
	version.

	* images/16x16/Makefile.am:
	* images/16x16/stock_book_open.png:
	* images/16x16/stock_book_red.png:
	* images/16x16/stock_contact.png:
	* images/16x16/stock_inbox.png:
	* images/16x16/stock_mail-receive.png:
	* images/16x16/stock_mail.png:
	* images/16x16/stock_outbox.png:
	* images/24x24/Makefile.am:
	* images/24x24/stock_book_blue.png:
	* images/24x24/stock_book_green.png:
	* images/24x24/stock_book_open.png:
	* images/24x24/stock_book_red.png:
	* images/24x24/stock_book_yellow.png:
	* images/24x24/stock_contact.png:
	* images/24x24/stock_mail-receive.png:
	* images/24x24/stock_mail.png:
	* images/24x24/stock_view-fields.png:

2010-05-20  Peter Bloomfield

	* src/save-restore.c (config_global_load): do not wrap outgoing
	message by default, as it disables format=flowed.

2010-05-20  Peter Bloomfield

	* configure.in: add dependency on gthread-2.0; fixes bug
	#618979 (Kacper Kowalik); also add -lz to $LIBS, to build
	without openssl.

2010-05-06  Pawel Salek

	* libinit_balsa/assistant_page_defclient.c: free memory.
	* libinit_balsa/assistant_page_{directory,user}.c: ditto.
	* src/balsa-app.c: free memory on exit.
	* src/balsa-icons.[hc]: ditto by providing "unregister" functions.
	* src/main-window.c: unregister the pixmaps.
	* src/main.c: free configuration on exit.
	* src/save-restore.c: do not leak memory.

2010-05-01  Pawel Salek

	* src/balsa-message.c: handle expunge events arriving between
	fetch and flag set operations.

2010-04-27  Peter Bloomfield

	* libbalsa/send.h: allocate message with g_new instead of
	malloc, since we g_free it.

2010-04-26  Albrecht Dreß

	* libbalsa/rfc3156.c (libbalsa_check_crypto_engine): add hint
	about failed test for CMS protocol.

2010-04-11  Albrecht Dreß

	* libbalsa/filter.c (libbalsa_filter_mailbox_messages): build on
	Lucid β.
	* src/ab-main.c: ditto.
	* src/main.c (balsa_cleanup): ditto.

2010-04-07  Peter Bloomfield

	* src/balsa-index.c (bndx_string_width): use allocation width
	instead of pixbuf width.

2010-04-06  Peter Bloomfield

	* libbalsa/mailbox.c (msg_iterator): object-ref the stream if
	the caller will unref it.

2010-04-05  Peter Bloomfield

	* libbalsa/mailbox_imap.c (multi_append_cb): round size in
	kibibytes, for consistency with libbalsa_size_to_gchar.

2010-04-05  Peter Bloomfield

	* src/balsa-index.c (bndx_string_width), (bndx_instance_init),
	(balsa_index_set_column_widths): get column width as actual
	string width.

2010-04-05  Peter Bloomfield

	* libbalsa/misc.c (libbalsa_size_to_gchar): more compact string
	representation of a size.

2010-04-05  Pawel Salek

	* libbalsa/mailbox.c: Mailbox::add_messages would leak a file descriptor
	each time it was called.

2010-03-29  Peter Bloomfield

	* src/balsa-index.c (bndx_instance_init),
	(balsa_index_set_column_widths): set the renderer width for the
	"Size" column instead of the column width--works reliably; fixes
	bug #579479 (Jonathan North Washington).

2010-03-27  Peter Bloomfield

	* src/main-window.c: do not crash on early exit; fixes bug
	#613998 (Ildar).

2010-03-27  Peter Bloomfield

	* configure.in: build with gtkhtml2.

2010-03-27  Peter Bloomfield

	* src/main-window.c: use a single thread to open all mailboxes.

2010-03-27  Peter Bloomfield

	* src/balsa-app.c (open_mailbox_by_url),
	(open_mailboxes_idle_cb): open first mailbox not hidden, open
	the remainder hidden.

2010-03-27  Peter Bloomfield

	* src/balsa-index.c (bndx_destroy): recheck index->mailbox_node
	after dropping the gdk lock.

2010-03-27  Peter Bloomfield

	* libbalsa/mailbox.c (libbalsa_mailbox_close): increase mailbox
	ref count while closing it.

2010-03-23  Peter Bloomfield

	* src/main.c: missing include.

2010-03-23  Peter Bloomfield

	* configure.in: use single-includes.

2010-03-20  Peter Bloomfield

	* libbalsa/html.c (libbalsa_html_get_view_widget): new method to
	get the actual view widget.
	* libbalsa/html.h: ditto.
	* src/balsa-mime-widget-text.c (bm_widget_new_html): connect to
	key-press-event on the actual view widget.

2010-03-11  Peter Bloomfield

	* libbalsa/files.c (libbalsa_icon_finder): allocate string only
	if needed.

2010-03-07  Albrecht Dreß

	* src/balsa-mime-widget-text.c: do not mangle quotation characters
	when copying text.

2010-03-04  Pawel Salek

	* src/balsa-mime-widget-crypto.c: set the parent right.

2010-03-03  Albrecht Dreß

	* libbalsa/misc.[hc]:
	* libbalsa/mailbox.c: make libbalsa_size_to_gchar() a common function.
	* src/folder-conf.c: use it for displaying IMAP quota.

2010-03-03  Peter Bloomfield

	* libbalsa/message.c (libbalsa_message_change_flags): check
	argument validity.
	* libbalsa/send.c (handle_successful_send): check that the
	message still belongs to a mailbox.

2010-03-03  Peter Bloomfield

	* libbalsa/address-view.c (libbalsa_address_view_get_list): do
	not append NULL list in internet_address_list_append.

2010-02-28  Peter Bloomfield

	* src/folder-conf.c (folder_conf_imap_sub_node): remove mnemonic
	from subfolder-of label.

2010-02-20  Peter Bloomfield

	* src/folder-conf.c (set_ok_sensitive),
	(folder_conf_imap_sub_node): clean up folder properties dialog
	and manage Update button sensitivity.
	* src/mailbox-conf.c (create_local_mailbox_dialog),
	(create_imap_mailbox_dialog), (mailbox_conf_view_new_full),
	(mailbox_conf_view_new): use callback to manage Update button
	sensitivity.
	* src/mailbox-conf.h: new API.
	* src/main-window.c: change mailbox Edit to Properties.

2010-02-20  Albrecht Dreß

	* src/folder-conf.c (folder_conf_imap_sub_node): use Cyrus
	server's standard names for rights.

2010-02-20  Pawel Salek

	* libbalsa/gmime-gpgme-signature.c: add missing #include config.h
	that broke rawhide build.
	* libbalsa/imap/imap-commands.c: issue SELECT+MYRIGHTS together
	whenever necessary to save one RTT.
	* libbalsa/imap/imap-handle.c: add imap_cmd_exec_cmds() helper.
	* libbalsa/imap/imap_private.h: and its prototype.

2010-02-19  Peter Bloomfield

	* configure.in: option to configure GMime-2.4 or 2.6.
	* libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_finalize),
	(g_mime_session_passphrase), (g_mime_gpgme_context_new):
	* libbalsa/gmime-gpgme-context.h: use it.
	* libbalsa/gmime-stream-gio.c: ditto.
	* libbalsa/mailbox_mbox.c: ditto.
	* libbalsa/rfc3156.c (password_request_func),
	(libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
	(libbalsa_body_check_signature), (libbalsa_body_decrypt),
	(libbalsa_rfc2440_sign_encrypt), (libbalsa_rfc2440_verify),
	(libbalsa_rfc2440_decrypt): ditto.

2010-02-17  Albrecht Dreß

	* libbalsa/imap/imap-commands.c: implement QUOTA, MYRIGHTS and GETACL
	commands.
	* libbalsa/imap/imap-handle.h: register QUOTA capability.
	* libbalsa/imap/imap_private.h: add private fields and enums
	related to these extensions.
	* libbalsa/mailbox_imap.[ch]: interface them.
	* src/folder-conf.c: use them.

2010-02-16  Albrecht Dreß

	* libbalsa/information.c: build when libnotify is not available.

2010-02-16  Peter Bloomfield

	* libbalsa/body.c (libbalsa_message_body_get_cid),
	(libbalsa_message_body_save_temporary),
	(libbalsa_message_body_get_by_id): strip "<>" from content-id.

2010-02-13  Pawel Salek

	* configure.in, NEWS: release 2.4.7

2010-02-12  Albrecht Dreß

	* src/balsa-message.c (bm_previous_part_info): do not return
	uninitialized BalsaPartInfo.

2010-02-09  Albrecht Dreß

	* configure.in: more understandable output from html-widget
	configuration.

2010-02-05  Peter Bloomfield

	* configure.in: use a case statement to configure html-widget.
	* libbalsa/html.c: test for HAVE_HTML_WIDGET.
	* libbalsa/html.h: ditto.
	* libbalsa/mime.c (process_mime_part): ditto.
	* src/balsa-message.c (bm_find_entry_changed_cb), (bm_find_again),
	(preferred_part), (balsa_message_can_select),
	(balsa_message_find_in_message): ditto.
	* src/balsa-message.h: ditto.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text):
	ditto.
	* src/main-window.c: ditto.
	* src/message-window.c (mw_select_part_cb): ditto.

2010-02-05  Peter Bloomfield

	* src/balsa-app.h: new boolean mark_quoted.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text):
	respect it.
	* src/pref-manager.c (open_preferences_manager), (apply_prefs),
	(set_prefs), (quoted_group), (mark_quoted_modified_cb): manage
	it.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore it.

2010-02-05  Peter Bloomfield

	* libbalsa/mime.c (libbalsa_match_regex): do not loop
	indefinitely when regex matches zero characters.

2010-02-05  Pawel Salek

	* libbalsa/imap/imap_compress.c: reduce the compressed stream
	flushing frequency.
	* libbalsa/imap/siobuf.c: matching change on the buffering side.

2010-01-27  Pawel Salek

	* configure.in, NEWS: release 2.4.6.

2010-01-25  Pawel Salek

	* libbalsa/imap/siobuf.c: fix occassional sio_ungetc() failures
	for a compressed connection.

2010-01-25  Peter Bloomfield

	* libbalsa/filter-funcs.c (lbcond_compare_string_conditions),
	(libbalsa_condition_compare): compare string conditions
	correctly.
	* libbalsa/mailbox_local.c (message_match_real): do not pass
	NULL list to internet_address_list_to_string().

2010-01-24  Pawel Salek

	* configure.in, NEWS: release 2.4.5

2010-01-23  Peter Bloomfield

	* src/save-restore.c (config_identities_save): do not allocate
	unused array.

2010-01-23  Peter Bloomfield

	* src/message-window.c (destroy_message_window),
	(mw_select_part_cb): do not crash on "select-part" signal.

2010-01-23  Peter Bloomfield

	* src/balsa-message.c (balsa_message_set): clear tree before
	selecting part;
	(select_part): emit signal also for NULL part;
	(balsa_message_can_zoom): check for NULL widget.
	* src/main-window.c: rely on "select-part" signal for enabling
	menus.

2010-01-23  Peter Bloomfield

	* src/main-window.c: update menus only if they will not be
	updated when a message is shown.

2010-01-23  Pawel Salek

	* Makefile.am, src/Makefile.am: fix dist target when configured
	without gnome.
	* configure.in, NEWS: release balsa-2.4.4

2010-01-23  Pawel Salek

	* src/main-window.c: update copyright date.
	* configure.in, NEWS: release 2.4.3

2010-01-22  Peter Bloomfield

	* libbalsa/libbalsa-conf.c (lbc_sync): do not insert blank
	comments; save mtime when syncing.

2010-01-22  Peter Bloomfield

	* libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_load):
	more sqlite3_free fixes.

2010-01-22  Pawel Salek

	* libbalsa/misc.c: allocate enough memory for config urls.

2010-01-19  Peter Bloomfield

	* libbalsa/imap-server.c (libbalsa_imap_server_init):
	use g_timeout_add_seconds, save the world.
	* src/balsa-mime-widget-text.c: ditto.
	* src/information-dialog.c (balsa_information_bar): ditto.
	* src/main-window.c: ditto.
	* src/main.c (main): ditto.
	* src/sendmsg-window.c (sendmsg_window_new): ditto.

2010-01-19  Peter Bloomfield

	* libbalsa/information.c (libbalsa_information_varg): show note
	before unreffing it(!).

2010-01-19  Peter Bloomfield

	* src/main-window.c (bw_quit_nicely): use
	libbalsa_information_parented, so that notification bubble can
	be closed when Balsa quits;
	(bw_real_open_mbnode): hold gdk lock while unreffing mbnode;
	(balsa_window_real_close_mbnode): more careful test for last
	notebook page;
	(empty_trash): check for NULL window.

2010-01-18  Peter Bloomfield

	* src/balsa-index.c (bndx_mbnode_weak_notify), (bndx_destroy),
	(balsa_index_load_mailbox_node): clear BalsaIndex::mailbox_node
	before destroying BalsaIndex.

2010-01-18  Peter Bloomfield

	* src/balsa-app.c (balsa_find_url): check for NULL
	mblist_tree_store.

2010-01-18  Peter Bloomfield

	* libbalsa/information.c (lbi_notification_parent_weak_notify),
	(lbi_notification_closed_cb), (libbalsa_information_varg): close
	notification bubble with parent.

2010-01-18  Peter Bloomfield

	* src/balsa-app.h: move nm_state and check_mail_skipped from
	BalsaApplication to BalsaWindow.
	* src/main-window.c: ditto.
	* src/main-window.h: ditto.

2010-01-17  Peter Bloomfield

	* src/balsa-app.h: new member mail_check_skipped.
	* src/main-window.c: use it to remember when we skipped a mail
	check while disconnected, and to check mail on reconnection.

2010-01-17  Peter Bloomfield

	* src/main-window.c: restart timer after user checks mail
	manually.

2010-01-17  Peter Bloomfield

	* src/balsa-app.c (update_timer): use g_timeout_add_seconds,
	save the world.

2010-01-17  Peter Bloomfield

	* src/main-window.c: report NetworkManager state on start-up;
	skip POP3 checks when disconnected; do not disconnect local IMAP
	server when NetworkManager is disconnected.

2010-01-17  Pawel Salek

	* libbalsa/imap/imap-tls.c: check also the length when matching
	the host name vs the one in the certificate.

2010-01-17  Peter Bloomfield

	* src/main-window.c: close the new-mail notification instead of
	showing it with a 1 millisecond time-out.

2010-01-16  Peter Bloomfield

	* src/balsa-app.h: new member NMState nm_state.
	* src/main-window.c: use it to save NetworkManager state;
	connect or disconnect IMAP on changes to/from
	NM_STATE_CONNECTED.

2010-01-16  Peter Bloomfield

	* libbalsa/body.c (libbalsa_message_body_save_temporary): make
	temporary file read-only.

2010-01-15  Pawel Salek

	* libbalsa/imap/imap_compress.c:
	* libbalsa/imap/siobuf.c: complete the compression error handling.

2010-01-14  Peter Bloomfield

	* libbalsa/html.h: new methods for printing.
	* libbalsa/html.c (libbalsa_html_can_print),
	(libbalsa_html_print): implement them.
	* src/balsa-mime-widget-text.c (bmwt_populate_popup_menu),
	(bmwt_populate_popup_cb): use them.

2010-01-14  Peter Bloomfield

	* libbalsa/html.h: new methods for printing.
	* libbalsa/html.c (libbalsa_html_can_print),
	(libbalsa_html_print): implement them.
	* src/balsa-mime-widget-text.c (bmwt_populate_popup_menu),
	(bmwt_populate_popup_cb): use them.

2010-01-14  Peter Bloomfield

	* configure.in: require NetworkManager version 0.7.
	* src/main-window.c: use GObject-based API instead of deprecated
	older API.

2010-01-12  Pawel Salek

	* libbalsa/html.c: fix libbalsa_html_popup_menu_widget() arg list.

2010-01-12  Peter Bloomfield

	* libbalsa/html.h: new public method to retrieve the real HTML
	widget.
	* libbalsa/html.c (libbalsa_html_popup_menu_widget): ditto.
	* src/balsa-mime-widget-text.c (bmwt_populate_popup_menu),
	(balsa_gtk_html_popup), (bmwt_populate_popup_cb),
	(bm_widget_new_html): use it to implement popup menu for
	WebKitWebView.

2010-01-11  Peter Bloomfield

	* libbalsa/address-book-gpe.c
	(libbalsa_address_book_gpe_alias_complete): free error with
	sqlite3_free() instead of free(); fixes bug #606676 (Stanislav
	Brabec).

2010-01-11  Peter Bloomfield

	* libbalsa/html.h: new API for libbalsa_html_new.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(bm_widget_new_html): use it.
	* libbalsa/html.c (lbh_get_body_content,
	lbh_get_web_view, libbalsa_html_can_zoom,
	libbalsa_html_zoom, libbalsa_html_can_select,
	libbalsa_html_select_all, libbalsa_html_copy,
	libbalsa_html_can_search, libbalsa_html_search_text,
	libbalsa_html_get_selection_bounds): implement new API;
	(lbh_info_bar_realize_cb, lbh_info_bar_widget,
	lbh_resource_request_starting_cb, lbh_info_bar_response_cb,
	libbalsa_html_new): prepend HTML message part with a GtkInfoBar
	offering the option to download images.

2010-01-11  Peter Bloomfield

	* src/balsa-message.c (add_part), (balsa_message_can_select):
	html widgets can select text.

2010-01-11  Peter Bloomfield

	* libbalsa/html.c (lbh_js_get_global_context), (lbh_js_run_script),
	(lbh_js_object_get_property), (libbalsa_html_search_text),
	(libbalsa_html_get_selection_bounds): use JavaScript to locate
	or clear selected text; enable text search.

2010-01-11  Pawel Salek

	* libbalsa/mailbox_imap.c: gmail anwers NO to FETCH, deal with it.

2010-01-10  Albrecht Dreß

	* src/pref-manager.c (word_wrap_group): increase maximum line
	length to 998, the RFC 2822 limit.

2010-01-09  Peter Bloomfield

	* src/balsa-message.c (add_body), (add_multipart_digest),
	(add_multipart_mixed), (add_multipart), (add_part),
	(select_part): cleaner recursion.

2010-01-09  Peter Bloomfield

	* src/balsa-mime-widget-text.c (url_open_cb), (check_call_url),
	(handle_url), (bm_widget_new_html): combine link-clicked
	handling for text/plain and text/html parts.

2010-01-08  Pawel Salek

	* libbalsa/imap/imap_compress.c: improve error handling.
	* libbalsa/mailbox_imap.c: catch error conditions early.

2010-01-06  Peter Bloomfield

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text): do
	not leak HTML source.

2010-01-05  Pawel Salek

	* libbalsa/imap/siobuf.[ch]: change encode interface so that
	compression callback do not need to allocate too much memory.
	* libbalsa/imap/imap_compress.c: modify the callbacks accordingly.
	* libbalsa/imap/imap-handle.c: make sure we do not leave some
	unflushed compressed data around.
	* configure.in: zlib.h is unconditionally required.

2010-01-05  Peter Bloomfield

	* libbalsa/html.c (libbalsa_html_new): remove dead code.

2010-01-05  Peter Bloomfield

	* src/balsa-message.c (add_part), (select_part): remove dead or
	redundant code.

2010-01-05  Peter Bloomfield

	* libbalsa/html.c (libbalsa_html_new): put webkit in
	document-viewer mode instead of the default browser mode.

2010-01-05  Peter Bloomfield

	* src/balsa-app.h: omit point size from default font names.
	* src/pref-manager.c (open_preferences_manager),
	(check_font_button), (apply_prefs), (font_button_check_font_size),
	(attach_font_button), (preview_font_group), (font_modified_cb),
	(default_font_size_cb): add option to use default font sizes.

2010-01-05  Peter Bloomfield

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(quote_tag): define constants for margins.

2010-01-04  Peter Bloomfield

	* libbalsa/misc.c (libbalsa_create_entry): use
	gtk_entry_set_text instead of gtk_editable_insert_text, to avoid
	a bogus warning.

2010-01-04  Peter Bloomfield

	* src/save-restore.c (config_global_load): default to no message
	wrap and prefer text/plain over text/html.

2010-01-04  Peter Bloomfield

	* src/balsa-message.c (bm_find_entry_changed_cb), (bm_find_again),
	(balsa_message_find_in_message): build --without-gtkhtml
	--without-webkit.

2010-01-04  Peter Bloomfield

	* libbalsa/imap/imap_compress.c: add missing includes of
	stdlib.h, string.h.

2010-01-03  Peter Bloomfield

	* src/main-window.c: better menu item label (Pawel).

2010-01-03  Pawel Salek

	* libbalsa/imap-server.c: enable compression by default.
	* libbalsa/imap/Makefile.am: add imap_compress.[hc]
	* libbalsa/imap/imap-commands.c: imap_cmd_exec returns ImapResponse.
	* libbalsa/imap/imap-handle.c: add COMPRESS=DEFLATE capability
	* libbalsa/imap/imap_compress.[ch]: support the extension.
	* libbalsa/imap/imap_tst.c: allow compression testing.

2010-01-02  Peter Bloomfield

	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
	(quote_tag): get font description from widget; scale size from
	points to pixels; use 60% of size for width.

2010-01-02  Peter Bloomfield

	* src/balsa-app.h: new members to save hidden toolbars.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore them.
	* src/main-window.c: options to hide toolbar, SoSbar, and status
	bar.
	* src/main-window.h: add toolbar and sos_bar members.
	* src/message-window.c (message_window_new),
	(mw_show_toolbar_cb): option to hide toolbar.
	* src/sendmsg-window.c (sendmsg_window_new),
	(sw_show_toolbar_cb): option to hide toolbar.
	* src/sendmsg-window.h: add toolbar member.

2010-01-02  Pawel Salek

	* libbalsa/imap/pop3.c: Report errors occuring during downloading
	process earlier to avoid saving corrupted messages.
	* libbalsa/mailbox_pop3.c: do not leak file descriptors on some errors.

2010-01-01  Peter Bloomfield

	* src/sendmsg-window.c: Do not crash in touch-ui version.

2010-01-01  Peter Bloomfield

	* configure.in: Allow configure --enable-touch-ui=no and
	--disable-touch-ui.

2010-01-01  Pawel Salek

	* libbalsa/send.c: Fix bug 605807.

2009-12-30  Pawel Salek

	* configure.in: gtkspell build requires enchant now as well.\
	* src/main-window.c:
	* src/sendmsg-window.c: compile with --enable-touch-ui

2009-12-30  Peter Bloomfield

	* src/sendmsg-window.c (create_lang_menu): use
	enchant_broker_dict_exists() to check languages.

2009-12-29  Pawel Salek

	* libbalsa/rfc3156.c:
	* src/main-window.c: add comments to aid translations...
	* src/sendmsg-window.c: ... to fix bug 605435.

2009-12-29  Peter Bloomfield

	* libbalsa/html.c (lbh_resource_request_starting_cb),
	(lbh_new_window_policy_decision_requested_cb),
	(libbalsa_html_new): use "notify::progress" signal instead of
	deprecated "load-progress-changed"; use
	"new-window-policy-decision-requested" signal to more carefully
	control new windows.

2009-12-29  Peter Bloomfield

	* configure.in: require webkitgtk version 1.1.14 or newer.
	* libbalsa/html.c (lbh_resource_request_starting_cb),
	(libbalsa_html_new): use WebKitwebView's
	"resource-request-starting" signal to handle cid: requests and
	disable all others.
	* libbalsa/body.c (libbalsa_message_body_save_temporary): use
	body->filename in preference to content_id.
	* libbalsa/body.h: remove now redundant functions.
	* libbalsa/message.c: ditto.
	* libbalsa/message.h: ditto.

2009-12-26  Peter Bloomfield

	* libbalsa/html.c (lbh_filter_src), (libbalsa_html_new),
	(libbalsa_html_url_requested): implement two ways of handling
	cid: URLs in WebKitwebView.

2009-12-26  Peter Bloomfield

	* libbalsa/message.h: add tempdir member and new methods.
	* libbalsa/message.c (libbalsa_message_finalize),
	(libbalsa_message_get_part_by_id),
	(libbalsa_message_save_parts_by_id),
	(libbalsa_message_has_cid_part), (libbalsa_message_get_tempdir):
	implement and use them.

2009-12-26  Peter Bloomfield

	* libbalsa/libbalsa.h: new error code.

2009-12-20  Peter Bloomfield

	* libbalsa/body.h: new member LibBalsaMessageBody::own_dir, TRUE
	if the temporary file for the body is in its own temporary
	directory/
	* libbalsa/body.c (libbalsa_message_body_new),
	(libbalsa_message_body_free),
	(libbalsa_message_body_save_temporary): if the body has a
	filename, save the temporary file in its own temporary
	directory.

2009-12-20  Peter Bloomfield

	* libbalsa/filter-funcs.c (lbcond_new): save negated as 0 or 1,
	to simplify later comparison.
	(libbalsa_condition_compare): return FALSE if negate differs;
	drop now-redundant test for flag conditions.

2009-12-19  Peter Bloomfield

	* libbalsa/filter-funcs.c (libbalsa_condition_compare):
	simplify, and fix string and boolean filter comparisons.

2009-12-16  Peter Bloomfield

	* libbalsa/send.c (libbalsa_message_create_mime_message): do not
	append NULL list in internet_address_list_append.

2009-12-16  Mario Mikocevic <mario mikocevic t-com hr>

	* balsa.spec.in: for 2.4.2 to successfuly compile a rpm, a small
	patch is needed.

2009-12-14  Peter Bloomfield

	* configure.in: put LIBNM_GLIB_CFLAGS in BALSA_CFLAGS instead of
	CFLAGS--required to build with
	CFLAGS+="-DG_DISABLE_SINGLE_INCLUDES
	-DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES
	-DGTK_DISABLE_SINGLE_INCLUDES"

2009-12-10  Peter Bloomfield

	* src/balsa-app.c (check_new_messages_auto_cb): pass
	balsa_app.main_window instead of NULL to check_new_messages_real,
	so we can manage the sensitivity of the check action.

2009-12-08  Peter Bloomfield

	* src/sendmsg-window.c (guess_identity_from_list): do not pass
	NULL list to internet_address_list_to_string().

2009-12-07  Peter Bloomfield

	* libbalsa/filter.c (libbalsa_condition_matches): do not pass
	NULL list to internet_address_list_to_string().

2009-12-06  Pawel Salek

	* configure.in
	* NEWS: release balsa-2.4.2

2009-12-03  Peter Bloomfield

	* src/balsa-message.c (bm_find_set_status),
	(bm_find_scroll_to_rectangle), (bm_find_scroll_to_selection),
	(bm_find_entry_changed_cb), (bm_find_again): implement
	search-text for HTML parts; desensitize find-next and
	find-previous when find-entry is empty.

2009-12-03  Peter Bloomfield

	* libbalsa/html.c (lbh_navigation_policy_decision_requested_cb),
	(libbalsa_html_new), (libbalsa_html_search_text),
	(libbalsa_html_get_selection_bounds),
	(libbalsa_html_can_search): implement search-text for webkit
	backend, but only if we can scroll to the text.
	* libbalsa/html.h: implement libbalsa_html_search_text.

2009-11-16  Peter Bloomfield

	* src/balsa-message.c (balsa_message_find_in_message): grab
	focus only if entry is realized.

2009-11-15  Peter Bloomfield

	* libbalsa/html.c (lbh_size_request_cb): remove debugging aid;
	(lbh_navigation_policy_decision_requested_cb): do not handle
	signal unless it is a real request;
	(libbalsa_html_new): remove debugging aids.
	* src/balsa-message.c (select_part): queue-resize is redundant.

2009-11-12  Pawel Salek

	* libbalsa/imap/imap-handle.c: fix a corner case locking problem.
	* src/main-window.c: remove a warning.
	* configure.in: work around lib rename.

2009-11-11  Pawel Salek

	* configure.in: add NetworkManager-glib support.
	* libbalsa/imap-server.c: Disconnect quickly if asked to.
	* libbalsa/imap/imap-commands.c: add private unlocked select command.
	* libbalsa/imap/imap-handle.c: locking changes.
	* libbalsa/imap/imap-handle.h: add ..force_disconnect() prototype.
	* libbalsa/imap/imap_private.h: add select_unlocked() prototype.
	* libbalsa/mailbox.c: stop-gap performance fix.
	* libbalsa/mailbox_imap.[hc]: Add force_disconnect(), reconnect(),
	is_connected().
	* src/main-window.c: listen to libnm events.

2009-11-08  Peter Bloomfield

	* libbalsa/imap/imap-tls.c (imap_check_server_identity): openssl
	has been constified--second try, should build with both latest
	and earlier openssl.

2009-11-08  Peter Bloomfield

	* libbalsa/imap/imap-tls.c (imap_check_server_identity):
	revert--it's going to take more work!

2009-11-08  Peter Bloomfield

	* libbalsa/imap/imap-tls.c (imap_check_server_identity): openssl
	has been constified.

2009-11-07  Peter Bloomfield

	* src/balsa-mime-widget-vcalendar.c (balsa_vevent_widget,
	vevent_reply): use macros to cast enum to or from gpointer.

2009-11-07  Peter Bloomfield

	* libbalsa/rfc2445.c (text_2445_unescape): "\N" encodes newline.

2009-11-01  Peter Bloomfield

	* libbalsa/html.c (lbh_size_request_cb): only increase the
	requisition;
	(lbh_navigation_policy_decision_requested_cb): be silent;
	(libbalsa_html_new): indentation.
	* src/balsa-message.c (add_part): give the content the surplus
	space.

2009-10-31  Peter Bloomfield

	* libbalsa/html.c (lbh_navigation_policy_decision_requested_cb):
	check reason for request.
	(libbalsa_html_new): do not leak GtkAdjustments.

2009-10-30  Peter Bloomfield

	* libbalsa/html.c (lbh_navigation_policy_decision_requested_cb,
	lbh_web_view_ready_idle, lbh_web_view_ready_cb,
	lbh_create_web_view_cb, libbalsa_html_new): handle a clicked
	link that requires a new window.

2009-10-28  Peter Bloomfield

	* src/balsa-mime-widget.c (balsa_mime_widget_destroy): unref
	widget instead of destroying.

2009-10-28  Peter Bloomfield

	* libbalsa/html.c (libbalsa_html_zoom, libbalsa_html_can_select,
	libbalsa_html_select_all, libbalsa_html_copy): add comments and
	indent;
	(libbalsa_html_search_text): build with all widgets.

2009-10-27  Peter Bloomfield

	* libbalsa/html.h: new methods for text search, to access
	WebKitWebView capability.
	* libbalsa/html.c (libbalsa_html_can_search,
	libbalsa_html_search_text): implement them.
	* src/balsa-message.c (bm_find_entry_changed_cb,
	bm_find_again, balsa_message_find_in_message): use them.
	* src/balsa-mime-widget.c (balsa_mime_widget_destroy): work-around
	weird WebKitWebView-GtkClipboard issue.

2009-10-27  Peter Bloomfield

	* src/toolbar-factory.c: show text for "compose" instead of
	"trash/delete".

2009-10-24  Peter Bloomfield

	* src/toolbar-factory.h: new member button_data::is_important.
	* src/toolbar-factory.c (tm_set_tool_item_label): use it.

2009-10-24  Peter Bloomfield

	* src/balsa-app.h: do not include toolbar-factory.h.

2009-10-15  Peter Bloomfield

	GSEAL cleanup

	* configure.in: enable GSEAL if gtk version >= 2.18.
	* libbalsa/address-view.c (lbav_entry_changed_cb):
	* libbalsa/address.c (addrlist_drag_received_cb):
	* libbalsa/html.c (lbh_size_request_cb):
	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	(md_sig_path_changed_cb), (ident_dialog_get_path),
	(libbalsa_identity_config_dialog):
	* libbalsa/libbalsa.c (ask_cert_real):
	* libbalsa/misc.c (lb_create_size_group_func):
	* libbalsa/rfc3156.c (select_key_from_list), (get_passphrase_real):
	* libbalsa/send.c (ensure_send_progress_dialog):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* libbalsa/source-viewer.c (lsv_size_allocate_cb),
	(libbalsa_show_message_source):
	* libinit_balsa/assistant_helper.c (entry_changed_cb):
	* src/ab-main.c (edit_new_entry_cb), (addrlist_drag_get_cb):
	* src/ab-window.c (balsa_ab_window_init):
	* src/address-book-config.c (create_generic_dialog),
	(create_externq_dialog), (create_ldap_dialog), (create_gpe_dialog):
	* src/balsa-app.c (ask_password_real):
	* src/balsa-index.c (bndx_drag_cb), (bndx_mailbox_changed_cb),
	(bndx_popup_position_func), (bndx_expand_to_row),
	(balsa_index_pipe), (balsa_index_ensure_visible):
	* src/balsa-mblist.c (bmbl_drag_cb), (bmbl_mru_show_tree):
	* src/balsa-message.c (bm_on_set_style), (bm_find_scroll_to_iter),
	(bm_find_pass_to_entry), (gtk_tree_hide_func), (select_part),
	(scroll_set), (balsa_get_parent_window),
	(balsa_message_grab_focus):
	* src/balsa-mime-widget-callbacks.c (scroll_change),
	(balsa_mime_widget_key_press_event):
	* src/balsa-mime-widget-image.c (balsa_mime_widget_new_image),
	(img_check_size):
	* src/balsa-mime-widget-message.c (bm_header_widget_realized):
	* src/balsa-mime-widget-text.c (gtk_widget_destroy_insensitive),
	(draw_cite_bar_real):
	* src/balsa-mime-widget.c (vadj_change_cb):
	* src/filter-edit-callbacks.c (condition_validate),
	(fill_condition_widgets), (build_condition_dialog):
	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/filter-run-dialog.c (balsa_filter_run_dialog_init):
	* src/folder-conf.c (folder_conf_imap_node), (browse_button_cb),
	(subfolder_conf_clicked_ok), (folder_conf_imap_sub_node):
	* src/information-dialog.c (balsa_information_list):
	* src/mailbox-conf.c (create_pop_mailbox_dialog),
	(create_imap_mailbox_dialog):
	* src/main-window.c (bw_quit_nicely):
	* src/message-window.c (size_alloc_cb):
	* src/pref-manager.c (open_preferences_manager), (apply_prefs),
	(set_prefs), (timer_modified_cb),
	(mailbox_close_timer_modified_cb), (imap_toggled_cb),
	(convert_8bit_cb):
	* src/print-gtk.c (check_margins), (message_prefs_apply):
	* src/sendmsg-window.c (sw_size_alloc_cb), (sw_get_user_codeset),
	(attachments_add), (sw_scroll_size_request), (drag_data_quote),
	(quote_parts_select_dlg), (subject_not_empty),
	(check_suggest_encryption):
	* src/spell-check.c (balsa_spell_check_init):
	* src/store-address.c (store_address_dialog):
	* src/toolbar-factory.c (tm_popup_position_func):
	* src/toolbar-prefs.c (customize_dialog_cb), (wrap_toggled_cb):

2009-10-15  Peter Bloomfield

	Re-implement BalsaCiteBar as a GTK_NO_WINDOW widget

	* src/balsa-cite-bar.h: make BalsaCiteBar opaque.
	* src/balsa-cite-bar.c (balsa_cite_bar_class_init),
	(balsa_cite_bar_init), (balsa_cite_bar_resize),
	(balsa_cite_bar_size_request), (balsa_cite_bar_expose):

2009-10-15  Peter Bloomfield

	Use gtk_window_present instead of gdk_window_raise

	* libbalsa/identity.c (libbalsa_identity_select_dialog):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* src/address-book-config.c (balsa_address_book_config_new):
	* src/balsa-index.c (balsa_index_pipe):
	* src/filter-edit-dialog.c (filters_edit_dialog):
	* src/filter-export-dialog.c (filters_export_dialog):
	* src/filter-run-dialog.c (filters_run_dialog):
	* src/folder-conf.c (folder_conf_imap_node):
	* src/mailbox-conf.c (mailbox_conf_new), (mailbox_conf_edit):
	* src/main-window.c:
	* src/pref-manager.c (open_preferences_manager):
	* src/sendmsg-window.c (address_book_cb), (spell_check_cb):
	* src/store-address.c (balsa_store_address_from_messages):
	* src/toolbar-prefs.c (customize_dialog_cb):

2009-10-09   Stanislav Brabec

	Fix #596309

	* configure.in: require gnome-icon-theme.
	* src/balsa-app.c (balsa_app_init): set gnome-icon-theme as
	fallback.

2009-10-08  Peter Bloomfield

	* src/address-book-config.c (create_local_dialog,
	create_vcard_dialog, create_ldif_dialog,
	create_generic_dialog, create_externq_dialog,
	create_ldap_dialog, create_gpe_dialog, create_rubrica_dialog):
	show address book type in dialog title.

2009-10-08  Peter Bloomfield

	* libbalsa/mailbox.c (lbm_changed, libbalsa_mailbox_changed): do
	not emit mailbox-changed signal in a sub-thread.

2009-10-08  Peter Bloomfield

	* libbalsa/mailbox_mbox.c (lbm_mbox_armored_object): use
	g_mime_object_encode when available.

2009-10-08  Peter Bloomfield

	* src/address-book-config.c (edit_book_response): check for NULL
	address-book.

2009-10-01  Peter Bloomfield

	* libbalsa/mailbox_mbox.c (lbm_mbox_prepare_object,
	lbm_mbox_armored_object): use GMimeMultipart api to traverse
	message ourselves instead of using g_mime_multipart_foreach.

2009-09-30  Peter Bloomfield

	* src/toolbar-factory.c (tm_do_popup_menu): do not crash when
	default is "text beside items"; fixes
	https://mail.gnome.org/archives/balsa-list/2009-September/msg00045.html

2009-09-28  Laurent Coudeur <laurentc iol ie>

	* src/spell-check.c (balsa_spell_check_init,
	balsa_spell_check_start, balsa_spell_check_learn,
	setup_suggestions, check_pspell_errors): mark strings for
	translation.

2009-09-26  Peter Bloomfield

	* libbalsa/mailbox_mbox.c (lbm_mbox_prepare_object): count
	GMimeMessagePart as well as GMimePart when skipping parts.

2009-09-25  Peter Bloomfield

	* libbalsa/mailbox_mbox.c (lbm_mbox_prepare_object),
	(lbm_mbox_armored_object): detect when g_mime_multipart_foreach
	will recursively descend into a signed or encrypted multipart,
	and set a counter to skip the parts that should not be changed.

2009-09-24  Peter Bloomfield

	* src/balsa-app.c (append_url_if_open): use a GPtrArray to
	collect URLs instead of a GString;
	(open_mailboxes_idle_cb): ditto; do not leak urls.

2009-09-24  Peter Bloomfield

	* src/balsa-app.c (open_mailboxes_idle_cb): do not open most
	recent mailbox if no mailboxes were open.

2009-09-24  Peter Bloomfield

	* src/balsa-app.c (open_mailbox_by_url),
	(open_mailboxes_idle_cb): respect current-mailbox-url when -o
	command line option is used.
	* src/main-window.c: do not clear current-mailbox-url when last
	mailbox is closed, as it may get saved that way.
	* src/main.c (initial_open_inbox): open inbox hidden.

2009-09-11  Peter Bloomfield

	Open most recent mailbox first on restart

	* libbalsa/libbalsa-marshal.list: new marshaller.
	* src/balsa-app.h: new member current_mailbox_url.
	* src/save-restore.c (config_global_load), (config_save): save
	and restore it.
	* src/main-window.h: new api for open-mbnode class method.
	* src/balsa-mblist.h: new method balsa_mblist_open_mailbox_hidden;
	* src/balsa-app.c (open_mailboxes_idle_cb): use them.
	* src/balsa-index.c (balsa_index_transfer): ditto.
	* src/balsa-mblist.c (bmbl_open_mailbox),
	(balsa_mblist_open_mailbox), (balsa_mblist_open_mailbox_hidden):
	ditto.
	* src/mailbox-node.c (load_mailbox_view): ditto.
	* src/main-window.c: ditto.

2009-09-11  Peter Bloomfield

	* src/mailbox-conf.c (mailbox_conf_set_values):
	initialize mailbox name for local mailbox;
	(local_mailbox_dialog_cb), (create_local_mailbox_dialog):
	catch file chooser events to check for a real change;
	(create_imap_mailbox_dialog), (mailbox_conf_view_new_full),
	(mailbox_conf_view_new): new api.

2009-09-10  Peter Bloomfield

	* src/mailbox-conf.c (mailbox_conf_view_cb),
	(mailbox_conf_view_new_with_size_group): set "Update" button
	sensitive when a control is changed.

2009-09-07  Peter Bloomfield

	* src/main.c (balsa_handle_automation_options): encode URI for
	UniqueMessageData.
	(mw_message_received_cb): decode URI received from
	UniqueMessageData.

2009-09-07  Peter Bloomfield

	* libbalsa/misc.c (libbalsa_urlencode): handle 8-bit characters.

2009-09-07  Peter Bloomfield

	* libbalsa/libbalsa-conf.c (lbc_init): do not read config file
	twice.

2009-09-07  Peter Bloomfield

	* libinit_balsa/assistant_init.c (balsa_init_begin): minimal
	init assistant.
	* libinit_balsa/assistant_page_user.c
	(balsa_druid_page_user_init): ditto.

2009-09-04  Peter Bloomfield

	* libbalsa/address-book-vcard.c
	(libbalsa_address_book_vcard_parse_address): accept
	"email:name@host" as well as "email;type=blah:name@host".

2009-09-03  Peter Bloomfield

	* configure.in: oops--revert.

2009-09-03  Peter Bloomfield

	* configure.in: do not allow configure with both webkit and
	gtkhtml.

2009-08-29  Albrecht Dreß

	Improve the Mac OS X integration for a native "Carbon" build

	* libbalsa/Makefile.am:
	* libbalsa/identity.c (libbalsa_identity_select_dialog),
	(delete_ident_cb), (libbalsa_identity_config_dialog):
	* libbalsa/rfc3156.c (check_gpg_child), (select_key_from_list),
	(accept_low_trust_key), (get_passphrase_real):
	* libbalsa/smtp-server.c (libbalsa_smtp_server_dialog):
	* libbalsa/source-viewer.c (libbalsa_show_message_source):
	* src/ab-main.c:
	* src/address-book-config.c (create_local_dialog),
	(create_generic_dialog), (bad_path):
	* src/balsa-app.c (ask_password_real):
	* src/balsa-icons.c (register_balsa_pixmaps):
	* src/balsa-index.c (balsa_index_pipe):
	* src/balsa-mblist.c (bmbl_mru_show_tree):
	* src/balsa-message.c (part_context_dump_all_cb),
	(create_mdn_dialog):
	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_ctx_menu_save):
	* src/filter-edit-callbacks.c (fe_edit_condition):
	* src/folder-conf.c (folder_conf_imap_node), (browse_button_cb),
	(subfolder_conf_clicked_ok), (folder_conf_imap_sub_node),
	(folder_conf_delete):
	* src/information-dialog.c (balsa_information_dialog),
	(balsa_information_list):
	* src/mailbox-conf.c (mailbox_conf_delete),
	(create_local_mailbox_dialog), (create_generic_dialog):
	* src/main-window.c:
	* src/message-window.c (message_window_new):
	* src/pref-manager.c (open_preferences_manager):
	* src/sendmsg-window.c (delete_handler), (change_attach_mode),
	(sw_get_user_codeset), (sw_attach_dialog),
	(quote_parts_select_dlg), (sendmsg_window_new),
	(sendmsg_window_set_field), (include_file_cb),
	(check_suggest_encryption), (send_message_handler),
	(bsmsg_check_format_compatibility):
	* src/store-address.c (store_address_dialog):
	* src/threads.h:
	* src/toolbar-prefs.c (customize_dialog_cb):

2006-08-27  Pawel Salek

	* libbalsa/imap/imap-handle.c: namespace queries need to encode
	the prefix.
	* libbalsa/imap/imap_tst.c: test mailbox name encoding.
	* libbalsa/imap/util.c: encode backslash and quote marks.
	
2009-08-26  Peter Bloomfield 

	set-statusbar is a BalsaWindow method.

	* src/balsa-index.c (balsa_index_transfer):
	* src/balsa-mblist.c (balsa_mblist_open_mailbox),
	(bmbl_update_mailbox):
	* src/balsa-mblist.h:
	* src/main-window.c:
	* src/main-window.h:

2009-08-20  Peter Bloomfield

	* src/main-window.c: build with --disable-threads.

2009-08-19  Peter Bloomfield

	* libbalsa/address-book-gpe.c
	(libbalsa_address_book_gpe_open_db): show file name in error
	message.

2009-08-19  Peter Bloomfield

	* src/main-window.c: Manage sensitivity of "Get New Mail"
	action.
	* src/main.c (mw_message_received_cb, main): ditto.

2009-08-19  Peter Bloomfield

	Allow only one compose window per draft message.

	* src/balsa-index.c (bndx_row_activated): check for NULL return
	from sendmsg_window_continue.
	* src/sendmsg-window.c (balsa_sendmsg_destroy_handler,
	sw_save_draft): clear object data.
	(sendmsg_window_continue): present existing window if it exists
	and return NULL, and use object data to remember window.

2009-08-19  Peter Bloomfield

	* src/balsa-mime-widget-message.c (bm_header_widget_new): use
	GTK_WRAP_WORD_CHAR so that over-long words do not force
	over-wide window.
	* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text):
	ditto.
	* src/balsa-mime-widget-vcalendar.c: ditto.

2009-08-11  Peter Bloomfield

	* src/balsa-print-object-header.c (header_add_list): do not
	print header line with NULL address string.

2006-08-09  Pawel Salek

	* NEWS, configure.in: release balsa-2.4.1

2009-08-04  Peter Bloomfield

	* configure.in: new option --with-canberra=no.
	* libbalsa/filter.c (libbalsa_filter_mailbox_messages): use
	libcanberra-gtk in preference to libgnome for filter sounds.

2009-08-02  Peter Bloomfield

	* src/sendmsg-window.c (bsmsg_set_subject_from_body): use
	existing subject for continued draft message; new name and api;
	(update_bsmsg_identity), (bsm_finish_setup),
	(sendmsg_window_forward): use new name and api.

2009-08-01  Peter Bloomfield

	* libbalsa/body.c (libbalsa_message_body_get_pixbuf): workaround
	for IE's use of non-IANA registered mime-type "image/pjpeg" for
	progressive JPEG image.

2009-08-01  Peter Bloomfield

	* src/sendmsg-window.c (set_entry_to_subject): do not drop
	subject when continuing a new message.

2006-07-30  Pawel Salek

	* libbalsa/imap/imap-commands.c: lock LIST fixed.

2009-07-28  Peter Bloomfield

	* libbalsa/address-view.c (lbav_add_from_list),
	(lbav_add_from_string): streamline code.

2006-07-28  Pawel Salek

	* libbalsa/address-view.c: protect against empty InternetAddressLists.
	* libbalsa/imap/imap-commands.c: lock LIST, LSUB, STATUS as well.

2009-07-26  Peter Bloomfield

	* src/balsa-mblist.c: do not include gdk/gdkfont.h.

2009-07-26  Peter Bloomfield

	Partial fixes for bug #589764, André Klapper.

	* libbalsa/imap/pop3.c (pop_authenticate): use
	g_ascii_strncasecmp.
	* src/quote-color.c (allocate_quote_colors): remove
	"gdk_color_black" from comment.

2009-07-26  Peter Bloomfield

	* src/sendmsg-window.c: do not include gnome.h.

2009-07-26  Peter Bloomfield

	* src/main-window.c: remove redundant gtk version checks and
	dead code.

2009-07-25  Peter Bloomfield

	* libinit_balsa/assistant_helper.c
	(balsa_init_create_to_directory): show specific error message.

2009-07-23  Peter Bloomfield

	Check for NULL InternetAddressList

	* libbalsa/send.c (do_multipart_crypto):
	* src/sendmsg-window.c (sw_cc_add_list):
	* src/store-address.c (store_address_add_list):

2009-07-21  Peter Bloomfield

	Save send type in draft message

	* src/sendmsg-window.h: new member is_continue.
	* src/sendmsg-window.c (delete_handler), (guess_identity),
	(sendmsg_window_new), (sendmsg_window_continue),
	(message_postpone): use it instead of SEND_CONTINUE.
	(sendmsg_window_set_title), (set_entry_to_subject),
	(replace_identity_signature): we no longer use SEND_CONTINUE.

2009-07-20  Peter Bloomfield

	* configure.in: make silent rules by default.

2006-07-12  Pawel Salek

	* src/sendmsg-window.c: do insert new signatures on identity
	switch (reported on balsa-list).

2009-07-09  Peter Bloomfield

	* src/message-window.c (mw_expunged_cb): check for NULL message.

2009-07-09  Peter Bloomfield

	* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_sync): check
	for error in GMimeParser.

2009-06-30  Peter Bloomfield

	* configure.in: test for res_init.
	* libbalsa/imap/imap-handle.c (imap_socket_open): use it to
	recover faster after reconnecting to the internet.

2009-06-27  Peter Bloomfield

	* src/spell-check.h: build --without-gtkspell.

2006-06-24  Pawel Salek

	* libbalsa/imap/imap-{commands,handle}.c: catch errors early on
	for more accurate error messages.
	* libbalsa/imap/imap_search.c: ditto.
	* libbalsa/imap/imap-handle.h: warn if idle_disable's result is ignored.
	* libbalsa/mailbox_imap.c: correct tranformation of rfc822 groups
	from ImapAddress to InternetAddress (together with Peter B).
	* src/sendmsg-window.c: check that string is not-null before
	setting window title.

2006-06-11  Pawel Salek

	* libbalsa/mailbox_imap.c: do not create empty address lists.
	This makes the message compose code believe that reply-to is set.

2009-06-07  Peter Bloomfield

	Build with threads disabled

	* libbalsa/mailbox.c (lbm_msgno_changed): fix conditional code.

2009-06-07  Peter Bloomfield

	Update display in an idle callback.

	* libbalsa/mailbox.h: new array of msgnos that have changed.
	* libbalsa/mailbox.c (libbalsa_mailbox_finalize),
	(lbm_msgno_changed_expunged_cb), (lbm_msgnos_changed_idle_cb),
	(lbm_msgno_changed), (libbalsa_mailbox_msgno_changed),
	(lbm_get_index_entry_real): use it to update display in an idle
	callback, instead of in the sub-thread in which the message info
	was set up.

2009-06-07  Peter Bloomfield

	* src/sendmsg-window.c (repl_identity_signature),
	(insert_initial_sig): remember cursor position when adding or
	changing signature.

2009-06-03  Peter Bloomfield

	Build with threads disabled

	* configure.in: must enable threads to use WebKit.
	* libbalsa/imap-server.c (libbalsa_imap_server_set_username),
	(libbalsa_imap_server_set_host), (libbalsa_imap_server_init),
	(libbalsa_imap_server_finalize), (lb_imap_server_cleanup),
	(get_or_create), (libbalsa_imap_server_get_handle),
	(libbalsa_imap_server_get_handle_with_user),
	(libbalsa_imap_server_release_handle),
	(libbalsa_imap_server_force_disconnect),
	(libbalsa_imap_server_close_all_connections),
	(libbalsa_imap_server_has_free_handles): use macros to manage
	locks.
	* libbalsa/imap/imap_private.h: add TRYLOCK macro.

2009-05-27  Peter Bloomfield

	* src/balsa-mime-widget-callbacks.c
	(balsa_mime_widget_key_press_event): emitting "popup-menu"
	requires the address of the return value.

2006-05-23  Pawel Salek

	* src/balsa-index.[ch]: switch between full and narrow index views.
	* src/main-window.[ch]: switch between ordinary and wide-screen layouts.
	* src/save-restore.c: save the layout as an enum.
	* src/balsa-app.[ch]: set default layout.
	* src/pref-manager.c: main window layout type is a drop-down list now.
	
2009-05-13  Peter Bloomfield

	* src/mailbox-node.c (find_dir), (balsa_mailbox_local_append):
	parent of a top-level mailbox should be the root node.

2009-05-13  Peter Bloomfield

	* src/mailbox-node.c (balsa_mailbox_node_rescan): clear
	mn->scanned, so that we append the subtree.

2009-05-07  Peter Bloomfield

	Implement select thread

	* src/balsa-index.c (balsa_index_select_thread): new method to
	select all messages in thread containing current message.
	* src/balsa-index.h: ditto.
	* src/main-window.c: use it.

2009-05-04  Peter Bloomfield

	Add filter for colorizing messages

	* libbalsa/filter.h: add FILTER_COLOR to FilterActionType enum,
	and FILTER_N_TYPES sentinel.
	* libbalsa/filter.c (libbalsa_filter_mailbox_messages): act on
	it.
	* libbalsa/libbalsa_private.h: add color members to
	LibBalsaMailboxIndexEntry.
	* libbalsa/mailbox.h: new methods to set color; expand
	LibBalsaMailboxColumn enum.
	* libbalsa/mailbox.c (lbm_index_entry_populate_from_msg),
	(mbox_model_init), (mbox_model_get_value), (lbm_set_color),
	(libbalsa_mailbox_set_foreground),
	(libbalsa_mailbox_set_background): implement them.
	* src/balsa-index.c (bndx_instance_init): set color in all
	columns.
	* src/filter-edit-callbacks.c (fe_action_selected),
	(fe_apply_pressed), (fe_filters_list_selection_changed),
	(fe_color_check_toggled), (fe_color_set):
	* src/filter-edit-dialog.c (fe_make_color_buttons),
	(build_action_page): add option to choose colors.
	* src/filter-edit.h: new callbacks.
	* src/filter-run-callbacks.c (fr_apply_selected_pressed_func),
	(fr_add_pressed_func): ditto.
	* src/save-restore.c (config_filter_load),
	(config_filters_load): scrap broken pre-2.1 compatibility code.

2009-04-29  Ildar Mulyukov

	* balsa.desktop.in: respect
	https://specifications.freedesktop.org/menu-spec/latest/apa.html

2009-04-29  Peter Bloomfield

	* libbalsa/mailbox.h: new member sort_field_prev in
	LibBalsaMailboxView.
	* libbalsa/mailbox.c (libbalsa_mailbox_set_sort_field,
	mbox_compare_func, mbox_set_sort_column_id): use it to save
	previous sort_field, and to resolve ties wrt current
	sort_field--work around for lack of a stable mailbox sort.

2009-04-23  Peter Bloomfield

	bump version to 2.4.0, and require GMime-2.4, GLib-2.16, and
	Gtk-2.14.

2009-04-21  Peter Bloomfield

	port to GMime-2.4

2009-04-21  Peter Bloomfield

	create balsa-2-3 branch for updates to the pre-GMime-2.4 tree.

2009-04-21  Peter Bloomfield

	* balsa.doap: new description-of-a-project file.

2009-04-15  Peter Bloomfield

	* src/balsa-mime-widget.c: (balsa_mime_widget_new_unknown):
	ellipsize message label.

2009-04-06  Albrecht Dreß

	* src/balsa-print-object.c: (balsa_print_object_emb_message,
	balsa_print_object_mp_crypto,
	balsa_print_objects_append_from_body): fix mem leak, select
	print handlers from a list which needs two helpers due to
	different prototypes;
	* src/balsa-print-object-header.c:
	(balsa_print_object_header_new_real): fix mem leak;
	* src/print-gtk.c: (begin_print): simplify code.

2009-04-02  Peter Bloomfield

	Make sure that config.h is included before any header that
	refers to a symbol defined there.

	* libbalsa/address-book-gpe.h:
	* libbalsa/body.h:
	* libbalsa/filter-private.h:
	* libbalsa/gmime-stream-gio.h:
	* libbalsa/gmime-stream-gnome-vfs.h:
	* libbalsa/html.h:
	* libbalsa/identity.h:
	* libbalsa/libbalsa.h:
	* libbalsa/libbalsa_private.h:
	* libbalsa/mailbox.h:
	* libbalsa/message.h:
	* libbalsa/mime-stream-shared.h:
	* libbalsa/misc.h:
	* libbalsa/missing.h:
	* libbalsa/rfc3156.h:
	* libbalsa/send.h:
	* libbalsa/server.h:
	* libinit_balsa/Makefile.am:
	* libinit_balsa/assistant_page_defclient.h:
	* src/balsa-app.h:
	* src/balsa-bonobo.h:
	* src/balsa-icons.h:
	* src/balsa-message.h:
	* src/balsa-mime-widget-crypto.h:
	* src/balsa-print-object-header.h:
	* src/main-window.h:
	* src/print.h:
	* src/quote-color.h:
	* src/save-restore.h:
	* src/sendmsg-window.h:
	* libbalsa/libbalsa-conf.c: include config.h.
	* libinit_balsa/assistant_page_defclient.c: ditto.
	* libinit_balsa/assistant_init.c: ditto.

2009-04-02  Peter Bloomfield

	* src/balsa-print-object-decor.c: include config.h.
	* src/balsa-print-object-image.c: ditto.

2009-03-31  Albrecht Dreß

	* libbalsa/rfc2445.c: (libbalsa_vcal_new_from_body,
	date_time_2445_to_time_t): fix "critical" warnings due to
	comparison of wrong variable, and if a line is empty.
	* src/balsa-print-object-default.c:
	(balsa_print_object_default_draw): print the icon top-aligned.
	* src/balsa-print-object-text.c:
	(balsa_print_object_text_calendar): break huge iCal parts over
	multiple pages if necessary.

2009-03-26  Peter Bloomfield

	* libbalsa/missing_time.c: build with enable-threads.

2009-03-19  Peter Bloomfield

	* Makefile.am: install BonoboActivation files only if
	!BUILD_WITH_UNIQUE.
	* src/Makefile.am: ditto.

2009-03-19  Peter Bloomfield

	Build --without-esmtp

	* libbalsa/libbalsa.h: typedef LibBalsaSmtpServer only if
	ENABLE_ESMTP.
	* libbalsa/identity.h: include "libbalsa.h" instead of
	"smtp-server.h".

2006-03-19  Pawel Salek

	* libbalsa/imap/imap-handle.c: make IDLE startup asynchronous.
	* libbalsa/imap/imap_private.h: provide EAT_LINE macro.
	* libbalsa/imap/imap-commands.c: use it.

2009-03-13  Peter Bloomfield

	Offer libUnique as an alternative to BonoboActivation to ensure
	single instance.

	* configure.in: new option --with-unique=no.
	* src/Makefile.am: Bonobo files are conditional.
	* src/main.c: (main, balsa_main_check_new_messages,
	mw_message_received_cb, balsa_handle_automation_options):
	implement it.
	(balsa_init): Initialize Gtk only once, and check for error.

2009-03-11  Albrecht Dreß

	* libbalsa/rfc2445.c: (libbalsa_vcal_new_from_body): ignore
	nested description.
	* src/balsa-mime-widget-vcalendar.c: (balsa_vevent_widget): use
	GtkTextView to show wrapped description.

2009-03-11  Peter Bloomfield

	* libbalsa/address-book-ldap.c: (rfc_2254_escape): do not
	include gnome.h; use g_{new,free} instead of {malloc,free}.

2009-03-03  Peter Bloomfield

	Consistently initialize Gerror, and use g_clear_error when it
	helps.

	* libbalsa/gmime-stream-gio.c:
	* libbalsa/libbalsa-conf.c: (lbc_init), (lbc_sync):
	* libbalsa/mailbox_local.c: (lbm_local_save_tree):
	* libbalsa/source-viewer.c: (lbsv_app_set_menus):
	* src/ab-main.c: (get_main_menu), (main):
	* src/balsa-icons.c: (load_balsa_pixmap):
	* src/filter-edit-callbacks.c: (condition_dialog_response),
	(fe_dialog_response):
	* src/filter-run-callbacks.c: (fr_dialog_response):
	* src/main-window.c:
	* src/main.c: (main):
	* src/message-window.c: (message_window_new):
	* src/sendmsg-window.c: (sendmsg_window_new):

2009-03-03  Peter Bloomfield

	* libbalsa/identity.c: free force-key-id.
	* src/balsa-icons.c: (load_balsa_pixmap): unref icon-set.
	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text,
	bm_widget_new_vcard): free ptr in balsa_mime_widget_new_text
	instead of in bm_widget_new_vcard.

2009-03-01  Peter Bloomfield

	* libbalsa/mailbox_imap.c: (libbalsa_mailbox_imap_open): do not
	leak ImapCacheManager.

2009-02-28  Peter Bloomfield

	* libbalsa/body.c: (libbalsa_message_body_get_pixbuf): tell
	GdkPixbufLoader the mime type; some types, apparently including
	compressed SVG, cannot be reliably identified by looking at
	the data.

2009-02-28  Peter Bloomfield

	* src/main-window.c: tighten some old code.

2009-02-28  Peter Bloomfield

	* src/main.c: (initial_open_unread_mailboxes,
	initial_open_inbox, main): really check new mail after building
	the tree.

2009-02-27  Peter Bloomfield

	* src/main-window.c: 
	* src/main.c: (balsa_main_check_new_messages, main): on startup,
	check new mail in an idle handler, after the mailbox tree has
	been built.

2009-02-27  Peter Bloomfield

	* src/balsa-message.c: libbalsa_can_display is needed only if
	HAVE_GTKHTML.

2009-02-26  Paweł Sałek

	* libbalsa/imap/imap-commands.c: do not deadlock when opening imap
	mailbox with new messages, sorted on the client side.

2009-02-25  Peter Bloomfield

	make sure -DHAVE_CONFIG_H is passed as a compiler flag.
	* configure.in:
	* libbalsa/Makefile.am:
	* src/Makefile.am:

	Test HAVE_CONFIG_H before including config.h.
	* libbalsa/abook-completion.c:
	* libbalsa/address-book-extern.c:
	* libbalsa/address-book-gpe.c:
	* libbalsa/address-book-ldap.c:
	* libbalsa/address-book-ldif.c:
	* libbalsa/address-book-rubrica.c:
	* libbalsa/address-book-text.c:
	* libbalsa/address-book-vcard.c:
	* libbalsa/address-book.c:
	* libbalsa/address-view.c:
	* libbalsa/address.c:
	* libbalsa/body.c:
	* libbalsa/body.h:
	* libbalsa/cell-renderer-button.c:
	* libbalsa/files.c:
	* libbalsa/files.h:
	* libbalsa/filter-error.c:
	* libbalsa/filter-file.c:
	* libbalsa/filter-funcs.c:
	* libbalsa/filter.c:
	* libbalsa/folder-scanners.c:
	* libbalsa/folder-scanners.h:
	* libbalsa/gmime-gpgme-context.c:
	* libbalsa/gmime-part-rfc2440.c:
	* libbalsa/gmime-stream-gio.c:
	* libbalsa/gmime-stream-gio.h:
	* libbalsa/gmime-stream-gnome-vfs.c:
	* libbalsa/gmime-stream-gnome-vfs.h:
	* libbalsa/html.c:
	* libbalsa/html.h:
	* libbalsa/identity.c:
	* libbalsa/identity.h:
	* libbalsa/imap-server.c:
	* libbalsa/imap-server.h:
	* libbalsa/information.c:
	* libbalsa/libbalsa-conf.h:
	* libbalsa/libbalsa-vfs.c:
	* libbalsa/libbalsa-vfs.h:
	* libbalsa/libbalsa.c:
	* libbalsa/libbalsa.h:
	* libbalsa/mailbox-filter.c:
	* libbalsa/mailbox.c:
	* libbalsa/mailbox.h:
	* libbalsa/mailbox_imap.c:
	* libbalsa/mailbox_local.c:
	* libbalsa/mailbox_local.h:
	* libbalsa/mailbox_maildir.c:
	* libbalsa/mailbox_mbox.c:
	* libbalsa/mailbox_mh.c:
	* libbalsa/mailbox_pop3.c:
	* libbalsa/mailbox_remote.c:
	* libbalsa/message.c:
	* libbalsa/message.h:
	* libbalsa/mime-stream-shared.c:
	* libbalsa/mime-stream-shared.h:
	* libbalsa/mime.c:
	* libbalsa/misc.c:
	* libbalsa/missing_time.c:
	* libbalsa/rfc2445.c:
	* libbalsa/rfc3156.c:
	* libbalsa/rfc3156.h:
	* libbalsa/send.c:
	* libbalsa/send.h:
	* libbalsa/server.c:
	* libbalsa/smtp-server.c:
	* libbalsa/smtp-server.h:
	* libbalsa/source-viewer.c:
	* libinit_balsa/assistant_helper.c:
	* libinit_balsa/assistant_helper.h:
	* libinit_balsa/assistant_init.h:
	* libinit_balsa/assistant_page_defclient.h:
	* libinit_balsa/assistant_page_directory.c:
	* libinit_balsa/assistant_page_directory.h:
	* libinit_balsa/assistant_page_finish.c:
	* libinit_balsa/assistant_page_finish.h:
	* libinit_balsa/assistant_page_user.c:
	* libinit_balsa/assistant_page_user.h:
	* libinit_balsa/assistant_page_welcome.h:
	* libinit_balsa/balsa-druid-page-defclient.h:
	* libinit_balsa/balsa-druid-page-directory.h:
	* libinit_balsa/balsa-druid-page-finish.c:
	* libinit_balsa/balsa-druid-page-finish.h:
	* libinit_balsa/balsa-druid-page-user.c:
	* libinit_balsa/balsa-druid-page-user.h:
	* libinit_balsa/balsa-druid-page-welcome.h:
	* libinit_balsa/balsa-initdruid.h:
	* libinit_balsa/helper.c:
	* libinit_balsa/helper.h:
	* libinit_balsa/init_balsa.c:
	* src/ab-main.c:
	* src/ab-window.c:
	* src/ab-window.h:
	* src/address-book-config.c:
	* src/balsa-app.c:
	* src/balsa-bonobo.c:
	* src/balsa-bonobo.h:
	* src/balsa-icons.c:
	* src/balsa-icons.h:
	* src/balsa-index.c:
	* src/balsa-mblist.c:
	* src/balsa-message.c:
	* src/balsa-message.h:
	* src/balsa-mime-widget-callbacks.c:
	* src/balsa-mime-widget-callbacks.h:
	* src/balsa-mime-widget-crypto.c:
	* src/balsa-mime-widget-crypto.h:
	* src/balsa-mime-widget-image.c:
	* src/balsa-mime-widget-message.c:
	* src/balsa-mime-widget-multipart.c:
	* src/balsa-mime-widget-text.c:
	* src/balsa-mime-widget-vcalendar.c:
	* src/balsa-mime-widget.c:
	* src/balsa-print-object-default.c:
	* src/balsa-print-object-header.c:
	* src/balsa-print-object-header.h:
	* src/balsa-print-object-text.c:
	* src/balsa-print-object.c:
	* src/balsa-print-object.h:
	* src/filter-edit-callbacks.c:
	* src/filter-edit-dialog.c:
	* src/filter-export-callbacks.c:
	* src/filter-export-dialog.c:
	* src/filter-run-callbacks.c:
	* src/filter-run-dialog.c:
	* src/folder-conf.c:
	* src/information-dialog.c:
	* src/information-dialog.h:
	* src/mailbox-conf.c:
	* src/mailbox-node.c:
	* src/main-window.c:
	* src/main.c:
	* src/message-window.c:
	* src/pref-manager.c:
	* src/pref-manager.h:
	* src/print-gtk.c:
	* src/print.c:
	* src/print.h:
	* src/quote-color.c:
	* src/quote-color.h:
	* src/save-restore.c:
	* src/save-restore.h:
	* src/sendmsg-window.c:
	* src/sendmsg-window.h:
	* src/spell-check.c:
	* src/spell-check.h:
	* src/store-address.c:
	* src/store-address.h:
	* src/toolbar-factory.c:
	* src/toolbar-factory.h:
	* src/toolbar-prefs.c:
	* src/toolbar-prefs.h:

2009-02-25  Peter Bloomfield

	* src/main-window.h: add new_mail_tray and new_mail_note to
	BalsaWindow.
	* src/main-window.c: use gtk_window_set_urgency_hint to show new
	mail; consolidate notify::is-active handling.

2009-02-21  Paweł Sałek

	* libbalsa/files.c:
	* src/balsa-index.c: build against oldish gtk/gnome.
	* libbalsa/rfc2445.c: with gcc-3.x
	* libbalsa/imap/imap-commands.c: lock the handle when issuing
	asynchronous EXPUNGE.

2009-02-18  Paweł Sałek

	* src/sendmsg-window.c:, src/{ab-,}main.c:
	* libbalsa/rfc2445.c: we include stdlib.h unconditionally.
	
2009-02-16  Albrecht Dreß and Peter Bloomfield

	* src/balsa-message.c: (handle_mdn_request, create_mdn_reply,
	create_mdn_dialog, mdn_dialog_response): check all identities.
	* src/balsa-mime-widget-vcalendar.c: (vevent_reply): use
	smtp-server for attendee's identity.

2009-02-16  Albrecht Dreß

	* configure.in: detect the *time_r function declarations.
	* libbalsa/missing.h: HAVE_DECL_*TIME_R is always defined to a value.

2009-02-16  Albrecht Dreß and Paweł Sałek

	* src/main-window.c:
	  use g_(malloc|free) instead of malloc and free
	* src/sendmsg-window.c, src/ab-main.c, src/main.c:
	  add missing include of stdlib.h if it is available
	* configure.in: always define _XOPEN_SOURCE
	* libbalsa/missing.h: declare (local|gm|c)time_r if necessary
	* libbalsa/rfc2445.c: add proper casting macros, catch and convert
	\r\n line endings (iCal compatibility), work around iCal method
	parameter bug, fix crash on NULL pointers passed to conversion
	funcs.
	* libbalsa/filter-funcs.c: use glib for time conversion if available.
	* libbalsa/mailbox_imap.c: sync the cache when closing mbox.

2009-02-15  Peter Bloomfield

	* src/balsa-mime-widget-vcalendar.c: (balsa_vevent_widget,
	vevent_reply): check all identities.

2009-02-12  Peter Bloomfield

	* src/balsa-message.h: new member gint BalsaMessage::tab_position,
	the position of the tab for header values.
	* src/balsa-mime-widget.h: new member GtkWidget *
	BalsaMimeWidget::header_widget, pointer to the header widget for
	the message.
	* src/balsa-mime-widget-message.c: (balsa_mime_widget_new_message,
	balsa_mime_widget_new_message_tl, bm_header_widget_new,
	bmwm_set_tabs, add_header_gchar,
	balsa_mime_widget_message_set_headers, bmwm_buffer_set_prefs,
	balsa_mime_widget_message_set_headers_d): set the tab position 6
	pixels beyond the length of the longest header label; set user
	prefs for fonts and colors each time we render a message, in
	case prefs have changed.

2009-02-12  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>

	* configure.in: Added 'eu' (Basque) to ALL_LINGUAS

2009-02-08  Albrecht Dreß

	* libbalsa/rfc2445.[hc]: Implement VCALENDAR and VEVENT objects.
	* src/balsa-mime-widget-vcalendar.[hc]:
	display vevent's, and the stuff for sending a text/calendar reply;
	* src/balsa-mime-widget.c: call functions to display text/calendar
	* src/balsa-print-object-text.[hc]:  support print these parts
	* src/balsa-print-object.c:: call functions to print text/calendar
	* src/balsa-message.c: make text/calendar the preferred part.
	* src/balsa-print-object-default.c: catch missing pixbuf
	* src/Makefile.am, libbalsa/Makefile.am: add new source files

2009-02-07  Albrecht Dreß

	* INSTALL: minimum gtk version upgraded, link cleanup (Incomplete!).
	* configure.in: Check min versions, new option for Mac OS X desktop,
	check for *time_r funcs, remove unnecessary check for iconv
	* src/filter-edit.h, src/balsa-index.c, src/balsa-mblist.c
	* src/mailbox-conf.c, src/filter-edit-dialog.c, src/pref-manager.c
	* src/address-book-config.c, libbalsa/misc.[hc]
	* libbalsa/libbalsa-conf.[hc], libbalsa/address.c, libbalsa/identity.c
	* src/filter-edit-callbacks.c:
	Assume we have Gtk+/glib >= 2.6.0
	* libbalsa/imap/imap_search.c:
	use GDate instead of localtime_r (avoid dependency to libbalsa)
	* libbalsa/rfc3156.c: use glib random func
	* libbalsa/Makefile.am, libbalsa/missing{_time.c,.h}:
	add system-dependent time_r funcs
	* src/main-window.c:
	Add basic Mac OS X menu integration, assume we have Gtk+/glib >= 2.6.0
	* src/sendmsg-window.c:
	Add basic Mac OS X menu integration, use g_strdup.
	* src/save-restore.[hc], libinit_balsa/assistant_page_defclient.[hc],
	* libinit_balsa/assistant_init.c:
	No Gnome default client without Gnome
	* src/toolbar-factory.c, src/main.c, src/Makefile.am
	Build without Gnome support
	* src/print-gtk.c: Mac OS X doesn't define _NL_MEASUREMENT_MEASUREMENT
	* src/balsa-icons.c:  Remove unnecessary include.
	* src/balsa-bonobo.[hc]: Only compiled if building with Gnome support
	* src/balsa-app.c:
	Gdk on Mac OS X cannot create a new colour map, fall back to system
	* src/ab-main.c:
	Build Gnome stuff only when available, assume we have Gtk+/glib >=
	2.6.0, add basic Mac OS X menu integration.

2009-02-07  Paweł Sałek

	* src/main-window.c: get rid of spurious new-mail notifications.

2009-01-25  Peter Bloomfield

	* libbalsa/mailbox_local.c: (lbm_local_restore_tree): check for
	stale cache file.
	* libbalsa/mailbox_mbox.c: (lbm_mbox_restore): ditto.

2009-01-24  Albrecht Dreß

	Small compatibility fixes

	* src/sendmsg-window.c: search for toplevel window, not for
	Gnome application;
	* libbalsa/send.c, libbalsa/imap/imap-handle.c: do not use
	strcasecmp which OS X apparently doesn't define;
	* libbalsa/rfc3156.c: use utf8-clean time conversion helper.

2009-01-23  Peter Bloomfield

	* src/main-window.c: use unique names in GtkActionGroup.
	* src/sendmsg-window.c: (sendmsg_window_ui_manager_new): ditto.

2009-01-23  Peter Bloomfield

	* src/main-window.c: Gtk-2.16 deprecation cleanup.

2009-01-21  Peter Bloomfield

	* libbalsa/body.c: (libbalsa_message_body_get_part_stream,
	libbalsa_message_body_get_message_part_stream): new helpers;
	(libbalsa_message_body_get_stream): use them;
	(libbalsa_message_body_get_content,
	libbalsa_message_body_save_stream): set GError when returning
	error.
	* libbalsa/files.c: (libbalsa_default_attachment_pixbuf,
	libbalsa_icon_finder): remove unused GError.
	* src/balsa-mime-widget-callbacks.c:
	(balsa_mime_widget_ctx_menu_save): clear GError.

2009-01-20  Peter Bloomfield

	* libbalsa/body.c: (libbalsa_message_body_get_stream): check
	that we have a GMimePart;
	(libbalsa_message_body_save_stream): use
	libbalsa_message_body_stream_add_filter;
	* libbalsa/mailbox_imap.c: (libbalsa_mailbox_imap_get_msg_part):
	check for GMimeMultipart and GMimeMessagePart, as well as
	GMimePart.

2009-01-20  Peter Bloomfield

	* libbalsa/gmime-stream-gio.c: (stream_read, stream_write,
	stream_seek, stream_substream,
	g_mime_stream_gio_new_with_bounds): build on 32-bit box with
	GMime-2.2.
	* libbalsa/gmime-stream-gio.h: ditto.

2009-01-20  Peter Bloomfield

	Fix BUG - threading view and selecting, reported by Mario
	Mikocevic <mario.mikocevic t-com hr>
	(https://mail.gnome.org/archives/balsa-list/2009-January/msg00015.html)

	* src/balsa-index.h: new boolean BalsaIndex::collapsing.
	* src/balsa-index.c:
	(bndx_test_collapse_row_cb) new callback to set it;
	(bndx_tree_collapse_cb): clear it;
	(bndx_selection_changed): use it to manage preview;
	(bndx_instance_init) connect to "test-collapse-row" signal to
	set it;

2009-01-18  Paweł Sałek

	* NEWS, configure.in: release 2.3.28

2009-01-16  Peter Bloomfield

	* libbalsa/misc.c: (libbalsa_set_fallback_codeset): do not
	allocate and leak strings, now that bug #509434 has been fixed.
	* src/balsa-icons.c: (load_balsa_pixmap): free the icon_source.
	* src/save-restore.c: include stdlib.h.
	* src/sendmsg-window.c: (delete_handler, sendmsg_window_set_title):
	do not leak address list.

2009-01-16  Paweł Sałek

	* libbalsa/files.c: simplify conditional code.
	* libbalsa/mailbox_imap.c: the only way to make sure that the
	exist handler does not trigger imap operations and a related
	deadlock is to process it entirely in an idle handler. Fetch
	message data using seqnos, otherwise we can get surprising EXPUNGE
	notifications. 
	* libbalsa/imap/imap-handle.c: some imap servers send data in the
	same packet as the IDLE prompt. Process it immediately.

2009-01-15  Peter Bloomfield

	* src/print-gtk.c: (add_margin_spinbtn): do not leak string.

2009-01-10  Peter Bloomfield

	* src/main-window.c: fix string--marcel telka sk (fixes bug
	#567323).

2009-01-03  Peter Bloomfield

	* src/sendmsg-window.c: (send_message_handler): fix
	string--leonardof gnome org (fixes bug #566426).

2009-01-03  Peter Bloomfield

	* libbalsa/imap/imap-commands.c: (imap_mbox_thread): do not
	shadow-declare rc.

2009-01-03  Albrecht Dreß

	* libbalsa/html.c: (libbalsa_html_new): tell WebKit the charset.

2009-01-03  Peter Bloomfield

	* libbalsa/send.c: (libbalsa_create_rfc2440_buffer): use
	ngettext to handle plural--leonardof gnome org (fixes bug
	#566420).

2009-01-03  Peter Bloomfield

	* libbalsa/gmime-gpgme-context.c: (g_mime_gpgme_encrypt):
	clarify string--leonardof gnome org (fixes bug #566415).

2009-01-02  Albrecht Dreß

	* configure.in: prefer gio >= 2.16.0, fallback to gnome-vfs.
	* libbalsa/gmime-stream-gnome-vfs.[hc]: build only if using gnome-vfs 
	* libbalsa/files.[hc]: implement icon lookup for gio
	* libbalsa/libbalsa-vfs.[hc]:  add support for GIO
	* libbalsa/gmime-stream-gio.[hc]: gmime gio stream wrapper.
	* libbalsa/misc.c: remove unnecessary #include of gnome-vfs.h
	* libbalsa/Makefile.am: add gmime-stream-gio.[hc]

	* src/balsa-print-object-default.c: use libbalsa-vfs instead of
	gnome-vfs, enabling in this way a clean GIO usage.
	
	* src/sendmsg-window.c: call external editor through gio or gnome-vfs;
	use libbalsa-vfs helper to open attachment with external app;
	show description in attachment list
	* src/balsa-mime-widget-callbacks.[ch]: use libbalsa-vfs to open parts
	* src/balsa-mime-widget-text.c: use changed balsa-mime-widget-callbacks API.
	* src/ab-window.c: launch app using glib
	* src/balsa-message.c: use description instead of plain MIME type.
	* src/balsa-mime-widget.c: create a mime button via libbalsa-vfs.
	
2009-01-02  Paweł Sałek

	* src/main-window.c: report number of deleted message duplicates.
	* libbalsa/mailbox.[ch]: provide it.
	* libbalsa/imap-server.c: using binary fetches breaks integrity checks.

2008-12-30  Paweł Sałek

	* NEWS, configure.in: release 2.3.27

2008-12-30  Paweł Sałek

	* libbalsa/imap/imap_search.c: keep ImapHandle locked when searching.
	* libbalsa/imap/imap-handle.c: .. and when switching to IDLE mode.
	* libbalsa/imap/imap-commands.c: and when threading and sorting.

2008-12-27  Paweł Sałek and Peter Bloomfield

	* src/balsa-mime-widget-message.c: call balsa_message_save_part()
	from header context menu.
	* src/balsa-message.[ch]: implement balsa_message_save_part().
	Call it from the "Message parts" tab.
	* libbalsa/mailbox_imap.c: mark GMimeMessagePart as saveable as well.
	* libbalsa/mailbox_local.c: ditto.
	* libbalsa/body.c: GMime streams for MessageParts have to be
	created in a particular way.

2008-12-24  Paweł Sałek

	* src/balsa-mblist.c: there are no unread mailboxes at destroy time.
	* src/balsa-message.c: display an interesting case of
	multipart/related embedded in a multipart/alternative.

2008-12-24  Peter Bloomfield

	* src/mailbox-node.c: (balsa_mailbox_node_rescan): handle rescan
	of whole tree (mn == NULL).

2008-12-24  Peter Bloomfield

	* src/balsa-app.c: (balsa_app_destroy): do not empty trash--it's
	too late.
	* src/main-window.c: in notebook-switch-page callback, check if
	Balsa is quitting.
	* src/save-restore.c: (sr_special_notify, config_mailbox_init):
	weak-ref special mailboxes, and at notify time, if Balsa is
	quitting, empty the trash.

2008-12-21  Paweł Sałek

	* configure.in: we require gnome-keyring >= 1.0
	Remove some of the race conditions as found with helgrind.
	* src/balsa-app.c: do not manually destroy widgets.
	* src/main.c: cleanup explicitly before exit from main, no signals
	needed.
	* libbalsa/mailbox_{imap,local}.c: lock mailbox.
	* libbalsa/mailbox.c: keep the lock a bit longer.
	* libbalsa/libbalsa.c: preregister more object types.
	* libbalsa/imap/imap-{commands,handle}.c: lock the handle.

2008-12-20  Peter Bloomfield

	button for MDN in message composition toolbar (Jean-Luc Coulon)

	* src/balsa-icons.h: define new icon.
	* src/balsa-icons.c: (register_balsa_pixmaps): register it as
	"stock_mail-reply".
	* src/toolbar-factory.c: list it with short label.
	* src/sendmsg-window.c: use it with tooltip.

2008-12-14  Paweł Sałek

	* src/main-window.c: Add ability to display recent messages only.
	* libbalsa/imap-server.c: give more details in error messages.
	* libbalsa/imap/imap-handle.c: ditto.
	* libbalsa/imap/imap-commands.[ch]: Add "peek" argument to 
	imap_mbox_handle_fetch_rfc822().
	
2008-12-06  Peter Bloomfield

	rewrite of libbalsa_insert_with_url

	* libbalsa/mime.c: (libbalsa_unwrap_buffer, mark_urls,
	prescanner, libbalsa_html_encode_hyperlinks):
	pass string length to prescanner;
	(get_ml_url_reg): make sure the url ends with a real url
	character;
	(libbalsa_insert_with_url): avoid allocating and freeing
	strings.
	* libbalsa/misc.h: new signature for libbalsa_url_cb_t.
	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text):
	avoid allocating and freeing strings;
	(url_found_cb): new signature for libbalsa_url_cb_t.
	* src/sendmsg-window.c: (edit_with_gnome_check,
	repl_identity_signature, insert_selected_messages,
	drag_data_quote, continue_body, fill_body_from_part,
	insert_signature_cb, sendmsg_window_set_field,
	do_insert_string_select_ch, insert_file_response,
	sw_wrap_body, sendmsg_window_new_from_list): use
	gtk_text_buffer_insert_at_cursor instead of
	libbalsa_insert_with_url.

2008-12-03  Peter Bloomfield

	* libbalsa/html.c: (lbh_size_request_cb, libbalsa_html_new): use
	gtk_widget_set_scroll_adjustments instead of a signal; dynamic
	cast once instead of many times.

2008-12-01  Peter Bloomfield

	Initial experimental support for WebKit.

	* configure.in: configure it.
	* libbalsa/html.c: (lbh_hovering_over_link_cb,
	lbh_size_request_cb, lbh_navigation_requested_cb,
	libbalsa_html_new, libbalsa_html_to_string,
	libbalsa_html_can_zoom, libbalsa_html_zoom,
	libbalsa_html_can_select, libbalsa_html_select_all,
	libbalsa_html_copy, lbh_new): new conditional section; new api
	needed, because WebKitWebView has different signals and is not a
	subclass of GtkLayout.
	* libbalsa/html.h: new api.
	* src/balsa-mime-widget-text.c: (pointer_over_url,
	bm_widget_on_url, bm_widget_link_clicked, bm_widget_new_html):
	adapt to new api.

2008-11-22  Albrecht Dreß

	Use only static format strings.

	* libbalsa/libbalsa-vfs.c: (libbalsa_vfs_create_stream),
	(libbalsa_vfs_file_unlink):
	* libbalsa/send.c: (libbalsa_message_create_mime_message):
	* src/ab-main.c: (ab_warning):
	* src/sendmsg-window.c: (check_suggest_encryption),
	(send_message_handler):
	* src/store-address.c: (store_address_from_entries):

2008-11-22  Peter Bloomfield

	* libinit_balsa/assistant_init.c: include stdlib.h.
	* libinit_balsa/assistant_page_directory.c: ditto.
	* src/balsa-app.c: ditto.
	* src/balsa-mime-widget-text.c: ditto.
	* src/spell-check.c: ditto.

2008-11-22  Peter Bloomfield

	* libbalsa/html.h: work around gtkhtml2's use of deprecated api.

2008-11-22  Peter Bloomfield

	disable deprecated apis only in svn tree (fixes bug #561875).

	* configure.in:
	* libbalsa/Makefile.am: 
	* libinit_balsa/Makefile.am:
	* src/Makefile.am:

2008-11-21  Paweł Sałek

	* src/save-restore.c: connect signal to ask interactively for SMTP
	passwords.
	* src/balsa-app.c: display the type of the password (imap/smtp).
	* libbalsa/smtp-server.c: ask for password when one needs one.

2008-11-19  Paweł Sałek

	* configure.in: detect gnome-keyring-2.24 to work around bug 556530.
	* libbalsa/{imap-,}server.c: store passwords asap to keyring (Peter B.).
	* libbalsa/server.h: use own schema only with buggy gnome-keyring.

2008-11-17  Peter Bloomfield

	* src/main-window.c: make "about" website clickable.

2008-11-17  Paweł Sałek

	* src/{folder,mailbox}-conf.c: capitalize according to HID.
	* src/{balsa-app,pref-manager}.c: ditto.
	* libbalsa/identity.c: ditto.
	* configure.in: gnome-keyring detection.
	* libbalsa/smtp-server.c: store server protocol.
	* libbalsa/imap-server.c: read password from keyring.
	* libbalsa/server.[ch]: ditto.

2008-11-16  Paweł Sałek

	* src/balsa-mime-widget-{message,text}.c: fall back to gnome_url_Show
	if gtk2 >= 2.14.0 is unavailable.
	* src/sendmsg-window.c: ditto.

2008-11-15  Peter Bloomfield

	Use gtk_show_uri instead of gnome_help_display and
	gnome_url_show, in various places; no longer need to include
	<gnome.h> in as many places.

	* libbalsa/identity.c: (help_ident_cb): replace
	gnome_help_display and gnome_url_show with gtk_show_uri.
	* libbalsa/smtp-server.c: (smtp_server_response): ditto.
	* src/address-book-config.c: (help_button_cb): ditto.
	* src/balsa-message.c: ditto.
	* src/balsa-mime-widget-callbacks.c: ditto.
	* src/balsa-mime-widget-message.c: (extbody_call_url): ditto.
	* src/balsa-mime-widget-text.c: (handle_url),
	(balsa_gtk_html_link_clicked): ditto.
	* src/filter-edit-callbacks.c: (condition_dialog_response),
	(fe_dialog_response): ditto.
	* src/filter-run-callbacks.c: (fr_dialog_response): ditto.
	* src/folder-conf.c: (folder_conf_response): ditto.
	* src/main-window.c: ditto.
	* src/message-window.c: ditto.
	* src/pref-manager.c: (balsa_help_pbox_display): ditto.
	* src/sendmsg-window.c: (on_open_url_cb): ditto.
	* src/toolbar-prefs.c: (tp_dialog_response_cb): ditto.
	* src/balsa-app.h: do not include <gnome.h>
	* src/balsa-index.h: ditto.
	* src/balsa-message.h: ditto.
	* src/spell-check.c: ditto.
	* src/spell-check.h: ditto.
	* src/balsa-mime-widget.h: ditto.
	* libbalsa/body.h: include <sys/stat.h>.

2008-11-14  Peter Bloomfield

	* libbalsa/address-book.c: include only top level <gtk/gtk.h>.
	* libbalsa/address-view.h: ditto.
	* libbalsa/cell-renderer-button.h: ditto.
	* libbalsa/information.c: ditto.
	* src/balsa-cite-bar.h: ditto.

2008-11-08  Paweł Sałek

	* configure.in: replace --without-gnome with --with-gnome to reduce 
	confusion described on the web site.
	* doc/balsa.omf.in: fix #559825.

2008-10-14  Peter Bloomfield & Pawel Salek

	* bootstrap.sh: run gnome-doc-prepare.
	* src/Makefile.am: clean generated IDL files.
	* doc/C/balsa.xml: follow DTD.
	* doc/Makefile.am: use new gnome-doc format.
	* sounds/Makefile.am: clean up generated files.
	* configure.in: detect gnome-doc
	* Makefile.am: adapt to gnome-doc.

2008-10-12  Petr Kovar  <pknbe@volny.cz>

	* configure.in: Added "be" and "mk" to ALL_LINGUAS.

2008-10-09  Peter Bloomfield

	* src/main-window.c: smaller notebook tab button.

2008-10-08  Peter Bloomfield

	* src/main-window.c: update the magic number.

2008-10-03  Mario Blättermann <mariobl@svn.gnome.org>

	* doc/de/*: Added partial German translation
	* doc/Makefile.am: Added de to the translation subdirs

2008-09-28  Peter Bloomfield

	* libbalsa/mailbox_mbox.c: turn off debugging.

2008-09-22  Peter Bloomfield

	* src/pref-manager.c: (checking_group, misc_group,
	deleting_messages_group): GtkAdjustment::page_size must be zero
	when the GtkAdjustment is used in a GtkSpinButton.

2008-09-15  Peter Bloomfield

	* libbalsa/mailbox_mbox.c: (lbm_mbox_stream_seek_to_message):
	fix stupid comparison.

2008-09-15  Peter Bloomfield

	* libbalsa/mailbox_mbox.c: (lbm_mbox_stream_seek_to_message):
	do not trash stack.

2008-09-15  Peter Bloomfield

	* libbalsa/mailbox_mbox.c: (lbm_mbox_stream_seek_to_message,
	libbalsa_mailbox_mbox_check): cast off_t and ssize_t to long in
	calls to g_print.

2008-09-14  Peter Bloomfield

	* libbalsa/mailbox_mbox.c: (lbm_mbox_stream_seek_to_message):
	better debugging.

2008-09-14  Paweł Sałek

	* src/balsa-index.c: process messages with external program -
	asynchronously.

2008-09-14  Peter Bloomfield

	* libbalsa/body.c:
	(libbalsa_message_body_get_stream): fail if message has no mailbox.
	* libbalsa/mailbox_mbox.c:
	(free_message_info, free_messages_info): plug memory leak;
	(lbm_mbox_stream_seek_to_message, libbalsa_mailbox_mbox_open,
	libbalsa_mailbox_mbox_sync): debugging output;
	(libbalsa_mailbox_mbox_check): ditto; more careful check for
	new mail.
	* src/balsa-mime-widget-text.c:
	(balsa_mime_widget_new_text): check for NULL part.
	* src/balsa-print-object-text.c:
	(balsa_print_object_text_vcard): ditto
	* src/sendmsg-window.c:
	(fill_body_from_part, bsm_finish_setup): ditto.

2008-09-13  Peter Bloomfield

	* src/balsa-icons.c: (load_balsa_pixmap): add more fallbacks to
	cope with woeful gnome-icon-theme-2.23+; use
	GTK_STOCK_MISSING_IMAGE when all else fails, to avoid Gtk
	warnings.

2008-09-09  Peter Bloomfield

	Gtk 2.14 deprecation cleanup

	* libbalsa/mailbox.c: (mbox_set_sort_func),
	(mbox_set_default_sort_func):
	* libbalsa/source-viewer.c: (libbalsa_show_message_source):
	* libinit_balsa/assistant_page_user.c:
	(balsa_druid_page_user_init):
	* libinit_balsa/balsa-druid-page-user.c:
	(balsa_druid_page_user_init):
	* src/ab-window.c: (balsa_ab_window_get_type):
	* src/ab-window.h:
	* src/balsa-cite-bar.c: (balsa_cite_bar_class_init):
	* src/balsa-index.c: (balsa_index_get_type), (bndx_class_init),
	(bndx_popup_menu_create), (create_stock_menu_item):
	* src/balsa-index.h:
	* src/balsa-mblist.c: (balsa_mblist_get_type):
	* src/balsa-mblist.h:
	* src/balsa-message.c: (balsa_message_get_type),
	(tree_mult_selection_popup), (add_to_attachments_popup),
	(add_toggle_inline_menu_item):
	* src/balsa-message.h:
	* src/balsa-mime-widget.h:
	* src/filter-edit-callbacks.c: (build_type_notebook):
	* src/mailbox-conf.c: (run_mailbox_conf), (mailbox_conf_new),
	(create_local_mailbox_dialog), (create_pop_mailbox_dialog),
	(create_imap_mailbox_dialog):
	* src/mailbox-conf.h:
	* src/mailbox-node.c: (add_menu_entry),
	(balsa_mailbox_node_get_context_menu):
	* src/main-window.c:
	* src/main-window.h:
	* src/sendmsg-window.c: (add_attachment), (add_urlref_attachment),
	(bsmsg_check_format_compatibility):
	* src/spell-check.c: (balsa_spell_check_get_type),
	(balsa_spell_check_class_init):
	* src/spell-check.h:

2006-09-07  Paweł Sałek

	* libbalsa/imap/imap-handle.c: don't g_source_remove() twice.
	* NEWS, configure.in: release 2.3.26.

2006-09-06  Paweł Sałek

	* src/balsa-bonobo.c: raise main window after receiving Bonobo cmds.
	* src/balsa-app.c: add some HIG padding in the password dialog.
	* src/balsa-message.c: specify parent for the MDN dialog.
	* balsa.spec.in: merge minor fixes from Fedora's spec.
	* libbalsa/imap/imap-handle.c: process HUPs on idle IMAP connections.

2008-08-28  Albrecht Dreß

	specify a key id for an identity

	* doc/C/balsa.xml: document it.
	* libbalsa/gmime-gpgme-context.c: (get_key_from_name):
	check whether it's a name or an id.
	* libbalsa/identity.c: (libbalsa_identity_init,
	libbalsa_identity_finalize, setup_ident_frame,
	ident_dialog_update, display_frame_update,
	libbalsa_identity_new_config, libbalsa_identity_save): new entry
	for forced key id.
	* libbalsa/identity.h: new member for forced key id.
	* libbalsa/message.c: (libbalsa_message_init,
	libbalsa_message_finalize): ditto.
	* libbalsa/message.h: ditto.
	* libbalsa/send.c: (lb_send_from): use it.
	* src/sendmsg-window.c: (bsmsg2message): set it.

2008-08-24  Peter Bloomfield

	* src/main-window.c: simplify get-toolbar and ui-manager.
	* src/main-window.h: ditto.
	* src/message-window.c: (message_window_ui_manager_new,
	message_window_get_toolbar_model, message_window_new): ditto.
	* src/message-window.h: ditto.
	* src/pref-manager.c: (apply_prefs): ditto.
	* src/sendmsg-window.c: (sendmsg_window_ui_manager_new,
	sendmsg_window_get_toolbar_model, sendmsg_window_new): ditto.
	* src/sendmsg-window.h: ditto.
	* src/toolbar-prefs.c: (customize_dialog_cb): ditto.

2008-08-23  Peter Bloomfield

	* libbalsa/mime.c: (libbalsa_wrap_view, libbalsa_unwrap_buffer):
	no more soft newlines.
	* libbalsa/misc.h: remove libbalsa_prepare_delsp.
	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text):
	no soft-newline tag.
	* src/sendmsg-window.c: (create_text_area): no soft-newline tag;
	(bsmsg2message): remove libbalsa_prepare_delsp.

2008-08-20  Peter Bloomfield

	* libbalsa/mime.c: (dowrap_rfc2646): do not append a space after
	a trailing tab when format=flowed.

2008-08-20  Peter Bloomfield

	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text):
	plug memory leak.

2008-08-20  Peter Bloomfield

	* src/sendmsg-window.c: (bsmsg2message): pass the message to
	sw_wrap_body even if it is flowed, so that
	libbalsa_unwrap_buffer will remove whitespace preceding a hard
	newline.

2008-08-03  Peter Bloomfield

	* libbalsa/send.c: (lbs_list_n_addresses): count the addresses
	in an InternetAddressList;
	(lbs_process_queue): handle a message with a single Bcc: holder
	and no other recipients.

2008-08-03  Peter Bloomfield

	* src/sendmsg-window.c: (find_locale_index_by_locale): return -1
	if locale is not found;
	(create_lang_menu): default spell-check language to first item
	in menu, when balsa_app.spell_check_lang is not found;
	(sendmsg_window_continue): find_locale_index_by_locale is
	now signed.

2008-08-03  Peter Bloomfield

	* libbalsa/body.c: (libbalsa_message_body_set_message_part):
	handle NULL value from g_mime_message_part_get_message.

2008-07-30  Paweł Sałek

	* libbalsa/gmime-part-rfc2440.c: wrapper is not guaranteed to exist.
	* libbalsa/gmime-application-pkcs7.c: ditto.
	* libbalsa/body.c: ditto.
	* libbalsa/mailbox_imap.c: remove cache file if download failed.

2008-07-02  Peter Bloomfield

	* libbalsa/address.c: (vcard_strsplit): skip empty fields;
	(libbalsa_address_new_from_vcard): return NULL if the we do not
	find a complete vCard with at least one address.
	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text):
	check text/directory as well as text/x-vcard; check for NULL
	return value;
	(bm_widget_new_vcard): return NULL if
	libbalsa_address_new_from_vcard returns NULL.
	* src/balsa-print-object-text.c:
	(balsa_print_object_text_vcard): print broken text/x-vcard and
	non-vcard text/directory parts as text/plain instead of default.
	* src/balsa-print-object.c:
	(balsa_print_objects_append_from_body): check text/directory as
	well as text/x-vcard.

2008-06-17  Peter Bloomfield

	* libbalsa/mailbox.c: (lbm_cache_message,
	libbalsa_mailbox_get_message, lbm_get_index_entry_real,
	lbm_get_index_entry, libbalsa_mailbox_cache_message): cache
	message info for the display at get-message time.
	* libbalsa/mailbox_mbox.c: (parse_mailbox): remove redundant
	call to libbalsa_mailbox_cache_message.

2008-06-17  Peter Bloomfield

	* libbalsa/libbalsa_private.h: scrap unused cache-unseen-child
	code.
	* libbalsa/mailbox.c: (lbm_index_entry_populate_from_msg,
	lbm_node_has_unseen_child, lbm_msgno_changed,
	lbm_set_threading, mbox_model_get_value): ditto.

2008-06-14  Paweł Sałek

	* NEWS, configure.in: release 2.3.25.

2008-06-12  Peter Bloomfield

	* libbalsa/mailbox_mbox.c: (lbm_mbox_header_cb, parse_mailbox),
	libbalsa_mailbox_mbox_sync): declare GMimeParserHeaderRegexFunc
	callback properly, and do not cast references to it.

2008-06-11  Paweł Sałek

	* libbalsa/imap/imap-handle.c: detect disconnect on write.
	* src/ab-main.c: add "Delete Entry" menu entry.

2008-06-05  Peter Bloomfield

	New method libbalsa_mailbox_index_entry_clear to avoid using
	libbalsa_mailbox_cache_message with a NULL message to clear the
	index entry.

	* libbalsa/mailbox.h: remove
	libbalsa_mailbox_index_entry_free--no need to export;
	new method libbalsa_mailbox_index_entry_clear.
	* libbalsa/mailbox.c: (lbm_index_entry_free,
	libbalsa_mailbox_index_entry_clear,
	libbalsa_mailbox_free_mindex, libbalsa_mailbox_msgno_removed):
	replace public
	libbalsa_mailbox_index_entry_free with static
	lbm_index_entry_free; new public method
	libbalsa_mailbox_index_entry_clear;
	(libbalsa_mailbox_cache_message): require a non-NULL message.
	* libbalsa/mailbox_imap.c: (imap_exists_cb): use
	libbalsa_mailbox_index_entry_clear.

2008-06-04  Peter Bloomfield

	* libbalsa/mime.c: (process_mime_part): quote a flowed message
	as flowed.

2008-06-04  Peter Bloomfield

	* src/balsa-mime-widget-message.c: (add_header_gchar): look
	further into the value, to make sure we detect a long header
	field.

2008-06-02  Peter Bloomfield

	* src/balsa-mime-widget-message.c: (bm_header_widget_new,
	add_header_gchar): let GtkTextView wrap headers.

2008-06-01  Peter Bloomfield

	* src/main-window.c: tighten code.
	* src/message-window.c: (mw_header_activate): do not change
	balsa-app.shown_headers.
	(show_all_headers_tool_cb): tighten code.

2008-06-02  Pawel Salek

	* libbalsa/imap/imap-handle.c: be more robust to servers returning
	resposes in a changed order. Handle GMail's wrong BODYSTRUCTURE
	response.
	* libbalsa/imap/imap_private.h: define ImapFetchBodyType to detect
	changed response order.
	* libbalsa/imap/imap-commands.c: detect changed response order.

2008-06-01  Peter Bloomfield

	* src/balsa-message.h: remove unused member show_all_headers.
	* src/balsa-message.c: (balsa_message_init): do not init it.
	* src/balsa-mime-widget-message.c: (add_header_gchar,
	add_header_address_list,
	balsa_mime_widget_message_set_headers_d): do not test it.

2008-06-01  Peter Bloomfield

	Make the new mail tray icon optional.

	* src/balsa-app.h: new member notify_new_mail_icon.
	* src/balsa-app.c: (balsa_app_init): initialize it to 1.
	* src/main-window.c: test it.
	* src/pref-manager.c: (open_preferences_manager, apply_prefs,
	set_prefs, checking_group): manage it.
	* src/save-restore.c: (config_global_load, config_save): load
	and save it.

2008-06-01  Peter Bloomfield

	* src/main-window.c: reassign icons to get "Expunge" as a
	toolbar option.
	* src/toolbar-factory.c: change labels accordingly.

2008-06-01  Pawel Salek

	* src/balsa-mime-widget-message.c: truncate long headers when
	"view selected" is chosen.

2008-05-31  Pawel Salek

	* configure.in, NEWS: release 2.3.24

2008-05-25  Albrecht Dreß

	Offer the option of sending a new message with both text/plain
	and text/html versions, specifically to avoid right-to-left text
	being mangled by text-to-html converters. The option is
	per-identity.

	* libbalsa/body.h: new member for html version.
	* libbalsa/body.c: (libbalsa_message_body_new,
	libbalsa_message_body_free): manage it.
	* libbalsa/identity.h: new member for option.
	* libbalsa/identity.c: (libbalsa_identity_init,
	libbalsa_identity_set_send_mp_alternative, setup_ident_frame,
	ident_dialog_update, display_frame_update,
	libbalsa_identity_new_config, libbalsa_identity_save): manage
	the option.
	* libbalsa/misc.h: new methods for html version.
	* libbalsa/mime.c: (libbalsa_html_encode_hyperlinks,
	libbalsa_text_to_html): implement them.
	* libbalsa/send.c: (add_mime_body_plain,
	libbalsa_message_create_mime_message,
	libbalsa_create_rfc2440_buffer): create multipart/alternative
	message with text/plain and text/html parts.
	* src/sendmsg-window.h: new member for html option.
	* src/sendmsg-window.c: (update_bsmsg_identity,
	sendmsg_window_new, sendmsg_window_continue, bsmsg2message,
	send_message_handler, message_postpone, toggle_mp_alt_cb):
	manage and act on the option.

2008-05-17  Peter Bloomfield

	* libbalsa/message.c:
	(libbalsa_message_load_envelope_from_stream): crlf-filter the
	stream; detect end-of-file by failed read instead of
	g_mime_stream_eos.

2008-04-29  Peter Bloomfield

	* src/sendmsg-window.c: (create_lang_menu): fix whining from
	Enchant via GtkSpell.

2008-04-28  Peter Bloomfield

	* src/sendmsg-window.c: use GTK_STOCK_EDIT for "Edit with Gnome".
	* src/toolbar-factory.c: add it to the legal toolbar buttons.

2008-04-28  Peter Bloomfield

	* src/balsa-index.c: (balsa_index_select_all): emit changed
	signal; (balsa_index_count_selected_messages): new method.
	* src/balsa-index.h: new method
	balsa_index_count_selected_messages.
	* src/main-window.c: use it to manage menu item sensitivity.
	* src/main-window.h: subdivide GtkActionGroups.

2008-04-25  Pawel Salek

	* libbalsa/mailbox_imap.c: create header even for empty parts.

2008-04-25  Albrecht Dreß

	* src/balsa-mime-widget-message.c: use URIs instead of paths.
	* src/sendmsg-window.[ch]: use gnome-vfs for attachment reading.
	* src/balsa-mime-widget-callbacks.c: ditto.
	* src/balsa-message.c: allow saving to URIs.
	* src/main.c: -o flag accepts an URI now.
	* src/information-dialog.h: add argument checking.
	* libbalsa/misc.[hc]: return more detailed error information.
	* libbalsa/body.h: store attachment URIs.
	* libbalsa/send.[ch]: handle errors when reading from URIs.
	* libbalsa/files.[ch]: file access operations use URIs now.
	* libbalsa/misc.c: move some functions to libbalsa-vfs.c
	* libbalsa/body.c: part operations accept URIs now.

2008-04-22  Pawel Salek

	* src/balsa-app.c: format=flowed by default.
	* libinit_balsa/assistant_page_user.[ch]: guess more stuff.
	* libinit_balsa/assistant_init.c: we have new code already, keep
	it silent.

2008-04-21  Peter Bloomfield

	* libbalsa/misc.h: if !USE_REGEX is enough.

2008-04-21  Peter Bloomfield

	* configure.in: implement --enable-gregex (default=no); change
	default for --enable-pcre to no.
	* libbalsa/filter-funcs.c: (libbalsa_condition_regex_free):
	condition on USE_REGEX.
	* libbalsa/filter-private.h: ditto.
	* libbalsa/mime.c: (mark_urls, libbalsa_insert_with_url,
	libbalsa_unwrap_selection): ditto.
	* libbalsa/misc.h: ditto.
	* src/balsa-app.c: ditto.
	* src/balsa-app.h: ditto.
	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text):
	ditto.
	* src/balsa-print-object-text.c:
	(balsa_print_object_text_plain): ditto.
	* src/print.c: (print_wrap_body): ditto.
	* src/quote-color.c: (is_a_quote): ditto.
	* src/quote-color.h: ditto.
	* src/sendmsg-window.c: (reflow_selected_cb): ditto.
	* src/spell-check.c: (balsa_spell_check_start,
	balsa_spell_check_destroy, next_word): ditto.

2008-04-19  Peter Bloomfield

	* libbalsa/message.c: (lbmsg_set_header): scrap remaining
	warnings.

2008-04-12  Peter Bloomfield

	* libbalsa/mailbox_maildir.c: (lbm_maildir_parse_subdirs,
	libbalsa_mailbox_maildir_sync): make sure the tree is saved
	after reparsing subdirs.

2008-04-09  Pawel Salek

	* src/sendmsg-window.c: make postpone button and menu entry work.
	* libbalsa/message.c: do not complain when setting headers->from again.
	* libbalsa/imap/imap-handle.[ch]: make set_timeout() return the
	old value.
	* libbalsa/imap/imap_private.h: add HANDLE_TRYLOCK macro.
	* libbalsa/imap/imap-commands.c: use it for noop().

2008-04-06  Pawel Salek

	* libbalsa/imap/imap-handle.h: fix that macro.

2008-04-06  Pawel Salek

	* libbalsa/mailbox_imap.c: initalise ImapSequence data.
	* libbalsa/imap/imap-handle.h: provide a macro for that purpose.

2008-04-03  Pawel Salek

	* libbalsa/mailbox_imap.c: don't print warnings on copy when
	UIDPLUS is unavailable. Better code reuse.
	* libbalsa/message.c: don't modify invariants.

2008-04-02  Ildar Mulyukov <ildar at altlinux dot ru>

	* src/sendmsg-window.c: Some RU/KZ locales fixes.

2008-04-01  Pawel Salek

	* libbalsa/mailbox_imap.c: use UIDPLUS information returned by server
	to improve caching.
	* libbalsa/imap/imap-handle.[ch]: parse returned UIDPLUS data.
	* libbalsa/imap/imap_private.h: add ImapMboxHandle::uidplus field.
	* libbalsa/imap/imap-commands.[ch]: add API for accessing UIDPLUS data.

2008-03-31  Pawel Salek

	* src/spell-check.h: remove lingering reference to pspell.h
	* balsa.spec.in: update to modern standards.

2008-03-30  Peter Bloomfield

	* src/filter-edit-callbacks.c: (fill_condition_widgets): fix a
	critical warning.

2008-03-29  Jean-Luc Coulon

	* doc/C/balsa.xml: fix typos.

2008-03-26  Peter Bloomfield

	* src/balsa-message.c: (add_toggle_inline_menu_item): clear
	force-inline when we create a new check-box.

2008-03-25  Pawel Salek

	* src/balsa-index.c: pass "peek" parameter to get_message_stream().
	* libbalsa/{message,source-viewer}.c: ditto.
	* libbalsa/mailbox.[ch]: get_message_stream() has "peek" parameter now.
	* libbalsa/mailbox_{mh,mbox,maildir}.c: make related trivial changes.
	* libbalsa/mailbox_imap.c: pass "peek" further to save one RTT.

2008-03-20  Peter Bloomfield

	* src/balsa-message.c: (bm_find_again): actually show "Wrapped".

2008-03-20  Pawel Salek

	* libbalsa/imap/imap_search.[ch]: make it easier to explicitly
	select message sets for searching.
	* libbalsa/imap/imap-handle.c: put coalesce routines back here.
	* libbalsa/imap/imap-handle.h: move search functions to imap_search.h
	* libbalsa/imap/imap_private.h: declare coalesce routines here.
	* libbalsa/imap/imap-commands.c: remove coalesce routines.

2008-03-20  Peter Bloomfield

	* libbalsa/misc.{c,h}: (libbalsa_path_is_below_dir): careful
	check for a file being below a directory.
	* src/mailbox-conf.c: (mailbox_conf_add): use it.
	* src/mailbox-node.c: (check_local_path): ditto.
	* src/save-restore.c: (config_mailbox_set_as_special): ditto.
	* src/sendmsg-window.c: (render_attach_size): use
	g_format_size_for_display.
	* libinit_balsa/assistant_page_directory.c:
	(balsa_druid_page_directory_prepare): use g_build_filename.

2008-03-20  Pawel Salek

	* src/main-window.c: Fix a runtime warning.
	* configure.in, NEWS: release 2.3.23
	* doc/C/balsa.xml: document Face and X-Face headers.

2008-03-19  Albrecht Dreß

	* doc/C/balsa.xml: document crypto in help file for composer and
	identities dialogs.

2008-03-16  Pawel Salek

	* src/balsa-mime-widget-text.c: plug a leak if gtkhtml disabled.
	* libbalsa/mailbox_mbox.c: release all resources before disposing
	the mailbox.
	* libbalsa/message.c (lbmsg_set_header): plug a leak.
	
2008-03-11  Peter Bloomfield

	* libbalsa/mime.c: (mark_urls, libbalsa_insert_with_url): plug
	leaks, and clean up conditional code.

2008-03-09  Pawel Salek

	* src/ab-main.c: trying out alternative address book layout.
	* libbalsa/{address,address-book-ldif}.c: plug some memory leaks.

2008-03-09  Albrecht Dreß

	* libbalsa/rfc3156.c: (gpg_keyserver_op, check_gpg_child): add
	"refresh" as an alternative action to "import".
	* libbalsa/rfc3156.h: add gpg_keyserver_action_t enum for
	actions.
	* src/balsa-mime-widget-crypto.c:
	(balsa_mime_widget_signature_widget, on_gpg_key_button):
	implement "refresh" button.

2008-03-03  Pawel Salek

	* libbalsa/mailbox_imap.c: peek only into mailboxes, do no trigger
	implicit \seen flag toggling.
	* libbalsa/imap/imap-handle.c: recognize BODY[TEXT].
	* libbalsa/imap/imap-commands.[ch]: add peek argument.

2008-03-03  Peter Bloomfield

	* libbalsa/mailbox.c: (libbalsa_mailbox_messages_change_flags):
	do not crash when mindex == NULL.

2008-03-02  Peter Bloomfield

	* src/balsa-index.c: (bndx_instance_init): remember
	selection-changed signal handler id.
	(balsa_index_select_all): select all messages without previewing
	any.
	* src/balsa-index.h: new member and method.
	* src/main-window.c: use balsa_index_select_all.

2008-02-27  Peter Bloomfield

	* libbalsa/mailbox.c: (libbalsa_mailbox_set_view_filter):
	remember if the view needs to be updated.
	* libbalsa/mailbox.h: new member.

2008-02-27  Peter Bloomfield

	* libbalsa/mailbox.c: (libbalsa_mailbox_changed): allow for
	default count (== -1).
	* libbalsa/mailbox_imap.c: (lbm_imap_check): get UNREAD count
	instead of RECENT.
	* src/balsa-mblist.c: (bmbl_sort_idle,
	balsa_mblist_mailbox_node_append): inhibit sorting while
	building the tree, to avoid quadratic cost; prepend to tree
	instead of appending, for the same reason.
	* src/balsa-mblist.h: new members for sorting.
	* src/mailbox-node.c: (add_local_mailbox): respect
	subscribe-for-new-mail setting.
	* src/sendmsg-window.c: (update_bsmsg_identity): hide reply-to
	widget if we showed it temporarily.

2008-02-24  Peter Bloomfield

	* src/balsa-index.c: (bndx_popup_position_func, bndx_do_popup):
	add a popup-position func.

2008-02-24  Peter Bloomfield

	* libbalsa/imap/imap-handle.c: (ir_fetch_seq): compile with
	gcc-4.3.
	* src/main.c: (balsa_handle_automation_options): ditto.

2008-02-22  Peter Bloomfield

	* src/filter-edit-callbacks.c: (fe_typesmenu_cb,
	condition_validate, clear_condition_widgets,
	fill_condition_widgets, build_type_notebook): do not offer regex
	filter.
	* src/save-restore.c: (view_by_url_prefix, save_view,
	config_view_remove): new public function to remove a
	mailbox-view.
	* src/save-restore.h: ditto.
	* src/mailbox-conf.c: (mailbox_conf_delete): remove filters and
	the view.

2008-02-18  Peter Bloomfield

	* libbalsa/filter-funcs.c: (libbalsa_condition_compare): check
	for equality.

2008-02-18  Peter Bloomfield

	* src/balsa-message.c: (bm_find_entry_changed_cb,
	bm_find_again): use GtkSourceIter's case-insensitive search
	capability, if available.

2008-02-17  Peter Bloomfield

	* libbalsa/filter-funcs.c: (libbalsa_condition_compare): allow
	NULL conditions.
	* libbalsa/mailbox.c: (libbalsa_mailbox_set_view_filter): update
	only if the new filter is a real change.

2008-02-17  Peter Bloomfield

	* src/message-window.c: (mw_find_in_message_cb): add UI for
	find-in-message.

2008-02-14  Peter Bloomfield

	* src/main-window.c: fix a comment.

2008-02-14  Peter Bloomfield

	* src/main-window.c: block the correct signal handler.

2008-02-10  Albrecht Dreß

	* libbalsa/rfc3156.[hc]: libbalsa_can_encrypt_for_all().
	* libbalsa/identity.[ch]: remind if encryption is possible.
	* src/sendmsg-window.c: encourage encryption if possible.
	* configure.in: stop if gpgme-enabled build requested but
	gpgme-config not found (PS).

2008-02-09  Peter Bloomfield

	* src/balsa-message.c: (bm_find_scroll_to_iter): scroll least
	amount to get text on screen.

2008-02-09  Peter Bloomfield

	* src/balsa-mblist.c: (bmbl_select_mailbox): check that
	button-press event was on the correct window.

2008-02-08  Peter Bloomfield

	* src/balsa-message.c: (bm_find_again): clean up.

2008-02-08  Peter Bloomfield

	* src/balsa-message.c: (bm_find_set_status): new function, hides
	the separator using gtk_separator_tool_item_set_draw instead of
	gtk_widget_hide;
	(bm_find_entry_changed_cb, bm_find_again,
	balsa_message_find_in_message): use bm_find_set_status;
	(bm_disable_find_entry): boolean => void.

2008-02-08  Peter Bloomfield

	* libbalsa/libbalsa.c: (libbalsa_threads_leave): restore
	warning.
	* src/balsa-message.c: (bm_find_entry_changed_cb, bm_find_again,
	bm_pass_to_find_entry): do not hide separator, that triggers
	warnings;
	(balsa_message_find_in_message): find again only if found.

2008-02-08  Peter Bloomfield

	* src/balsa-message.c: (bm_find_entry_changed_cb,
	bm_find_again): do not mess with thread lock.

2008-02-08  Peter Bloomfield

	* src/balsa-message.c: (bm_pass_to_find_entry): test only SHIFT
	and CONTROL bits.

2008-02-07  Peter Bloomfield

	* libbalsa/libbalsa.c: (libbalsa_threads_leave): disable
	warning about dropping lock when not holding it--GtkTextView
	seems to trigger it.
	* src/balsa-message.c: (bm_scroll_to_iter,
	bm_find_entry_changed_cb, bm_find_again, bm_find_prev_cb,
	bm_find_next_cb, bm_find_bar_new, bm_pass_to_find_entry,
	bm_disable_find_entry, balsa_message_init, balsa_message_set,
	balsa_message_find_in_message): implement find-in-message.
	* src/balsa-message.h: api for find-in-message.
	* src/main-window.c: use it.

2008-01-09  Peter Bloomfield

	* libbalsa/libbalsa.h: add width and height to api for
	libbalsa_show_message_source.
	* libbalsa/source-viewer.c: (lsv_size_allocate_cb): save width
	and height.
	(libbalsa_show_message_source): add width and height to api;
	change horizontal scroll policy to GTK_POLICY_AUTOMATIC.
	* src/balsa-app.h: add source viewer width and height.
	* src/balsa-index.c: (bndx_view_source): use new api.
	* src/main-window.c: ditto.
	* src/message-window.c: (view_msg_source_cb): ditto.
	* src/save-restore.c: (config_global_load, config_save): load
	and save source viewer width and height.

2008-01-02  Peter Bloomfield

	* src/spell-check.c: (balsa_spell_check_start): compile without
	GtkSpell.

2008-01-01  Peter Bloomfield

	* configure.in: if glib is 2.14+, we use GRegex, so do not
	configure PCRE.
	* libbalsa/filter-funcs.c: (libbalsa_condition_regex_free): use
	GRegex if available.
	* libbalsa/filter-private.h: ditto.
	* libbalsa/filter.c: ditto.
	* libbalsa/mime.c: (mark_urls, get_url_helper, get_url_reg,
	get_ml_url_reg, get_ml_flowed_url_reg): ditto.
	* libbalsa/misc.h: ditto.
	* src/balsa-app.c: (balsa_quote_regex_new): new function--if
	GRegex is available, compile the quote regex once, and return
	a ref.
	* src/balsa-app.h: balsa_quote_regex_new is new.
	* src/balsa-message.c: use balsa_quote_regex_new.
	* src/balsa-mime-widget-text.c: (balsa_mime_widget_new_text):
	ditto.
	* src/balsa-print-object-text.c:
	(balsa_print_object_text_plain): ditto.
	* src/print.c: (print_wrap_body): ditto.
	* src/quote-color.c: (is_a_quote): use GRegex if available.
	* src/quote-color.h: ditto.
	* src/sendmsg-window.c: (reflow_selected_cb): use
	balsa_quote_regex_new.
	* src/spell-check.c: (balsa_spell_check_start): use
	balsa_quote_regex_new.
	(balsa_spell_check_destroy, next_word): use GRegex if available.

2008-01-01  Peter Bloomfield

	* configure.in: configuring GtkSourceView when version is not
	specified, try GtkSourceView2 then GtkSourceView1.

2008-01-01  Albrecht Dreß

	* Makefile.am: support GtkSourceView2.
	* configure.in: ditto.
	* libbalsa/libbalsa.c: (libbalsa_source_view_new): ditto.
	* src/balsa-mime-widget-text.c: (create_text_widget): ditto.
	* src/sendmsg-window.c: (sw_can_redo_cb, sw_can_undo_cb,
	create_text_area): ditto.
	* balsa-mail-style.xml: new file for GtkSourceView2.
	* balsa-mail.lang: ditto.

