]> rtime.felk.cvut.cz Git - notmuch.git/commitdiff
multipart: Fix part counting.
authorDavid Edmondson <dme@dme.org>
Wed, 19 May 2010 11:07:24 +0000 (12:07 +0100)
committerJameson Graef Rollins <jrollins@finestructure.net>
Sun, 27 Mar 2011 05:49:04 +0000 (22:49 -0700)
Signed-off-by: Jameson Rollins <jrollins@finestructure.net>
notmuch-show.c
show-message.c

index 006fc5e3486c3b1e083b24d8b6b3ddc15f6cd38b..1021c94166d0bc228b82a576f607247162f09439 100644 (file)
@@ -394,7 +394,6 @@ format_part_text (GMimeObject *part, int *part_count, gboolean first)
        const char *value;
        InternetAddressList *addresses;
 
-       *part_count += 1;
        mime_message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (part));
 
        /* Insert the headers of the enclosed message. */
@@ -479,6 +478,8 @@ format_part_json (GMimeObject *part, int *part_count, gboolean first)
     GByteArray *part_content;
     const char *cid;
 
+    *part_count += 1;
+
     content_type = g_mime_object_get_content_type (GMIME_OBJECT (part));
 
     if (!first)
@@ -497,6 +498,7 @@ format_part_json (GMimeObject *part, int *part_count, gboolean first)
        GMimeMultipart *multipart = GMIME_MULTIPART (part);
        int i;
 
+
        printf (", \"content\": [\n");
 
        for (i = 0; i < g_mime_multipart_get_count (multipart); i++) {
index 9cb55379219d80d5dd330891d0069df60b618def..743aaceabf3a9ec17d899448b2fdcaeddd46d658 100644 (file)
@@ -47,7 +47,6 @@ show_message_body (const char *filename,
 
     mime_message = g_mime_parser_construct_message (parser);
 
-    part_count += 1;
     show_part (g_mime_message_get_mime_part (mime_message),
                  &part_count, TRUE);
 
@@ -85,14 +84,16 @@ show_one_part_output (GMimeObject *part)
 static void
 show_one_part_worker (GMimeObject *part, int *part_count, int desired_part)
 {
+    *part_count += 1;
+
     if (GMIME_IS_MULTIPART (part)) {
        GMimeMultipart *multipart = GMIME_MULTIPART (part);
        int i;
 
-       /* Account for the multipart wrapper part. */
-       *part_count += 1;
 
        for (i = 0; i < g_mime_multipart_get_count (multipart); i++) {
+               *part_count += 1;
+
                show_one_part_worker (g_mime_multipart_get_part (multipart, i),
                                      part_count, desired_part);
        }
@@ -113,8 +114,6 @@ show_one_part_worker (GMimeObject *part, int *part_count, int desired_part)
     if (! (GMIME_IS_PART (part)))
        return;
 
-    *part_count = *part_count + 1;
-
     if (*part_count == desired_part)
            show_one_part_output (part);
 }