diff --git a/.cvsignore b/.cvsignore
index decf6ed..3dd215b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-evolution-2.11.2.tar.bz2
+evolution-2.11.3.tar.bz2
diff --git a/evolution-2.10.1-check-uri-before-strcmp.patch b/evolution-2.10.1-check-uri-before-strcmp.patch
deleted file mode 100644
index ff7e766..0000000
--- a/evolution-2.10.1-check-uri-before-strcmp.patch
+++ /dev/null
@@ -1,357 +0,0 @@
---- evolution-2.10.1/plugins/exchange-operations/exchange-config-listener.c.check-uri-before-strcmp 2007-04-09 09:09:13.000000000 -0400
-+++ evolution-2.10.1/plugins/exchange-operations/exchange-config-listener.c 2007-05-14 13:34:13.000000000 -0400
-@@ -1250,26 +1250,30 @@
- exchange_add_autocompletion_folders (GConfClient *gc_client, ExchangeAccount *account)
- {
- ESourceList *sl=NULL;
-- ESourceGroup *group;
- ESource *source;
-- GSList *groups, *sources;
-+ GSList *groups;
- gboolean found_group=FALSE;
-
- sl = e_source_list_new_for_gconf (gc_client, CONF_KEY_CONTACTS);
- groups = e_source_list_peek_groups (sl);
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
-- group = E_SOURCE_GROUP (groups->data);
-+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
-+
- if (strcmp (e_source_group_peek_name (group), account->account_name) == 0
- &&
- strcmp (e_source_group_peek_base_uri (group), EXCHANGE_URI_PREFIX) == 0) {
--
-- sources = e_source_group_peek_sources (group);
-+ GSList *sources = e_source_group_peek_sources (group);
-
- for( ; sources != NULL; sources = g_slist_next (sources)) {
-- source = E_SOURCE (sources->data);
-- if (g_str_has_prefix (e_source_peek_absolute_uri (source),
-- "gal://")) {
-+ ESource *source = E_SOURCE (sources->data);
-+ const gchar *absolute_uri;
-+
-+ g_assert (source != NULL);
-+ absolute_uri = e_source_peek_absolute_uri (source);
-+ if (absolute_uri == NULL)
-+ continue;
-+ if (g_str_has_prefix (absolute_uri, "gal://")) {
- /* Set autocompletion on GAL alone by default */
- e_source_set_property (source, "completion", "true");
- break;
---- evolution-2.10.1/plugins/groupwise-account-setup/camel-gw-listener.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
-+++ evolution-2.10.1/plugins/groupwise-account-setup/camel-gw-listener.c 2007-05-14 13:34:13.000000000 -0400
-@@ -254,10 +254,7 @@
- remove_esource (const char *conf_key, const char *group_name, char* source_name, const char* relative_uri)
- {
- ESourceList *list;
-- ESourceGroup *group;
-- ESource *source;
- GSList *groups;
-- GSList *sources;
- gboolean found_group;
- GConfClient* client;
- GSList *ids;
-@@ -271,19 +268,21 @@
- found_group = FALSE;
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
--
-- group = E_SOURCE_GROUP (groups->data);
-+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
-
- if (strcmp (e_source_group_peek_name (group), group_name) == 0 &&
- strcmp (e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX ) == 0) {
--
-- sources = e_source_group_peek_sources (group);
-+ GSList *sources = e_source_group_peek_sources (group);
-
- for( ; sources != NULL; sources = g_slist_next (sources)) {
--
-- source = E_SOURCE (sources->data);
--
-- if (strcmp (e_source_peek_relative_uri (source), relative_uri) == 0) {
-+ ESource *source = E_SOURCE (sources->data);
-+ const gchar *source_relative_uri;
-+
-+ g_assert (source != NULL);
-+ source_relative_uri = e_source_peek_relative_uri (source);
-+ if (source_relative_uri == NULL)
-+ continue;
-+ if (strcmp (source_relative_uri, relative_uri) == 0) {
-
- if (!strcmp (conf_key, CALENDAR_SOURCES))
- source_selection_key = SELECTED_CALENDARS;
-@@ -328,16 +327,12 @@
- modify_esource (const char* conf_key, GwAccountInfo *old_account_info, const char* new_group_name, CamelURL *new_url)
- {
- ESourceList *list;
-- ESourceGroup *group;
-- ESource *source;
- GSList *groups;
-- GSList *sources;
- char *old_relative_uri;
- CamelURL *url;
- gboolean found_group;
- GConfClient* client;
- const char *poa_address;
-- char *new_relative_uri;
- const char *new_poa_address;
-
- url = camel_url_new (old_account_info->source_url, NULL);
-@@ -354,20 +349,23 @@
- found_group = FALSE;
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
--
-- group = E_SOURCE_GROUP (groups->data);
-+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
-
- if (strcmp (e_source_group_peek_name (group), old_account_info->name) == 0 &&
- strcmp (e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0) {
--
-- sources = e_source_group_peek_sources (group);
-+ GSList *sources = e_source_group_peek_sources (group);
-
- for ( ; sources != NULL; sources = g_slist_next (sources)) {
--
-- source = E_SOURCE (sources->data);
--
-- if (strcmp (e_source_peek_relative_uri (source), old_relative_uri) == 0) {
--
-+ ESource *source = E_SOURCE (sources->data);
-+ const gchar *source_relative_uri;
-+
-+ g_assert (source != NULL);
-+ source_relative_uri = e_source_peek_relative_uri (source);
-+ if (source_relative_uri == NULL)
-+ continue;
-+ if (strcmp (source_relative_uri, old_relative_uri) == 0) {
-+ gchar *new_relative_uri;
-+
- new_relative_uri = g_strdup_printf ("%s@%s/", new_url->user, new_poa_address);
- e_source_group_set_name (group, new_group_name);
- e_source_set_relative_uri (source, new_relative_uri);
---- evolution-2.10.1/plugins/hula-account-setup/camel-hula-listener.c.check-uri-before-strcmp 2007-04-09 09:09:14.000000000 -0400
-+++ evolution-2.10.1/plugins/hula-account-setup/camel-hula-listener.c 2007-05-14 13:34:13.000000000 -0400
-@@ -241,10 +241,7 @@
- remove_esource (const char *conf_key, const char *group_name, char* source_name, const char* relative_uri)
- {
- ESourceList *list;
-- ESourceGroup *group;
-- ESource *source;
- GSList *groups;
-- GSList *sources;
- gboolean found_group;
- GConfClient* client;
- GSList *ids;
-@@ -258,19 +255,21 @@
- found_group = FALSE;
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
--
-- group = E_SOURCE_GROUP (groups->data);
-+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
-
- if (strcmp (e_source_group_peek_name (group), group_name) == 0 &&
- strcmp (e_source_group_peek_base_uri (group), HULA_CALDAV_URI_PREFIX ) == 0) {
--
-- sources = e_source_group_peek_sources (group);
-+ GSList *sources = e_source_group_peek_sources (group);
-
- for( ; sources != NULL; sources = g_slist_next (sources)) {
--
-- source = E_SOURCE (sources->data);
--
-- if (strcmp (e_source_peek_relative_uri (source), relative_uri) == 0) {
-+ ESource *source = E_SOURCE (sources->data);
-+ const gchar *source_relative_uri;
-+
-+ g_assert (source != NULL);
-+ source_relative_uri = e_source_peek_relative_uri (source);
-+ if (source_relative_uri == NULL)
-+ continue;
-+ if (strcmp (source_relative_uri, relative_uri) == 0) {
-
- if (!strcmp (conf_key, CALENDAR_SOURCES))
- source_selection_key = SELECTED_CALENDARS;
-@@ -311,15 +310,11 @@
- modify_esource (const char* conf_key, HulaAccountInfo *old_account_info, const char* new_group_name, CamelURL *new_url)
- {
- ESourceList *list;
-- ESourceGroup *group;
-- ESource *source;
- GSList *groups;
-- GSList *sources;
- char *old_relative_uri;
- CamelURL *url;
- gboolean found_group;
- GConfClient* client;
-- char *new_relative_uri;
-
- url = camel_url_new (old_account_info->source_url, NULL);
- if (!url->host || strlen (url->host) ==0)
-@@ -334,19 +329,23 @@
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
-
-- group = E_SOURCE_GROUP (groups->data);
-+ ESourceGroup *group = E_SOURCE_GROUP (groups->data);
-
- if (strcmp (e_source_group_peek_name (group), old_account_info->name) == 0 &&
- strcmp (e_source_group_peek_base_uri (group), HULA_CALDAV_URI_PREFIX) == 0) {
--
-- sources = e_source_group_peek_sources (group);
-+ GSList *sources = e_source_group_peek_sources (group);
-
- for ( ; sources != NULL; sources = g_slist_next (sources)) {
--
-- source = E_SOURCE (sources->data);
--
-- if (strcmp (e_source_peek_relative_uri (source), old_relative_uri) == 0) {
--
-+ ESource *source = E_SOURCE (sources->data);
-+ const gchar *source_relative_uri;
-+
-+ g_assert (source != NULL);
-+ source_relative_uri = e_source_peek_relative_uri (source);
-+ if (source_relative_uri == NULL)
-+ continue;
-+ if (strcmp (source_relative_uri, old_relative_uri) == 0) {
-+ gchar *new_relative_uri;
-+
- new_relative_uri = g_strdup_printf ("%s@%s:%d/dav/%s/calendar/Personal", new_url->user, new_url->host, new_url->port, new_url->user);
- e_source_group_set_name (group, new_group_name);
- e_source_set_relative_uri (source, new_relative_uri);
---- evolution-2.10.1/addressbook/gui/component/addressbook-component.c.check-uri-before-strcmp 2007-04-09 09:07:42.000000000 -0400
-+++ evolution-2.10.1/addressbook/gui/component/addressbook-component.c 2007-05-14 13:34:13.000000000 -0400
-@@ -118,7 +118,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- personal_source = source;
- break;
- }
---- evolution-2.10.1/addressbook/gui/component/addressbook-migrate.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
-+++ evolution-2.10.1/addressbook/gui/component/addressbook-migrate.c 2007-05-14 13:34:13.000000000 -0400
-@@ -472,7 +472,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- *personal_source = g_object_ref (source);
- break;
- }
---- evolution-2.10.1/calendar/gui/calendar-component.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
-+++ evolution-2.10.1/calendar/gui/calendar-component.c 2007-05-14 13:34:13.000000000 -0400
-@@ -210,7 +210,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- personal_source = source;
- break;
- }
---- evolution-2.10.1/calendar/gui/tasks-component.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
-+++ evolution-2.10.1/calendar/gui/tasks-component.c 2007-05-14 13:34:13.000000000 -0400
-@@ -170,7 +170,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- personal_source = source;
- break;
- }
---- evolution-2.10.1/calendar/gui/memos-component.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
-+++ evolution-2.10.1/calendar/gui/memos-component.c 2007-05-14 13:34:13.000000000 -0400
-@@ -174,7 +174,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- personal_source = source;
- break;
- }
---- evolution-2.10.1/calendar/gui/migration.c.check-uri-before-strcmp 2007-05-14 13:21:57.000000000 -0400
-+++ evolution-2.10.1/calendar/gui/migration.c 2007-05-14 13:34:13.000000000 -0400
-@@ -466,7 +466,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- *personal_source = g_object_ref (source);
- break;
- }
-@@ -562,7 +568,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- *personal_source = g_object_ref (source);
- break;
- }
-@@ -1070,7 +1082,13 @@
- GSList *s;
- for (s = sources; s; s = s->next) {
- ESource *source = E_SOURCE (s->data);
-- if (!strcmp (PERSONAL_RELATIVE_URI, e_source_peek_relative_uri (source))) {
-+ const gchar *relative_uri;
-+
-+ g_assert (source != NULL);
-+ relative_uri = e_source_peek_relative_uri (source);
-+ if (relative_uri == NULL)
-+ continue;
-+ if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) {
- *personal_source = g_object_ref (source);
- break;
- }
diff --git a/evolution-2.10.1-fix-help.patch b/evolution-2.10.1-fix-help.patch
deleted file mode 100644
index caf4565..0000000
--- a/evolution-2.10.1-fix-help.patch
+++ /dev/null
@@ -1,192 +0,0 @@
---- evolution-2.10.1/widgets/misc/e-multi-config-dialog.c.fix-help 2007-04-09 09:10:24.000000000 -0400
-+++ evolution-2.10.1/widgets/misc/e-multi-config-dialog.c 2007-04-13 22:26:25.000000000 -0400
-@@ -192,13 +192,12 @@
-
- switch (response_id) {
- case GTK_RESPONSE_HELP:
-- gnome_help_display_desktop (NULL,
-- "evolution-" BASE_VERSION,
-- "evolution-" BASE_VERSION ".xml",
-- "config-prefs",
-- &error);
-- if (error != NULL)
-+ gnome_help_display (
-+ "evolution.xml", "config-prefs", &error);
-+ if (error != NULL) {
- g_warning ("%s", error->message);
-+ g_error_free (error);
-+ }
- break;
- case GTK_RESPONSE_CLOSE:
- default:
---- evolution-2.10.1/widgets/misc/e-send-options.c.fix-help 2007-04-13 22:25:21.000000000 -0400
-+++ evolution-2.10.1/widgets/misc/e-send-options.c 2007-04-13 22:26:25.000000000 -0400
-@@ -588,34 +588,32 @@
-
- static void e_send_options_cb (GtkDialog *dialog, gint state, gpointer func_data)
- {
-+ ESendOptionsDialogPrivate *priv;
-+ ESendOptionsDialog *sod;
-+ GError *error = NULL;
-
-- ESendOptionsDialogPrivate *priv;
-- ESendOptionsDialog *sod;
-- GError *error = NULL;
--
-- sod = func_data;
-- priv = sod->priv;
--
-- switch (state) {
-- case GTK_RESPONSE_OK:
-- e_send_options_get_widgets_data (sod);
-- case GTK_RESPONSE_CANCEL:
-- gtk_widget_hide (priv->main);
-- gtk_widget_destroy (priv->main);
-- g_object_unref (priv->xml);
-- break;
-- case GTK_RESPONSE_HELP:
-- gnome_help_display_desktop (NULL,
-- "evolution-" BASE_VERSION,
-- "evolution-" BASE_VERSION ".xml",
-- priv->help_section,
-- &error);
-- if (error != NULL)
-- g_warning ("%s", error->message);
-- break;
-- }
-- g_signal_emit (G_OBJECT (func_data), signals[SOD_RESPONSE], 0, state);
-+ sod = func_data;
-+ priv = sod->priv;
-+
-+ switch (state) {
-+ case GTK_RESPONSE_OK:
-+ e_send_options_get_widgets_data (sod);
-+ case GTK_RESPONSE_CANCEL:
-+ gtk_widget_hide (priv->main);
-+ gtk_widget_destroy (priv->main);
-+ g_object_unref (priv->xml);
-+ break;
-+ case GTK_RESPONSE_HELP:
-+ gnome_help_display (
-+ "evolution.xml", priv->help_section, &error);
-+ if (error != NULL) {
-+ g_warning ("%s", error->message);
-+ g_error_free (error);
-+ }
-+ break;
-+ }
-
-+ g_signal_emit (G_OBJECT (func_data), signals[SOD_RESPONSE], 0, state);
- }
-
- gboolean
---- evolution-2.10.1/plugins/exchange-operations/exchange-send-options.c.fix-help 2007-04-13 22:25:21.000000000 -0400
-+++ evolution-2.10.1/plugins/exchange-operations/exchange-send-options.c 2007-04-13 22:26:25.000000000 -0400
-@@ -191,21 +191,20 @@
-
- switch (state) {
- case GTK_RESPONSE_OK:
-- exchange_send_options_get_widgets_data (sod);
-+ exchange_send_options_get_widgets_data (sod);
- case GTK_RESPONSE_CANCEL:
-- gtk_widget_hide (priv->main);
-- gtk_widget_destroy (priv->main);
-- g_object_unref (priv->xml);
-- break;
-+ gtk_widget_hide (priv->main);
-+ gtk_widget_destroy (priv->main);
-+ g_object_unref (priv->xml);
-+ break;
- case GTK_RESPONSE_HELP:
-- gnome_help_display_desktop (NULL,
-- "evolution-" BASE_VERSION,
-- "evolution-" BASE_VERSION ".xml",
-- priv->help_section,
-- &error);
-- if (error != NULL)
-- g_warning ("%s", error->message);
-- break;
-+ gnome_help_display (
-+ "evolution.xml", priv->help_section, &error);
-+ if (error != NULL) {
-+ g_warning ("%s", error->message);
-+ g_error_free (error);
-+ }
-+ break;
- }
- g_signal_emit (G_OBJECT (func_data), signals[SOD_RESPONSE], 0, state);
-
---- evolution-2.10.1/addressbook/gui/contact-editor/e-contact-editor.c.fix-help 2007-04-13 22:25:21.000000000 -0400
-+++ evolution-2.10.1/addressbook/gui/contact-editor/e-contact-editor.c 2007-04-13 22:26:02.000000000 -0400
-@@ -3235,13 +3235,12 @@
- {
- GError *error = NULL;
-
-- gnome_help_display_desktop (NULL,
-- "evolution-" BASE_VERSION,
-- "evolution-" BASE_VERSION ".xml",
-- "usage-contact-cards",
-- &error);
-- if (error != NULL)
-+ gnome_help_display (
-+ "evolution.xml", "usage-contact-cards", &error);
-+ if (error != NULL) {
- g_warning ("%s", error->message);
-+ g_error_free (error);
-+ }
- }
-
- static GList *
---- evolution-2.10.1/composer/e-msg-composer.c.fix-help 2007-04-13 22:25:21.000000000 -0400
-+++ evolution-2.10.1/composer/e-msg-composer.c 2007-04-13 22:26:25.000000000 -0400
-@@ -2886,13 +2886,12 @@
- GError *error = NULL;
- EMsgComposerPrivate *p = composer->priv;
-
-- gnome_help_display_desktop (NULL,
-- "evolution-" BASE_VERSION,
-- "evolution-" BASE_VERSION ".xml",
-- "usage-composer",
-- &error);
-- if (error != NULL)
-+ gnome_help_display (
-+ "evolution.xml", "usage-composer", &error);
-+ if (error != NULL) {
- g_warning ("%s", error->message);
-+ g_error_free (error);
-+ }
- }
-
-
---- evolution-2.10.1/shell/e-shell-window.c.fix-help 2007-04-13 22:25:21.000000000 -0400
-+++ evolution-2.10.1/shell/e-shell-window.c 2007-04-13 22:26:02.000000000 -0400
-@@ -1042,7 +1042,7 @@
- bonobo_ui_util_set_ui (priv->ui_component,
- PREFIX,
- xmlfile,
-- "evolution-" BASE_VERSION, NULL);
-+ "evolution", NULL);
- g_free (xmlfile);
-
- e_shell_window_commands_setup (window);
---- evolution-2.10.1/calendar/gui/dialogs/comp-editor.c.fix-help 2007-04-13 22:25:21.000000000 -0400
-+++ evolution-2.10.1/calendar/gui/dialogs/comp-editor.c 2007-04-13 22:26:25.000000000 -0400
-@@ -1693,13 +1693,12 @@
-
- priv = editor->priv;
-
-- gnome_help_display_desktop (NULL,
-- "evolution-" BASE_VERSION,
-- "evolution-" BASE_VERSION ".xml",
-- priv->help_section,
-- &error);
-- if (error != NULL)
-+ gnome_help_display (
-+ "evolution.xml", priv->help_section, &error);
-+ if (error != NULL) {
- g_warning ("%s", error->message);
-+ g_error_free (error);
-+ }
- }
-
-
diff --git a/evolution-2.10.1-send-recv-dialog.patch b/evolution-2.10.1-send-recv-dialog.patch
deleted file mode 100644
index e8fb570..0000000
--- a/evolution-2.10.1-send-recv-dialog.patch
+++ /dev/null
@@ -1,101 +0,0 @@
---- evolution-2.11.2/mail/mail-send-recv.c.send-recv-dialog 2007-05-18 16:03:24.000000000 -0400
-+++ evolution-2.11.2/mail/mail-send-recv.c 2007-05-18 16:08:58.000000000 -0400
-@@ -362,23 +362,6 @@
- return SEND_INVALID;
- }
-
--static gboolean
--dialog_map (GtkWidget *window, GdkEvent *event, GtkWidget *table)
--{
-- int h, w;
--
-- w = table->allocation.width + 30 /* Spacing around the table */;
-- h = table->allocation.height + 60 /* Cancell All button and Seperator and outer spacing */;
--
-- if (w > 750)
-- w = 750;
-- if (h > 400)
-- h = 400;
-- gtk_widget_set_size_request (window, w, h);
--
-- return FALSE;
--}
--
- static struct _send_data *
- build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destination)
- {
-@@ -444,7 +427,7 @@
- scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (
- GTK_SCROLLED_WINDOW (scrolled_window),
-- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-
- gtk_scrolled_window_add_with_viewport (
- GTK_SCROLLED_WINDOW (scrolled_window), table);
-@@ -504,6 +487,8 @@
- "stock_mail-receive", E_ICON_SIZE_LARGE_TOOLBAR);
- pretty_url = format_url (source->url, account->name);
- label = gtk_label_new (NULL);
-+ gtk_label_set_ellipsize (
-+ GTK_LABEL (label), PANGO_ELLIPSIZE_END);
- gtk_label_set_markup (GTK_LABEL (label), pretty_url);
- g_free (pretty_url);
-
-@@ -522,16 +507,16 @@
-
- gtk_table_attach (
- GTK_TABLE (table), recv_icon,
-- 0, 1, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-+ 0, 1, row, row+2, 0, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), label,
- 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), progress_bar,
-- 2, 3, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-+ 2, 3, row, row+2, 0, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), cancel_button,
-- 3, 4, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-+ 3, 4, row, row+2, 0, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), status_label,
- 1, 2, row+1, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-@@ -572,6 +557,8 @@
- "stock_mail-send", E_ICON_SIZE_LARGE_TOOLBAR);
- pretty_url = format_url (destination, NULL);
- label = gtk_label_new (NULL);
-+ gtk_label_set_ellipsize (
-+ GTK_LABEL (label), PANGO_ELLIPSIZE_END);
- gtk_label_set_markup (GTK_LABEL (label), pretty_url);
-
- g_free (pretty_url);
-@@ -587,16 +574,16 @@
-
- gtk_table_attach (
- GTK_TABLE (table), send_icon,
-- 0, 1, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-+ 0, 1, row, row+2, 0, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), label,
- 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), progress_bar,
-- 2, 3, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-+ 2, 3, row, row+2, 0, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), cancel_button,
-- 3, 4, row, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-+ 3, 4, row, row+2, 0, 0, 0, 0);
- gtk_table_attach (
- GTK_TABLE (table), status_label,
- 1, 2, row+1, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-@@ -615,7 +602,6 @@
- gtk_widget_show (GTK_WIDGET (gd));
-
- g_signal_connect (gd, "response", G_CALLBACK (dialog_response), data);
-- g_signal_connect (gd, "map-event", G_CALLBACK (dialog_map), table);
-
- g_object_weak_ref ((GObject *) gd, (GWeakNotify) dialog_destroy_cb, data);
-
diff --git a/evolution-2.11.3-implicit-function-declaration.patch b/evolution-2.11.3-implicit-function-declaration.patch
new file mode 100644
index 0000000..554191a
--- /dev/null
+++ b/evolution-2.11.3-implicit-function-declaration.patch
@@ -0,0 +1,10 @@
+--- evolution-2.11.3/mail/mail-ops.h.implicit-function-declaration 2007-06-04 13:52:57.000000000 -0400
++++ evolution-2.11.3/mail/mail-ops.h 2007-06-04 13:53:23.000000000 -0400
+@@ -156,6 +156,7 @@ void mail_prep_offline(const char *uri,
+ int mail_store_set_offline(CamelStore *store, gboolean offline,
+ void (*done)(CamelStore *, void *data),
+ void *data);
++int mail_store_prepare_offline (CamelStore *store);
+
+ /* filter driver execute shell command async callback */
+ void mail_execute_shell_command (CamelFilterDriver *driver, int argc, char **argv, void *data);
diff --git a/evolution-2.4.1-hide-switcher-buttons-by-default.patch b/evolution-2.4.1-hide-switcher-buttons-by-default.patch
index bada5b5..f5ac169 100644
--- a/evolution-2.4.1-hide-switcher-buttons-by-default.patch
+++ b/evolution-2.4.1-hide-switcher-buttons-by-default.patch
@@ -1,5 +1,5 @@
---- evolution-2.4.1/shell/apps_evolution_shell.schemas.in.in.hide-switcher-buttons-by-default 2005-10-26 16:21:15.000000000 -0400
-+++ evolution-2.4.1/shell/apps_evolution_shell.schemas.in.in 2005-10-26 16:21:22.000000000 -0400
+--- evolution-2.4.1/shell/apps_evolution_shell.schemas.in.hide-switcher-buttons-by-default 2005-10-26 16:21:15.000000000 -0400
++++ evolution-2.4.1/shell/apps_evolution_shell.schemas.in 2005-10-26 16:21:22.000000000 -0400
@@ -99,7 +99,7 @@
/apps/evolution/shell/view_defaults/buttons_visible
evolution
diff --git a/evolution-2.5.4-fix-conduit-dir.patch b/evolution-2.5.4-fix-conduit-dir.patch
index cba890a..31726ab 100644
--- a/evolution-2.5.4-fix-conduit-dir.patch
+++ b/evolution-2.5.4-fix-conduit-dir.patch
@@ -1,88 +1,88 @@
---- evolution-2.9.5/addressbook/conduit/Makefile.am.fix-conduit-dir 2007-01-03 10:32:47.000000000 -0500
-+++ evolution-2.9.5/addressbook/conduit/Makefile.am 2007-01-21 22:05:23.000000000 -0500
-@@ -28,7 +28,7 @@
+--- evolution-2.11.3/addressbook/conduit/Makefile.am.fix-conduit-dir 2007-06-03 11:07:44.000000000 -0400
++++ evolution-2.11.3/addressbook/conduit/Makefile.am 2007-06-04 12:55:32.000000000 -0400
+@@ -28,7 +28,7 @@ e-address.conduit: e-address.conduit.in
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
$< > $@
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-address-$(BASE_VERSION).conduit
+ conduit_DATA = e-address.conduit
BUILT_SOURCES = $(conduit_DATA)
---- evolution-2.9.5/addressbook/conduit/Makefile.in.fix-conduit-dir 2007-01-21 22:05:44.000000000 -0500
-+++ evolution-2.9.5/addressbook/conduit/Makefile.in 2007-01-21 22:06:04.000000000 -0500
-@@ -459,7 +459,7 @@
- $(top_builddir)/widgets/misc/libemiscwidgets.la \
+--- evolution-2.11.3/addressbook/conduit/Makefile.in.fix-conduit-dir 2007-06-04 07:36:46.000000000 -0400
++++ evolution-2.11.3/addressbook/conduit/Makefile.in 2007-06-04 12:55:53.000000000 -0400
+@@ -459,7 +459,7 @@ libeaddress_conduit_la_LIBADD = \
+ $(top_builddir)/widgets/misc/libemiscwidgets.la \
$(EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS)
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-address-$(BASE_VERSION).conduit
+ conduit_DATA = e-address.conduit
BUILT_SOURCES = $(conduit_DATA)
CLEANFILES = $(BUILT_SOURCES)
---- evolution-2.9.5/calendar/conduits/todo/Makefile.am.fix-conduit-dir 2007-01-03 10:34:54.000000000 -0500
-+++ evolution-2.9.5/calendar/conduits/todo/Makefile.am 2007-01-21 22:05:23.000000000 -0500
-@@ -24,7 +24,7 @@
+--- evolution-2.11.3/calendar/conduits/todo/Makefile.am.fix-conduit-dir 2007-06-03 11:08:16.000000000 -0400
++++ evolution-2.11.3/calendar/conduits/todo/Makefile.am 2007-06-04 12:56:19.000000000 -0400
+@@ -25,7 +25,7 @@ e-todo.conduit: e-todo.conduit.in
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
$< > $@
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-todo-$(BASE_VERSION).conduit
+ conduit_DATA = e-todo.conduit
BUILT_SOURCES = $(conduit_DATA)
---- evolution-2.9.5/calendar/conduits/todo/Makefile.in.fix-conduit-dir 2007-01-21 22:06:31.000000000 -0500
-+++ evolution-2.9.5/calendar/conduits/todo/Makefile.in 2007-01-21 22:06:39.000000000 -0500
-@@ -454,7 +454,7 @@
- $(top_builddir)/widgets/misc/libemiscwidgets.la \
+--- evolution-2.11.3/calendar/conduits/todo/Makefile.in.fix-conduit-dir 2007-06-04 07:36:51.000000000 -0400
++++ evolution-2.11.3/calendar/conduits/todo/Makefile.in 2007-06-04 12:56:28.000000000 -0400
+@@ -456,7 +456,7 @@ libetodo_conduit_la_LIBADD = \
+ $(top_builddir)/widgets/misc/libemiscwidgets.la \
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-todo-$(BASE_VERSION).conduit
+ conduit_DATA = e-todo.conduit
BUILT_SOURCES = $(conduit_DATA)
CLEANFILES = $(BUILT_SOURCES)
---- evolution-2.9.5/calendar/conduits/memo/Makefile.am.fix-conduit-dir 2007-01-03 10:34:54.000000000 -0500
-+++ evolution-2.9.5/calendar/conduits/memo/Makefile.am 2007-01-21 22:05:23.000000000 -0500
-@@ -24,7 +24,7 @@
+--- evolution-2.11.3/calendar/conduits/memo/Makefile.am.fix-conduit-dir 2007-06-03 11:08:16.000000000 -0400
++++ evolution-2.11.3/calendar/conduits/memo/Makefile.am 2007-06-04 12:56:49.000000000 -0400
+@@ -25,7 +25,7 @@ e-memo.conduit: e-memo.conduit.in
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
$< > $@
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-memo-$(BASE_VERSION).conduit
+ conduit_DATA = e-memo.conduit
BUILT_SOURCES = $(conduit_DATA)
---- evolution-2.9.5/calendar/conduits/memo/Makefile.in.fix-conduit-dir 2007-01-21 22:06:46.000000000 -0500
-+++ evolution-2.9.5/calendar/conduits/memo/Makefile.in 2007-01-21 22:06:54.000000000 -0500
-@@ -454,7 +454,7 @@
- $(top_builddir)/widgets/misc/libemiscwidgets.la \
+--- evolution-2.11.3/calendar/conduits/memo/Makefile.in.fix-conduit-dir 2007-06-04 07:36:50.000000000 -0400
++++ evolution-2.11.3/calendar/conduits/memo/Makefile.in 2007-06-04 12:56:40.000000000 -0400
+@@ -456,7 +456,7 @@ libememo_conduit_la_LIBADD = \
+ $(top_builddir)/widgets/misc/libemiscwidgets.la \
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-memo-$(BASE_VERSION).conduit
+ conduit_DATA = e-memo.conduit
BUILT_SOURCES = $(conduit_DATA)
CLEANFILES = $(BUILT_SOURCES)
---- evolution-2.9.5/calendar/conduits/calendar/Makefile.am.fix-conduit-dir 2007-01-03 10:34:54.000000000 -0500
-+++ evolution-2.9.5/calendar/conduits/calendar/Makefile.am 2007-01-21 22:05:23.000000000 -0500
-@@ -24,7 +24,7 @@
+--- evolution-2.11.3/calendar/conduits/calendar/Makefile.am.fix-conduit-dir 2007-06-03 11:08:16.000000000 -0400
++++ evolution-2.11.3/calendar/conduits/calendar/Makefile.am 2007-06-04 12:57:02.000000000 -0400
+@@ -25,7 +25,7 @@ e-calendar.conduit: e-calendar.conduit.i
-e 's^\@BASE_VERSION\@^$(BASE_VERSION)^g' \
$< > $@
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-calendar-$(BASE_VERSION).conduit
+ conduit_DATA = e-calendar.conduit
BUILT_SOURCES = $(conduit_DATA)
---- evolution-2.9.5/calendar/conduits/calendar/Makefile.in.fix-conduit-dir 2007-01-21 22:06:15.000000000 -0500
-+++ evolution-2.9.5/calendar/conduits/calendar/Makefile.in 2007-01-21 22:06:23.000000000 -0500
-@@ -456,7 +456,7 @@
- $(top_builddir)/widgets/misc/libemiscwidgets.la \
+--- evolution-2.11.3/calendar/conduits/calendar/Makefile.in.fix-conduit-dir 2007-06-04 07:36:50.000000000 -0400
++++ evolution-2.11.3/calendar/conduits/calendar/Makefile.in 2007-06-04 12:57:11.000000000 -0400
+@@ -458,7 +458,7 @@ libecalendar_conduit_la_LIBADD = \
+ $(top_builddir)/widgets/misc/libemiscwidgets.la \
$(EVOLUTION_CALENDAR_CONDUIT_LIBS)
-conduitdir = $(datadir)/gnome-pilot/conduits/
+conduitdir = $(libdir)/gnome-pilot/conduits/
- conduit_DATA = e-calendar-$(BASE_VERSION).conduit
+ conduit_DATA = e-calendar.conduit
BUILT_SOURCES = $(conduit_DATA)
CLEANFILES = $(BUILT_SOURCES)
diff --git a/evolution-2.7.92-fix-prgname.patch b/evolution-2.7.92-fix-prgname.patch
deleted file mode 100644
index 98689f4..0000000
--- a/evolution-2.7.92-fix-prgname.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- evolution-2.7.92/shell/main.c.fix-prgname 2006-08-28 11:04:44.000000000 -0400
-+++ evolution-2.7.92/shell/main.c 2006-08-28 11:04:56.000000000 -0400
-@@ -516,7 +516,7 @@
-
- g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE);
-
-- program = gnome_program_init (PACKAGE "-" BASE_VERSION, VERSION, LIBGNOMEUI_MODULE, argc, argv,
-+ program = gnome_program_init (PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv,
- GNOME_PROGRAM_STANDARD_PROPERTIES,
- GNOME_PARAM_GOPTION_CONTEXT, context,
- GNOME_PARAM_HUMAN_READABLE_NAME, _("Evolution"),
diff --git a/evolution-2.8.1-kill-ethread.patch b/evolution-2.8.1-kill-ethread.patch
index be61226..1892023 100644
--- a/evolution-2.8.1-kill-ethread.patch
+++ b/evolution-2.8.1-kill-ethread.patch
@@ -1,6 +1,6 @@
---- evolution-2.11.2/mail/mail-send-recv.c.kill-ethread 2007-04-20 00:28:22.000000000 -0400
-+++ evolution-2.11.2/mail/mail-send-recv.c 2007-05-18 15:34:09.000000000 -0400
-@@ -778,23 +778,22 @@
+--- evolution-2.11.3/mail/mail-send-recv.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/mail-send-recv.c 2007-06-04 14:25:34.000000000 -0400
+@@ -764,23 +764,22 @@ receive_get_folder(CamelFilterDriver *d,
/* ********************************************************************** */
struct _refresh_folders_msg {
@@ -28,7 +28,7 @@
int i;
CamelFolder *folder;
CamelException ex = CAMEL_EXCEPTION_INITIALISER;
-@@ -812,17 +811,14 @@
+@@ -802,17 +801,14 @@ refresh_folders_get (struct _mail_msg *m
}
static void
@@ -48,7 +48,7 @@
int i;
for (i=0;ifolders->len;i++)
-@@ -831,11 +827,12 @@
+@@ -821,11 +817,12 @@ refresh_folders_free (struct _mail_msg *
camel_object_unref(m->store);
}
@@ -66,7 +66,7 @@
};
static void
-@@ -868,13 +865,13 @@
+@@ -858,13 +855,13 @@ receive_update_got_folderinfo(CamelStore
get_folders(store, folders, info);
@@ -82,9 +82,9 @@
} else {
receive_done ("", data);
}
---- evolution-2.11.2/mail/mail-component.c.kill-ethread 2007-05-13 13:41:10.000000000 -0400
-+++ evolution-2.11.2/mail/mail-component.c 2007-05-18 15:34:09.000000000 -0400
-@@ -1014,7 +1014,7 @@
+--- evolution-2.11.3/mail/mail-component.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/mail-component.c 2007-06-04 14:25:34.000000000 -0400
+@@ -1014,7 +1014,7 @@ impl_handleURI (PortableServer_Servant s
if (camel_url_get_param(url, "uid") != NULL) {
char *curi = em_uri_to_camel(uri);
@@ -93,8 +93,8 @@
g_free(curi);
} else {
g_warning("email uri's must include a uid parameter");
---- evolution-2.11.2/mail/mail-ops.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/mail-ops.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/mail-ops.c.kill-ethread 2007-06-01 03:08:56.000000000 -0400
++++ evolution-2.11.3/mail/mail-ops.c 2007-06-04 14:25:34.000000000 -0400
@@ -75,7 +75,7 @@
/* used for both just filtering a folder + uid's, and for filtering a whole folder */
/* used both for fetching mail, and for filtering mail */
@@ -104,7 +104,7 @@
CamelFolder *source_folder; /* where they come from */
GPtrArray *source_uids; /* uids to copy, or NULL == copy all */
-@@ -99,8 +99,8 @@
+@@ -99,8 +99,8 @@ struct _fetch_mail_msg {
void *data;
};
@@ -115,7 +115,7 @@
{
return g_strdup (_("Filtering Selected Messages"));
}
-@@ -108,9 +108,8 @@
+@@ -108,9 +108,8 @@ em_filter_folder_element_describe (struc
/* filter a folder, or a subset thereof, uses source_folder/source_uids */
/* this is shared with fetch_mail */
static void
@@ -126,7 +126,7 @@
CamelFolder *folder;
GPtrArray *uids, *folder_uids = NULL;
-@@ -137,15 +136,15 @@
+@@ -137,15 +136,15 @@ em_filter_folder_element_filter (struct
else
folder_uids = uids = camel_folder_get_uids (folder);
@@ -145,7 +145,7 @@
camel_folder_thaw (folder);
if (m->destination)
-@@ -161,15 +160,13 @@
+@@ -161,15 +160,13 @@ em_filter_folder_element_filter (struct
}
static void
@@ -163,7 +163,7 @@
if (m->source_folder)
camel_object_unref (m->source_folder);
-@@ -188,11 +185,12 @@
+@@ -188,11 +185,12 @@ em_filter_folder_element_free (struct _m
mail_session_flush_filter_log ();
}
@@ -181,7 +181,7 @@
};
void
-@@ -202,7 +200,7 @@
+@@ -202,7 +200,7 @@ mail_filter_folder (CamelFolder *source_
{
struct _filter_mail_msg *m;
@@ -190,7 +190,7 @@
m->source_folder = source_folder;
camel_object_ref (source_folder);
m->source_uids = uids;
-@@ -221,7 +219,7 @@
+@@ -221,7 +219,7 @@ mail_filter_folder (CamelFolder *source_
camel_filter_driver_remove_rule_by_name (m->driver, "new-mail-notification");
}
@@ -199,7 +199,7 @@
}
/* convenience functions for it */
-@@ -260,17 +258,16 @@
+@@ -260,17 +258,16 @@ uid_cachename_hack (CamelStore *store)
return filename;
}
@@ -221,7 +221,7 @@
int i;
if (m->cancel)
-@@ -283,20 +280,20 @@
+@@ -283,20 +280,20 @@ fetch_mail_fetch (struct _mail_msg *mm)
/* FIXME: this should support keep_on_server too, which would then perform a spool
access thingy, right? problem is matching raw messages to uid's etc. */
if (!strncmp (m->source_uri, "mbox:", 5)) {
@@ -247,7 +247,7 @@
if (folder) {
/* this handles 'keep on server' stuff, if we have any new uid's to copy
-@@ -322,17 +319,17 @@
+@@ -322,17 +319,17 @@ fetch_mail_fetch (struct _mail_msg *mm)
camel_uid_cache_free_uids (cache_uids);
fm->cache = cache;
@@ -268,7 +268,7 @@
/* not keep on server - just delete all the actual messages on the server */
for (i=0;ilen;i++) {
d(printf("force delete uid '%s'\n", (char *)folder_uids->pdata[i]));
-@@ -348,7 +345,7 @@
+@@ -348,7 +345,7 @@ fetch_mail_fetch (struct _mail_msg *mm)
camel_uid_cache_destroy (cache);
camel_folder_free_uids (folder, folder_uids);
} else {
@@ -277,7 +277,7 @@
}
/* we unref the source folder here since we
-@@ -372,31 +369,28 @@
+@@ -372,31 +369,28 @@ fail:
}
static void
@@ -318,7 +318,7 @@
};
/* ouch, a 'do everything' interface ... */
-@@ -409,7 +403,7 @@
+@@ -409,7 +403,7 @@ mail_fetch_mail (const char *source, int
struct _fetch_mail_msg *m;
struct _filter_mail_msg *fm;
@@ -327,7 +327,7 @@
fm = (struct _filter_mail_msg *)m;
m->source_uri = g_strdup (source);
fm->delete = !keep;
-@@ -426,7 +420,7 @@
+@@ -426,7 +420,7 @@ mail_fetch_mail (const char *source, int
if (status)
camel_filter_driver_set_status_func (fm->driver, status, status_data);
@@ -336,7 +336,7 @@
}
/* ********************************************************************** */
-@@ -657,7 +651,7 @@
+@@ -657,7 +651,7 @@ exit:
/* ** SEND MAIL QUEUE ***************************************************** */
struct _send_queue_msg {
@@ -345,7 +345,7 @@
CamelFolder *queue;
char *destination;
-@@ -689,9 +683,8 @@
+@@ -689,9 +683,8 @@ report_status (struct _send_queue_msg *m
}
static void
@@ -356,7 +356,7 @@
CamelFolder *sent_folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT);
GPtrArray *uids, *send_uids = NULL;
CamelException ex;
-@@ -739,17 +732,17 @@
+@@ -739,17 +732,17 @@ send_queue_send(struct _mail_msg *mm)
if (camel_exception_is_set (&ex)) {
if (ex.id != CAMEL_EXCEPTION_USER_CANCEL) {
/* merge exceptions into one */
@@ -378,7 +378,7 @@
break;
}
}
-@@ -759,7 +752,7 @@
+@@ -759,7 +752,7 @@ send_queue_send(struct _mail_msg *mm)
if (j > 0)
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Failed to send %d of %d messages"), j, send_uids->len);
@@ -387,7 +387,7 @@
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Canceled."));
else
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Complete."));
-@@ -785,19 +778,15 @@
+@@ -785,19 +778,15 @@ send_queue_send(struct _mail_msg *mm)
}
static void
@@ -409,7 +409,7 @@
if (m->driver)
camel_object_unref(m->driver);
camel_object_unref(m->queue);
-@@ -806,11 +795,12 @@
+@@ -806,11 +795,12 @@ send_queue_free(struct _mail_msg *mm)
camel_operation_unref(m->cancel);
}
@@ -427,7 +427,7 @@
};
/* same interface as fetch_mail, just 'cause i'm lazy today (and we need to run it from the same spot?) */
-@@ -823,7 +813,7 @@
+@@ -823,7 +813,7 @@ mail_send_queue(CamelFolder *queue, cons
{
struct _send_queue_msg *m;
@@ -436,7 +436,7 @@
m->queue = queue;
camel_object_ref(queue);
m->destination = g_strdup(destination);
-@@ -839,13 +829,13 @@
+@@ -839,13 +829,13 @@ mail_send_queue(CamelFolder *queue, cons
m->driver = camel_session_get_filter_driver (session, type, NULL);
camel_filter_driver_set_folder_func (m->driver, get_folder, get_data);
@@ -452,7 +452,7 @@
CamelFolder *folder;
CamelMimeMessage *message;
-@@ -856,45 +846,40 @@
+@@ -856,45 +846,40 @@ struct _append_msg {
void *data;
};
@@ -511,7 +511,7 @@
};
void
-@@ -911,7 +896,7 @@
+@@ -911,7 +896,7 @@ mail_append_mail (CamelFolder *folder, C
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Mailer",
"Evolution " VERSION SUB_VERSION " " VERSION_COMMENT);
@@ -520,7 +520,7 @@
m->folder = folder;
camel_object_ref(folder);
m->message = message;
-@@ -921,13 +906,13 @@
+@@ -921,13 +906,13 @@ mail_append_mail (CamelFolder *folder, C
m->done = done;
m->data = data;
@@ -536,7 +536,7 @@
CamelFolder *source;
GPtrArray *uids;
-@@ -939,24 +924,21 @@
+@@ -939,24 +924,21 @@ struct _transfer_msg {
void *data;
};
@@ -566,7 +566,7 @@
return;
if (dest == m->source) {
-@@ -968,7 +950,7 @@
+@@ -968,7 +950,7 @@ transfer_messages_transfer (struct _mail
camel_folder_freeze (m->source);
camel_folder_freeze (dest);
@@ -575,7 +575,7 @@
/* make sure all deleted messages are marked as seen */
-@@ -987,29 +969,26 @@
+@@ -987,29 +969,26 @@ transfer_messages_transfer (struct _mail
}
static void
@@ -614,7 +614,7 @@
};
void
-@@ -1026,7 +1005,7 @@
+@@ -1026,7 +1005,7 @@ mail_transfer_messages (CamelFolder *sou
g_assert(uids != NULL);
g_assert(dest_uri != NULL);
@@ -623,7 +623,7 @@
m->source = source;
camel_object_ref (source);
m->uids = uids;
-@@ -1036,13 +1015,13 @@
+@@ -1036,13 +1015,13 @@ mail_transfer_messages (CamelFolder *sou
m->done = done;
m->data = data;
@@ -639,7 +639,7 @@
CamelStore *store;
CamelFolderInfo *info;
-@@ -1050,10 +1029,9 @@
+@@ -1050,10 +1029,9 @@ struct _get_folderinfo_msg {
void *data;
};
@@ -652,7 +652,7 @@
char *ret, *name;
name = camel_service_get_name((CamelService *)m->store, TRUE);
-@@ -1063,25 +1041,22 @@
+@@ -1063,25 +1041,22 @@ get_folderinfo_desc (struct _mail_msg *m
}
static void
@@ -683,7 +683,7 @@
g_free (url);
}
-@@ -1090,20 +1065,19 @@
+@@ -1090,20 +1065,19 @@ get_folderinfo_got (struct _mail_msg *mm
}
static void
@@ -711,7 +711,7 @@
};
int
-@@ -1112,19 +1086,19 @@
+@@ -1112,19 +1086,19 @@ mail_get_folderinfo (CamelStore *store,
struct _get_folderinfo_msg *m;
int id;
@@ -736,7 +736,7 @@
return id;
}
-@@ -1196,7 +1170,7 @@
+@@ -1196,7 +1170,7 @@ mail_build_attachment(CamelFolder *folde
presumably create a folder ... */
struct _get_folder_msg {
@@ -745,7 +745,7 @@
char *uri;
guint32 flags;
-@@ -1205,71 +1179,64 @@
+@@ -1205,71 +1179,64 @@ struct _get_folder_msg {
void *data;
};
@@ -834,7 +834,7 @@
char *uri;
CamelStore *store;
-@@ -1277,50 +1244,43 @@
+@@ -1277,50 +1244,43 @@ struct _get_store_msg {
void *data;
};
@@ -897,7 +897,7 @@
};
int
-@@ -1329,25 +1289,25 @@
+@@ -1329,25 +1289,25 @@ mail_get_store (const char *uri, CamelOp
struct _get_store_msg *m;
int id;
@@ -929,7 +929,7 @@
char *uri;
gboolean removed;
-@@ -1355,18 +1315,15 @@
+@@ -1355,18 +1315,15 @@ struct _remove_folder_msg {
void *data;
};
@@ -951,7 +951,7 @@
CamelStore *store;
CamelFolder *folder;
GPtrArray *uids;
-@@ -1374,7 +1331,7 @@
+@@ -1374,7 +1331,7 @@ remove_folder_get (struct _mail_msg *mm)
m->removed = FALSE;
@@ -960,7 +960,7 @@
if (!folder)
return;
-@@ -1394,16 +1351,14 @@
+@@ -1394,16 +1351,14 @@ remove_folder_get (struct _mail_msg *mm)
camel_store_unsubscribe_folder (store, folder->full_name, NULL);
/* Then delete the folder from the store */
@@ -980,7 +980,7 @@
if (m->removed) {
/* FIXME: Remove this folder from the folder cache ??? */
}
-@@ -1413,18 +1368,17 @@
+@@ -1413,18 +1368,17 @@ remove_folder_got (struct _mail_msg *mm)
}
static void
@@ -1006,7 +1006,7 @@
};
void
-@@ -1432,59 +1386,56 @@
+@@ -1432,59 +1386,56 @@ mail_remove_folder (const char *uri, voi
{
struct _remove_folder_msg *m;
@@ -1084,7 +1084,7 @@
};
void
-@@ -1492,19 +1443,19 @@
+@@ -1492,19 +1443,19 @@ mail_sync_folder(CamelFolder *folder, vo
{
struct _sync_folder_msg *m;
@@ -1107,7 +1107,7 @@
CamelStore *store;
int expunge;
-@@ -1512,9 +1463,9 @@
+@@ -1512,9 +1463,9 @@ struct _sync_store_msg {
void *data;
};
@@ -1119,7 +1119,7 @@
char *uri, *res;
uri = camel_url_to_string(((CamelService *)m->store)->url, CAMEL_URL_HIDE_ALL);
-@@ -1527,33 +1478,31 @@
+@@ -1527,33 +1478,31 @@ static char *sync_store_desc(struct _mai
return res;
}
@@ -1166,7 +1166,7 @@
};
void
-@@ -1561,36 +1510,37 @@
+@@ -1561,36 +1510,37 @@ mail_sync_store(CamelStore *store, int e
{
struct _sync_store_msg *m;
@@ -1216,7 +1216,7 @@
};
void
-@@ -1598,35 +1548,36 @@
+@@ -1598,35 +1548,36 @@ mail_refresh_folder(CamelFolder *folder,
{
struct _sync_folder_msg *m;
@@ -1265,7 +1265,7 @@
};
void
-@@ -1634,31 +1585,30 @@
+@@ -1634,31 +1585,30 @@ mail_expunge_folder(CamelFolder *folder,
{
struct _sync_folder_msg *m;
@@ -1302,7 +1302,7 @@
return g_strdup_printf (_("Emptying trash in \'%s\'"),
m->account ? m->account->name : _("Local Folders"));
#else
-@@ -1666,49 +1616,48 @@
+@@ -1666,49 +1616,48 @@ static char *empty_trash_desc(struct _ma
#endif
}
@@ -1367,7 +1367,7 @@
};
void
-@@ -1716,20 +1665,20 @@
+@@ -1716,20 +1665,20 @@ mail_empty_trash(EAccount *account, void
{
struct _empty_trash_msg *m;
@@ -1391,7 +1391,7 @@
CamelFolder *folder;
char *uid;
-@@ -1739,32 +1688,28 @@
+@@ -1739,32 +1688,28 @@ struct _get_message_msg {
CamelOperation *cancel;
};
@@ -1433,7 +1433,7 @@
g_free (m->uid);
camel_object_unref (m->folder);
camel_operation_unref (m->cancel);
-@@ -1773,21 +1718,22 @@
+@@ -1773,21 +1718,22 @@ static void get_message_free(struct _mai
camel_object_unref (m->message);
}
@@ -1463,7 +1463,7 @@
m->folder = folder;
camel_object_ref(folder);
m->uid = g_strdup(uid);
-@@ -1795,37 +1741,37 @@
+@@ -1795,37 +1741,37 @@ mail_get_message(CamelFolder *folder, co
m->done = (void (*) (CamelFolder *, const char *, CamelMimeMessage *, void *)) done;
m->cancel = camel_operation_new(NULL, NULL);
@@ -1513,7 +1513,7 @@
m->folder = folder;
camel_object_ref(folder);
m->uid = g_strdup(uid);
-@@ -1833,13 +1779,13 @@
+@@ -1833,13 +1779,13 @@ mail_get_messagex(CamelFolder *folder, c
m->done = (void (*) (CamelFolder *, const char *, CamelMimeMessage *, void *)) done;
m->cancel = camel_operation_new(NULL, NULL);
@@ -1529,7 +1529,7 @@
CamelFolder *folder;
GPtrArray *uids;
-@@ -1849,26 +1795,25 @@
+@@ -1849,26 +1795,25 @@ struct _get_messages_msg {
void *data;
};
@@ -1562,7 +1562,7 @@
if (message == NULL)
break;
-@@ -1876,17 +1821,16 @@
+@@ -1876,17 +1821,16 @@ static void get_messages_get(struct _mai
}
}
@@ -1584,7 +1584,7 @@
int i;
em_utils_uids_free (m->uids);
-@@ -1898,11 +1842,12 @@
+@@ -1898,11 +1842,12 @@ static void get_messages_free(struct _ma
camel_object_unref(m->folder);
}
@@ -1602,7 +1602,7 @@
};
void
-@@ -1912,7 +1857,7 @@
+@@ -1912,7 +1857,7 @@ mail_get_messages(CamelFolder *folder, G
{
struct _get_messages_msg *m;
@@ -1611,7 +1611,7 @@
m->folder = folder;
camel_object_ref(folder);
m->uids = uids;
-@@ -1920,13 +1865,13 @@
+@@ -1920,13 +1865,13 @@ mail_get_messages(CamelFolder *folder, G
m->data = data;
m->done = done;
@@ -1627,7 +1627,7 @@
CamelFolder *folder;
GPtrArray *uids;
-@@ -1935,10 +1880,9 @@
+@@ -1935,10 +1880,9 @@ struct _save_messages_msg {
void *data;
};
@@ -1640,7 +1640,7 @@
return g_strdup_printf(ngettext("Saving %d message",
"Saving %d messsages", m->uids->len),
m->uids->len);
-@@ -1977,9 +1921,8 @@
+@@ -1977,9 +1921,8 @@ save_prepare_part (CamelMimePart *mime_p
}
static void
@@ -1651,7 +1651,7 @@
CamelStreamFilter *filtered_stream;
CamelMimeFilterFrom *from_filter;
CamelStream *stream;
-@@ -1996,8 +1939,8 @@
+@@ -1996,8 +1939,8 @@ save_messages_save (struct _mail_msg *mm
CamelMimeMessage *message;
int pc = ((i+1) * 100) / m->uids->len;
@@ -1662,7 +1662,7 @@
if (message == NULL)
break;
-@@ -2009,7 +1952,7 @@
+@@ -2009,7 +1952,7 @@ save_messages_save (struct _mail_msg *mm
|| camel_stream_flush(stream) == -1
|| camel_data_wrapper_write_to_stream((CamelDataWrapper *)message, (CamelStream *)filtered_stream) == -1
|| camel_stream_flush((CamelStream *)filtered_stream) == -1) {
@@ -1671,7 +1671,7 @@
_("Error saving messages to: %s:\n %s"), m->path, strerror(errno));
g_free(from);
camel_object_unref((CamelObject *)message);
-@@ -2023,28 +1966,27 @@
+@@ -2023,28 +1966,27 @@ save_messages_save (struct _mail_msg *mm
camel_object_unref(stream);
}
@@ -1710,7 +1710,7 @@
};
int
-@@ -2054,7 +1996,7 @@
+@@ -2054,7 +1996,7 @@ mail_save_messages(CamelFolder *folder,
struct _save_messages_msg *m;
int id;
@@ -1719,7 +1719,7 @@
m->folder = folder;
camel_object_ref(folder);
m->uids = uids;
-@@ -2062,8 +2004,8 @@
+@@ -2062,8 +2004,8 @@ mail_save_messages(CamelFolder *folder,
m->data = data;
m->done = done;
@@ -1730,7 +1730,7 @@
return id;
}
-@@ -2071,7 +2013,7 @@
+@@ -2071,7 +2013,7 @@ mail_save_messages(CamelFolder *folder,
/* ** SAVE PART ******************************************************* */
struct _save_part_msg {
@@ -1739,7 +1739,7 @@
CamelMimePart *part;
char *path;
-@@ -2080,27 +2022,27 @@
+@@ -2080,27 +2022,27 @@ struct _save_part_msg {
gboolean readonly;
};
@@ -1772,7 +1772,7 @@
_("Cannot create output file: %s:\n %s"),
m->path, g_strerror (errno));
return;
-@@ -2110,7 +2052,7 @@
+@@ -2110,7 +2052,7 @@ save_part_save (struct _mail_msg *mm)
if (camel_data_wrapper_decode_to_stream (content, stream) == -1
|| camel_stream_flush (stream) == -1)
@@ -1781,7 +1781,7 @@
_("Could not write data: %s"),
g_strerror (errno));
-@@ -2118,27 +2060,25 @@
+@@ -2118,27 +2060,25 @@ save_part_save (struct _mail_msg *mm)
}
static void
@@ -1818,7 +1818,7 @@
};
int
-@@ -2147,7 +2087,7 @@
+@@ -2147,7 +2087,7 @@ mail_save_part (CamelMimePart *part, con
{
struct _save_part_msg *m;
int id;
@@ -1827,7 +1827,7 @@
m->part = part;
camel_object_ref (part);
m->path = g_strdup (path);
-@@ -2155,8 +2095,8 @@
+@@ -2155,8 +2095,8 @@ mail_save_part (CamelMimePart *part, con
m->done = done;
m->readonly = readonly;
@@ -1838,7 +1838,7 @@
return id;
}
-@@ -2165,7 +2105,7 @@
+@@ -2165,7 +2105,7 @@ mail_save_part (CamelMimePart *part, con
/* ** PREPARE OFFLINE ***************************************************** */
struct _prep_offline_msg {
@@ -1847,7 +1847,7 @@
CamelOperation *cancel;
char *uri;
-@@ -2173,22 +2113,22 @@
+@@ -2173,22 +2113,22 @@ struct _prep_offline_msg {
void *data;
};
@@ -1875,7 +1875,7 @@
}
/* prepare_for_offline should do this? */
/* of course it should all be atomic, but ... */
-@@ -2200,28 +2140,27 @@
+@@ -2200,28 +2140,27 @@ static void prep_offline_do(struct _mail
camel_operation_unregister(m->cancel);
}
@@ -1914,7 +1914,7 @@
};
void
-@@ -2232,7 +2171,7 @@
+@@ -2232,7 +2171,7 @@ mail_prep_offline(const char *uri,
{
struct _prep_offline_msg *m;
@@ -1923,7 +1923,7 @@
m->cancel = cancel;
if (cancel)
camel_operation_ref(cancel);
-@@ -2240,13 +2179,13 @@
+@@ -2240,13 +2179,13 @@ mail_prep_offline(const char *uri,
m->data = data;
m->done = done;
@@ -1939,7 +1939,7 @@
CamelStore *store;
gboolean offline;
-@@ -2254,9 +2193,9 @@
+@@ -2254,9 +2193,9 @@ struct _set_offline_msg {
void *data;
};
@@ -1951,7 +1951,7 @@
char *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE);
char *msg;
-@@ -2266,61 +2205,59 @@
+@@ -2266,61 +2205,59 @@ static char *set_offline_desc(struct _ma
return msg;
}
@@ -2030,7 +2030,7 @@
};
int
-@@ -2337,15 +2274,15 @@
+@@ -2337,61 +2274,59 @@ mail_store_set_offline (CamelStore *stor
if (offline)
camel_service_cancel_connect (CAMEL_SERVICE (store));
@@ -2049,7 +2049,89 @@
return id;
}
-@@ -2363,7 +2300,7 @@
+
+ /* ** Prepare OFFLINE ***************************************************** */
+
+-static char *prepare_offline_desc(struct _mail_msg *mm, int done)
++static char *
++prepare_offline_desc (struct _set_offline_msg *m, int done)
+ {
+- struct _set_offline_msg *m = (struct _set_offline_msg *)mm;
+ char *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE);
+ char *msg;
+
+- msg = g_strdup_printf(_("Preparing account '%s' for offline"), service_name);
++ msg = g_strdup_printf (_("Preparing account '%s' for offline"), service_name);
+ g_free(service_name);
+
+ return msg;
+ }
+
+-static void prepare_offline_do(struct _mail_msg *mm)
++static void
++prepare_offline_exec (struct _set_offline_msg *m)
+ {
+- struct _set_offline_msg *m = (struct _set_offline_msg *)mm;
+-
+ camel_disco_store_prepare_for_offline (CAMEL_DISCO_STORE (m->store),
+- &mm->ex);
++ &m->base.ex);
+ }
+
+-static void prepare_offline_done(struct _mail_msg *mm)
++static void
++prepare_offline_done (struct _set_offline_msg *m)
+ {
+- struct _set_offline_msg *m = (struct _set_offline_msg *)mm;
+-
+ if (m->done)
+- m->done(m->store, m->data);
++ m->done (m->store, m->data);
+ }
+
+-static void prepare_offline_free(struct _mail_msg *mm)
++static void
++prepare_offline_free (struct _set_offline_msg *m)
+ {
+- struct _set_offline_msg *m = (struct _set_offline_msg *)mm;
+-
+- camel_object_unref(m->store);
++ camel_object_unref (m->store);
+ }
+
+-static struct _mail_msg_op prepare_offline_op = {
+- prepare_offline_desc,
+- prepare_offline_do,
+- prepare_offline_done,
+- prepare_offline_free,
++static MailMsgInfo prepare_offline_info = {
++ sizeof (struct _set_offline_msg),
++ (MailMsgDescFunc) prepare_offline_desc,
++ (MailMsgExecFunc) prepare_offline_exec,
++ (MailMsgDoneFunc) prepare_offline_done,
++ (MailMsgFreeFunc) prepare_offline_free
+ };
+
+ int
+@@ -2404,14 +2339,14 @@ mail_store_prepare_offline (CamelStore *
+ * thread won't get queued behind a hung connect op.
+ */
+
+- m = mail_msg_new(&prepare_offline_op, NULL, sizeof(*m));
++ m = mail_msg_new(&prepare_offline_info);
+ m->store = store;
+ camel_object_ref(store);
+ m->data = NULL;
+ m->done = NULL;
+
+- id = m->msg.seq;
+- e_thread_put(mail_thread_new, (EMsg *)m);
++ id = m->base.seq;
++ mail_msg_unordered_push (m);
+
+ return id;
+ }
+@@ -2428,7 +2363,7 @@ mail_execute_shell_command (CamelFilterD
/* Async service-checking/authtype-lookup code. */
struct _check_msg {
@@ -2058,7 +2140,7 @@
char *url;
CamelProviderType type;
-@@ -2373,51 +2310,47 @@
+@@ -2438,51 +2373,47 @@ struct _check_msg {
void *data;
};
@@ -2124,7 +2206,7 @@
};
int
-@@ -2426,14 +2359,14 @@
+@@ -2491,14 +2422,14 @@ mail_check_service(const char *url, Came
struct _check_msg *m;
int id;
@@ -2142,9 +2224,9 @@
return id;
}
---- evolution-2.11.2/mail/em-folder-utils.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-folder-utils.c 2007-05-18 15:34:09.000000000 -0400
-@@ -84,7 +84,7 @@
+--- evolution-2.11.3/mail/em-folder-utils.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/em-folder-utils.c 2007-06-04 14:25:34.000000000 -0400
+@@ -84,7 +84,7 @@ emfu_is_special_local_folder (const char
}
struct _EMCopyFolders {
@@ -2153,7 +2235,7 @@
/* input data */
CamelStore *fromstore;
-@@ -96,18 +96,15 @@
+@@ -96,18 +96,15 @@ struct _EMCopyFolders {
int delete;
};
@@ -2175,7 +2257,7 @@
guint32 flags = CAMEL_STORE_FOLDER_INFO_FAST | CAMEL_STORE_FOLDER_INFO_RECURSIVE | CAMEL_STORE_FOLDER_INFO_SUBSCRIBED;
GList *pending = NULL, *deleting = NULL, *l;
GString *fromname, *toname;
-@@ -115,7 +112,7 @@
+@@ -115,7 +112,7 @@ emft_copy_folders__copy (struct _mail_ms
const char *tmp;
int fromlen;
@@ -2184,7 +2266,7 @@
return;
pending = g_list_append (pending, fi);
-@@ -155,8 +152,8 @@
+@@ -155,8 +152,8 @@ emft_copy_folders__copy (struct _mail_ms
if ((info->flags & CAMEL_FOLDER_NOSELECT) == 0) {
d(printf ("this folder is selectable\n"));
if (m->tostore == m->fromstore && m->delete) {
@@ -2195,7 +2277,7 @@
goto exception;
/* this folder no longer exists, unsubscribe it */
-@@ -165,16 +162,16 @@
+@@ -165,16 +162,16 @@ emft_copy_folders__copy (struct _mail_ms
deleted = 1;
} else {
@@ -2215,7 +2297,7 @@
camel_folder_free_uids (fromfolder, uids);
if (m->delete)
-@@ -185,7 +182,7 @@
+@@ -185,7 +182,7 @@ emft_copy_folders__copy (struct _mail_ms
}
}
@@ -2224,7 +2306,7 @@
goto exception;
else if (m->delete && !deleted)
deleting = g_list_prepend (deleting, info);
-@@ -226,10 +223,8 @@
+@@ -226,10 +223,8 @@ emft_copy_folders__copy (struct _mail_ms
}
static void
@@ -2236,7 +2318,7 @@
camel_object_unref (m->fromstore);
camel_object_unref (m->tostore);
-@@ -237,11 +232,12 @@
+@@ -237,11 +232,12 @@ emft_copy_folders__free (struct _mail_ms
g_free (m->tobase);
}
@@ -2254,7 +2336,7 @@
};
int
-@@ -250,7 +246,7 @@
+@@ -250,7 +246,7 @@ em_folder_utils_copy_folders(CamelStore
struct _EMCopyFolders *m;
int seq;
@@ -2263,7 +2345,7 @@
camel_object_ref (fromstore);
m->fromstore = fromstore;
camel_object_ref (tostore);
-@@ -258,9 +254,9 @@
+@@ -258,9 +254,9 @@ em_folder_utils_copy_folders(CamelStore
m->frombase = g_strdup (frombase);
m->tobase = g_strdup (tobase);
m->delete = delete;
@@ -2275,7 +2357,7 @@
return seq;
}
-@@ -557,7 +553,7 @@
+@@ -557,7 +553,7 @@ em_folder_utils_rename_folder (CamelFold
}
struct _EMCreateFolder {
@@ -2284,7 +2366,7 @@
/* input data */
CamelStore *store;
-@@ -573,41 +569,33 @@
+@@ -573,41 +569,33 @@ struct _EMCreateFolder {
void *user_data;
};
@@ -2333,7 +2415,7 @@
camel_store_free_folder_info (m->store, m->fi);
camel_object_unref (m->store);
g_free (m->full_name);
-@@ -615,11 +603,12 @@
+@@ -615,11 +603,12 @@ emfu_create_folder__free (struct _mail_m
g_free (m->name);
}
@@ -2351,7 +2433,7 @@
};
-@@ -640,7 +629,7 @@
+@@ -640,7 +629,7 @@ emfu_create_folder_real (CamelStore *sto
parent = namebuf;
}
@@ -2360,7 +2442,7 @@
camel_object_ref (store);
m->store = store;
m->full_name = g_strdup (full_name);
-@@ -651,8 +640,8 @@
+@@ -651,8 +640,8 @@ emfu_create_folder_real (CamelStore *sto
g_free (namebuf);
@@ -2371,8 +2453,8 @@
return id;
}
---- evolution-2.11.2/mail/importers/elm-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
-+++ evolution-2.11.2/mail/importers/elm-importer.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/importers/elm-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
++++ evolution-2.11.3/mail/importers/elm-importer.c 2007-06-04 14:25:34.000000000 -0400
@@ -51,7 +51,7 @@
#define d(x) x
@@ -2382,7 +2464,7 @@
EImport *import;
EImportTargetHome *target;
-@@ -186,8 +186,8 @@
+@@ -186,8 +186,8 @@ elm_supported(EImport *ei, EImportTarget
return mailexists;
}
@@ -2393,7 +2475,7 @@
{
return g_strdup (_("Importing Elm data"));
}
-@@ -198,9 +198,8 @@
+@@ -198,9 +198,8 @@ static MailImporterSpecial elm_special_f
};
static void
@@ -2404,7 +2486,7 @@
const char *maildir;
char *elmdir;
-@@ -218,13 +217,11 @@
+@@ -218,13 +217,11 @@ elm_import_import(struct _mail_msg *mm)
}
static void
@@ -2420,7 +2502,7 @@
GConfClient *gconf;
gconf = gconf_client_get_default();
-@@ -236,10 +233,8 @@
+@@ -236,10 +233,8 @@ elm_import_imported(struct _mail_msg *mm
}
static void
@@ -2432,7 +2514,7 @@
camel_operation_unref(m->status);
g_free(m->status_what);
-@@ -288,11 +283,12 @@
+@@ -288,11 +283,12 @@ elm_status_timeout(void *data)
return TRUE;
}
@@ -2450,7 +2532,7 @@
};
static int
-@@ -301,7 +297,7 @@
+@@ -301,7 +297,7 @@ mail_importer_elm_import(EImport *ei, EI
struct _elm_import_msg *m;
int id;
@@ -2459,7 +2541,7 @@
g_datalist_set_data(&target->data, "elm-msg", m);
m->import = ei;
g_object_ref(m->import);
-@@ -310,9 +306,9 @@
+@@ -310,9 +306,9 @@ mail_importer_elm_import(EImport *ei, EI
m->status_lock = g_mutex_new();
m->status = camel_operation_new(elm_status, m);
@@ -2471,9 +2553,9 @@
return id;
}
---- evolution-2.11.2/mail/importers/mail-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
-+++ evolution-2.11.2/mail/importers/mail-importer.c 2007-05-18 15:34:09.000000000 -0400
-@@ -132,7 +132,7 @@
+--- evolution-2.11.3/mail/importers/mail-importer.c.kill-ethread 2007-06-03 11:08:07.000000000 -0400
++++ evolution-2.11.3/mail/importers/mail-importer.c 2007-06-04 14:25:34.000000000 -0400
+@@ -132,7 +132,7 @@ struct _BonoboObject *mail_importer_fact
}
struct _import_mbox_msg {
@@ -2482,7 +2564,7 @@
char *path;
char *uri;
-@@ -142,8 +142,8 @@
+@@ -142,8 +142,8 @@ struct _import_mbox_msg {
void *done_data;
};
@@ -2493,7 +2575,7 @@
{
return g_strdup (_("Importing mailbox"));
}
-@@ -190,9 +190,8 @@
+@@ -190,9 +190,8 @@ decode_mozilla_status(const char *tmp)
}
static void
@@ -2504,7 +2586,7 @@
CamelFolder *folder;
CamelMimeParser *mp = NULL;
struct stat st;
-@@ -207,7 +206,7 @@
+@@ -207,7 +206,7 @@ import_mbox_import(struct _mail_msg *mm)
if (m->uri == NULL || m->uri[0] == 0)
folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_INBOX);
else
@@ -2513,7 +2595,7 @@
if (folder == NULL)
return;
-@@ -262,11 +261,11 @@
+@@ -262,11 +261,11 @@ import_mbox_import(struct _mail_msg *mm)
flags |= decode_status(tmp);
camel_message_info_set_flags(info, flags, ~0);
@@ -2527,7 +2609,7 @@
break;
camel_mime_parser_step(mp, 0, 0);
-@@ -286,30 +285,27 @@
+@@ -286,30 +285,27 @@ fail1:
}
static void
@@ -2567,7 +2649,7 @@
};
int
-@@ -318,7 +314,7 @@
+@@ -318,7 +314,7 @@ mail_importer_import_mbox(const char *pa
struct _import_mbox_msg *m;
int id;
@@ -2576,7 +2658,7 @@
m->path = g_strdup(path);
m->uri = g_strdup(folderuri);
m->done = done;
-@@ -328,8 +324,8 @@
+@@ -328,8 +324,8 @@ mail_importer_import_mbox(const char *pa
camel_operation_ref(cancel);
}
@@ -2587,7 +2669,7 @@
return id;
}
-@@ -339,7 +335,7 @@
+@@ -339,7 +335,7 @@ mail_importer_import_mbox_sync(const cha
{
struct _import_mbox_msg *m;
@@ -2596,7 +2678,7 @@
m->path = g_strdup(path);
m->uri = g_strdup(folderuri);
if (cancel) {
-@@ -347,9 +343,9 @@
+@@ -347,9 +343,9 @@ mail_importer_import_mbox_sync(const cha
camel_operation_ref(cancel);
}
@@ -2609,8 +2691,8 @@
}
struct _import_folders_data {
---- evolution-2.11.2/mail/importers/pine-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
-+++ evolution-2.11.2/mail/importers/pine-importer.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/importers/pine-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
++++ evolution-2.11.3/mail/importers/pine-importer.c 2007-06-04 14:25:34.000000000 -0400
@@ -56,7 +56,7 @@
#define d(x) x
@@ -2620,7 +2702,7 @@
EImport *import;
EImportTarget *target;
-@@ -223,8 +223,8 @@
+@@ -223,8 +223,8 @@ import_contacts(void)
g_object_unref(book);
}
@@ -2631,7 +2713,7 @@
{
return g_strdup (_("Importing Pine data"));
}
-@@ -236,10 +236,8 @@
+@@ -236,10 +236,8 @@ static MailImporterSpecial pine_special_
};
static void
@@ -2643,7 +2725,7 @@
if (GPOINTER_TO_INT(g_datalist_get_data(&m->target->data, "pine-do-addr")))
import_contacts();
-@@ -253,13 +251,11 @@
+@@ -253,13 +251,11 @@ pine_import_import(struct _mail_msg *mm)
}
static void
@@ -2659,7 +2741,7 @@
GConfClient *gconf;
gconf = gconf_client_get_default();
-@@ -274,10 +270,8 @@
+@@ -274,10 +270,8 @@ pine_import_imported(struct _mail_msg *m
}
static void
@@ -2671,7 +2753,7 @@
camel_operation_unref(m->status);
g_free(m->status_what);
-@@ -326,11 +320,12 @@
+@@ -326,11 +320,12 @@ pine_status_timeout(void *data)
return TRUE;
}
@@ -2689,7 +2771,7 @@
};
static int
-@@ -339,7 +334,7 @@
+@@ -339,7 +334,7 @@ mail_importer_pine_import(EImport *ei, E
struct _pine_import_msg *m;
int id;
@@ -2698,7 +2780,7 @@
g_datalist_set_data(&target->data, "pine-msg", m);
m->import = ei;
g_object_ref(m->import);
-@@ -348,9 +343,9 @@
+@@ -348,9 +343,9 @@ mail_importer_pine_import(EImport *ei, E
m->status_lock = g_mutex_new();
m->status = camel_operation_new(pine_status, m);
@@ -2710,8 +2792,19 @@
return id;
}
---- evolution-2.11.2/mail/mail-vfolder.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/mail-vfolder.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/em-utils.c.kill-ethread 2007-06-04 14:25:09.000000000 -0400
++++ evolution-2.11.3/mail/em-utils.c 2007-06-04 14:25:34.000000000 -0400
+@@ -1906,7 +1906,7 @@ em_utils_in_addressbook(CamelInternetAdd
+ ESource *source = s->data;
+ GList *contacts;
+ EBook *book;
+- void *hook;
++ GHook *hook;
+
+ d(printf(" checking '%s'\n", e_source_get_uri(source)));
+
+--- evolution-2.11.3/mail/mail-vfolder.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/mail-vfolder.c 2007-06-04 14:25:34.000000000 -0400
@@ -21,7 +21,7 @@
*/
@@ -2721,7 +2814,7 @@
#include
#include
-@@ -75,7 +75,7 @@
+@@ -75,7 +75,7 @@ static void rule_changed(FilterRule *rul
/* ********************************************************************** */
struct _setup_msg {
@@ -2730,7 +2823,7 @@
CamelFolder *folder;
char *query;
-@@ -83,18 +83,15 @@
+@@ -83,18 +83,15 @@ struct _setup_msg {
GList *sources_folder;
};
@@ -2752,7 +2845,7 @@
GList *l, *list = NULL;
CamelFolder *folder;
-@@ -105,12 +102,12 @@
+@@ -105,12 +102,12 @@ vfolder_setup_do(struct _mail_msg *mm)
l = m->sources_uri;
while (l && !shutdown) {
d(printf(" Adding uri: %s\n", (char *)l->data));
@@ -2767,7 +2860,7 @@
}
l = l->next;
}
-@@ -135,17 +132,13 @@
+@@ -135,17 +132,13 @@ vfolder_setup_do(struct _mail_msg *mm)
}
static void
@@ -2787,7 +2880,7 @@
GList *l;
camel_object_unref(m->folder);
-@@ -166,11 +159,12 @@
+@@ -166,11 +159,12 @@ vfolder_setup_free (struct _mail_msg *mm
g_list_free(m->sources_folder);
}
@@ -2805,7 +2898,7 @@
};
/* sources_uri should be camel uri's */
-@@ -180,15 +174,15 @@
+@@ -180,15 +174,15 @@ vfolder_setup(CamelFolder *folder, const
struct _setup_msg *m;
int id;
@@ -2824,7 +2917,7 @@
return id;
}
-@@ -196,17 +190,16 @@
+@@ -196,17 +190,16 @@ vfolder_setup(CamelFolder *folder, const
/* ********************************************************************** */
struct _adduri_msg {
@@ -2845,7 +2938,7 @@
char *euri, *desc = NULL;
/* Yuck yuck. Lookup the account name and use that to describe the path */
-@@ -250,9 +243,8 @@
+@@ -250,9 +243,8 @@ vfolder_adduri_desc(struct _mail_msg *mm
}
static void
@@ -2856,7 +2949,7 @@
GList *l;
CamelFolder *folder = NULL;
-@@ -269,7 +261,7 @@
+@@ -269,7 +261,7 @@ vfolder_adduri_do(struct _mail_msg *mm)
}
if (folder == NULL)
@@ -2865,7 +2958,7 @@
if (folder != NULL) {
l = m->folders;
-@@ -285,28 +277,24 @@
+@@ -285,28 +277,24 @@ vfolder_adduri_do(struct _mail_msg *mm)
}
static void
@@ -2902,7 +2995,7 @@
};
-@@ -317,13 +305,13 @@
+@@ -317,13 +305,13 @@ vfolder_adduri(const char *uri, GList *f
struct _adduri_msg *m;
int id;
@@ -2919,7 +3012,7 @@
return id;
}
-@@ -447,7 +435,7 @@
+@@ -447,7 +435,7 @@ mail_vfolder_add_uri(CamelStore *store,
return;
}
@@ -2928,7 +3021,7 @@
is_ignore = uri_is_ignore(store, curi);
-@@ -540,7 +528,7 @@
+@@ -540,7 +528,7 @@ mail_vfolder_delete_uri(CamelStore *stor
d(printf ("Deleting uri to check: %s\n", uri));
@@ -2937,7 +3030,7 @@
changed = g_string_new ("");
-@@ -615,7 +603,7 @@
+@@ -615,7 +603,7 @@ mail_vfolder_rename_uri(CamelStore *stor
if (context == NULL || uri_is_spethal(store, cfrom) || uri_is_spethal(store, cto))
return;
@@ -2946,9 +3039,9 @@
from = em_uri_from_camel(cfrom);
to = em_uri_from_camel(cto);
---- evolution-2.11.2/mail/em-format-html.c.kill-ethread 2007-04-20 00:28:22.000000000 -0400
-+++ evolution-2.11.2/mail/em-format-html.c 2007-05-18 15:34:09.000000000 -0400
-@@ -165,7 +165,7 @@
+--- evolution-2.11.3/mail/em-format-html.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/em-format-html.c 2007-06-04 14:25:34.000000000 -0400
+@@ -165,7 +165,7 @@ efh_gtkhtml_destroy(GtkHTML *html, EMFor
if (efh->priv->format_timeout_id != 0) {
g_source_remove(efh->priv->format_timeout_id);
efh->priv->format_timeout_id = 0;
@@ -2957,7 +3050,7 @@
efh->priv->format_timeout_msg = NULL;
}
-@@ -1179,7 +1179,7 @@
+@@ -1179,7 +1179,7 @@ efh_builtin_init(EMFormatHTMLClass *efhc
/* Sigh, this is so we have a cancellable, async rendering thread */
struct _format_msg {
@@ -2966,7 +3059,7 @@
EMFormatHTML *format;
EMFormat *format_source;
-@@ -1189,14 +1189,15 @@
+@@ -1189,14 +1189,15 @@ struct _format_msg {
CamelMimeMessage *message;
};
@@ -2985,7 +3078,7 @@
struct _EMFormatHTMLJob *job;
struct _EMFormatPURITree *puri_level;
int cancelled = FALSE;
-@@ -1281,10 +1282,9 @@
+@@ -1281,10 +1282,9 @@ static void efh_format_do(struct _mail_m
((EMFormat *)m->format)->pending_uri_level = puri_level;
}
@@ -2998,7 +3091,7 @@
d(printf("formatting finished\n"));
m->format->load_http_now = FALSE;
-@@ -1292,10 +1292,9 @@
+@@ -1292,10 +1292,9 @@ static void efh_format_done(struct _mail
g_signal_emit_by_name(m->format, "complete");
}
@@ -3011,7 +3104,7 @@
d(printf("formatter freed\n"));
g_object_unref(m->format);
if (m->estream) {
-@@ -1311,11 +1310,12 @@
+@@ -1311,11 +1310,12 @@ static void efh_format_free(struct _mail
g_object_unref(m->format_source);
}
@@ -3029,7 +3122,7 @@
};
static gboolean
-@@ -1326,7 +1326,7 @@
+@@ -1326,7 +1326,7 @@ efh_format_timeout(struct _format_msg *m
struct _EMFormatHTMLPrivate *p = efh->priv;
if (m->format->html == NULL) {
@@ -3038,7 +3131,7 @@
return FALSE;
}
-@@ -1354,7 +1354,7 @@
+@@ -1354,7 +1354,7 @@ efh_format_timeout(struct _format_msg *m
if (m->message == NULL) {
hstream = gtk_html_begin(efh->html);
gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK);
@@ -3047,7 +3140,7 @@
p->last_part = NULL;
} else {
hstream = NULL;
-@@ -1373,8 +1373,8 @@
+@@ -1373,8 +1373,8 @@ efh_format_timeout(struct _format_msg *m
p->last_part = m->message;
}
@@ -3058,7 +3151,7 @@
}
efh->priv->format_timeout_id = 0;
-@@ -1398,11 +1398,11 @@
+@@ -1398,11 +1398,11 @@ static void efh_format_clone(EMFormat *e
d(printf(" timeout for last still active, removing ...\n"));
g_source_remove(efh->priv->format_timeout_id);
efh->priv->format_timeout_id = 0;
@@ -3072,9 +3165,9 @@
m->format = (EMFormatHTML *)emf;
g_object_ref(emf);
m->format_source = emfsource;
---- evolution-2.11.2/mail/em-folder-properties.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-folder-properties.c 2007-05-18 15:34:09.000000000 -0400
-@@ -386,7 +386,7 @@
+--- evolution-2.11.3/mail/em-folder-properties.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/em-folder-properties.c 2007-06-04 14:25:34.000000000 -0400
+@@ -386,7 +386,7 @@ em_folder_properties_show(GtkWindow *par
}
if (folder == NULL)
@@ -3083,9 +3176,9 @@
else
emfp_dialog_got_folder((char *)uri, folder, NULL);
}
---- evolution-2.11.2/mail/em-folder-tree.c.kill-ethread 2007-05-13 13:41:10.000000000 -0400
-+++ evolution-2.11.2/mail/em-folder-tree.c 2007-05-18 15:34:09.000000000 -0400
-@@ -834,7 +834,7 @@
+--- evolution-2.11.3/mail/em-folder-tree.c.kill-ethread 2007-06-04 01:52:58.000000000 -0400
++++ evolution-2.11.3/mail/em-folder-tree.c 2007-06-04 14:25:34.000000000 -0400
+@@ -834,7 +834,7 @@ fail:
/* TODO: Merge the drop handling code/menu's into one spot using a popup target for details */
/* Drop handling */
struct _DragDataReceivedAsync {
@@ -3094,12 +3187,12 @@
/* input data */
GdkDragContext *context;
-@@ -859,17 +859,16 @@
+@@ -859,17 +859,16 @@ emft_drop_folder(struct _DragDataReceive
d(printf(" * Drop folder '%s' onto '%s'\n", m->selection->data, m->full_name));
-- if (!(src = mail_tool_uri_to_folder(m->selection->data, 0, &m->msg.ex)))
-+ if (!(src = mail_tool_uri_to_folder(m->selection->data, 0, &m->base.ex)))
+- if (!(src = mail_tool_uri_to_folder((char *)m->selection->data, 0, &m->msg.ex)))
++ if (!(src = mail_tool_uri_to_folder((char *)m->selection->data, 0, &m->base.ex)))
return;
em_folder_utils_copy_folders(src->parent_store, src->full_name, m->store, m->full_name?m->full_name:"", m->move);
@@ -3115,7 +3208,7 @@
CamelURL *url;
char *buf;
-@@ -893,9 +892,8 @@
+@@ -893,9 +892,8 @@ emft_drop_async_desc (struct _mail_msg *
}
static void
@@ -3126,7 +3219,7 @@
CamelFolder *folder;
/* for types other than folder, we can't drop to the root path */
-@@ -903,14 +901,14 @@
+@@ -903,14 +901,14 @@ emft_drop_async_drop (struct _mail_msg *
/* copy or move (aka rename) a folder */
emft_drop_folder(m);
} else if (m->full_name == NULL) {
@@ -3145,7 +3238,7 @@
break;
case DND_DROP_TYPE_MESSAGE_RFC822:
/* import a message/rfc822 stream */
-@@ -928,9 +926,8 @@
+@@ -928,9 +926,8 @@ emft_drop_async_drop (struct _mail_msg *
}
static void
@@ -3156,7 +3249,7 @@
gboolean success, delete;
/* ?? */
-@@ -938,7 +935,7 @@
+@@ -938,7 +935,7 @@ emft_drop_async_done (struct _mail_msg *
success = FALSE;
delete = FALSE;
} else {
@@ -3165,7 +3258,7 @@
delete = success && m->move && !m->moved;
}
-@@ -946,10 +943,8 @@
+@@ -946,10 +943,8 @@ emft_drop_async_done (struct _mail_msg *
}
static void
@@ -3177,7 +3270,7 @@
g_object_unref(m->context);
camel_object_unref(m->store);
g_free(m->full_name);
-@@ -958,18 +953,19 @@
+@@ -958,18 +953,19 @@ emft_drop_async_free (struct _mail_msg *
g_free(m->selection);
}
@@ -3203,7 +3296,7 @@
}
static void
-@@ -996,7 +992,7 @@
+@@ -996,7 +992,7 @@ emft_drop_popup_cancel(EPopup *ep, EPopu
struct _DragDataReceivedAsync *m = data;
m->aborted = TRUE;
@@ -3212,7 +3305,7 @@
}
static EPopupItem emft_drop_popup_menu[] = {
-@@ -1052,7 +1048,7 @@
+@@ -1052,7 +1048,7 @@ tree_drag_data_received(GtkWidget *widge
return;
}
@@ -3221,7 +3314,7 @@
m->context = context;
g_object_ref(context);
m->store = store;
-@@ -1686,7 +1682,7 @@
+@@ -1686,7 +1682,7 @@ dump_fi (CamelFolderInfo *fi, int depth)
#endif
struct _EMFolderTreeGetFolderInfo {
@@ -3230,7 +3323,7 @@
/* input data */
GtkTreeRowReference *root;
-@@ -1699,10 +1695,9 @@
+@@ -1699,10 +1695,9 @@ struct _EMFolderTreeGetFolderInfo {
CamelFolderInfo *fi;
};
@@ -3243,7 +3336,7 @@
char *ret, *name;
name = camel_service_get_name((CamelService *)m->store, TRUE);
-@@ -1712,18 +1707,16 @@
+@@ -1712,18 +1707,16 @@ emft_get_folder_info__desc(struct _mail_
}
static void
@@ -3265,7 +3358,7 @@
struct _EMFolderTreePrivate *priv = m->emft->priv;
struct _EMFolderTreeModelStoreInfo *si;
GtkTreeIter root, iter;
-@@ -1751,7 +1744,7 @@
+@@ -1751,7 +1744,7 @@ emft_get_folder_info__got (struct _mail_
gtk_tree_model_get_iter ((GtkTreeModel *) model, &root, path);
/* if we had an error, then we need to re-set the load subdirs state and collapse the node */
@@ -3274,7 +3367,7 @@
gtk_tree_store_set(model, &root, COL_BOOL_LOAD_SUBDIRS, TRUE, -1);
gtk_tree_view_collapse_row (priv->treeview, path);
gtk_tree_path_free (path);
-@@ -1806,10 +1799,8 @@
+@@ -1806,10 +1799,8 @@ emft_get_folder_info__got (struct _mail_
}
static void
@@ -3286,7 +3379,7 @@
camel_store_free_folder_info (m->store, m->fi);
gtk_tree_row_reference_free (m->root);
-@@ -1818,11 +1809,12 @@
+@@ -1818,11 +1809,12 @@ emft_get_folder_info__free (struct _mail
g_free (m->top);
}
@@ -3304,7 +3397,7 @@
};
static void
-@@ -1909,7 +1901,7 @@
+@@ -1909,7 +1901,7 @@ emft_tree_row_expanded (GtkTreeView *tre
gtk_tree_store_set((GtkTreeStore *)model, root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1);
@@ -3313,7 +3406,7 @@
m->root = gtk_tree_row_reference_new (model, tree_path);
camel_object_ref (store);
m->store = store;
-@@ -1918,7 +1910,7 @@
+@@ -1918,7 +1910,7 @@ emft_tree_row_expanded (GtkTreeView *tre
m->top = full_name;
m->flags = CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST;
@@ -3322,9 +3415,9 @@
}
static gboolean
---- evolution-2.11.2/mail/em-folder-browser.c.kill-ethread 2007-05-13 13:41:10.000000000 -0400
-+++ evolution-2.11.2/mail/em-folder-browser.c 2007-05-18 15:34:09.000000000 -0400
-@@ -839,7 +839,7 @@
+--- evolution-2.11.3/mail/em-folder-browser.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/em-folder-browser.c 2007-06-04 14:25:34.000000000 -0400
+@@ -839,7 +839,7 @@ get_view_query (ESearchBar *esb)
struct _setup_msg {
@@ -3333,7 +3426,7 @@
CamelFolder *folder;
char *query;
-@@ -847,16 +847,15 @@
+@@ -847,16 +847,15 @@ struct _setup_msg {
GList *sources_folder;
};
@@ -3353,7 +3446,7 @@
GList *l, *list = NULL;
CamelFolder *folder;
-@@ -867,12 +866,12 @@
+@@ -867,12 +866,12 @@ vfolder_setup_do(struct _mail_msg *mm)
l = m->sources_uri;
while (l) {
d(printf(" Adding uri: %s\n", (char *)l->data));
@@ -3368,7 +3461,7 @@
}
l = l->next;
}
-@@ -896,17 +895,13 @@
+@@ -896,17 +895,13 @@ vfolder_setup_do(struct _mail_msg *mm)
}
static void
@@ -3388,7 +3481,7 @@
GList *l;
camel_object_unref(m->folder);
-@@ -927,11 +922,12 @@
+@@ -927,11 +922,12 @@ vfolder_setup_free (struct _mail_msg *mm
g_list_free(m->sources_folder);
}
@@ -3406,7 +3499,7 @@
};
/* sources_uri should be camel uri's */
-@@ -941,15 +937,15 @@
+@@ -941,15 +937,15 @@ vfolder_setup(CamelFolder *folder, const
struct _setup_msg *m;
int id;
@@ -3425,9 +3518,9 @@
return id;
}
---- evolution-2.11.2/mail/message-list.c.kill-ethread 2007-05-10 05:27:32.000000000 -0400
-+++ evolution-2.11.2/mail/message-list.c 2007-05-18 15:34:09.000000000 -0400
-@@ -1801,7 +1801,7 @@
+--- evolution-2.11.3/mail/message-list.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/message-list.c 2007-06-04 14:25:34.000000000 -0400
+@@ -1841,7 +1841,7 @@ ml_tree_drag_data_get (ETree *tree, int
/* TODO: merge this with the folder tree stuff via empopup targets */
/* Drop handling */
struct _drop_msg {
@@ -3436,7 +3529,7 @@
GdkDragContext *context;
-@@ -1818,11 +1818,9 @@
+@@ -1858,11 +1858,9 @@ struct _drop_msg {
unsigned int aborted:1;
};
@@ -3450,7 +3543,7 @@
if (m->move)
return g_strdup_printf(_("Moving messages into folder %s"), m->folder->full_name);
else
-@@ -1830,13 +1828,11 @@
+@@ -1870,13 +1868,11 @@ ml_drop_async_desc (struct _mail_msg *mm
}
static void
@@ -3466,7 +3559,7 @@
break;
case DND_MESSAGE_RFC822:
em_utils_selection_get_message(m->selection, m->folder);
-@@ -1848,9 +1844,8 @@
+@@ -1888,9 +1884,8 @@ ml_drop_async_drop(struct _mail_msg *mm)
}
static void
@@ -3477,7 +3570,7 @@
gboolean success, delete;
/* ?? */
-@@ -1858,7 +1853,7 @@
+@@ -1898,7 +1893,7 @@ ml_drop_async_done(struct _mail_msg *mm)
success = FALSE;
delete = FALSE;
} else {
@@ -3486,7 +3579,7 @@
delete = success && m->move && !m->moved;
}
-@@ -1866,10 +1861,8 @@
+@@ -1906,10 +1901,8 @@ ml_drop_async_done(struct _mail_msg *mm)
}
static void
@@ -3498,7 +3591,7 @@
g_object_unref(m->context);
camel_object_unref(m->folder);
-@@ -1877,18 +1870,19 @@
+@@ -1917,18 +1910,19 @@ ml_drop_async_free(struct _mail_msg *mm)
g_free(m->selection);
}
@@ -3524,7 +3617,7 @@
}
static void
-@@ -1915,7 +1909,7 @@
+@@ -1955,7 +1949,7 @@ ml_drop_popup_cancel(EPopup *ep, EPopupI
struct _drop_msg *m = data;
m->aborted = TRUE;
@@ -3533,7 +3626,7 @@
}
static EPopupItem ml_drop_popup_menu[] = {
-@@ -1945,7 +1939,7 @@
+@@ -1985,7 +1979,7 @@ ml_tree_drag_data_received (ETree *tree,
if (data->data == NULL || data->length == -1)
return;
@@ -3542,7 +3635,7 @@
m->context = context;
g_object_ref(context);
m->folder = ml->folder;
-@@ -3674,7 +3668,7 @@
+@@ -3718,7 +3712,7 @@ save_hide_state (MessageList *ml)
/* ** REGENERATE MESSAGELIST ********************************************** */
struct _regen_list_msg {
@@ -3551,7 +3644,7 @@
int complete;
-@@ -3702,16 +3696,15 @@
+@@ -3746,16 +3740,15 @@ struct _regen_list_msg {
*/
@@ -3571,7 +3664,7 @@
GPtrArray *uids, *uidnew, *showuids, *searchuids = NULL;
CamelMessageInfo *info;
int i;
-@@ -3741,7 +3734,7 @@
+@@ -3785,7 +3778,7 @@ regen_list_regen (struct _mail_msg *mm)
} else
expr = "(match-all (not (system-flag \"deleted\")))";
}
@@ -3580,7 +3673,7 @@
} else {
char *expr;
-@@ -3751,23 +3744,23 @@
+@@ -3795,23 +3788,23 @@ regen_list_regen (struct _mail_msg *mm)
sprintf(expr, "(and (match-all (not (system-flag \"junk\")))\n %s)", m->search);
} else
expr = "(match-all (not (system-flag \"junk\")))";
@@ -3609,7 +3702,7 @@
if (uidnew) {
MESSAGE_LIST_LOCK(m->ml, hide_lock);
-@@ -3842,7 +3835,7 @@
+@@ -3886,7 +3879,7 @@ regen_list_regen (struct _mail_msg *mm)
e_profile_event_emit("list.threaduids", m->folder->full_name, 0);
@@ -3618,7 +3711,7 @@
/* update/build a new tree */
if (m->dotree) {
if (m->tree)
-@@ -3871,17 +3864,15 @@
+@@ -3915,17 +3908,15 @@ regen_list_regen (struct _mail_msg *mm)
}
static void
@@ -3638,7 +3731,7 @@
return;
if (m->ml->folder != m->folder)
-@@ -3932,9 +3923,8 @@
+@@ -3976,9 +3967,8 @@ regen_list_regened (struct _mail_msg *mm
}
static void
@@ -3649,7 +3742,7 @@
int i;
e_profile_event_emit("list.regenerated", m->folder->full_name, 0);
-@@ -3962,11 +3952,12 @@
+@@ -4006,11 +3996,12 @@ regen_list_free (struct _mail_msg *mm)
g_object_unref(m->ml);
}
@@ -3667,7 +3760,7 @@
};
static gboolean
-@@ -3976,7 +3967,7 @@
+@@ -4020,7 +4011,7 @@ ml_regen_timeout(struct _regen_list_msg
m->ml->regen = g_list_prepend(m->ml->regen, m);
/* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */
@@ -3676,7 +3769,7 @@
m->ml->regen_timeout_msg = NULL;
m->ml->regen_timeout_id = 0;
-@@ -3992,7 +3983,7 @@
+@@ -4036,7 +4027,7 @@ mail_regen_cancel(MessageList *ml)
GList *l = ml->regen;
while (l) {
@@ -3685,7 +3778,7 @@
if (mm->cancel)
camel_operation_cancel(mm->cancel);
-@@ -4004,7 +3995,7 @@
+@@ -4048,7 +4039,7 @@ mail_regen_cancel(MessageList *ml)
if (ml->regen_timeout_id) {
g_source_remove(ml->regen_timeout_id);
ml->regen_timeout_id = 0;
@@ -3694,7 +3787,7 @@
ml->regen_timeout_msg = NULL;
}
}
-@@ -4039,7 +4030,7 @@
+@@ -4083,7 +4074,7 @@ mail_regen_list (MessageList *ml, const
}
#endif
@@ -3703,9 +3796,9 @@
m->ml = ml;
m->search = g_strdup (search);
m->hideexpr = g_strdup (hideexpr);
---- evolution-2.11.2/mail/em-sync-stream.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-sync-stream.h 2007-05-18 15:34:09.000000000 -0400
-@@ -29,41 +29,45 @@
+--- evolution-2.11.3/mail/em-sync-stream.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/em-sync-stream.h 2007-06-04 14:25:34.000000000 -0400
+@@ -29,41 +29,45 @@ requests are always handled in the main
#ifndef EM_SYNC_STREAM_H
#define EM_SYNC_STREAM_H
@@ -3781,9 +3874,9 @@
+G_END_DECLS
#endif /* EM_SYNC_STREAM_H */
---- evolution-2.11.2/mail/em-format-html-print.c.kill-ethread 2007-04-22 13:20:08.000000000 -0400
-+++ evolution-2.11.2/mail/em-format-html-print.c 2007-05-18 15:38:28.000000000 -0400
-@@ -224,7 +224,7 @@
+--- evolution-2.11.3/mail/em-format-html-print.c.kill-ethread 2007-04-22 13:20:08.000000000 -0400
++++ evolution-2.11.3/mail/em-format-html-print.c 2007-06-04 14:25:34.000000000 -0400
+@@ -224,7 +224,7 @@ em_format_html_print_message (EMFormatHT
g_object_ref (efhp);
mail_get_message (
@@ -3792,8 +3885,8 @@
}
void
---- evolution-2.11.2/mail/em-sync-stream.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-sync-stream.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/em-sync-stream.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/em-sync-stream.c 2007-06-04 14:25:34.000000000 -0400
@@ -25,42 +25,17 @@
#include
#endif
@@ -3841,7 +3934,7 @@
enum _write_msg_t {
EMSS_WRITE,
EMSS_FLUSH,
-@@ -68,275 +43,168 @@
+@@ -68,275 +43,168 @@ enum _write_msg_t {
};
struct _write_msg {
@@ -4219,9 +4312,9 @@
+ g_string_free (emss->buffer, TRUE);
+ emss->buffer = g_string_sized_new (size);
}
---- evolution-2.11.2/mail/em-subscribe-editor.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-subscribe-editor.c 2007-05-18 15:34:09.000000000 -0400
-@@ -175,7 +175,7 @@
+--- evolution-2.11.3/mail/em-subscribe-editor.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/em-subscribe-editor.c 2007-06-04 14:25:34.000000000 -0400
+@@ -175,7 +175,7 @@ sub_unref(EMSubscribe *sub)
/* ** Subscribe folder operation **************************************** */
struct _zsubscribe_msg {
@@ -4230,7 +4323,7 @@
EMSubscribe *sub;
EMSubscribeNode *node;
-@@ -184,20 +184,18 @@
+@@ -184,20 +184,18 @@ struct _zsubscribe_msg {
};
static void
@@ -4256,7 +4349,7 @@
GtkTreeIter iter;
GtkTreeModel *model;
EMSubscribeNode *node;
-@@ -207,7 +205,7 @@
+@@ -207,7 +205,7 @@ sub_folder_subscribed (struct _mail_msg
if (m->sub->cancel)
return;
@@ -4265,7 +4358,7 @@
if (m->subscribe)
m->node->info->flags |= CAMEL_FOLDER_SUBSCRIBED;
else
-@@ -228,8 +226,8 @@
+@@ -228,8 +226,8 @@ sub_folder_subscribed (struct _mail_msg
/* queue any further ones, or if out, update the ui */
next = (struct _zsubscribe_msg *)e_dlist_remhead(&m->sub->subscribe);
if (next) {
@@ -4276,7 +4369,7 @@
} else {
/* should it go off the model instead? */
sub_selection_changed(gtk_tree_view_get_selection(m->sub->tree), m->sub);
-@@ -237,19 +235,18 @@
+@@ -237,19 +235,18 @@ sub_folder_subscribed (struct _mail_msg
}
static void
@@ -4303,7 +4396,7 @@
};
/* spath is tree path in string form */
-@@ -259,18 +256,18 @@
+@@ -259,18 +256,18 @@ sub_subscribe_folder (EMSubscribe *sub,
struct _zsubscribe_msg *m;
int id;
@@ -4325,7 +4418,7 @@
} else {
d(printf("queueing subscribe folder '%s'\n", spath));
e_dlist_addtail(&sub->subscribe, (EDListNode *)m);
-@@ -341,7 +338,7 @@
+@@ -341,7 +338,7 @@ sub_fill_level(EMSubscribe *sub, CamelFo
/* async query of folderinfo */
struct _emse_folderinfo_msg {
@@ -4334,7 +4427,7 @@
int seq;
-@@ -351,31 +348,29 @@
+@@ -351,31 +348,29 @@ struct _emse_folderinfo_msg {
};
static void
@@ -4373,7 +4466,7 @@
}
if (m->info) {
-@@ -396,10 +391,8 @@
+@@ -396,10 +391,8 @@ sub_folderinfo_got(struct _mail_msg *mm)
}
static void
@@ -4385,7 +4478,7 @@
if (m->info)
m->sub->info_list = g_slist_prepend(m->sub->info_list, m->info);
-@@ -415,11 +408,12 @@
+@@ -415,11 +408,12 @@ sub_folderinfo_free(struct _mail_msg *mm
sub_unref(m->sub);
}
@@ -4403,7 +4496,7 @@
};
static int
-@@ -431,19 +425,19 @@
+@@ -431,19 +425,19 @@ sub_queue_fill_level(EMSubscribe *sub, E
d(printf("%s:%d:%s: Starting get folderinfo of '%s'\n", __FILE__, __LINE__, __GNUC_PRETTY_FUNCTION__,
node?node->info->full_name:""));
@@ -4427,7 +4520,7 @@
return id;
}
-@@ -573,7 +567,7 @@
+@@ -573,7 +567,7 @@ sub_destroy(GtkWidget *w, EMSubscribe *s
mail_msg_cancel(sub->subscribe_id);
while ( (m = (struct _zsubscribe_msg *)e_dlist_remhead(&sub->subscribe)) )
@@ -4436,9 +4529,9 @@
sub_unref(sub);
}
---- evolution-2.11.2/mail/mail-mt.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/mail-mt.h 2007-05-18 15:34:09.000000000 -0400
-@@ -23,43 +23,60 @@
+--- evolution-2.11.3/mail/mail-mt.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/mail-mt.h 2007-06-04 14:25:34.000000000 -0400
+@@ -23,47 +23,64 @@
#ifndef _MAIL_MT
#define _MAIL_MT
@@ -4515,9 +4608,16 @@
+void mail_msg_slow_ordered_push (gpointer msg);
+
/* To implement the stop button */
- void *mail_cancel_hook_add(GDestroyNotify func, void *data);
- void mail_cancel_hook_remove(void *handle);
-@@ -112,24 +129,6 @@
+-void *mail_cancel_hook_add(GDestroyNotify func, void *data);
+-void mail_cancel_hook_remove(void *handle);
+-void mail_cancel_all(void);
++GHook * mail_cancel_hook_add (GHookFunc func, gpointer data);
++void mail_cancel_hook_remove (GHook *hook);
++void mail_cancel_all (void);
+
+ /* request a string/password */
+ char *mail_get_password (CamelService *service, const char *prompt,
+@@ -112,24 +129,6 @@ void *mail_call_main(mail_call_t type, M
void mail_enable_stop(void);
void mail_disable_stop(void);
@@ -4542,9 +4642,9 @@
/* A generic proxy event for anything that can be proxied during the life of the mailer (almost nothing) */
/* Note that almost all objects care about the lifecycle of their events, so this cannot be used */
extern MailAsyncEvent *mail_async_event;
---- evolution-2.11.2/mail/mail-ops.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/mail-ops.h 2007-05-18 15:34:09.000000000 -0400
-@@ -30,13 +30,14 @@
+--- evolution-2.11.3/mail/mail-ops.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/mail-ops.h 2007-06-04 14:25:34.000000000 -0400
+@@ -30,13 +30,14 @@ extern "C" {
#pragma }
#endif /* __cplusplus */
@@ -4560,7 +4660,7 @@
#include "libedataserver/e-account.h"
void mail_append_mail (CamelFolder *folder, CamelMimeMessage *message, CamelMessageInfo *info,
-@@ -55,12 +56,12 @@
+@@ -55,12 +56,12 @@ void mail_transfer_messages (CamelFolder
void mail_get_message (CamelFolder *folder, const char *uid,
void (*done) (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *data),
void *data,
@@ -4575,7 +4675,7 @@
/* get several messages */
void mail_get_messages (CamelFolder *folder, GPtrArray *uids,
-@@ -70,7 +71,7 @@
+@@ -70,7 +71,7 @@ void mail_get_messages (CamelFolder *fol
/* same for a folder */
int mail_get_folder (const char *uri, guint32 flags,
void (*done) (char *uri, CamelFolder *folder, void *data), void *data,
@@ -4584,9 +4684,9 @@
/* and for a store */
int mail_get_store (const char *uri, CamelOperation *op,
---- evolution-2.11.2/mail/em-composer-utils.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-composer-utils.c 2007-05-18 15:34:09.000000000 -0400
-@@ -534,7 +534,7 @@
+--- evolution-2.11.3/mail/em-composer-utils.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/em-composer-utils.c 2007-06-04 14:25:34.000000000 -0400
+@@ -534,7 +534,7 @@ em_utils_composer_save_draft_cb (EMsgCom
strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) {
int id;
@@ -4595,7 +4695,7 @@
mail_msg_wait (id);
if (!folder || !account->enabled) {
-@@ -1085,7 +1085,7 @@
+@@ -1085,7 +1085,7 @@ em_utils_redirect_message_by_uid (CamelF
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uid != NULL);
@@ -4604,7 +4704,7 @@
}
static void
-@@ -1116,7 +1116,7 @@
+@@ -1116,7 +1116,7 @@ em_utils_handle_receipt (CamelFolder *fo
}
if (msg == NULL) {
@@ -4613,7 +4713,7 @@
camel_message_info_free(info);
return;
}
-@@ -1916,7 +1916,7 @@
+@@ -1922,7 +1922,7 @@ em_utils_reply_to_message(CamelFolder *f
rd->source = source;
if (rd->source)
g_object_ref(rd->source);
@@ -4622,16 +4722,16 @@
return;
}
-@@ -2088,5 +2088,5 @@
+@@ -2094,5 +2094,5 @@ em_utils_post_reply_to_message_by_uid (C
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uid != NULL);
- mail_get_message (folder, uid, post_reply_to_message, NULL, mail_thread_new);
+ mail_get_message (folder, uid, post_reply_to_message, NULL, mail_msg_unordered_push);
}
---- evolution-2.11.2/mail/mail-folder-cache.c.kill-ethread 2007-05-09 00:14:42.000000000 -0400
-+++ evolution-2.11.2/mail/mail-folder-cache.c 2007-05-18 15:34:09.000000000 -0400
-@@ -844,15 +844,14 @@
+--- evolution-2.11.3/mail/mail-folder-cache.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/mail-folder-cache.c 2007-06-04 14:25:34.000000000 -0400
+@@ -860,15 +860,14 @@ update_folders(CamelStore *store, CamelF
struct _ping_store_msg {
@@ -4650,7 +4750,7 @@
char *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE);
char *msg;
-@@ -863,10 +862,9 @@
+@@ -879,10 +878,9 @@ ping_store_desc (struct _mail_msg *mm, i
}
static void
@@ -4662,7 +4762,7 @@
if (CAMEL_SERVICE (m->store)->status == CAMEL_SERVICE_CONNECTED) {
if (CAMEL_IS_DISCO_STORE (m->store) &&
-@@ -877,22 +875,21 @@
+@@ -893,22 +891,21 @@ ping_store_ping (struct _mail_msg *mm)
online = TRUE;
}
if (online)
@@ -4693,7 +4793,7 @@
};
static void
-@@ -904,11 +901,11 @@
+@@ -920,11 +917,11 @@ ping_store (gpointer key, gpointer val,
if (CAMEL_SERVICE (store)->status != CAMEL_SERVICE_CONNECTED)
return;
@@ -4707,7 +4807,7 @@
}
static gboolean
-@@ -953,7 +950,7 @@
+@@ -969,7 +966,7 @@ mail_note_store(CamelStore *store, Camel
int hook = 0;
g_assert(CAMEL_IS_STORE(store));
@@ -4716,9 +4816,9 @@
LOCK(info_lock);
---- evolution-2.11.2/mail/em-folder-view.c.kill-ethread 2007-05-10 05:27:32.000000000 -0400
-+++ evolution-2.11.2/mail/em-folder-view.c 2007-05-18 15:39:28.000000000 -0400
-@@ -69,6 +69,7 @@
+--- evolution-2.11.3/mail/em-folder-view.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/em-folder-view.c 2007-06-04 14:25:34.000000000 -0400
+@@ -71,6 +71,7 @@
#include
#include
@@ -4726,7 +4826,7 @@
#include "menus/gal-view-etable.h"
#include "menus/gal-view-factory-etable.h"
-@@ -693,7 +694,7 @@
+@@ -695,7 +696,7 @@ emfv_got_folder(char *uri, CamelFolder *
static void
emfv_set_folder_uri(EMFolderView *emfv, const char *uri)
{
@@ -4735,7 +4835,7 @@
}
static void
-@@ -1614,7 +1615,7 @@
+@@ -1632,7 +1633,7 @@ filter_type_uid (CamelFolder *folder, co
data->type = type;
data->source = source;
@@ -4744,7 +4844,7 @@
}
static void
-@@ -1712,7 +1713,7 @@
+@@ -1730,7 +1731,7 @@ vfolder_type_uid (CamelFolder *folder, c
data->type = type;
data->uri = g_strdup (uri);
@@ -4753,17 +4853,17 @@
}
static void
-@@ -2355,7 +2356,7 @@
- emfv->priv->selected_uid);
+@@ -2373,7 +2374,7 @@ emfv_message_selected_timeout(void *data
+ emfv->displayed_uid);
gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK);
-
+ */
- mail_get_messagex(emfv->folder, emfv->displayed_uid, emfv_list_done_message_selected, emfv, mail_thread_queued);
+ mail_get_messagex(emfv->folder, emfv->displayed_uid, emfv_list_done_message_selected, emfv, mail_msg_fast_ordered_push);
} else {
e_profile_event_emit("goto.empty", "", 0);
g_free(emfv->priv->selected_uid);
---- evolution-2.11.2/mail/mail-session.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/mail-session.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/mail-session.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
++++ evolution-2.11.3/mail/mail-session.c 2007-06-04 14:25:34.000000000 -0400
@@ -35,7 +35,7 @@
#include
@@ -4773,7 +4873,7 @@
#include /* FIXME: this is where camel_init is defined, it shouldn't include everything else */
#include
-@@ -258,21 +258,22 @@
+@@ -258,21 +258,22 @@ forget_password (CamelSession *session,
/* ********************************************************************** */
@@ -4800,7 +4900,7 @@
/* clicked, send back the reply */
static void
-@@ -280,122 +281,116 @@
+@@ -280,122 +281,116 @@ user_message_response (GtkDialog *dialog
{
gtk_widget_destroy ((GtkWidget *) dialog);
@@ -4980,7 +5080,7 @@
} else
ret = TRUE;
-@@ -535,7 +530,7 @@
+@@ -535,7 +530,7 @@ get_filter_driver (CamelSession *session
/* TODO: This is very temporary, until we have a better way to do the progress reporting,
we just borrow a dummy mail-mt thread message and hook it onto out camel thread message */
@@ -4989,7 +5089,7 @@
static void *ms_thread_msg_new(CamelSession *session, CamelSessionThreadOps *ops, unsigned int size)
{
-@@ -544,7 +539,7 @@
+@@ -544,7 +539,7 @@ static void *ms_thread_msg_new(CamelSess
/* We create a dummy mail_msg, and then copy its cancellation port over to ours, so
we get cancellation and progress in common with hte existing mail code, for free */
if (msg) {
@@ -4998,7 +5098,7 @@
msg->data = m;
camel_operation_unref(msg->op);
-@@ -557,7 +552,7 @@
+@@ -557,7 +552,7 @@ static void *ms_thread_msg_new(CamelSess
static void ms_thread_msg_free(CamelSession *session, CamelSessionThreadMsg *m)
{
@@ -5007,7 +5107,7 @@
ms_parent_class->thread_msg_free(session, m);
}
-@@ -680,22 +675,23 @@
+@@ -680,22 +675,23 @@ mail_session_set_interactive (gboolean i
MAIL_SESSION (session)->interactive = interactive;
if (!interactive) {
@@ -5037,8 +5137,8 @@
}
}
}
---- evolution-2.11.2/mail/mail-mt.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
-+++ evolution-2.11.2/mail/mail-mt.c 2007-05-18 15:34:09.000000000 -0400
+--- evolution-2.11.3/mail/mail-mt.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
++++ evolution-2.11.3/mail/mail-mt.c 2007-06-04 14:25:34.000000000 -0400
@@ -29,8 +29,8 @@
#include
#include
@@ -5049,7 +5149,7 @@
#include
#include
-@@ -63,7 +63,7 @@
+@@ -63,7 +63,7 @@ static void mail_operation_status(struct
#endif
/* background operation status stuff */
@@ -5058,7 +5158,7 @@
int activity_state; /* sigh sigh sigh, we need to keep track of the state external to the
pointer itself for locking/race conditions */
int activity_id;
-@@ -82,15 +82,12 @@
+@@ -82,15 +82,12 @@ static GHashTable *mail_msg_active_table
static pthread_mutex_t mail_msg_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t mail_msg_cond = PTHREAD_COND_INITIALIZER;
@@ -5077,7 +5177,7 @@
MAIL_MT_LOCK(mail_msg_lock);
-@@ -112,7 +109,6 @@
+@@ -112,7 +109,6 @@ void *mail_msg_new(mail_msg_op_t *ops, E
fprintf(log, "Logging async operations\n");
if (log_locks) {
@@ -5085,7 +5185,7 @@
fprintf(log, "%" G_GINT64_MODIFIER "x: lock mail_msg_lock\n", e_util_pthread_id(pthread_self()));
}
} else {
-@@ -122,13 +118,13 @@
+@@ -122,14 +118,15 @@ void *mail_msg_new(mail_msg_op_t *ops, E
}
}
#endif
@@ -5101,9 +5201,11 @@
- msg->priv = g_malloc0(sizeof(*msg->priv));
+ msg->priv = g_slice_new (MailMsgPrivate);
++ g_debug ("Inserting message %u", msg->seq);
g_hash_table_insert(mail_msg_active_table, GINT_TO_POINTER(msg->seq), msg);
-@@ -143,12 +139,15 @@
+ d(printf("New message %p\n", msg));
+@@ -143,12 +140,15 @@ void *mail_msg_new(mail_msg_op_t *ops, E
return msg;
}
@@ -5122,7 +5224,7 @@
e_activity_handler_operation_finished (activity_handler, activity_id);
}
-@@ -177,58 +176,84 @@
+@@ -177,58 +177,85 @@ checkmem(void *p)
}
#endif
@@ -5185,6 +5287,7 @@
#endif
- g_hash_table_remove(mail_msg_active_table, GINT_TO_POINTER(m->seq));
- pthread_cond_broadcast(&mail_msg_cond);
++ g_debug ("Removing message %u", mail_msg->seq);
+ g_hash_table_remove (
+ mail_msg_active_table, GINT_TO_POINTER (mail_msg->seq));
+ pthread_cond_broadcast (&mail_msg_cond);
@@ -5233,7 +5336,7 @@
}
/* hash table of ops->dialogue of active errors */
-@@ -244,9 +269,10 @@
+@@ -244,9 +271,10 @@ static void error_response(GtkObject *o,
gtk_widget_destroy((GtkWidget *)o);
}
@@ -5246,7 +5349,7 @@
char *what;
GtkDialog *gd;
-@@ -271,27 +297,27 @@
+@@ -271,27 +299,27 @@ void mail_msg_check_error(void *msg)
/* check to see if we have dialogue already running for this operation */
/* we key on the operation pointer, which is at least accurate enough
for the operation type, although it could be on a different object. */
@@ -5281,7 +5384,7 @@
MAIL_MT_LOCK(mail_msg_lock);
m = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid));
-@@ -304,13 +330,12 @@
+@@ -304,13 +332,12 @@ void mail_msg_cancel(unsigned int msgid)
/* waits for a message to be finished processing (freed)
@@ -5298,7 +5401,7 @@
MAIL_MT_LOCK(mail_msg_lock);
m = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid));
while (m) {
-@@ -347,9 +372,7 @@
+@@ -347,9 +374,7 @@ int mail_msg_active(unsigned int msgid)
void mail_msg_wait_all(void)
{
@@ -5309,8 +5412,81 @@
MAIL_MT_LOCK(mail_msg_lock);
while (g_hash_table_size(mail_msg_active_table) > 0) {
MAIL_MT_UNLOCK(mail_msg_lock);
-@@ -420,241 +443,183 @@
- MAIL_MT_UNLOCK(mail_msg_lock);
+@@ -367,294 +392,239 @@ void mail_msg_wait_all(void)
+ }
+
+ /* **************************************** */
+-struct _cancel_hook_data {
+- struct _cancel_hook_data *next;
+- struct _cancel_hook_data *prev;
+
+- GDestroyNotify func;
+- void *data;
+-};
++static GHookList cancel_hook_list;
+
+-static EDList cancel_hook_list = E_DLIST_INITIALISER(cancel_hook_list);
+-
+-void *mail_cancel_hook_add(GDestroyNotify func, void *data)
++GHook *
++mail_cancel_hook_add (GHookFunc func, gpointer data)
+ {
+- struct _cancel_hook_data *d;
++ GHook *hook;
+
+- d = g_malloc0(sizeof(*d));
+- d->func = func;
+- d->data = data;
++ MAIL_MT_LOCK (mail_msg_lock);
+
+- MAIL_MT_LOCK(mail_msg_lock);
+- e_dlist_addtail(&cancel_hook_list, (EDListNode *)d);
+- MAIL_MT_UNLOCK(mail_msg_lock);
++ if (!cancel_hook_list.is_setup)
++ g_hook_list_init (&cancel_hook_list, sizeof (GHook));
+
+- return (void *)d;
+-}
++ hook = g_hook_alloc (&cancel_hook_list);
++ hook->func = func;
++ hook->data = data;
+
+-void mail_cancel_hook_remove(void *handle)
+-{
+- struct _cancel_hook_data *d = handle;
++ g_hook_append (&cancel_hook_list, hook);
+
+- MAIL_MT_LOCK(mail_msg_lock);
+- e_dlist_remove((EDListNode *)d);
+- MAIL_MT_UNLOCK(mail_msg_lock);
+- g_free(d);
++ MAIL_MT_UNLOCK (mail_msg_lock);
++
++ return hook;
+ }
+
+-void mail_cancel_all(void)
++void
++mail_cancel_hook_remove (GHook *hook)
+ {
+- struct _cancel_hook_data *d, *n;
++ MAIL_MT_LOCK (mail_msg_lock);
+
+- camel_operation_cancel(NULL);
++ g_assert (cancel_hook_list.is_setup);
++ g_hook_destroy_link (&cancel_hook_list, hook);
+
+- /* I can ssee a deadlock coming on ... */
+- MAIL_MT_LOCK(mail_msg_lock);
+- d = (struct _cancel_hook_data *)cancel_hook_list.head;
+- n = d->next;
+- while (n) {
+- d->func(d->data);
+- d = n;
+- n = n->next;
+- }
+- MAIL_MT_UNLOCK(mail_msg_lock);
++ MAIL_MT_UNLOCK (mail_msg_lock);
}
-EMsgPort *mail_gui_port;
@@ -5337,39 +5513,36 @@
-#ifdef G_OS_WIN32
-EThread *
-mail_win32_get_mail_thread_queued (void)
-+#define PERIODIC_RATE_HZ 10
-+static guint periodic_source_id = 0;
++void
++mail_cancel_all (void)
+ {
+- return mail_thread_queued;
++ camel_operation_cancel (NULL);
++
++ MAIL_MT_LOCK (mail_msg_lock);
++
++ if (cancel_hook_list.is_setup)
++ g_hook_list_invoke (&cancel_hook_list, FALSE);
++
++ MAIL_MT_UNLOCK (mail_msg_lock);
+ }
+-#endif
++
++static guint idle_source_id = 0;
++G_LOCK_DEFINE_STATIC (idle_source_id);
+static GAsyncQueue *main_loop_queue = NULL;
+static GAsyncQueue *msg_reply_queue = NULL;
+static GThread *main_thread = NULL;
-+
-+static void
-+periodic_cleanup (void)
- {
-- return mail_thread_queued;
-+ periodic_source_id = 0;
-+
-+ g_assert (main_loop_queue != NULL);
-+ g_async_queue_unref (main_loop_queue);
-+ main_loop_queue = NULL;
-+
-+ g_assert (msg_reply_queue != NULL);
-+ g_async_queue_unref (msg_reply_queue);
-+ msg_reply_queue = NULL;
- }
--#endif
static gboolean
-mail_msgport_replied(GIOChannel *source, GIOCondition cond, void *d)
-+periodic_processing (void)
++mail_msg_idle_cb (void)
{
- EMsgPort *port = (EMsgPort *)d;
- mail_msg_t *m;
-+ MailMsg *msg;
-
+-
- while (( m = (mail_msg_t *)e_msgport_get(port))) {
-+ g_assert (main_loop_queue != NULL);
-+ g_assert (msg_reply_queue != NULL);
++ MailMsg *msg;
-#ifdef MALLOC_CHECK
- checkmem(m);
@@ -5382,11 +5555,17 @@
- fprintf(log, "%p: Replied to GUI thread (exception `%s'\n", m,
- camel_exception_get_description(&m->ex)?camel_exception_get_description(&m->ex):"None");
-#endif
--
++ g_assert (main_loop_queue != NULL);
++ g_assert (msg_reply_queue != NULL);
+
- if (m->ops->reply_msg)
- m->ops->reply_msg(m);
- mail_msg_check_error(m);
- mail_msg_free(m);
++ G_LOCK (idle_source_id);
++ idle_source_id = 0;
++ G_UNLOCK (idle_source_id);
++
+ /* check the main loop queue */
+ while ((msg = g_async_queue_try_pop (main_loop_queue)) != NULL) {
+ if (msg->info->exec != NULL)
@@ -5404,7 +5583,8 @@
+ mail_msg_unref (msg);
}
- return TRUE;
+- return TRUE;
++ return FALSE;
}
-static gboolean
@@ -5414,6 +5594,28 @@
{
- EMsgPort *port = (EMsgPort *)d;
- mail_msg_t *m;
+-
+- while (( m = (mail_msg_t *)e_msgport_get(port))) {
+-#ifdef MALLOC_CHECK
+- checkmem(m);
+- checkmem(m->cancel);
+- checkmem(m->priv);
+-#endif
+-
+-#ifdef LOG_OPS
+- if (log_ops)
+- fprintf(log, "%p: Received at GUI thread\n", m);
+-#endif
+-
+- if (m->ops->receive_msg)
+- m->ops->receive_msg(m);
+- if (m->msg.reply_port)
+- e_msgport_reply((EMsg *)m);
+- else {
+- if (m->ops->reply_msg)
+- m->ops->reply_msg(m);
+- mail_msg_free(m);
+- }
+ if (msg->info->desc != NULL) {
+ gchar *text = msg->info->desc (msg);
+ camel_operation_register (msg->cancel);
@@ -5434,137 +5636,107 @@
+ camel_operation_unref (msg->cancel);
+ msg->cancel = NULL;
+ MAIL_MT_UNLOCK (mail_msg_lock);
-+ }
-
-- while (( m = (mail_msg_t *)e_msgport_get(port))) {
--#ifdef MALLOC_CHECK
-- checkmem(m);
-- checkmem(m->cancel);
-- checkmem(m->priv);
--#endif
-+ g_async_queue_push (msg_reply_queue, msg);
-+}
-
--#ifdef LOG_OPS
-- if (log_ops)
-- fprintf(log, "%p: Received at GUI thread\n", m);
--#endif
-+void
-+mail_msg_cleanup (void)
-+{
-+ GSource *source;
-
-- if (m->ops->receive_msg)
-- m->ops->receive_msg(m);
-- if (m->msg.reply_port)
-- e_msgport_reply((EMsg *)m);
-- else {
-- if (m->ops->reply_msg)
-- m->ops->reply_msg(m);
-- mail_msg_free(m);
-- }
-- }
-+ mail_msg_wait_all();
+ }
- return TRUE;
-+ /* stop periodic processing */
-+ source = g_main_context_find_source_by_id (
-+ g_main_context_default (), periodic_source_id);
-+ g_assert (source != NULL);
-+ g_source_destroy (source);
++ g_async_queue_push (msg_reply_queue, msg);
++
++ G_LOCK (idle_source_id);
++ if (idle_source_id == 0)
++ idle_source_id = g_idle_add (
++ (GSourceFunc) mail_msg_idle_cb, NULL);
++ G_UNLOCK (idle_source_id);
}
-/* Test code, lighterwight, more configurable calls */
-static gboolean
-mail_msgport_received2(GIOChannel *source, GIOCondition cond, void *d)
+void
-+mail_msg_init (void)
++mail_msg_cleanup (void)
{
- EMsgPort *port = (EMsgPort *)d;
- mail_msg_t *m;
-+ main_loop_queue = g_async_queue_new ();
-+ msg_reply_queue = g_async_queue_new ();
++ mail_msg_wait_all();
- while (( m = (mail_msg_t *)e_msgport_get(port))) {
-#ifdef LOG_OPS
- if (log_ops)
- fprintf(log, "%p: Received at GUI2 thread\n", m);
-#endif
-+ /* start periodic processing */
-+ periodic_source_id = g_timeout_add_full (
-+ G_PRIORITY_DEFAULT,
-+ 1000 / PERIODIC_RATE_HZ,
-+ (GSourceFunc) periodic_processing, NULL,
-+ (GDestroyNotify) periodic_cleanup);
++ G_LOCK (idle_source_id);
++ if (idle_source_id != 0) {
++ GSource *source;
- if (m->ops->receive_msg)
- m->ops->receive_msg(m);
- else
- mail_msg_free(m);
-- }
-+ mail_msg_active_table = g_hash_table_new (NULL, NULL);
-+ main_thread = g_thread_self ();
++ /* Cancel the idle source. */
++ source = g_main_context_find_source_by_id (
++ g_main_context_default (), idle_source_id);
++ g_assert (source != NULL);
++ g_source_destroy (source);
++ idle_source_id = 0;
+ }
++ G_UNLOCK (idle_source_id);
- return TRUE;
-+ mail_async_event = mail_async_event_new ();
- }
+-}
++ g_assert (main_loop_queue != NULL);
++ g_async_queue_unref (main_loop_queue);
++ main_loop_queue = NULL;
+
++ g_assert (msg_reply_queue != NULL);
++ g_async_queue_unref (msg_reply_queue);
++ msg_reply_queue = NULL;
++}
--
-static void
-mail_msg_destroy(EThread *e, EMsg *msg, void *data)
-+static gint
-+mail_msg_compare (const MailMsg *msg1, const MailMsg *msg2)
++void
++mail_msg_init (void)
{
- mail_msg_t *m = (mail_msg_t *)msg;
-+ gint priority1 = msg1->priority;
-+ gint priority2 = msg2->priority;
++ main_loop_queue = g_async_queue_new ();
++ msg_reply_queue = g_async_queue_new ();
-#ifdef MALLOC_CHECK
- checkmem(m);
- checkmem(m->cancel);
- checkmem(m->priv);
-#endif
-+ if (priority1 == priority2)
-+ return 0;
++ mail_msg_active_table = g_hash_table_new (NULL, NULL);
++ main_thread = g_thread_self ();
- mail_msg_free(m);
-+ return (priority1 < priority2) ? 1 : -1;
++ mail_async_event = mail_async_event_new ();
}
-static void
-mail_msg_received(EThread *e, EMsg *msg, void *data)
-+static gpointer
-+create_thread_pool (gpointer data)
++static gint
++mail_msg_compare (const MailMsg *msg1, const MailMsg *msg2)
{
- mail_msg_t *m = (mail_msg_t *)msg;
-+ GThreadPool *thread_pool;
-+ gint max_threads = GPOINTER_TO_INT (data);
-
+-
-#ifdef MALLOC_CHECK
- checkmem(m);
- checkmem(m->cancel);
- checkmem(m->priv);
-#endif
-+ /* once created, run forever */
-+ thread_pool = g_thread_pool_new (
-+ (GFunc) mail_msg_proxy, NULL, max_threads, FALSE, NULL);
-+ g_thread_pool_set_sort_function (
-+ thread_pool, (GCompareDataFunc) mail_msg_compare, NULL);
++ gint priority1 = msg1->priority;
++ gint priority2 = msg2->priority;
- if (m->ops->describe_msg) {
- char *text = m->ops->describe_msg(m, FALSE);
-+ return thread_pool;
-+}
++ if (priority1 == priority2)
++ return 0;
-#ifdef LOG_OPS
- if (log_ops)
- fprintf(log, "%p: Received at thread %" G_GINT64_MODIFIER "x: '%s'\n", m, e_util_pthread_id(pthread_self()), text);
-#endif
-+void
-+mail_msg_main_loop_push (gpointer msg)
-+{
-+ g_async_queue_push_sorted (main_loop_queue, msg,
-+ (GCompareDataFunc) mail_msg_compare, NULL);
++ return (priority1 < priority2) ? 1 : -1;
+}
- d(printf("message received at thread\n"));
@@ -5577,17 +5749,22 @@
- if (log_ops)
- fprintf(log, "%p: Received at thread %" G_GINT64_MODIFIER "x\n", m, e_util_pthread_id(pthread_self()));
-#endif
-+void
-+mail_msg_unordered_push (gpointer msg)
++static gpointer
++create_thread_pool (gpointer data)
+{
-+ static GOnce once = G_ONCE_INIT;
++ GThreadPool *thread_pool;
++ gint max_threads = GPOINTER_TO_INT (data);
- if (m->ops->receive_msg) {
- mail_enable_stop();
- m->ops->receive_msg(m);
- mail_disable_stop();
- }
-+ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (10));
++ /* once created, run forever */
++ thread_pool = g_thread_pool_new (
++ (GFunc) mail_msg_proxy, NULL, max_threads, FALSE, NULL);
++ g_thread_pool_set_sort_function (
++ thread_pool, (GCompareDataFunc) mail_msg_compare, NULL);
- if (m->ops->describe_msg) {
- camel_operation_end(m->cancel);
@@ -5597,33 +5774,45 @@
- m->cancel = NULL;
- MAIL_MT_UNLOCK(mail_msg_lock);
- }
-+ g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL);
++ return thread_pool;
}
-void mail_msg_cleanup(void)
+void
-+mail_msg_fast_ordered_push (gpointer msg)
++mail_msg_main_loop_push (gpointer msg)
{
- mail_msg_wait_all();
--
++ g_async_queue_push_sorted (main_loop_queue, msg,
++ (GCompareDataFunc) mail_msg_compare, NULL);
+
- e_thread_destroy(mail_thread_queued_slow);
- e_thread_destroy(mail_thread_queued);
- e_thread_destroy(mail_thread_new);
-+ static GOnce once = G_ONCE_INIT;
++ G_LOCK (idle_source_id);
++ if (idle_source_id == 0)
++ idle_source_id = g_idle_add (
++ (GSourceFunc) mail_msg_idle_cb, NULL);
++ G_UNLOCK (idle_source_id);
++}
- g_io_channel_unref(mail_gui_channel);
- g_io_channel_unref(mail_gui_reply_channel);
-+ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (1));
++void
++mail_msg_unordered_push (gpointer msg)
++{
++ static GOnce once = G_ONCE_INIT;
- e_msgport_destroy(mail_gui_port);
- e_msgport_destroy(mail_gui_reply_port);
++ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (10));
++
+ g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL);
}
-static guint
-em_channel_setup(EMsgPort **port, GIOChannel **channel, GIOFunc func)
+void
-+mail_msg_slow_ordered_push (gpointer msg)
++mail_msg_fast_ordered_push (gpointer msg)
{
- GSource *source;
- guint id;
@@ -5647,8 +5836,8 @@
}
-void mail_msg_init(void)
-+gboolean
-+mail_in_main_thread (void)
++void
++mail_msg_slow_ordered_push (gpointer msg)
{
- em_channel_setup(&mail_gui_reply_port, &mail_gui_reply_channel, mail_msgport_replied);
- mail_gui_watch = em_channel_setup(&mail_gui_port, &mail_gui_channel, mail_msgport_received);
@@ -5669,16 +5858,24 @@
- e_thread_set_msg_received(mail_thread_new, mail_msg_received, 0);
- e_thread_set_reply_port(mail_thread_new, mail_gui_reply_port);
- e_thread_set_queue_limit(mail_thread_new, 10);
--
++ static GOnce once = G_ONCE_INIT;
++
++ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (1));
+
- mail_msg_active_table = g_hash_table_new(NULL, NULL);
- mail_gui_thread = pthread_self();
--
++ g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL);
++}
+
- mail_async_event = mail_async_event_new();
++gboolean
++mail_in_main_thread (void)
++{
+ return (g_thread_self () == main_thread);
}
/* ********************************************************************** */
-@@ -665,7 +630,8 @@
+@@ -665,7 +635,8 @@ static pthread_mutex_t status_lock = PTH
/* ********************************************************************** */
struct _proxy_msg {
@@ -5688,7 +5885,7 @@
MailAsyncEvent *ea;
mail_async_event_t type;
-@@ -679,10 +645,8 @@
+@@ -679,10 +650,8 @@ struct _proxy_msg {
};
static void
@@ -5700,7 +5897,7 @@
m->thread = pthread_self();
m->have_thread = TRUE;
m->func(m->o, m->event_data, m->data);
-@@ -697,16 +661,17 @@
+@@ -697,16 +666,17 @@ static int
idle_async_event(void *mm)
{
do_async_event(mm);
@@ -5724,7 +5921,7 @@
};
MailAsyncEvent *mail_async_event_new(void)
-@@ -723,10 +688,9 @@
+@@ -723,10 +693,9 @@ int mail_async_event_emit(MailAsyncEvent
{
struct _proxy_msg *m;
int id;
@@ -5736,7 +5933,7 @@
m->func = func;
m->o = o;
m->event_data = event_data;
-@@ -735,7 +699,7 @@
+@@ -735,7 +704,7 @@ int mail_async_event_emit(MailAsyncEvent
m->type = type;
m->have_thread = FALSE;
@@ -5745,7 +5942,7 @@
g_mutex_lock(ea->lock);
ea->tasks = g_slist_prepend(ea->tasks, m);
g_mutex_unlock(ea->lock);
-@@ -743,12 +707,12 @@
+@@ -743,12 +712,12 @@ int mail_async_event_emit(MailAsyncEvent
/* We use an idle function instead of our own message port only because the
gui message ports's notification buffer might overflow and deadlock us */
if (type == MAIL_ASYNC_GUI) {
@@ -5761,7 +5958,7 @@
return id;
}
-@@ -762,7 +726,7 @@
+@@ -762,7 +731,7 @@ int mail_async_event_destroy(MailAsyncEv
g_mutex_lock(ea->lock);
while (ea->tasks) {
m = ea->tasks->data;
@@ -5770,7 +5967,7 @@
if (m->have_thread && pthread_equal(m->thread, thread)) {
g_warning("Destroying async event from inside an event, returning EDEADLK");
g_mutex_unlock(ea->lock);
-@@ -784,17 +748,18 @@
+@@ -784,17 +753,18 @@ int mail_async_event_destroy(MailAsyncEv
/* ********************************************************************** */
struct _call_msg {
@@ -5792,7 +5989,7 @@
void *p1, *p2, *p3, *p4, *p5;
int i1;
va_list ap;
-@@ -842,45 +807,48 @@
+@@ -842,45 +812,48 @@ do_call(struct _mail_msg *mm)
m->ret = m->func(p1, p2, i1, p3, p4, p5);
break;
}
@@ -5860,7 +6057,7 @@
return ret;
}
-@@ -889,40 +857,42 @@
+@@ -889,40 +862,42 @@ void *mail_call_main(mail_call_t type, M
/* locked via status_lock */
static int busy_state;
@@ -5915,7 +6112,7 @@
}
MAIL_MT_UNLOCK(status_lock);
}
-@@ -930,7 +900,7 @@
+@@ -930,7 +905,7 @@ void mail_disable_stop(void)
/* ******************************************************************************** */
struct _op_status_msg {
@@ -5924,7 +6121,7 @@
struct _CamelOperation *op;
char *what;
-@@ -938,16 +908,16 @@
+@@ -938,16 +913,16 @@ struct _op_status_msg {
void *data;
};
@@ -5946,7 +6143,7 @@
MAIL_MT_LOCK (mail_msg_lock);
-@@ -986,8 +956,8 @@
+@@ -986,8 +961,8 @@ static void do_op_status(struct _mail_ms
progress_icon = e_icon_factory_get_icon ("stock_mail-unread", E_ICON_SIZE_MENU);
MAIL_MT_UNLOCK (mail_msg_lock);
@@ -5957,7 +6154,7 @@
/* uncommenting because message is not very useful for a user, see bug 271734*/
else {
what = g_strdup("");
-@@ -1021,18 +991,17 @@
+@@ -1021,18 +996,17 @@ static void do_op_status(struct _mail_ms
}
static void
@@ -5983,7 +6180,7 @@
};
static void
-@@ -1042,7 +1011,7 @@
+@@ -1042,7 +1016,7 @@ mail_operation_status (struct _CamelOper
d(printf("got operation statys: %s %d%%\n", what, pc));
@@ -5992,7 +6189,7 @@
m->op = op;
m->what = g_strdup(what);
switch (pc) {
-@@ -1055,7 +1024,7 @@
+@@ -1055,7 +1029,7 @@ mail_operation_status (struct _CamelOper
}
m->pc = pc;
m->data = data;
@@ -6001,9 +6198,9 @@
}
/* ******************** */
---- evolution-2.11.2/plugins/folder-unsubscribe/folder-unsubscribe.c.kill-ethread 2007-04-18 06:17:14.000000000 -0400
-+++ evolution-2.11.2/plugins/folder-unsubscribe/folder-unsubscribe.c 2007-05-18 15:34:09.000000000 -0400
-@@ -44,32 +44,30 @@
+--- evolution-2.11.3/plugins/folder-unsubscribe/folder-unsubscribe.c.kill-ethread 2007-04-18 06:17:14.000000000 -0400
++++ evolution-2.11.3/plugins/folder-unsubscribe/folder-unsubscribe.c 2007-06-04 14:25:34.000000000 -0400
+@@ -44,32 +44,30 @@ void org_gnome_mail_folder_unsubscribe (
struct _folder_unsub_t {
@@ -6044,7 +6241,7 @@
if (((CamelService *) store)->provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH)
path = url->fragment;
else if (url->path && url->path[0])
-@@ -82,18 +80,17 @@
+@@ -82,18 +80,17 @@ folder_unsubscribe__unsub (struct _mail_
}
static void
@@ -6071,7 +6268,7 @@
};
-@@ -105,8 +102,8 @@
+@@ -105,8 +102,8 @@ org_gnome_mail_folder_unsubscribe (EPlug
if (target->uri == NULL)
return;
@@ -6082,9 +6279,9 @@
- e_thread_put (mail_thread_new, (EMsg *) unsub);
+ mail_msg_unordered_push (unsub);
}
---- evolution-2.11.2/plugins/mark-all-read/mark-all-read.c.kill-ethread 2007-05-14 00:24:02.000000000 -0400
-+++ evolution-2.11.2/plugins/mark-all-read/mark-all-read.c 2007-05-18 15:34:09.000000000 -0400
-@@ -44,7 +44,7 @@
+--- evolution-2.11.3/plugins/mark-all-read/mark-all-read.c.kill-ethread 2007-05-14 00:24:02.000000000 -0400
++++ evolution-2.11.3/plugins/mark-all-read/mark-all-read.c 2007-06-04 14:25:34.000000000 -0400
+@@ -44,7 +44,7 @@ org_gnome_mark_all_read (EPlugin *ep, EM
return;
}
@@ -6093,9 +6290,9 @@
}
static void
---- evolution-2.11.2/plugins/exchange-operations/exchange-folder.c.kill-ethread 2007-05-13 13:41:07.000000000 -0400
-+++ evolution-2.11.2/plugins/exchange-operations/exchange-folder.c 2007-05-18 15:34:09.000000000 -0400
-@@ -140,7 +140,7 @@
+--- evolution-2.11.3/plugins/exchange-operations/exchange-folder.c.kill-ethread 2007-05-13 13:41:07.000000000 -0400
++++ evolution-2.11.3/plugins/exchange-operations/exchange-folder.c 2007-06-04 14:25:34.000000000 -0400
+@@ -140,7 +140,7 @@ org_gnome_exchange_folder_inbox_unsubscr
inbox_physical_uri = e_folder_get_physical_uri (inbox);
/* To get the CamelStore/Folder */
@@ -6104,18 +6301,18 @@
}
---- evolution-2.11.2/plugins/save-attachments/save-attachments.c.kill-ethread 2007-04-18 06:17:20.000000000 -0400
-+++ evolution-2.11.2/plugins/save-attachments/save-attachments.c 2007-05-18 15:34:09.000000000 -0400
-@@ -403,5 +403,5 @@
+--- evolution-2.11.3/plugins/save-attachments/save-attachments.c.kill-ethread 2007-04-18 06:17:20.000000000 -0400
++++ evolution-2.11.3/plugins/save-attachments/save-attachments.c 2007-06-04 14:25:34.000000000 -0400
+@@ -403,5 +403,5 @@ org_gnome_save_attachments_save(EPlugin
camel_object_ref(data->folder);
data->uid = g_strdup(target->uids->pdata[0]);
- mail_get_message(data->folder, data->uid, save_got_message, data, mail_thread_new);
+ mail_get_message(data->folder, data->uid, save_got_message, data, mail_msg_unordered_push);
}
---- evolution-2.11.2/plugins/mailing-list-actions/mailing-list-actions.c.kill-ethread 2007-04-18 06:17:17.000000000 -0400
-+++ evolution-2.11.2/plugins/mailing-list-actions/mailing-list-actions.c 2007-05-18 15:34:09.000000000 -0400
-@@ -89,7 +89,7 @@
+--- evolution-2.11.3/plugins/mailing-list-actions/mailing-list-actions.c.kill-ethread 2007-04-18 06:17:17.000000000 -0400
++++ evolution-2.11.3/plugins/mailing-list-actions/mailing-list-actions.c 2007-06-04 14:25:34.000000000 -0400
+@@ -89,7 +89,7 @@ void emla_list_action (EPlugin *item, EM
data->uri = strdup (sel->uri);
mail_get_message (sel->folder, (const char*) g_ptr_array_index (sel->uids, 0),
@@ -6124,9 +6321,9 @@
}
void emla_list_action_do (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *data)
---- evolution-2.11.2/plugins/groupwise-features/share-folder-common.c.kill-ethread 2007-04-18 06:17:15.000000000 -0400
-+++ evolution-2.11.2/plugins/groupwise-features/share-folder-common.c 2007-05-18 15:34:09.000000000 -0400
-@@ -121,7 +121,7 @@
+--- evolution-2.11.3/plugins/groupwise-features/share-folder-common.c.kill-ethread 2007-04-18 06:17:15.000000000 -0400
++++ evolution-2.11.3/plugins/groupwise-features/share-folder-common.c 2007-06-04 14:25:34.000000000 -0400
+@@ -121,7 +121,7 @@ shared_folder_abort (EPlugin *ep, EConfi
}
struct _EMCreateFolder {
@@ -6135,7 +6332,7 @@
/* input data */
CamelStore *store;
-@@ -137,31 +137,26 @@
+@@ -137,31 +137,26 @@ struct _EMCreateFolder {
void *user_data;
};
@@ -6173,7 +6370,7 @@
struct ShareInfo *ssi = (struct ShareInfo *) m->user_data;
CamelStore *store = CAMEL_STORE (m->store) ;
EGwConnection *ccnc;
-@@ -180,10 +175,8 @@
+@@ -180,10 +175,8 @@ create_folder__created (struct _mail_msg
}
static void
@@ -6185,7 +6382,7 @@
camel_store_free_folder_info (m->store, m->fi);
camel_object_unref (m->store);
g_free (m->full_name);
-@@ -191,11 +184,12 @@
+@@ -191,11 +184,12 @@ create_folder__free (struct _mail_msg *m
g_free (m->name);
}
@@ -6203,7 +6400,7 @@
};
static void
-@@ -229,7 +223,7 @@
+@@ -229,7 +223,7 @@ create_folder (CamelStore *store, const
parent = namebuf;
}
@@ -6212,7 +6409,7 @@
camel_object_ref (store);
m->store = store;
m->full_name = g_strdup (full_name);
-@@ -238,8 +232,8 @@
+@@ -238,8 +232,8 @@ create_folder (CamelStore *store, const
m->user_data = (struct ShareInfo *) user_data;
m->done = done;
g_free (namebuf);
@@ -6223,9 +6420,9 @@
return id;
}
---- evolution-2.11.2/calendar/gui/alarm-notify/alarm-notify.h.kill-ethread 2007-04-18 06:18:37.000000000 -0400
-+++ evolution-2.11.2/calendar/gui/alarm-notify/alarm-notify.h 2007-05-18 15:34:09.000000000 -0400
-@@ -39,19 +39,6 @@
+--- evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.h.kill-ethread 2007-04-18 06:18:37.000000000 -0400
++++ evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.h 2007-06-04 14:25:34.000000000 -0400
+@@ -39,19 +39,6 @@ typedef struct _AlarmNotifyClass AlarmNo
typedef struct _AlarmNotifyPrivate AlarmNotifyPrivate;
@@ -6245,9 +6442,9 @@
struct _AlarmNotify {
BonoboObject object;
---- evolution-2.11.2/calendar/gui/alarm-notify/alarm-notify.c.kill-ethread 2007-04-18 06:18:37.000000000 -0400
-+++ evolution-2.11.2/calendar/gui/alarm-notify/alarm-notify.c 2007-05-18 15:34:09.000000000 -0400
-@@ -45,10 +45,6 @@
+--- evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.c.kill-ethread 2007-04-18 06:18:37.000000000 -0400
++++ evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.c 2007-06-04 14:25:34.000000000 -0400
+@@ -45,10 +45,6 @@ struct _AlarmNotifyPrivate {
GMutex *mutex;
};
@@ -6258,7 +6455,7 @@
#define d(x) x
-@@ -286,72 +282,12 @@
+@@ -286,72 +282,12 @@ alarm_notify_finalize (GObject *object)
g_mutex_free (priv->mutex);
g_free (priv);
@@ -6331,7 +6528,7 @@
/**
* alarm_notify_new:
*
-@@ -363,23 +299,10 @@
+@@ -363,23 +299,10 @@ alarm_msg_received(EThread *e, EMsg *msg
AlarmNotify *
alarm_notify_new (void)
{
@@ -6359,9 +6556,9 @@
}
static void
---- evolution-2.11.2/calendar/gui/alarm-notify/alarm-queue.c.kill-ethread 2007-05-09 00:14:46.000000000 -0400
-+++ evolution-2.11.2/calendar/gui/alarm-notify/alarm-queue.c 2007-05-18 15:34:09.000000000 -0400
-@@ -115,9 +115,6 @@
+--- evolution-2.11.3/calendar/gui/alarm-notify/alarm-queue.c.kill-ethread 2007-06-01 03:09:22.000000000 -0400
++++ evolution-2.11.3/calendar/gui/alarm-notify/alarm-queue.c 2007-06-04 14:25:34.000000000 -0400
+@@ -97,9 +97,6 @@ static int tray_blink_id = -1;
static int tray_blink_state = FALSE;
static AlarmNotify *an;
@@ -6371,7 +6568,7 @@
/* Structure that stores a client we are monitoring */
typedef struct {
/* Monitored client */
-@@ -199,6 +196,40 @@
+@@ -181,6 +178,40 @@ static void on_dialog_objs_removed_cb (E
static void load_alarms_for_today (ClientAlarms *ca);
static void midnight_refresh_cb (gpointer alarm_id, time_t trigger, gpointer data);
@@ -6412,7 +6609,7 @@
/* Queues an alarm trigger for midnight so that we can load the next day's worth
* of alarms.
*/
-@@ -237,47 +268,41 @@
+@@ -219,47 +250,41 @@ add_client_alarms_cb (gpointer key, gpoi
}
struct _midnight_refresh_msg {
@@ -6470,7 +6667,7 @@
}
/* Looks up a client in the client alarms hash table */
-@@ -636,6 +661,7 @@
+@@ -618,6 +643,7 @@ remove_comp (ClientAlarms *ca, ECalCompo
* alarms.
*/
struct _query_msg {
@@ -6478,7 +6675,7 @@
ECal *client;
GList *objects;
gpointer data;
-@@ -669,7 +695,7 @@
+@@ -651,7 +677,7 @@ duplicate_ecal (GList *in_list)
}
static void
@@ -6487,7 +6684,7 @@
{
ClientAlarms *ca;
time_t from, day_end;
-@@ -678,13 +704,12 @@
+@@ -660,13 +686,12 @@ query_objects_changed_async (EThread *e,
icaltimezone *zone;
CompQueuedAlarms *cqa;
GList *l;
@@ -6504,7 +6701,7 @@
from = config_data_get_last_notification_time ();
if (from == -1)
-@@ -773,43 +798,38 @@
+@@ -755,43 +780,38 @@ query_objects_changed_async (EThread *e,
comp = NULL;
}
g_list_free (objects);
@@ -6561,7 +6758,7 @@
d(printf("%s:%d (query_objects_removed_async) - Removing %d objects\n",__FILE__, __LINE__, g_list_length(objects)));
-@@ -822,27 +842,22 @@
+@@ -804,27 +824,22 @@ query_objects_removed_async (EThread *e,
}
g_list_free (objects);
@@ -6598,7 +6795,7 @@
}
-@@ -989,20 +1004,19 @@
+@@ -966,20 +981,19 @@ free_tray_icon_data (TrayIconData *tray_
}
static void
@@ -6623,7 +6820,7 @@
e_cal_component_get_uid (tray_data->comp, &our_uid);
g_return_if_fail (our_uid && *our_uid);
-@@ -1020,37 +1034,33 @@
+@@ -997,37 +1011,33 @@ on_dialog_objs_removed_async (EThread *e
tray_data = NULL;
}
}
@@ -6673,7 +6870,7 @@
GList *list = tray_icons_list;
d(printf("%s:%d (tray_list_remove_cqa_async) - Removing CQA %p from tray list\n",__FILE__, __LINE__, cqa));
-@@ -1089,28 +1099,25 @@
+@@ -1066,28 +1076,25 @@ tray_list_remove_cqa_async(EThread *e, A
gtk_tree_selection_select_iter (sel, &iter);
}
}
@@ -6711,7 +6908,7 @@
{
GList *list = tray_icons_list;
-@@ -1140,55 +1147,50 @@
+@@ -1117,55 +1124,50 @@ tray_list_remove_async(EThread *e, Alarm
} else
list = list->next;
}
@@ -6785,7 +6982,7 @@
}
static void
-@@ -1412,29 +1414,24 @@
+@@ -1372,29 +1374,24 @@ tray_icon_blink_cb (gpointer data)
/* Add a new data to tray list */
static void
@@ -6826,7 +7023,7 @@
}
/* Performs notification of a display alarm */
-@@ -1862,21 +1859,13 @@
+@@ -1791,21 +1788,13 @@ check_midnight_refresh (gpointer user_da
new_midnight = time_day_end_with_zone (time (NULL), zone);
if (new_midnight > midnight) {
@@ -6853,7 +7050,7 @@
}
return TRUE;
-@@ -2007,14 +1996,15 @@
+@@ -1936,14 +1925,15 @@ hash_ids (gpointer a)
}
struct _alarm_client_msg {
@@ -6872,7 +7069,7 @@
g_return_if_fail (alarm_queue_inited);
g_return_if_fail (client != NULL);
-@@ -2045,6 +2035,8 @@
+@@ -1974,6 +1964,8 @@ static void alarm_queue_add_async (EThre
G_CALLBACK (cal_opened_cb),
ca);
}
@@ -6881,7 +7078,7 @@
}
/**
-@@ -2064,20 +2056,13 @@
+@@ -1993,20 +1985,13 @@ static void alarm_queue_add_async (EThre
void
alarm_queue_add_client (ECal *client)
{
@@ -6907,7 +7104,7 @@
}
/* Removes a component an its alarms */
-@@ -2129,11 +2114,10 @@
+@@ -2058,11 +2043,10 @@ remove_client_alarms (ClientAlarms *ca)
* Removes a calendar client from the alarm queueing system.
**/
static void
@@ -6921,7 +7118,7 @@
g_return_if_fail (alarm_queue_inited);
g_return_if_fail (client != NULL);
-@@ -2170,24 +2154,20 @@
+@@ -2099,24 +2083,20 @@ alarm_queue_remove_async (EThread *e, Al
g_free (ca);
g_hash_table_remove (client_alarms_hash, client);
diff --git a/evolution-2.9.1-kill-ememory.patch b/evolution-2.9.1-kill-ememory.patch
index d873dba..753fe08 100644
--- a/evolution-2.9.1-kill-ememory.patch
+++ b/evolution-2.9.1-kill-ememory.patch
@@ -56,7 +56,7 @@
- const unsigned char *subject;
-
- subject = (const unsigned char *) string;
-- while (!g_ascii_strncasecmp (subject, "Re:", 3)) {
+- while (!g_ascii_strncasecmp ((char *)subject, "Re:", 3)) {
- subject += 3;
-
- /* jump over any spaces */
diff --git a/evolution.spec b/evolution.spec
index 71efb8c..01393f1 100644
--- a/evolution.spec
+++ b/evolution.spec
@@ -44,8 +44,8 @@
### Abstract ###
Name: evolution
-Version: 2.11.2
-Release: 2%{?dist}
+Version: 2.11.3
+Release: 1%{?dist}
License: GPL
Group: Applications/Productivity
Summary: GNOME's next-generation groupware suite
@@ -95,9 +95,6 @@ Patch20: evolution-2.7.3-replicated-cjk-input.patch
# RH bug #178295 / GNOME bug #348638
Patch21: evolution-2.7.4-deleting-preedit-buffer.patch
-# RH bug #202289
-Patch22: evolution-2.7.92-fix-prgname.patch
-
# RH bug #161885 / GNOME bug #309166
Patch23: evolution-2.8.0-indic-cursor-movement.patch
@@ -134,14 +131,8 @@ Patch33: evolution-2.10.0-e-passwords.patch
# GNOME bug #417999
Patch34: evolution-2.10.0-e-source-combo-box.patch
-# RH bug #235878 / GNOME bug #386503
-Patch35: evolution-2.10.1-fix-help.patch
-
-# RH bug #238155 / GNOME bug #427232
-Patch36: evolution-2.10.1-check-uri-before-strcmp.patch
-
-# RH bug #240147 / GNOME bug #335241
-Patch37: evolution-2.10.1-send-recv-dialog.patch
+# Upstream really needs to use -Werror-implicit-function-declaration.
+Patch35: evolution-2.11.3-implicit-function-declaration.patch
## Dependencies ###
@@ -270,7 +261,6 @@ Development files needed for building things which link against evolution.
%patch19 -p1 -b .candidate-window-position-calendar
%patch20 -p1 -b .replicated-cjk-input
%patch21 -p1 -b .deleting-preedit-buffer
-%patch22 -p1 -b .fix-prgname
%patch23 -p1 -b .indic-cursor-movement
%patch24 -p1 -b .fix-indic-printing
%patch25 -p1 -b .kill-ethread
@@ -283,9 +273,7 @@ Development files needed for building things which link against evolution.
%patch32 -p1 -b .view-message-source
%patch33 -p1 -b .e-passwords
%patch34 -p1 -b .e-source-combo-box
-%patch35 -p1 -b .fix-help
-%patch36 -p1 -b .check-uri-before-strcmp
-%patch37 -p1 -b .send-recv-dialog
+%patch35 -p1 -b .implicit-function-declaration
mkdir -p krb5-fakeprefix/include
mkdir -p krb5-fakeprefix/lib
@@ -428,9 +416,6 @@ rm -f $RPM_BUILD_ROOT/%{_datadir}/applications/evolution.desktop
rm -f $RPM_BUILD_ROOT%{_datadir}/mime-info/evolution.keys
rm -f $RPM_BUILD_ROOT%{_datadir}/mime-info/evolution.mime
-# evolution link
-ln -sf ./evolution-%{evo_major} $RPM_BUILD_ROOT/%{_bindir}/evolution
-
for serverfile in $RPM_BUILD_ROOT%{_libdir}/bonobo/servers/*.server; do
sed -i -e 's|location *= *"/usr/lib\(64\)*/|location="/usr/$LIB/|' $serverfile
done
@@ -442,12 +427,13 @@ scrollkeeper-update -q
touch --no-create %{_datadir}/icons/hicolor || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps-evolution-mail-prompts-checkdefault-%{evo_major}.schemas > /dev/null
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps_evolution_addressbook-%{evo_major}.schemas > /dev/null
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps_evolution_calendar-%{evo_major}.schemas > /dev/null
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps_evolution_shell-%{evo_major}.schemas > /dev/null
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/bogo-junk-plugin-%{evo_major}.schemas > /dev/null
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/evolution-mail-%{evo_major}.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps-evolution-mail-notification.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps-evolution-mail-prompts-checkdefault.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps_evolution_addressbook.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps_evolution_calendar.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/apps_evolution_shell.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/bogo-junk-plugin.schemas > /dev/null
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/evolution-mail.schemas > /dev/null
%postun
/sbin/ldconfig
@@ -463,15 +449,15 @@ rm -rf $RPM_BUILD_ROOT
%doc AUTHORS COPYING ChangeLog NEWS README
# GConf schemas:
-%{_sysconfdir}/gconf/schemas/apps-evolution-mail-prompts-checkdefault-%{evo_major}.schemas
-%{_sysconfdir}/gconf/schemas/apps_evolution_addressbook-%{evo_major}.schemas
-%{_sysconfdir}/gconf/schemas/apps_evolution_calendar-%{evo_major}.schemas
-%{_sysconfdir}/gconf/schemas/apps_evolution_shell-%{evo_major}.schemas
-%{_sysconfdir}/gconf/schemas/bogo-junk-plugin-%{evo_major}.schemas
-%{_sysconfdir}/gconf/schemas/evolution-mail-%{evo_major}.schemas
+%{_sysconfdir}/gconf/schemas/apps-evolution-mail-notification.schemas
+%{_sysconfdir}/gconf/schemas/apps-evolution-mail-prompts-checkdefault.schemas
+%{_sysconfdir}/gconf/schemas/apps_evolution_addressbook.schemas
+%{_sysconfdir}/gconf/schemas/apps_evolution_calendar.schemas
+%{_sysconfdir}/gconf/schemas/apps_evolution_shell.schemas
+%{_sysconfdir}/gconf/schemas/bogo-junk-plugin.schemas
+%{_sysconfdir}/gconf/schemas/evolution-mail.schemas
-# The main executable and a symlink:
-%{_bindir}/evolution-%{evo_major}
+# The main executable
%{_bindir}/evolution
# Desktop files:
@@ -506,11 +492,11 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/evolution/%{evo_major}
# Bonobo components:
-%{_libdir}/bonobo/servers/GNOME_Evolution_Addressbook_%{evo_major}.server
-%{_libdir}/bonobo/servers/GNOME_Evolution_Calendar_%{evo_major}.server
-%{_libdir}/bonobo/servers/GNOME_Evolution_Calendar_AlarmNotify_%{evo_major}.server
-%{_libdir}/bonobo/servers/GNOME_Evolution_Mail_%{evo_major}.server
-%{_libdir}/bonobo/servers/GNOME_Evolution_Shell_%{evo_major}.server
+%{_libdir}/bonobo/servers/GNOME_Evolution_Addressbook.server
+%{_libdir}/bonobo/servers/GNOME_Evolution_Calendar.server
+%{_libdir}/bonobo/servers/GNOME_Evolution_Calendar_AlarmNotify.server
+%{_libdir}/bonobo/servers/GNOME_Evolution_Mail.server
+%{_libdir}/bonobo/servers/GNOME_Evolution_Shell.server
%dir %{_libdir}/evolution
%dir %{_libdir}/evolution/%{evo_major}
%dir %{_libdir}/evolution/%{evo_major}/components
@@ -556,16 +542,16 @@ rm -rf $RPM_BUILD_ROOT
%dir %{_libdir}/evolution/%{evo_major}/conduits
%{_libdir}/evolution/%{evo_major}/conduits/libeaddress_conduit.so
-%{_libdir}/gnome-pilot/conduits/e-address-%{evo_major}.conduit
+%{_libdir}/gnome-pilot/conduits/e-address.conduit
%{_libdir}/evolution/%{evo_major}/conduits/libecalendar_conduit.so
-%{_libdir}/gnome-pilot/conduits/e-calendar-%{evo_major}.conduit
+%{_libdir}/gnome-pilot/conduits/e-calendar.conduit
%{_libdir}/evolution/%{evo_major}/conduits/libememo_conduit.so
-%{_libdir}/gnome-pilot/conduits/e-memo-%{evo_major}.conduit
+%{_libdir}/gnome-pilot/conduits/e-memo.conduit
%{_libdir}/evolution/%{evo_major}/conduits/libetodo_conduit.so
-%{_libdir}/gnome-pilot/conduits/e-todo-%{evo_major}.conduit
+%{_libdir}/gnome-pilot/conduits/e-todo.conduit
%endif
# The plugin directory:
@@ -695,8 +681,8 @@ rm -rf $RPM_BUILD_ROOT
%files devel
%defattr(-, root, root)
%{_includedir}/evolution-%{evo_major}
-%{_libdir}/pkgconfig/evolution-plugin-%{evo_major}.pc
-%{_libdir}/pkgconfig/evolution-shell-%{evo_major}.pc
+%{_libdir}/pkgconfig/evolution-plugin.pc
+%{_libdir}/pkgconfig/evolution-shell.pc
%{_libdir}/evolution/%{evo_major}/libeabutil.so
%{_libdir}/evolution/%{evo_major}/libeconduit.so
%{_libdir}/evolution/%{evo_major}/libecontacteditor.so
@@ -721,6 +707,14 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/evolution/%{evo_major}/libmenus.so
%changelog
+* Mon Jun 04 2007 Matthew Barnes - 2.11.3-1.fc8
+- Update to 2.11.3
+- Evolution no longer has versioned file names.
+- Remove patch for RH bug #202289 (fixed upstream).
+- Remove patch for RH bug #235878 (fixed upstream).
+- Remove patch for RH bug #238155 (fixed upstream).
+- Remove patch for RH bug #240147 (fixed upstream).
+
* Thu May 31 2007 Matthew Barnes - 2.11.2-2.fc8
- Evolution no longer requires libgnomeprint[ui].
diff --git a/sources b/sources
index f210fd0..5e28d1d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7f684d90627bacd6e4a7997592112484 evolution-2.11.2.tar.bz2
+4aa1a1a4b4cf51d64eb259ae3769c8d0 evolution-2.11.3.tar.bz2