diff options
-rw-r--r-- | mail/ChangeLog | 8 | ||||
-rw-r--r-- | mail/mail-ops.c | 572 |
2 files changed, 95 insertions, 485 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index ffe6d54400..200f4df407 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2000-09-25 Dan Winship <danw@helixcode.com> + + * mail-ops.c: CamelException is not for compile-time errors. + Replace lots of argument checks in setup_ functions with + g_return_if_fails in the public functions. Also remove some + prototypes that weren't needed because they were for static + functions that are defined before they're used. + 2000-09-23 Michael Meeks <michael@helixcode.com> * folder-browser-factory.c (set_pixmap): upd. diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 6d049fdfe1..a2fd820dfa 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -5,7 +5,6 @@ * Author : * Dan Winship <danw@helixcode.com> * Peter Williams <peterw@helixcode.com> - * Jeffrey Stedfast <fejj@helixcode.com> * * Copyright 2000 Helix Code, Inc. (http://www.helixcode.com) * @@ -50,28 +49,20 @@ typedef struct fetch_mail_data_s { gboolean empty; } fetch_mail_data_t; -static gchar *describe_fetch_mail (gpointer in_data, gboolean gerund); -static void setup_fetch_mail (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_fetch_mail (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_fetch_mail (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_fetch_mail (gpointer in_data, gboolean gerund) { fetch_mail_input_t *input = (fetch_mail_input_t *) in_data; char *name; - + /*source = camel_session_get_store (session, input->source_url, NULL); *if (source) { * name = camel_service_get_name (CAMEL_SERVICE (source), FALSE); * camel_object_unref (CAMEL_OBJECT (source)); *} else */ - name = input->source_url; - + name = input->source_url; + if (gerund) return g_strdup_printf (_("Fetching email from %s"), name); else @@ -83,25 +74,10 @@ setup_fetch_mail (gpointer in_data, gpointer op_data, CamelException *ex) { fetch_mail_input_t *input = (fetch_mail_input_t *) in_data; fetch_mail_data_t *data = (fetch_mail_data_t *) op_data; - - if (!input->source_url) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - _("You have no remote mail source configured " - "to fetch mail from.")); - return; - } - - if (input->destination == NULL) - return; - - if (!CAMEL_IS_FOLDER (input->destination)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - _("Bad folder passed to fetch_mail")); - return; - } - + data->empty = FALSE; - camel_object_ref (CAMEL_OBJECT (input->destination)); + if (input->destination) + camel_object_ref (CAMEL_OBJECT (input->destination)); } static void @@ -291,6 +267,10 @@ mail_do_fetch_mail (const gchar *source_url, gboolean keep_on_server, { fetch_mail_input_t *input; + g_return_if_fail (source_url != NULL); + g_return_if_fail (destination == NULL || + CAMEL_IS_FOLDER (input->destination)); + input = g_new (fetch_mail_input_t, 1); input->source_url = g_strdup (source_url); input->keep_on_server = keep_on_server; @@ -310,23 +290,9 @@ typedef struct filter_ondemand_input_s CamelFolder *destination; } filter_ondemand_input_t; -typedef struct filter_ondemand_data_s { - gboolean empty; -} filter_ondemand_data_t; - -static gchar *describe_filter_ondemand (gpointer in_data, gboolean gerund); -static void setup_filter_ondemand (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_filter_ondemand (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_filter_ondemand (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_filter_ondemand (gpointer in_data, gboolean gerund) { - /*filter_ondemand_input_t *input = (filter_ondemand_input_t *) in_data;*/ - if (gerund) return g_strdup_printf (_("Filtering email on demand")); else @@ -337,49 +303,21 @@ static void setup_filter_ondemand (gpointer in_data, gpointer op_data, CamelException *ex) { filter_ondemand_input_t *input = (filter_ondemand_input_t *) in_data; - filter_ondemand_data_t *data = (filter_ondemand_data_t *) op_data; - - if (!IS_FILTER_CONTEXT (input->context)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - _("Bad filter context specified")); - return; - } - - if (input->source == NULL) - return; - - if (!CAMEL_IS_FOLDER (input->source)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - _("Bad input source defined for filtering")); - return; - } - - if (input->destination == NULL) - return; - - if (!CAMEL_IS_FOLDER (input->destination)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - _("Bad default destination folder")); - return; - } - - data->empty = FALSE; - + gtk_object_ref (GTK_OBJECT (input->context)); - camel_object_ref (CAMEL_OBJECT (input->source)); - camel_object_ref (CAMEL_OBJECT (input->destination)); + if (input->source) + camel_object_ref (CAMEL_OBJECT (input->source)); + if (input->destination) + camel_object_ref (CAMEL_OBJECT (input->destination)); } static void do_filter_ondemand (gpointer in_data, gpointer op_data, CamelException *ex) { filter_ondemand_input_t *input = (filter_ondemand_input_t *) in_data; - filter_ondemand_data_t *data = (filter_ondemand_data_t *) op_data; mail_tool_camel_lock_up (); - if (camel_folder_get_message_count (input->source) == 0) { - data->empty = TRUE; - } else { + if (camel_folder_get_message_count (input->source) != 0) { FilterDriver *driver; GPtrArray *uids; int i; @@ -435,8 +373,6 @@ do_filter_ondemand (gpointer in_data, gpointer op_data, CamelException *ex) camel_folder_thaw (input->source); camel_folder_free_uids (input->source, uids); - - data->empty = FALSE; } mail_tool_camel_lock_down (); } @@ -445,7 +381,6 @@ static void cleanup_filter_ondemand (gpointer in_data, gpointer op_data, CamelException *ex) { filter_ondemand_input_t *input = (filter_ondemand_input_t *) in_data; - /*filter_ondemand_data_t *data = (filter_ondemand_data_t *) op_data;*/ if (input->source) camel_object_unref (CAMEL_OBJECT (input->source)); @@ -459,7 +394,7 @@ cleanup_filter_ondemand (gpointer in_data, gpointer op_data, CamelException *ex) static const mail_operation_spec op_filter_ondemand = { describe_filter_ondemand, - sizeof (filter_ondemand_data_t), + 0, setup_filter_ondemand, do_filter_ondemand, cleanup_filter_ondemand @@ -470,6 +405,10 @@ mail_do_filter_ondemand (FilterContext *context, CamelFolder *source, CamelFolde { filter_ondemand_input_t *input; + g_return_if_fail (IS_FILTER_CONTEXT (context)); + g_return_if_fail (source == NULL || CAMEL_IS_FOLDER (source)); + g_return_if_fail (destination == NULL || CAMEL_IS_FOLDER (destination)); + input = g_new (filter_ondemand_input_t, 1); input->context = context; input->source = source; @@ -496,15 +435,6 @@ typedef struct send_mail_input_s } send_mail_input_t; -static gchar *describe_send_mail (gpointer in_data, gboolean gerund); -static void setup_send_mail (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_send_mail (gpointer in_data, gpointer op_data, - - CamelException *ex); -static void cleanup_send_mail (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_send_mail (gpointer in_data, gboolean gerund) { @@ -532,45 +462,9 @@ setup_send_mail (gpointer in_data, gpointer op_data, CamelException *ex) { send_mail_input_t *input = (send_mail_input_t *) in_data; - if (!input->xport_uri) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't really need i18n */ - "No transport URI specified for send_mail operation."); - return; - } - - if (!CAMEL_IS_MIME_MESSAGE (input->message)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No message specified for send_mail operation."); - return; - } - - /* NOTE THE EARLY EXIT!! */ - - if (input->done_folder == NULL) { - camel_object_ref (CAMEL_OBJECT (input->message)); - if (input->composer) { - gtk_object_ref (GTK_OBJECT (input->composer)); - gtk_widget_hide (GTK_WIDGET (input->composer)); - } - return; - } - - if (!CAMEL_IS_FOLDER (input->done_folder)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "Bad done_folder specified for send_mail operation."); - return; - } - - if (input->done_uid == NULL) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No done_uid specified for send_mail operation."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->message)); - camel_object_ref (CAMEL_OBJECT (input->done_folder)); - + if (input->done_folder) + camel_object_ref (CAMEL_OBJECT (input->done_folder)); if (input->composer) { gtk_object_ref (GTK_OBJECT (input->composer)); gtk_widget_hide (GTK_WIDGET (input->composer)); @@ -671,6 +565,12 @@ mail_do_send_mail (const char *xport_uri, { send_mail_input_t *input; + g_return_if_fail (xport_uri != NULL); + g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message)); + g_return_if_fail (done_folder == NULL || + CAMEL_IS_FOLDER (done_folder)); + g_return_if_fail (done_folder == NULL || done_uid != NULL); + input = g_new (send_mail_input_t, 1); input->xport_uri = g_strdup (xport_uri); input->message = message; @@ -691,14 +591,6 @@ typedef struct send_queue_input_s } send_queue_input_t; -static gchar *describe_send_queue (gpointer in_data, gboolean gerund); -static void setup_send_queue (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_send_queue (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_send_queue (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_send_queue (gpointer in_data, gboolean gerund) { @@ -716,19 +608,6 @@ setup_send_queue (gpointer in_data, gpointer op_data, CamelException *ex) { send_queue_input_t *input = (send_queue_input_t *) in_data; - if (!input->xport_uri) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't really need i18n */ - "No transport URI specified for send_queue operation."); - return; - } - - if (!CAMEL_IS_FOLDER (input->folder_queue)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No queue specified for send_queue operation."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->folder_queue)); } @@ -827,7 +706,10 @@ mail_do_send_queue (CamelFolder *folder_queue, const char *xport_uri) { send_queue_input_t *input; - + + g_return_if_fail (xport_uri != NULL); + g_return_if_fail (CAMEL_IS_FOLDER (folder_queue)); + input = g_new (send_queue_input_t, 1); input->xport_uri = g_strdup (xport_uri); input->folder_queue = folder_queue; @@ -846,14 +728,6 @@ typedef struct append_mail_input_s } append_mail_input_t; -static gchar *describe_append_mail (gpointer in_data, gboolean gerund); -static void setup_append_mail (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_append_mail (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_append_mail (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_append_mail (gpointer in_data, gboolean gerund) { @@ -880,18 +754,6 @@ setup_append_mail (gpointer in_data, gpointer op_data, CamelException *ex) { append_mail_input_t *input = (append_mail_input_t *) in_data; - if (!CAMEL_IS_MIME_MESSAGE (input->message)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No message specified for append_mail operation."); - return; - } - - if (!CAMEL_IS_FOLDER (input->folder)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "Bad done_folder specified for append_mail operation."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->message)); camel_object_ref (CAMEL_OBJECT (input->folder)); } @@ -936,6 +798,9 @@ mail_do_append_mail (CamelFolder *folder, { append_mail_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (folder)); + g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message)); + input = g_new (append_mail_input_t, 1); input->folder = folder; input->message = message; @@ -946,14 +811,6 @@ mail_do_append_mail (CamelFolder *folder, /* ** EXPUNGE FOLDER ****************************************************** */ -static gchar *describe_expunge_folder (gpointer in_data, gboolean gerund); -static void setup_expunge_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_expunge_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_expunge_folder (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_expunge_folder (gpointer in_data, gboolean gerund) { @@ -968,13 +825,6 @@ describe_expunge_folder (gpointer in_data, gboolean gerund) static void setup_expunge_folder (gpointer in_data, gpointer op_data, CamelException *ex) { - if (!CAMEL_IS_FOLDER (in_data)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No folder is selected to be expunged"); - return; - } - camel_object_ref (CAMEL_OBJECT (in_data)); } @@ -1004,6 +854,8 @@ static const mail_operation_spec op_expunge_folder = { void mail_do_expunge_folder (CamelFolder *folder) { + g_return_if_fail (CAMEL_IS_FOLDER (folder)); + mail_operation_queue (&op_expunge_folder, folder, FALSE); } @@ -1018,14 +870,6 @@ typedef struct transfer_messages_input_s } transfer_messages_input_t; -static gchar *describe_transfer_messages (gpointer in_data, gboolean gerund); -static void setup_transfer_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_transfer_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_transfer_messages (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_transfer_messages (gpointer in_data, gboolean gerund) { @@ -1051,37 +895,9 @@ describe_transfer_messages (gpointer in_data, gboolean gerund) static void setup_transfer_messages (gpointer in_data, gpointer op_data, - CamelException *ex) + CamelException *ex) { transfer_messages_input_t *input = (transfer_messages_input_t *) in_data; - char *verb; - - if (input->delete_from_source) - /* don't need i18n */ - verb = "move"; - else - verb = "copy"; - - if (!CAMEL_IS_FOLDER (input->source)) { - camel_exception_setv (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No source folder to %s messages from specified.", - verb); - return; - } - - if (input->uids == NULL) { - camel_exception_setv (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No messages to %s have been specified.", - verb); - return; - } - - if (input->dest_uri == NULL) { - camel_exception_setv (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No URI to %s to has been specified.", - verb); - return; - } camel_object_ref (CAMEL_OBJECT (input->source)); } @@ -1133,7 +949,7 @@ do_transfer_messages (gpointer in_data, gpointer op_data, CamelException *ex) static void cleanup_transfer_messages (gpointer in_data, gpointer op_data, - CamelException *ex) + CamelException *ex) { transfer_messages_input_t *input = (transfer_messages_input_t *) in_data; @@ -1152,11 +968,15 @@ static const mail_operation_spec op_transfer_messages = { void mail_do_transfer_messages (CamelFolder *source, GPtrArray *uids, - gboolean delete_from_source, - gchar *dest_uri) + gboolean delete_from_source, + gchar *dest_uri) { transfer_messages_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (source)); + g_return_if_fail (uids != NULL); + g_return_if_fail (dest_uri != NULL); + input = g_new (transfer_messages_input_t, 1); input->source = source; input->uids = uids; @@ -1179,14 +999,6 @@ typedef struct flag_messages_input_s } flag_messages_input_t; -static gchar *describe_flag_messages (gpointer in_data, gboolean gerund); -static void setup_flag_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_flag_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_flag_messages (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_flag_messages (gpointer in_data, gboolean gerund) { @@ -1207,19 +1019,6 @@ setup_flag_messages (gpointer in_data, gpointer op_data, CamelException *ex) { flag_messages_input_t *input = (flag_messages_input_t *) in_data; - if (!CAMEL_IS_FOLDER (input->source)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No source folder to flag messages from specified."); - return; - } - - if (!input->flag_all && input->uids == NULL) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No messages to flag have been specified."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->source)); } @@ -1292,6 +1091,9 @@ mail_do_flag_messages (CamelFolder *source, GPtrArray *uids, { flag_messages_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (source)); + g_return_if_fail (uids != NULL); + input = g_new (flag_messages_input_t, 1); input->source = source; input->uids = uids; @@ -1309,6 +1111,8 @@ mail_do_flag_all_messages (CamelFolder *source, gboolean invert, { flag_messages_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (source)); + input = g_new (flag_messages_input_t, 1); input->source = source; input->uids = NULL; @@ -1343,14 +1147,6 @@ typedef struct scan_subfolders_op_s } scan_subfolders_op_t; -static gchar *describe_scan_subfolders (gpointer in_data, gboolean gerund); -static void setup_scan_subfolders (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_scan_subfolders (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_scan_subfolders (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_scan_subfolders (gpointer in_data, gboolean gerund) { @@ -1371,19 +1167,6 @@ setup_scan_subfolders (gpointer in_data, gpointer op_data, scan_subfolders_input_t *input = (scan_subfolders_input_t *) in_data; scan_subfolders_op_t *data = (scan_subfolders_op_t *) op_data; - if (!input->source_uri) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No source uri to scan subfolders from was provided."); - return; - } - - if (!EVOLUTION_IS_STORAGE (input->storage)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No storage to scan subfolders into was provided."); - return; - } - gtk_object_ref (GTK_OBJECT (input->storage)); data->new_folders = g_ptr_array_new (); } @@ -1475,6 +1258,9 @@ mail_do_scan_subfolders (const gchar *source_uri, EvolutionStorage *storage) { scan_subfolders_input_t *input; + g_return_if_fail (source_uri != NULL); + g_return_if_fail (EVOLUTION_IS_STORAGE (storage)); + input = g_new (scan_subfolders_input_t, 1); input->source_uri = g_strdup (source_uri); input->storage = storage; @@ -1498,14 +1284,6 @@ typedef struct attach_message_data_s } attach_message_data_t; -static gchar *describe_attach_message (gpointer in_data, gboolean gerund); -static void setup_attach_message (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_attach_message (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_attach_message (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_attach_message (gpointer in_data, gboolean gerund) { @@ -1526,25 +1304,6 @@ setup_attach_message (gpointer in_data, gpointer op_data, CamelException *ex) { attach_message_input_t *input = (attach_message_input_t *) in_data; - if (!input->uid) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No UID specified to attach."); - return; - } - - if (!CAMEL_IS_FOLDER (input->folder)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No folder to fetch the message from specified."); - return; - } - - if (!E_IS_MSG_COMPOSER (input->composer)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No message composer from specified."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->folder)); gtk_object_ref (GTK_OBJECT (input->composer)); } @@ -1602,6 +1361,10 @@ mail_do_attach_message (CamelFolder *folder, const char *uid, { attach_message_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (folder)); + g_return_if_fail (uid != NULL); + g_return_if_fail (E_IS_MSG_COMPOSER (composer)); + input = g_new (attach_message_input_t, 1); input->folder = folder; input->uid = g_strdup (uid); @@ -1628,14 +1391,6 @@ typedef struct forward_messages_data_s } forward_messages_data_t; -static gchar *describe_forward_messages (gpointer in_data, gboolean gerund); -static void setup_forward_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_forward_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_forward_messages (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_forward_messages (gpointer in_data, gboolean gerund) { @@ -1666,31 +1421,6 @@ setup_forward_messages (gpointer in_data, gpointer op_data, { forward_messages_input_t *input = (forward_messages_input_t *) in_data; - if (!input->uids) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No UIDs specified to attach."); - return; - } - - if (!CAMEL_IS_MIME_MESSAGE (input->basis)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No basic message to forward was specified."); - return; - } - - if (!CAMEL_IS_FOLDER (input->source)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No folder to fetch the messages from specified."); - return; - } - - if (!E_IS_MSG_COMPOSER (input->composer)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No message composer from specified."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->basis)); camel_object_ref (CAMEL_OBJECT (input->source)); gtk_object_ref (GTK_OBJECT (input->composer)); @@ -1780,6 +1510,11 @@ mail_do_forward_message (CamelMimeMessage *basis, { forward_messages_input_t *input; + g_return_if_fail (CAMEL_IS_MIME_MESSAGE (basis)); + g_return_if_fail (CAMEL_IS_FOLDER (source)); + g_return_if_fail (uids != NULL); + g_return_if_fail (E_IS_MSG_COMPOSER (composer)); + input = g_new (forward_messages_input_t, 1); input->basis = basis; input->source = source; @@ -1798,14 +1533,6 @@ typedef struct load_folder_input_s } load_folder_input_t; -static gchar *describe_load_folder (gpointer in_data, gboolean gerund); -static void setup_load_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_load_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_load_folder (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_load_folder (gpointer in_data, gboolean gerund) { @@ -1823,19 +1550,6 @@ setup_load_folder (gpointer in_data, gpointer op_data, CamelException *ex) { load_folder_input_t *input = (load_folder_input_t *) in_data; - if (!IS_FOLDER_BROWSER (input->fb)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No folder browser specified to load into."); - return; - } - - if (!input->url) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No URL to load was specified."); - return; - } - gtk_object_ref (GTK_OBJECT (input->fb)); if (input->fb->uri) @@ -1897,6 +1611,9 @@ mail_do_load_folder (FolderBrowser *fb, const char *url) { load_folder_input_t *input; + g_return_if_fail (IS_FOLDER_BROWSER (fb)); + g_return_if_fail (url != NULL); + input = g_new (load_folder_input_t, 1); input->fb = fb; input->url = g_strdup (url); @@ -1920,14 +1637,6 @@ typedef struct create_folder_data_s } create_folder_data_t; -static gchar *describe_create_folder (gpointer in_data, gboolean gerund); -static void setup_create_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_create_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_create_folder (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_create_folder (gpointer in_data, gboolean gerund) { @@ -1941,31 +1650,6 @@ describe_create_folder (gpointer in_data, gboolean gerund) } static void -setup_create_folder (gpointer in_data, gpointer op_data, CamelException *ex) -{ - create_folder_input_t *input = (create_folder_input_t *) in_data; - - if (input->listener == CORBA_OBJECT_NIL) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "Invalid listener passed to create_folder"); - return; - } - - if (input->uri == NULL) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "Invalid url passed to create_folder"); - return; - } - - if (input->type == NULL) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No type passed to create_folder"); - return; - } -} - -static void do_create_folder (gpointer in_data, gpointer op_data, CamelException *ex) { create_folder_input_t *input = (create_folder_input_t *) in_data; @@ -2020,7 +1704,7 @@ cleanup_create_folder (gpointer in_data, gpointer op_data, static const mail_operation_spec op_create_folder = { describe_create_folder, sizeof (create_folder_data_t), - setup_create_folder, + NULL, do_create_folder, cleanup_create_folder }; @@ -2032,28 +1716,21 @@ mail_do_create_folder (const Evolution_ShellComponentListener listener, CORBA_Environment ev; create_folder_input_t *input; - CORBA_exception_init (&ev); + g_return_if_fail (uri != NULL); + g_return_if_fail (type != NULL); input = g_new (create_folder_input_t, 1); + CORBA_exception_init (&ev); input->listener = CORBA_Object_duplicate (listener, &ev); + CORBA_exception_free (&ev); input->uri = g_strdup (uri); input->type = g_strdup (type); - CORBA_exception_free (&ev); - mail_operation_queue (&op_create_folder, input, FALSE); } /* ** SYNC FOLDER ********************************************************* */ -static gchar *describe_sync_folder (gpointer in_data, gboolean gerund); -static void setup_sync_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_sync_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_sync_folder (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_sync_folder (gpointer in_data, gboolean gerund) { @@ -2069,13 +1746,6 @@ describe_sync_folder (gpointer in_data, gboolean gerund) static void setup_sync_folder (gpointer in_data, gpointer op_data, CamelException *ex) { - if (!CAMEL_IS_FOLDER (in_data)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No folder is selected to be synced"); - return; - } - camel_object_ref (CAMEL_OBJECT (in_data)); } @@ -2104,6 +1774,8 @@ static const mail_operation_spec op_sync_folder = { void mail_do_sync_folder (CamelFolder *folder) { + g_return_if_fail (CAMEL_IS_FOLDER (folder)); + mail_operation_queue (&op_sync_folder, folder, FALSE); } @@ -2123,14 +1795,6 @@ typedef struct display_message_data_s } display_message_data_t; -static gchar *describe_display_message (gpointer in_data, gboolean gerund); -static void setup_display_message (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_display_message (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_display_message (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_display_message (gpointer in_data, gboolean gerund) { @@ -2158,19 +1822,6 @@ setup_display_message (gpointer in_data, gpointer op_data, display_message_input_t *input = (display_message_input_t *) in_data; display_message_data_t *data = (display_message_data_t *) op_data; - if (!IS_MESSAGE_LIST (input->ml)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "Invalid message list passed to display_message"); - return; - } - - if (!input->timeout) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No timeout callback passed to display_message"); - return; - } - data->msg = NULL; gtk_object_ref (GTK_OBJECT (input->ml)); } @@ -2239,6 +1890,9 @@ mail_do_display_message (MessageList *ml, const char *uid, { display_message_input_t *input; + g_return_if_fail (IS_MESSAGE_LIST (ml)); + g_return_if_fail (timeout != NULL); + input = g_new (display_message_input_t, 1); input->ml = ml; input->uid = g_strdup (uid); @@ -2259,14 +1913,6 @@ typedef struct edit_messages_data_s { GPtrArray *messages; } edit_messages_data_t; -static gchar *describe_edit_messages (gpointer in_data, gboolean gerund); -static void setup_edit_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_edit_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_edit_messages (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_edit_messages (gpointer in_data, gboolean gerund) { @@ -2286,19 +1932,6 @@ setup_edit_messages (gpointer in_data, gpointer op_data, CamelException *ex) { edit_messages_input_t *input = (edit_messages_input_t *) in_data; - if (!input->uids) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No UIDs specified to edit."); - return; - } - - if (!CAMEL_IS_FOLDER (input->folder)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No folder to fetch the messages from specified."); - return; - } - camel_object_ref (CAMEL_OBJECT (input->folder)); } @@ -2370,6 +2003,9 @@ mail_do_edit_messages (CamelFolder *folder, GPtrArray *uids, { edit_messages_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (folder)); + g_return_if_fail (uids != NULL); + input = g_new (edit_messages_input_t, 1); input->folder = folder; input->uids = uids; @@ -2385,14 +2021,6 @@ typedef struct setup_folder_input_s { CamelFolder **folder; } setup_folder_input_t; -static gchar *describe_setup_folder (gpointer in_data, gboolean gerund); -static void setup_setup_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_setup_folder (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_setup_folder (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_setup_folder (gpointer in_data, gboolean gerund) { @@ -2405,11 +2033,6 @@ describe_setup_folder (gpointer in_data, gboolean gerund) } static void -setup_setup_folder (gpointer in_data, gpointer op_data, CamelException *ex) -{ -} - -static void do_setup_folder (gpointer in_data, gpointer op_data, CamelException *ex) { setup_folder_input_t *input = (setup_folder_input_t *) in_data; @@ -2433,7 +2056,7 @@ cleanup_setup_folder (gpointer in_data, gpointer op_data, CamelException *ex) static const mail_operation_spec op_setup_folder = { describe_setup_folder, 0, - setup_setup_folder, + NULL, do_setup_folder, cleanup_setup_folder }; @@ -2443,6 +2066,9 @@ mail_do_setup_folder (const char *name, CamelFolder **folder) { setup_folder_input_t *input; + g_return_if_fail (name != NULL); + g_return_if_fail (folder != NULL); + input = g_new (setup_folder_input_t, 1); input->name = g_strdup (name); input->folder = folder; @@ -2461,14 +2087,6 @@ typedef struct view_messages_data_s { GPtrArray *messages; } view_messages_data_t; -static gchar *describe_view_messages (gpointer in_data, gboolean gerund); -static void setup_view_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void do_view_messages (gpointer in_data, gpointer op_data, - CamelException *ex); -static void cleanup_view_messages (gpointer in_data, gpointer op_data, - CamelException *ex); - static gchar * describe_view_messages (gpointer in_data, gboolean gerund) { @@ -2488,26 +2106,6 @@ setup_view_messages (gpointer in_data, gpointer op_data, CamelException *ex) { view_messages_input_t *input = (view_messages_input_t *) in_data; - if (!input->uids) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - /* doesn't need i18n */ - "No UIDs specified to view."); - return; - } - - if (!CAMEL_IS_FOLDER (input->folder)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No folder to fetch the messages from specified."); - return; - } - - if (!IS_FOLDER_BROWSER (input->fb)) { - camel_exception_set (ex, CAMEL_EXCEPTION_INVALID_PARAM, - "No folder browser was specified."); - return; - } - - camel_object_ref (CAMEL_OBJECT (input->folder)); gtk_object_ref (GTK_OBJECT (input->fb)); } @@ -2584,6 +2182,10 @@ mail_do_view_messages (CamelFolder *folder, GPtrArray *uids, { view_messages_input_t *input; + g_return_if_fail (CAMEL_IS_FOLDER (folder)); + g_return_if_fail (uids != NULL); + g_return_if_fail (IS_FOLDER_BROWSER (fb)); + input = g_new (view_messages_input_t, 1); input->folder = folder; input->uids = uids; |