diff options
author | Austin Clements <amdragon@MIT.EDU> | 2012-01-23 18:33:09 -0500 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2012-01-25 07:19:22 -0400 |
commit | a66e65d604c5e658daa97acbb9d0487788863521 (patch) | |
tree | f8c71494b4a6d0825798e53c5df5e2f1f1eb5a5d /notmuch-client.h | |
parent | 4ba787bca2ce668d9c8c3465436d9f581461738c (diff) |
mime node: Record depth-first part numbers
This makes the part numbers readily accessible to formatters.
Hierarchical part numbering would be a more natural and efficient fit
for MIME and may be the way to go in the future, but depth-first
numbering maintains compatibility with what we currently do.
Diffstat (limited to 'notmuch-client.h')
-rw-r--r-- | notmuch-client.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/notmuch-client.h b/notmuch-client.h index f5414f60..70f23362 100644 --- a/notmuch-client.h +++ b/notmuch-client.h @@ -297,6 +297,13 @@ typedef struct mime_node { /* The number of children of this part. */ int nchildren; + /* The parent of this node or NULL if this is the root node. */ + struct mime_node *parent; + + /* The depth-first part number of this child if the MIME tree is + * being traversed in depth-first order, or -1 otherwise. */ + int part_num; + /* True if decryption of this part was attempted. */ notmuch_bool_t decrypt_attempted; /* True if decryption of this part's child succeeded. In this @@ -324,6 +331,11 @@ typedef struct mime_node { /* Internal: For successfully decrypted multipart parts, the * decrypted part to substitute for the second child. */ GMimeObject *decrypted_child; + + /* Internal: The next child for depth-first traversal and the part + * number to assign it (or -1 if unknown). */ + int next_child; + int next_part_num; } mime_node_t; /* Construct a new MIME node pointing to the root message part of @@ -356,7 +368,7 @@ mime_node_open (const void *ctx, notmuch_message_t *message, * an error message on stderr). */ mime_node_t * -mime_node_child (const mime_node_t *parent, int child); +mime_node_child (mime_node_t *parent, int child); /* Return the nth child of node in a depth-first traversal. If n is * 0, returns node itself. Returns NULL if there is no such part. */ |