diff options
author | bertrand <Bertrand.Guiheneuf@aful.org> | 2000-02-22 19:16:36 +0800 |
---|---|---|
committer | Bertrand Guiheneuf <bertrand@src.gnome.org> | 2000-02-22 19:16:36 +0800 |
commit | f65a2d78c6cb123fd94b173aa4e877f22d314d4c (patch) | |
tree | 3a3cba1006293ae988dd1213a0f88bdd90dab8b7 /mail | |
parent | 7c6897ee95e4346e991185c014bcfce003809fd8 (diff) | |
download | gsoc2013-evolution-f65a2d78c6cb123fd94b173aa4e877f22d314d4c.tar.gz gsoc2013-evolution-f65a2d78c6cb123fd94b173aa4e877f22d314d4c.tar.zst gsoc2013-evolution-f65a2d78c6cb123fd94b173aa4e877f22d314d4c.zip |
fix to show a sample correct implementation.
2000-02-22 bertrand <Bertrand.Guiheneuf@aful.org>
* message-list.c (message_list_set_folder):
fix to show a sample correct implementation.
* camel-folder.c (camel_folder_get_subfolder):
(camel_folder_create):
(camel_folder_delete):
(camel_folder_delete_messages):
(camel_folder_list_subfolders):
(camel_folder_expunge):
(camel_folder_get_message_by_number):
(camel_folder_get_message_count):
(camel_folder_append_message):
(camel_folder_copy_message_to):
(camel_folder_get_summary):
(camel_folder_get_message_uid):
(camel_folder_get_message_by_uid):
(camel_folder_get_uid_list):
Check folder state (open/close) and raise an
exception if it is not ok.
* providers/mbox/camel-mbox-folder.c (_create):
create the file and the path with two different
names.
* camel-folder.c (_create): handle the case
when the folder name starts with '/'
* camel-exception.c (camel_exception_new): use
(void) instead of () in decl.
* camel-exception.h: cosmetic fixes.
* camel-exception.c (camel_exception_init): new routine.
Fix a bug in mail/message-list.c
* camel-folder.h: cosmetic changes.
* camel-stream-b64.c (reset__static): added a
reset method. Thanks message-browser to find
so much bugs :)
* providers/mbox/Makefile.am (libcamelmbox_la_LIBADD): readd
Unicode libs.
Fixes and exception handling in camel-folder.
Fixes in mail/evolution-mail to make it not
segfault and to demonstrate a correct implementation.
svn path=/trunk/; revision=1902
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 5 | ||||
-rw-r--r-- | mail/folder-browser.c | 5 | ||||
-rw-r--r-- | mail/message-list.c | 42 |
3 files changed, 49 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index a4ba0b1fce..f16399f24c 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,8 @@ +2000-02-22 bertrand <Bertrand.Guiheneuf@aful.org> + + * message-list.c (message_list_set_folder): + fix to show a sample correct implementation. + 2000-02-21 Matt Loper <matt@helixcode.com> * Makefile.am: added -lunicode to evolution_mail_LDADD. diff --git a/mail/folder-browser.c b/mail/folder-browser.c index e6fe8d496a..85a09395a8 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -65,7 +65,10 @@ folder_browser_load_folder (FolderBrowser *fb, const char *name) gtk_object_unref (GTK_OBJECT (fb->folder)); fb->folder = new_folder; - + + camel_folder_exists (new_folder, NULL); + printf ("In folder browser, folder = %p\n", new_folder); + message_list_set_folder (fb->message_list, new_folder); return TRUE; diff --git a/mail/message-list.c b/mail/message-list.c index 7da9b9fa8b..6f571c1029 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -457,19 +457,57 @@ void message_list_set_folder (MessageList *message_list, CamelFolder *camel_folder) { CamelException ex; - + gboolean folder_exists; + g_return_if_fail (message_list != NULL); g_return_if_fail (camel_folder != NULL); g_return_if_fail (IS_MESSAGE_LIST (message_list)); g_return_if_fail (CAMEL_IS_FOLDER (camel_folder)); g_return_if_fail (camel_folder_has_summary_capability (camel_folder, &ex)); + + camel_exception_init (&ex); + if (message_list->folder) gtk_object_unref (GTK_OBJECT (message_list->folder)); message_list->folder = camel_folder; - message_list->folder_summary = camel_folder_get_summary (camel_folder, &ex); + folder_exists = camel_folder_exists (camel_folder, NULL); + + if (camel_exception_get_id (&ex)) { + printf ("Unable to test for folder existence \n"); + return; + } + + if (!folder_exists) { + g_warning ("Folder does not exist, creating it\n"); + /* + if you don't want the directory to be created + automatically here remove this. + */ + camel_folder_create (camel_folder, &ex); + if (camel_exception_get_id (&ex)) { + printf ("Unable to create folder\n"); + return; + } + + } + + + camel_folder_open (camel_folder, FOLDER_OPEN_RW, &ex); + if (camel_exception_get_id (&ex)) { + printf ("Unable to open folder\n"); + return; + } + + message_list->folder_summary = camel_folder_get_summary (camel_folder, &ex); + if (camel_exception_get_id (&ex)) { + printf ("Unable to get summary \n"); + return; + } + + gtk_object_ref (GTK_OBJECT (camel_folder)); printf ("Modelo cambio!\n"); |