diff -Nru /tmp/pNQLzlPiFA/evolution-data-server-1.12.1/debian/changelog /tmp/KhphbmBxJk/evolution-data-server-1.12.1/debian/changelog --- /tmp/pNQLzlPiFA/evolution-data-server-1.12.1/debian/changelog 2007-12-16 17:58:12.000000000 +0000 +++ /tmp/KhphbmBxJk/evolution-data-server-1.12.1/debian/changelog 2007-12-16 17:58:21.000000000 +0000 @@ -1,3 +1,12 @@ +evolution-data-server (1.12.1-0ubuntu2) gutsy; urgency=low + + * debian/patches/added 80_patch_download_for_offline_LP145458.patch + - patch from GNOME bug #474118, close + Evolution crashed : clicked on 'dowload message for offline' option + (LP: #145458) + + -- Emmanuel Bretelle Sun, 16 Dec 2007 16:18:34 +0000 + evolution-data-server (1.12.1-0ubuntu1) gutsy-proposed; urgency=low * New upstream version: diff -Nru /tmp/pNQLzlPiFA/evolution-data-server-1.12.1/debian/patches/80_patch_download_for_offline_LP145458.patch /tmp/KhphbmBxJk/evolution-data-server-1.12.1/debian/patches/80_patch_download_for_offline_LP145458.patch --- /tmp/pNQLzlPiFA/evolution-data-server-1.12.1/debian/patches/80_patch_download_for_offline_LP145458.patch 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/KhphbmBxJk/evolution-data-server-1.12.1/debian/patches/80_patch_download_for_offline_LP145458.patch 2007-12-16 17:58:21.000000000 +0000 @@ -0,0 +1,59 @@ +Index: camel/camel-offline-store.h +=================================================================== +--- camel/camel-offline-store.h (revision 8175) ++++ camel/camel-offline-store.h (working copy) +@@ -65,6 +65,8 @@ + + void camel_offline_store_set_network_state (CamelOfflineStore *store, int state, CamelException *ex); + ++void camel_offline_store_prepare_for_offline (CamelOfflineStore *store, CamelException *ex); ++ + G_END_DECLS + + #endif /* __CAMEL_OFFLINE_STORE_H__ */ +Index: camel/camel-offline-store.c +=================================================================== +--- camel/camel-offline-store.c (revision 8175) ++++ camel/camel-offline-store.c (working copy) +@@ -163,3 +163,41 @@ + + store->state = state; + } ++ ++void ++camel_offline_store_prepare_for_offline (CamelOfflineStore *store, CamelException *ex) ++{ ++ CamelException lex; ++ CamelService *service = CAMEL_SERVICE (store); ++ gboolean network_state = camel_session_get_network_state (service->session); ++ ++ camel_exception_init (&lex); ++ if (network_state) { ++ if (store->state == CAMEL_OFFLINE_STORE_NETWORK_AVAIL) { ++ if (((CamelStore *) store)->folders) { ++ GPtrArray *folders; ++ CamelFolder *folder; ++ int i, sync; ++ ++ sync = camel_url_get_param (((CamelService *) store)->url, "sync_offline") != NULL; ++ ++ folders = camel_object_bag_list (((CamelStore *) store)->folders); ++ for (i = 0; i < folders->len; i++) { ++ folder = folders->pdata[i]; ++ ++ if (CAMEL_CHECK_TYPE (folder, CAMEL_OFFLINE_FOLDER_TYPE) ++ && (sync || ((CamelOfflineFolder *) folder)->sync_offline)) { ++ camel_offline_folder_downsync ((CamelOfflineFolder *) folder, NULL, &lex); ++ camel_exception_clear (&lex); ++ } ++ camel_object_unref (folder); ++ } ++ g_ptr_array_free (folders, TRUE); ++ } ++ } ++ ++ camel_store_sync (CAMEL_STORE (store), FALSE, &lex); ++ camel_exception_clear (&lex); ++ ++ } ++}