Re: [PATCH] emacs: Don't attempt to colour tags in `notmuch-show-mode'.
[notmuch-archives.git] / 56 / 94483f22c9618776a7353ac945371e0620bef9
1 Return-Path: <amthrax@drake.mit.edu>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id 4A85A431FD0\r
6         for <notmuch@notmuchmail.org>; Sat, 24 Dec 2011 15:41:51 -0800 (PST)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: -0.7\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
12         tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
13 Received: from olra.theworths.org ([127.0.0.1])\r
14         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
15         with ESMTP id fgitVAgiixqN for <notmuch@notmuchmail.org>;\r
16         Sat, 24 Dec 2011 15:41:50 -0800 (PST)\r
17 Received: from dmz-mailsec-scanner-3.mit.edu (DMZ-MAILSEC-SCANNER-3.MIT.EDU\r
18         [18.9.25.14])\r
19         by olra.theworths.org (Postfix) with ESMTP id B0072429E31\r
20         for <notmuch@notmuchmail.org>; Sat, 24 Dec 2011 15:41:44 -0800 (PST)\r
21 X-AuditID: 1209190e-b7f7c6d0000008c3-e8-4ef66338c77e\r
22 Received: from mailhub-auth-2.mit.edu ( [18.7.62.36])\r
23         by dmz-mailsec-scanner-3.mit.edu (Symantec Messaging Gateway) with SMTP\r
24         id C4.79.02243.83366FE4; Sat, 24 Dec 2011 18:41:44 -0500 (EST)\r
25 Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
26         by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id pBONfiYH014715; \r
27         Sat, 24 Dec 2011 18:41:44 -0500\r
28 Received: from drake.mit.edu (c-76-21-105-205.hsd1.ca.comcast.net\r
29         [76.21.105.205]) (authenticated bits=0)\r
30         (User authenticated as amdragon@ATHENA.MIT.EDU)\r
31         by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id pBONfgxA023835\r
32         (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
33         Sat, 24 Dec 2011 18:41:43 -0500 (EST)\r
34 Received: from amthrax by drake.mit.edu with local (Exim 4.77)\r
35         (envelope-from <amthrax@drake.mit.edu>)\r
36         id 1ReWiB-0007ft-Kd; Sat, 24 Dec 2011 13:52:51 -0500\r
37 From: Austin Clements <amdragon@MIT.EDU>\r
38 To: notmuch@notmuchmail.org\r
39 Subject: [PATCH v5 3/4] Utility function to seek in MIME trees in depth-first\r
40         order.\r
41 Date: Sat, 24 Dec 2011 13:52:45 -0500\r
42 Message-Id: <1324752766-29315-4-git-send-email-amdragon@mit.edu>\r
43 X-Mailer: git-send-email 1.7.7.3\r
44 In-Reply-To: <1324752766-29315-1-git-send-email-amdragon@mit.edu>\r
45 References: <1324698348-27620-1-git-send-email-amdragon@mit.edu>\r
46         <1324752766-29315-1-git-send-email-amdragon@mit.edu>\r
47 X-Brightmail-Tracker:\r
48  H4sIAAAAAAAAA+NgFtrHIsWRmVeSWpSXmKPExsUixG6nomuR/M3P4HKjgMX1mzOZHRg9nq26\r
49         xRzAGMVlk5Kak1mWWqRvl8CVMeHbD6aCa7wV27qXMDUw3ufqYuTkkBAwkfix+S87hC0mceHe\r
50         erYuRi4OIYF9jBJ9N1pZIJwNjBKnui4zg1QJCZxjkviwpQYiMZ9R4vj370wgCTYBDYlt+5cz\r
51         gtgiAtISO+/OZu1i5OBgFlCT+NOlAhIWFgiR6N1xB2wbi4CqxJz+UywgNq+Ag8TTqYvZIK5Q\r
52         kDi3+hxYDaeAo8S1lslsEHvLJXb2zmSZwMi/gJFhFaNsSm6Vbm5iZk5xarJucXJiXl5qka6x\r
53         Xm5miV5qSukmRlDQcEry7WD8elDpEKMAB6MSD2/T0i9+QqyJZcWVuYcYJTmYlER5J8Z98xPi\r
54         S8pPqcxILM6ILyrNSS0+xCjBwawkwquZBFTOm5JYWZValA+TkuZgURLnVdN65yckkJ5Ykpqd\r
55         mlqQWgSTleHgUJLgPZEENFSwKDU9tSItM6cEIc3EwQkynAdo+B2QGt7igsTc4sx0iPwpRl2O\r
56         xas2nGUUYsnLz0uVEuddDFIkAFKUUZoHNwcW7a8YxYHeEuY9AlLFA0wUcJNeAS1hAloSYwTy\r
57         QXFJIkJKqoFxxs+iVIuJJ1S8ekJjaliElKvr7vgkXyr6YBwrp/lp7ZwzpdME0/eq3bh7rOzT\r
58         nbtG1WeqTKUetPz4JbE8N/la4aIZnLPdasV0+6uOpBX43f73lFPVwd24+I/uzJsCnTknPh8X\r
59         MZ2fFuo+z6dt6dXmGPOmPyE5GVIcuR0nL1zpqTWKEZpW0a3EUpyRaKjFXFScCACNJoCf0QIA        AA==\r
60 X-BeenThere: notmuch@notmuchmail.org\r
61 X-Mailman-Version: 2.1.13\r
62 Precedence: list\r
63 List-Id: "Use and development of the notmuch mail system."\r
64         <notmuch.notmuchmail.org>\r
65 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
66         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
67 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
68 List-Post: <mailto:notmuch@notmuchmail.org>\r
69 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
70 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
71         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
72 X-List-Received-Date: Sat, 24 Dec 2011 23:41:51 -0000\r
73 \r
74 This function matches how we number parts for the --part argument to\r
75 show.  It will allow us to jump directly to the desired part, rather\r
76 than traversing the entire tree and carefully tracking whether or not\r
77 we're "in the zone".\r
78 ---\r
79  mime-node.c      |   27 +++++++++++++++++++++++++++\r
80  notmuch-client.h |    5 +++++\r
81  2 files changed, 32 insertions(+), 0 deletions(-)\r
82 \r
83 diff --git a/mime-node.c b/mime-node.c\r
84 index 760c55f..d26bb44 100644\r
85 --- a/mime-node.c\r
86 +++ b/mime-node.c\r
87 @@ -236,3 +236,30 @@ mime_node_child (const mime_node_t *parent, int child)\r
88      }\r
89      return _mime_node_create (parent, sub);\r
90  }\r
91 +\r
92 +static mime_node_t *\r
93 +_mime_node_seek_dfs_walk (mime_node_t *node, int *n)\r
94 +{\r
95 +    mime_node_t *ret = NULL;\r
96 +    int i;\r
97 +\r
98 +    if (*n == 0)\r
99 +       return node;\r
100 +\r
101 +    *n -= 1;\r
102 +    for (i = 0; i < node->nchildren && !ret; i++) {\r
103 +       mime_node_t *child = mime_node_child (node, i);\r
104 +       ret = _mime_node_seek_dfs_walk (child, n);\r
105 +       if (!ret)\r
106 +           talloc_free (child);\r
107 +    }\r
108 +    return ret;\r
109 +}\r
110 +\r
111 +mime_node_t *\r
112 +mime_node_seek_dfs (mime_node_t *node, int n)\r
113 +{\r
114 +    if (n < 0)\r
115 +       return NULL;\r
116 +    return _mime_node_seek_dfs_walk (node, &n);\r
117 +}\r
118 diff --git a/notmuch-client.h b/notmuch-client.h\r
119 index 64b255c..517c010 100644\r
120 --- a/notmuch-client.h\r
121 +++ b/notmuch-client.h\r
122 @@ -324,5 +324,10 @@ mime_node_open (const void *ctx, notmuch_message_t *message,\r
123  mime_node_t *\r
124  mime_node_child (const mime_node_t *parent, int child);\r
125  \r
126 +/* Return the nth child of node in a depth-first traversal.  If n is\r
127 + * 0, returns node itself.  Returns NULL if there is no such part. */\r
128 +mime_node_t *\r
129 +mime_node_seek_dfs (mime_node_t *node, int n);\r
130 +\r
131  #include "command-line-arguments.h"\r
132  #endif\r
133 -- \r
134 1.7.7.3\r
135 \r