summaryrefslogtreecommitdiff
path: root/imap4d/fetch.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap4d/fetch.c')
-rw-r--r--imap4d/fetch.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/imap4d/fetch.c b/imap4d/fetch.c
index 51921dd6b..fa0cea6c0 100644
--- a/imap4d/fetch.c
+++ b/imap4d/fetch.c
@@ -491,7 +491,6 @@ bodystructure (mu_message_t msg, int extension)
static int
fetch_bodystructure0 (mu_message_t message, int extension)
{
- size_t nparts = 1;
size_t i;
int is_multipart = 0;
@@ -500,20 +499,27 @@ fetch_bodystructure0 (mu_message_t message, int extension)
{
mu_content_type_t ct;
mu_header_t header = NULL;
+ size_t nparts;
int rc;
- mu_message_get_num_parts (message, &nparts);
-
- /* Get all the sub messages. */
- for (i = 1; i <= nparts; i++)
- {
- mu_message_t msg = NULL;
- mu_message_get_part (message, i, &msg);
- io_sendf ("(");
- fetch_bodystructure0 (msg, extension);
- io_sendf (")");
- } /* for () */
-
+ rc = mu_message_get_num_parts (message, &nparts);
+ if (rc)
+ {
+ mu_diag_funcall (MU_DIAG_ERR, "mu_message_get_num_parts", NULL, rc);
+ }
+ else
+ {
+ /* Get all the sub messages. */
+ for (i = 1; i <= nparts; i++)
+ {
+ mu_message_t msg = NULL;
+ mu_message_get_part (message, i, &msg);
+ io_sendf ("(");
+ fetch_bodystructure0 (msg, extension);
+ io_sendf (")");
+ } /* for () */
+ }
+
mu_message_get_header (message, &header);
/* The subtype. */

Return to:

Send suggestions and report system problems to the System administrator.