diff --git a/lib/mu-msg-part.c b/lib/mu-msg-part.c index a0e6c799..de31b636 100644 --- a/lib/mu-msg-part.c +++ b/lib/mu-msg-part.c @@ -151,6 +151,21 @@ accumulate_text (MuMsg *msg, MuMsgPart *part, GString **gstrp) accumulate_text_part (msg, part, gstrp); } +static char* +get_text_from_mime_msg (MuMsg *msg, GMimeMessage *mmsg, MuMsgOptions opts, + unsigned index) +{ + GString *gstr; + + gstr = g_string_sized_new (4096); + handle_children (msg, mmsg, opts, index, + (MuMsgPartForeachFunc)accumulate_text, + &gstr); + + return g_string_free (gstr, FALSE); +} + + char* mu_msg_part_get_text (MuMsg *msg, MuMsgPart *self, MuMsgOptions opts) { @@ -173,24 +188,17 @@ mu_msg_part_get_text (MuMsg *msg, MuMsgPart *self, MuMsgOptions opts) } mime_msg = NULL; + if (GMIME_IS_MESSAGE_PART (mobj)) mime_msg = g_mime_message_part_get_message ((GMimeMessagePart*)mobj); else if (GMIME_IS_MESSAGE (mobj)) mime_msg = (GMimeMessage*)mobj; - - if (mime_msg) { - GString *gstr; - gstr = g_string_sized_new (4096); - handle_children (msg, mime_msg, opts, self->index, - (MuMsgPartForeachFunc)accumulate_text, - &gstr); - return g_string_free (gstr, FALSE); - } else { - g_warning ("%s: cannot get text for %s", - __FUNCTION__, G_OBJECT_TYPE_NAME (mobj)); + else return NULL; - } + + return get_text_from_mime_msg (msg, mime_msg, + opts, self->index); } diff --git a/mu/mu-cmd.c b/mu/mu-cmd.c index 2fef68f3..fb0ba322 100644 --- a/mu/mu-cmd.c +++ b/mu/mu-cmd.c @@ -520,7 +520,7 @@ show_usage (void) typedef MuError (*store_func) (MuStore *, MuConfig *, GError **err); -MuError +static MuError with_store (store_func func, MuConfig *opts, gboolean read_only, GError **err) { @@ -563,6 +563,7 @@ MuError mu_cmd_execute (MuConfig *opts, GError **err) { MuError merr; + g_return_val_if_fail (opts, MU_ERROR_INTERNAL); if (!check_params(opts, err)) @@ -579,20 +580,15 @@ mu_cmd_execute (MuConfig *opts, GError **err) case MU_CONFIG_CMD_EXTRACT: merr = mu_cmd_extract (opts, err); break; case MU_CONFIG_CMD_FIND: - merr = with_store (mu_cmd_find, opts, TRUE, err); - break; + merr = with_store (mu_cmd_find, opts, TRUE, err); break; case MU_CONFIG_CMD_INDEX: - merr = with_store (mu_cmd_index, opts, FALSE, err); - break; + merr = with_store (mu_cmd_index, opts, FALSE, err); break; case MU_CONFIG_CMD_ADD: - merr = with_store (mu_cmd_add, opts, FALSE, err); - break; + merr = with_store (mu_cmd_add, opts, FALSE, err); break; case MU_CONFIG_CMD_REMOVE: - merr = with_store (mu_cmd_remove, opts, FALSE, err); - break; + merr = with_store (mu_cmd_remove, opts, FALSE, err); break; case MU_CONFIG_CMD_SERVER: - merr = with_store (mu_cmd_server, opts, FALSE, err); - break; + merr = with_store (mu_cmd_server, opts, FALSE, err); break; default: show_usage (); mu_util_g_set_error (err, MU_ERROR_IN_PARAMETERS,