Re: [PATCH v4 08/16] reorganize indexing of multipart/signed and multipart/encrypted
[notmuch-archives.git] / 0c / d548d6b6a72f2528eec6d201f9dd3be9d99150
1 Return-Path: <jani@nikula.org>\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 721B9429E5A\r
6         for <notmuch@notmuchmail.org>; Wed,  6 Nov 2013 09:36:06 -0800 (PST)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References"\r
9 X-Spam-Flag: NO\r
10 X-Spam-Score: -0.7\r
11 X-Spam-Level: \r
12 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
13         tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
14 Received: from olra.theworths.org ([127.0.0.1])\r
15         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
16         with ESMTP id GSZQQZ3aS9HI for <notmuch@notmuchmail.org>;\r
17         Wed,  6 Nov 2013 09:35:56 -0800 (PST)\r
18 Received: from mail-ea0-f172.google.com (mail-ea0-f172.google.com\r
19         [209.85.215.172]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
20         (No client certificate requested)\r
21         by olra.theworths.org (Postfix) with ESMTPS id EB653429E59\r
22         for <notmuch@notmuchmail.org>; Wed,  6 Nov 2013 09:35:55 -0800 (PST)\r
23 Received: by mail-ea0-f172.google.com with SMTP id r16so5193815ead.3\r
24         for <notmuch@notmuchmail.org>; Wed, 06 Nov 2013 09:35:54 -0800 (PST)\r
25 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
26         d=1e100.net; s=20130820;\r
27         h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\r
28         :references:in-reply-to:references;\r
29         bh=68ipSPoxz3N3pFDYbLOm80oyw/uUHFf7nzhKKiy4Vow=;\r
30         b=PZEQPkVcj2QD0UIPJtR2qVL1LzIyuomwvOR2ZbGjgKPGT8Wk4+8C5L1qk2qri/d+Tr\r
31         XfuAW84MmV5g1xsbbMV/wOmb+yUQP3IEPdatsG9d0Ym+Ojf8fF58Co0dDMiWZN506GyI\r
32         HU/KDyZU4aUkm5UsxrHP9w+TZIlo3sp8ijUrZt+epm1oDf6hQpatyzLAM9HP3BG6uZ99\r
33         Gwo7bpZEbdzvj1RU/OVTfNDwoPzViB2mPC7mor8pXutJwdBCp3FS4KhZczaRN9M9yaC9\r
34         01LzNa8nOgKPNP0m+5ECDLKBdchgFatc4HC0iltDXfH7HnJ2EDy9FPJws3z0dYCJ/5fm\r
35         9gyA==\r
36 X-Gm-Message-State:\r
37  ALoCoQn/8RM8dRLnkJqhAfShWMmamuIuanxzkeq86I/8a7MKreFSMSF94XbLidhnJvpwD+7uHZ68\r
38 X-Received: by 10.15.64.1 with SMTP id n1mr4863750eex.15.1383759354839;\r
39         Wed, 06 Nov 2013 09:35:54 -0800 (PST)\r
40 Received: from localhost (dsl-hkibrasgw2-58c36f-91.dhcp.inet.fi.\r
41         [88.195.111.91])\r
42         by mx.google.com with ESMTPSA id w6sm76385237eeo.12.2013.11.06.09.35.52\r
43         for <multiple recipients>\r
44         (version=TLSv1.2 cipher=RC4-SHA bits=128/128);\r
45         Wed, 06 Nov 2013 09:35:54 -0800 (PST)\r
46 From: Jani Nikula <jani@nikula.org>\r
47 To: notmuch@notmuchmail.org\r
48 Subject: [RFC PATCH 2/2] lib: modify notmuch.h for automatic document\r
49         generation\r
50 Date: Wed,  6 Nov 2013 19:35:41 +0200\r
51 Message-Id:\r
52  <2835d28b1ddec0338f906b5165494f0fda5cb388.1383758666.git.jani@nikula.org>\r
53 X-Mailer: git-send-email 1.8.4.rc3\r
54 In-Reply-To: <cover.1383758666.git.jani@nikula.org>\r
55 References: <cover.1383758666.git.jani@nikula.org>\r
56 In-Reply-To: <cover.1383758666.git.jani@nikula.org>\r
57 References: <cover.1383758666.git.jani@nikula.org>\r
58 X-BeenThere: notmuch@notmuchmail.org\r
59 X-Mailman-Version: 2.1.13\r
60 Precedence: list\r
61 List-Id: "Use and development of the notmuch mail system."\r
62         <notmuch.notmuchmail.org>\r
63 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
64         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
65 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
66 List-Post: <mailto:notmuch@notmuchmail.org>\r
67 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
68 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
69         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
70 X-List-Received-Date: Wed, 06 Nov 2013 17:36:06 -0000\r
71 \r
72 Minimal changes to produce a sensible result.\r
73 ---\r
74  lib/notmuch.h | 426 +++++++++++++++++++++++++++++++++++++++-------------------\r
75  1 file changed, 289 insertions(+), 137 deletions(-)\r
76 \r
77 diff --git a/lib/notmuch.h b/lib/notmuch.h\r
78 index 9dab555..6d91b17 100644\r
79 --- a/lib/notmuch.h\r
80 +++ b/lib/notmuch.h\r
81 @@ -18,9 +18,19 @@\r
82   * Author: Carl Worth <cworth@cworth.org>\r
83   */\r
84  \r
85 +/**\r
86 + * @defgroup notmuch The notmuch API\r
87 + *\r
88 + * Not much of an email library, (just index and search)\r
89 + *\r
90 + * @{\r
91 + */\r
92 +\r
93  #ifndef NOTMUCH_H\r
94  #define NOTMUCH_H\r
95  \r
96 +#ifndef __DOXYGEN__\r
97 +\r
98  #ifdef  __cplusplus\r
99  # define NOTMUCH_BEGIN_DECLS  extern "C" {\r
100  # define NOTMUCH_END_DECLS    }\r
101 @@ -33,6 +43,8 @@ NOTMUCH_BEGIN_DECLS\r
102  \r
103  #include <time.h>\r
104  \r
105 +#endif /* __DOXYGEN__ */\r
106 +\r
107  #ifndef FALSE\r
108  #define FALSE 0\r
109  #endif\r
110 @@ -41,72 +53,87 @@ NOTMUCH_BEGIN_DECLS\r
111  #define TRUE 1\r
112  #endif\r
113  \r
114 +/**\r
115 + * Notmuch boolean type.\r
116 + */\r
117  typedef int notmuch_bool_t;\r
118  \r
119 -/* Status codes used for the return values of most functions.\r
120 +/**\r
121 + * Status codes used for the return values of most functions.\r
122   *\r
123   * A zero value (NOTMUCH_STATUS_SUCCESS) indicates that the function\r
124 - * completed without error. Any other value indicates an error as\r
125 - * follows:\r
126 - *\r
127 - * NOTMUCH_STATUS_SUCCESS: No error occurred.\r
128 - *\r
129 - * NOTMUCH_STATUS_OUT_OF_MEMORY: Out of memory\r
130 - *\r
131 - * XXX: We don't really want to expose this lame XAPIAN_EXCEPTION\r
132 - * value. Instead we should map to things like DATABASE_LOCKED or\r
133 - * whatever.\r
134 - *\r
135 - * NOTMUCH_STATUS_READ_ONLY_DATABASE: An attempt was made to write to\r
136 - *     a database opened in read-only mode.\r
137 + * completed without error. Any other value indicates an error.\r
138   *\r
139 - * NOTMUCH_STATUS_XAPIAN_EXCEPTION: A Xapian exception occurred\r
140 - *\r
141 - * NOTMUCH_STATUS_FILE_ERROR: An error occurred trying to read or\r
142 - *     write to a file (this could be file not found, permission\r
143 - *     denied, etc.)\r
144 - *\r
145 - * NOTMUCH_STATUS_FILE_NOT_EMAIL: A file was presented that doesn't\r
146 - *     appear to be an email message.\r
147 - *\r
148 - * NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID: A file contains a message ID\r
149 - *     that is identical to a message already in the database.\r
150 - *\r
151 - * NOTMUCH_STATUS_NULL_POINTER: The user erroneously passed a NULL\r
152 - *     pointer to a notmuch function.\r
153 - *\r
154 - * NOTMUCH_STATUS_TAG_TOO_LONG: A tag value is too long (exceeds\r
155 - *     NOTMUCH_TAG_MAX)\r
156 - *\r
157 - * NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW: The notmuch_message_thaw\r
158 - *     function has been called more times than notmuch_message_freeze.\r
159 - *\r
160 - * NOTMUCH_STATUS_UNBALANCED_ATOMIC: notmuch_database_end_atomic has\r
161 - *     been called more times than notmuch_database_begin_atomic.\r
162 - *\r
163 - * And finally:\r
164 - *\r
165 - * NOTMUCH_STATUS_LAST_STATUS: Not an actual status value. Just a way\r
166 - *     to find out how many valid status values there are.\r
167   */\r
168  typedef enum _notmuch_status {\r
169 +    /**\r
170 +     * No error occurred.\r
171 +     */\r
172      NOTMUCH_STATUS_SUCCESS = 0,\r
173 +    /**\r
174 +     * Out of memory.\r
175 +     */\r
176      NOTMUCH_STATUS_OUT_OF_MEMORY,\r
177 +    /**\r
178 +     * An attempt was made to write to a database opened in read-only\r
179 +     * mode.\r
180 +     */\r
181      NOTMUCH_STATUS_READ_ONLY_DATABASE,\r
182 +    /**\r
183 +     * A Xapian exception occurred.\r
184 +     */\r
185      NOTMUCH_STATUS_XAPIAN_EXCEPTION,\r
186 +    /**\r
187 +     * An error occurred trying to read or write to a file (this could\r
188 +     * be file not found, permission denied, etc.)\r
189 +     *\r
190 +     * @todo We don't really want to expose this lame XAPIAN_EXCEPTION\r
191 +     * value. Instead we should map to things like DATABASE_LOCKED or\r
192 +     * whatever.\r
193 +     */\r
194      NOTMUCH_STATUS_FILE_ERROR,\r
195 +    /**\r
196 +     * A file was presented that doesn't appear to be an email\r
197 +     * message.\r
198 +     */\r
199      NOTMUCH_STATUS_FILE_NOT_EMAIL,\r
200 +    /**\r
201 +     * A file contains a message ID that is identical to a message\r
202 +     * already in the database.\r
203 +     */\r
204      NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID,\r
205 +    /**\r
206 +     * The user erroneously passed a NULL pointer to a notmuch\r
207 +     * function.\r
208 +     */\r
209      NOTMUCH_STATUS_NULL_POINTER,\r
210 +    /**\r
211 +     * A tag value is too long (exceeds NOTMUCH_TAG_MAX).\r
212 +     */\r
213      NOTMUCH_STATUS_TAG_TOO_LONG,\r
214 +    /**\r
215 +     * The notmuch_message_thaw function has been called more times\r
216 +     * than notmuch_message_freeze.\r
217 +     */\r
218      NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW,\r
219 +    /**\r
220 +     * notmuch_database_end_atomic has been called more times than\r
221 +     * notmuch_database_begin_atomic.\r
222 +     */\r
223      NOTMUCH_STATUS_UNBALANCED_ATOMIC,\r
224 +    /**\r
225 +     * The operation is not supported.\r
226 +     */\r
227      NOTMUCH_STATUS_UNSUPPORTED_OPERATION,\r
228 -\r
229 +    /**\r
230 +     * Not an actual status value. Just a way to find out how many\r
231 +     * valid status values there are.\r
232 +     */\r
233      NOTMUCH_STATUS_LAST_STATUS\r
234  } notmuch_status_t;\r
235  \r
236 -/* Get a string representation of a notmuch_status_t value.\r
237 +/**\r
238 + * Get a string representation of a notmuch_status_t value.\r
239   *\r
240   * The result is read-only.\r
241   */\r
242 @@ -125,7 +152,8 @@ typedef struct _notmuch_tags notmuch_tags_t;\r
243  typedef struct _notmuch_directory notmuch_directory_t;\r
244  typedef struct _notmuch_filenames notmuch_filenames_t;\r
245  \r
246 -/* Create a new, empty notmuch database located at 'path'.\r
247 +/**\r
248 + * Create a new, empty notmuch database located at 'path'.\r
249   *\r
250   * The path should be a top-level directory to a collection of\r
251   * plain-text email messages (one message per file). This call will\r
252 @@ -161,12 +189,22 @@ typedef struct _notmuch_filenames notmuch_filenames_t;\r
253  notmuch_status_t\r
254  notmuch_database_create (const char *path, notmuch_database_t **database);\r
255  \r
256 +/**\r
257 + * Database open mode for notmuch_database_open.\r
258 + */\r
259  typedef enum {\r
260 +    /**\r
261 +     * Open database for reading only.\r
262 +     */\r
263      NOTMUCH_DATABASE_MODE_READ_ONLY = 0,\r
264 +    /**\r
265 +     * Open database for reading and writing.\r
266 +     */\r
267      NOTMUCH_DATABASE_MODE_READ_WRITE\r
268  } notmuch_database_mode_t;\r
269  \r
270 -/* Open an existing notmuch database located at 'path'.\r
271 +/**\r
272 + * Open an existing notmuch database located at 'path'.\r
273   *\r
274   * The database should have been created at some time in the past,\r
275   * (not necessarily by this process), by calling\r
276 @@ -202,7 +240,8 @@ notmuch_database_open (const char *path,\r
277                        notmuch_database_mode_t mode,\r
278                        notmuch_database_t **database);\r
279  \r
280 -/* Close the given notmuch database.\r
281 +/**\r
282 + * Close the given notmuch database.\r
283   *\r
284   * After notmuch_database_close has been called, calls to other\r
285   * functions on objects derived from this database may either behave\r
286 @@ -216,50 +255,59 @@ notmuch_database_open (const char *path,\r
287  void\r
288  notmuch_database_close (notmuch_database_t *database);\r
289  \r
290 -/* A callback invoked by notmuch_database_compact to notify the user\r
291 +/**\r
292 + * A callback invoked by notmuch_database_compact to notify the user\r
293   * of the progress of the compaction process.\r
294   */\r
295  typedef void (*notmuch_compact_status_cb_t)(const char*);\r
296  \r
297 -/* Compact a notmuch database, backing up the original database to the\r
298 +/**\r
299 + * Compact a notmuch database, backing up the original database to the\r
300   * given path.\r
301   *\r
302   * The database will be opened with NOTMUCH_DATABASE_MODE_READ_WRITE\r
303   * during the compaction process to ensure no writes are made.\r
304 - *\r
305   */\r
306  notmuch_status_t\r
307  notmuch_database_compact (const char* path,\r
308                           const char* backup_path,\r
309                           notmuch_compact_status_cb_t status_cb);\r
310  \r
311 -/* Destroy the notmuch database, closing it if necessary and freeing\r
312 +/**\r
313 + * Destroy the notmuch database, closing it if necessary and freeing\r
314   * all associated resources.\r
315   */\r
316  void\r
317  notmuch_database_destroy (notmuch_database_t *database);\r
318  \r
319 -/* Return the database path of the given database.\r
320 +/**\r
321 + * Return the database path of the given database.\r
322   *\r
323   * The return value is a string owned by notmuch so should not be\r
324 - * modified nor freed by the caller. */\r
325 + * modified nor freed by the caller.\r
326 + */\r
327  const char *\r
328  notmuch_database_get_path (notmuch_database_t *database);\r
329  \r
330 -/* Return the database format version of the given database. */\r
331 +/**\r
332 + * Return the database format version of the given database.\r
333 + */\r
334  unsigned int\r
335  notmuch_database_get_version (notmuch_database_t *database);\r
336  \r
337 -/* Does this database need to be upgraded before writing to it?\r
338 +/**\r
339 + * Does this database need to be upgraded before writing to it?\r
340   *\r
341   * If this function returns TRUE then no functions that modify the\r
342   * database (notmuch_database_add_message, notmuch_message_add_tag,\r
343   * notmuch_directory_set_mtime, etc.) will work unless the function\r
344 - * notmuch_database_upgrade is called successfully first. */\r
345 + * notmuch_database_upgrade is called successfully first.\r
346 + */\r
347  notmuch_bool_t\r
348  notmuch_database_needs_upgrade (notmuch_database_t *database);\r
349  \r
350 -/* Upgrade the current database.\r
351 +/**\r
352 + * Upgrade the current database.\r
353   *\r
354   * After opening a database in read-write mode, the client should\r
355   * check if an upgrade is needed (notmuch_database_needs_upgrade) and\r
356 @@ -277,7 +325,8 @@ notmuch_database_upgrade (notmuch_database_t *database,\r
357                                                    double progress),\r
358                           void *closure);\r
359  \r
360 -/* Begin an atomic database operation.\r
361 +/**\r
362 + * Begin an atomic database operation.\r
363   *\r
364   * Any modifications performed between a successful begin and a\r
365   * notmuch_database_end_atomic will be applied to the database\r
366 @@ -298,7 +347,8 @@ notmuch_database_upgrade (notmuch_database_t *database,\r
367  notmuch_status_t\r
368  notmuch_database_begin_atomic (notmuch_database_t *notmuch);\r
369  \r
370 -/* Indicate the end of an atomic database operation.\r
371 +/**\r
372 + * Indicate the end of an atomic database operation.\r
373   *\r
374   * Return value:\r
375   *\r
376 @@ -313,7 +363,8 @@ notmuch_database_begin_atomic (notmuch_database_t *notmuch);\r
377  notmuch_status_t\r
378  notmuch_database_end_atomic (notmuch_database_t *notmuch);\r
379  \r
380 -/* Retrieve a directory object from the database for 'path'.\r
381 +/**\r
382 + * Retrieve a directory object from the database for 'path'.\r
383   *\r
384   * Here, 'path' should be a path relative to the path of 'database'\r
385   * (see notmuch_database_get_path), or else should be an absolute path\r
386 @@ -336,7 +387,8 @@ notmuch_database_get_directory (notmuch_database_t *database,\r
387                                 const char *path,\r
388                                 notmuch_directory_t **directory);\r
389  \r
390 -/* Add a new message to the given notmuch database or associate an\r
391 +/**\r
392 + * Add a new message to the given notmuch database or associate an\r
393   * additional filename with an existing message.\r
394   *\r
395   * Here, 'filename' should be a path relative to the path of\r
396 @@ -387,7 +439,8 @@ notmuch_database_add_message (notmuch_database_t *database,\r
397                               const char *filename,\r
398                               notmuch_message_t **message);\r
399  \r
400 -/* Remove a message filename from the given notmuch database. If the\r
401 +/**\r
402 + * Remove a message filename from the given notmuch database. If the\r
403   * message has no more filenames, remove the message.\r
404   *\r
405   * If the same message (as determined by the message ID) is still\r
406 @@ -415,7 +468,8 @@ notmuch_status_t\r
407  notmuch_database_remove_message (notmuch_database_t *database,\r
408                                  const char *filename);\r
409  \r
410 -/* Find a message with the given message_id.\r
411 +/**\r
412 + * Find a message with the given message_id.\r
413   *\r
414   * If a message with the given message_id is found then, on successful return\r
415   * (NOTMUCH_STATUS_SUCCESS) '*message' will be initialized to a message\r
416 @@ -442,7 +496,8 @@ notmuch_database_find_message (notmuch_database_t *database,\r
417                                const char *message_id,\r
418                                notmuch_message_t **message);\r
419  \r
420 -/* Find a message with the given filename.\r
421 +/**\r
422 + * Find a message with the given filename.\r
423   *\r
424   * If the database contains a message with the given filename then, on\r
425   * successful return (NOTMUCH_STATUS_SUCCESS) '*message' will be initialized to\r
426 @@ -469,7 +524,8 @@ notmuch_database_find_message_by_filename (notmuch_database_t *notmuch,\r
427                                            const char *filename,\r
428                                            notmuch_message_t **message);\r
429  \r
430 -/* Return a list of all tags found in the database.\r
431 +/**\r
432 + * Return a list of all tags found in the database.\r
433   *\r
434   * This function creates a list of all tags found in the database. The\r
435   * resulting list contains all tags from all messages found in the database.\r
436 @@ -479,7 +535,8 @@ notmuch_database_find_message_by_filename (notmuch_database_t *notmuch,\r
437  notmuch_tags_t *\r
438  notmuch_database_get_all_tags (notmuch_database_t *db);\r
439  \r
440 -/* Create a new query for 'database'.\r
441 +/**\r
442 + * Create a new query for 'database'.\r
443   *\r
444   * Here, 'database' should be an open database, (see\r
445   * notmuch_database_open and notmuch_database_create).\r
446 @@ -507,19 +564,36 @@ notmuch_query_t *\r
447  notmuch_query_create (notmuch_database_t *database,\r
448                       const char *query_string);\r
449  \r
450 -/* Sort values for notmuch_query_set_sort */\r
451 +/**\r
452 + * Sort values for notmuch_query_set_sort.\r
453 + */\r
454  typedef enum {\r
455 +    /**\r
456 +     * Oldest first.\r
457 +     */\r
458      NOTMUCH_SORT_OLDEST_FIRST,\r
459 +    /**\r
460 +     * Newest first.\r
461 +     */\r
462      NOTMUCH_SORT_NEWEST_FIRST,\r
463 +    /**\r
464 +     * Sort by message-id.\r
465 +     */\r
466      NOTMUCH_SORT_MESSAGE_ID,\r
467 +    /**\r
468 +     * Do not sort.\r
469 +     */\r
470      NOTMUCH_SORT_UNSORTED\r
471  } notmuch_sort_t;\r
472  \r
473 -/* Return the query_string of this query. See notmuch_query_create. */\r
474 +/**\r
475 + * Return the query_string of this query. See notmuch_query_create.\r
476 + */\r
477  const char *\r
478  notmuch_query_get_query_string (notmuch_query_t *query);\r
479  \r
480 -/* Exclude values for notmuch_query_set_omit_excluded. The strange\r
481 +/**\r
482 + * Exclude values for notmuch_query_set_omit_excluded. The strange\r
483   * order is to maintain backward compatibility: the old FALSE/TRUE\r
484   * options correspond to the new\r
485   * NOTMUCH_EXCLUDE_FLAG/NOTMUCH_EXCLUDE_TRUE options.\r
486 @@ -531,7 +605,8 @@ typedef enum {\r
487      NOTMUCH_EXCLUDE_ALL\r
488  } notmuch_exclude_t;\r
489  \r
490 -/* Specify whether to omit excluded results or simply flag them.  By\r
491 +/**\r
492 + * Specify whether to omit excluded results or simply flag them.  By\r
493   * default, this is set to TRUE.\r
494   *\r
495   * If set to TRUE or ALL, notmuch_query_search_messages will omit excluded\r
496 @@ -561,21 +636,29 @@ void\r
497  notmuch_query_set_omit_excluded (notmuch_query_t *query,\r
498                                  notmuch_exclude_t omit_excluded);\r
499  \r
500 -/* Specify the sorting desired for this query. */\r
501 +/**\r
502 + * Specify the sorting desired for this query.\r
503 + */\r
504  void\r
505  notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort);\r
506  \r
507 -/* Return the sort specified for this query. See notmuch_query_set_sort. */\r
508 +/**\r
509 + * Return the sort specified for this query. See\r
510 + * notmuch_query_set_sort.\r
511 + */\r
512  notmuch_sort_t\r
513  notmuch_query_get_sort (notmuch_query_t *query);\r
514  \r
515 -/* Add a tag that will be excluded from the query results by default.\r
516 +/**\r
517 + * Add a tag that will be excluded from the query results by default.\r
518   * This exclusion will be overridden if this tag appears explicitly in\r
519 - * the query. */\r
520 + * the query.\r
521 + */\r
522  void\r
523  notmuch_query_add_tag_exclude (notmuch_query_t *query, const char *tag);\r
524  \r
525 -/* Execute a query for threads, returning a notmuch_threads_t object\r
526 +/**\r
527 + * Execute a query for threads, returning a notmuch_threads_t object\r
528   * which can be used to iterate over the results. The returned threads\r
529   * object is owned by the query and as such, will only be valid until\r
530   * notmuch_query_destroy.\r
531 @@ -616,7 +699,8 @@ notmuch_query_add_tag_exclude (notmuch_query_t *query, const char *tag);\r
532  notmuch_threads_t *\r
533  notmuch_query_search_threads (notmuch_query_t *query);\r
534  \r
535 -/* Execute a query for messages, returning a notmuch_messages_t object\r
536 +/**\r
537 + * Execute a query for messages, returning a notmuch_messages_t object\r
538   * which can be used to iterate over the results. The returned\r
539   * messages object is owned by the query and as such, will only be\r
540   * valid until notmuch_query_destroy.\r
541 @@ -657,7 +741,8 @@ notmuch_query_search_threads (notmuch_query_t *query);\r
542  notmuch_messages_t *\r
543  notmuch_query_search_messages (notmuch_query_t *query);\r
544  \r
545 -/* Destroy a notmuch_query_t along with any associated resources.\r
546 +/**\r
547 + * Destroy a notmuch_query_t along with any associated resources.\r
548   *\r
549   * This will in turn destroy any notmuch_threads_t and\r
550   * notmuch_messages_t objects generated by this query, (and in\r
551 @@ -668,7 +753,8 @@ notmuch_query_search_messages (notmuch_query_t *query);\r
552  void\r
553  notmuch_query_destroy (notmuch_query_t *query);\r
554  \r
555 -/* Is the given 'threads' iterator pointing at a valid thread.\r
556 +/**\r
557 + * Is the given 'threads' iterator pointing at a valid thread.\r
558   *\r
559   * When this function returns TRUE, notmuch_threads_get will return a\r
560   * valid object. Whereas when this function returns FALSE,\r
561 @@ -680,7 +766,8 @@ notmuch_query_destroy (notmuch_query_t *query);\r
562  notmuch_bool_t\r
563  notmuch_threads_valid (notmuch_threads_t *threads);\r
564  \r
565 -/* Get the current thread from 'threads' as a notmuch_thread_t.\r
566 +/**\r
567 + * Get the current thread from 'threads' as a notmuch_thread_t.\r
568   *\r
569   * Note: The returned thread belongs to 'threads' and has a lifetime\r
570   * identical to it (and the query to which it belongs).\r
571 @@ -694,7 +781,8 @@ notmuch_threads_valid (notmuch_threads_t *threads);\r
572  notmuch_thread_t *\r
573  notmuch_threads_get (notmuch_threads_t *threads);\r
574  \r
575 -/* Move the 'threads' iterator to the next thread.\r
576 +/**\r
577 + * Move the 'threads' iterator to the next thread.\r
578   *\r
579   * If 'threads' is already pointing at the last thread then the\r
580   * iterator will be moved to a point just beyond that last thread,\r
581 @@ -707,7 +795,8 @@ notmuch_threads_get (notmuch_threads_t *threads);\r
582  void\r
583  notmuch_threads_move_to_next (notmuch_threads_t *threads);\r
584  \r
585 -/* Destroy a notmuch_threads_t object.\r
586 +/**\r
587 + * Destroy a notmuch_threads_t object.\r
588   *\r
589   * It's not strictly necessary to call this function. All memory from\r
590   * the notmuch_threads_t object will be reclaimed when the\r
591 @@ -716,7 +805,8 @@ notmuch_threads_move_to_next (notmuch_threads_t *threads);\r
592  void\r
593  notmuch_threads_destroy (notmuch_threads_t *threads);\r
594  \r
595 -/* Return an estimate of the number of messages matching a search\r
596 +/**\r
597 + * Return an estimate of the number of messages matching a search.\r
598   *\r
599   * This function performs a search and returns Xapian's best\r
600   * guess as to number of matching messages.\r
601 @@ -726,8 +816,9 @@ notmuch_threads_destroy (notmuch_threads_t *threads);\r
602   */\r
603  unsigned\r
604  notmuch_query_count_messages (notmuch_query_t *query);\r
605\r
606 -/* Return the number of threads matching a search.\r
607 +\r
608 +/**\r
609 + * Return the number of threads matching a search.\r
610   *\r
611   * This function performs a search and returns the number of unique thread IDs\r
612   * in the matching messages. This is the same as number of threads matching a\r
613 @@ -741,7 +832,8 @@ notmuch_query_count_messages (notmuch_query_t *query);\r
614  unsigned\r
615  notmuch_query_count_threads (notmuch_query_t *query);\r
616  \r
617 -/* Get the thread ID of 'thread'.\r
618 +/**\r
619 + * Get the thread ID of 'thread'.\r
620   *\r
621   * The returned string belongs to 'thread' and as such, should not be\r
622   * modified by the caller and will only be valid for as long as the\r
623 @@ -751,7 +843,8 @@ notmuch_query_count_threads (notmuch_query_t *query);\r
624  const char *\r
625  notmuch_thread_get_thread_id (notmuch_thread_t *thread);\r
626  \r
627 -/* Get the total number of messages in 'thread'.\r
628 +/**\r
629 + * Get the total number of messages in 'thread'.\r
630   *\r
631   * This count consists of all messages in the database belonging to\r
632   * this thread. Contrast with notmuch_thread_get_matched_messages() .\r
633 @@ -759,7 +852,8 @@ notmuch_thread_get_thread_id (notmuch_thread_t *thread);\r
634  int\r
635  notmuch_thread_get_total_messages (notmuch_thread_t *thread);\r
636  \r
637 -/* Get a notmuch_messages_t iterator for the top-level messages in\r
638 +/**\r
639 + * Get a notmuch_messages_t iterator for the top-level messages in\r
640   * 'thread' in oldest-first order.\r
641   *\r
642   * This iterator will not necessarily iterate over all of the messages\r
643 @@ -769,13 +863,15 @@ notmuch_thread_get_total_messages (notmuch_thread_t *thread);\r
644  notmuch_messages_t *\r
645  notmuch_thread_get_toplevel_messages (notmuch_thread_t *thread);\r
646  \r
647 -/* Get a notmuch_thread_t iterator for all messages in 'thread' in\r
648 +/**\r
649 + * Get a notmuch_thread_t iterator for all messages in 'thread' in\r
650   * oldest-first order.\r
651   */\r
652  notmuch_messages_t *\r
653  notmuch_thread_get_messages (notmuch_thread_t *thread);\r
654  \r
655 -/* Get the number of messages in 'thread' that matched the search.\r
656 +/**\r
657 + * Get the number of messages in 'thread' that matched the search.\r
658   *\r
659   * This count includes only the messages in this thread that were\r
660   * matched by the search from which the thread was created and were\r
661 @@ -786,7 +882,8 @@ notmuch_thread_get_messages (notmuch_thread_t *thread);\r
662  int\r
663  notmuch_thread_get_matched_messages (notmuch_thread_t *thread);\r
664  \r
665 -/* Get the authors of 'thread' as a UTF-8 string.\r
666 +/**\r
667 + * Get the authors of 'thread' as a UTF-8 string.\r
668   *\r
669   * The returned string is a comma-separated list of the names of the\r
670   * authors of mail messages in the query results that belong to this\r
671 @@ -800,7 +897,8 @@ notmuch_thread_get_matched_messages (notmuch_thread_t *thread);\r
672  const char *\r
673  notmuch_thread_get_authors (notmuch_thread_t *thread);\r
674  \r
675 -/* Get the subject of 'thread' as a UTF-8 string.\r
676 +/**\r
677 + * Get the subject of 'thread' as a UTF-8 string.\r
678   *\r
679   * The subject is taken from the first message (according to the query\r
680   * order---see notmuch_query_set_sort) in the query results that\r
681 @@ -814,17 +912,20 @@ notmuch_thread_get_authors (notmuch_thread_t *thread);\r
682  const char *\r
683  notmuch_thread_get_subject (notmuch_thread_t *thread);\r
684  \r
685 -/* Get the date of the oldest message in 'thread' as a time_t value.\r
686 +/**\r
687 + * Get the date of the oldest message in 'thread' as a time_t value.\r
688   */\r
689  time_t\r
690  notmuch_thread_get_oldest_date (notmuch_thread_t *thread);\r
691  \r
692 -/* Get the date of the newest message in 'thread' as a time_t value.\r
693 +/**\r
694 + * Get the date of the newest message in 'thread' as a time_t value.\r
695   */\r
696  time_t\r
697  notmuch_thread_get_newest_date (notmuch_thread_t *thread);\r
698  \r
699 -/* Get the tags for 'thread', returning a notmuch_tags_t object which\r
700 +/**\r
701 + * Get the tags for 'thread', returning a notmuch_tags_t object which\r
702   * can be used to iterate over all tags.\r
703   *\r
704   * Note: In the Notmuch database, tags are stored on individual\r
705 @@ -863,11 +964,14 @@ notmuch_thread_get_newest_date (notmuch_thread_t *thread);\r
706  notmuch_tags_t *\r
707  notmuch_thread_get_tags (notmuch_thread_t *thread);\r
708  \r
709 -/* Destroy a notmuch_thread_t object. */\r
710 +/**\r
711 + * Destroy a notmuch_thread_t object.\r
712 + */\r
713  void\r
714  notmuch_thread_destroy (notmuch_thread_t *thread);\r
715  \r
716 -/* Is the given 'messages' iterator pointing at a valid message.\r
717 +/**\r
718 + * Is the given 'messages' iterator pointing at a valid message.\r
719   *\r
720   * When this function returns TRUE, notmuch_messages_get will return a\r
721   * valid object. Whereas when this function returns FALSE,\r
722 @@ -879,7 +983,8 @@ notmuch_thread_destroy (notmuch_thread_t *thread);\r
723  notmuch_bool_t\r
724  notmuch_messages_valid (notmuch_messages_t *messages);\r
725  \r
726 -/* Get the current message from 'messages' as a notmuch_message_t.\r
727 +/**\r
728 + * Get the current message from 'messages' as a notmuch_message_t.\r
729   *\r
730   * Note: The returned message belongs to 'messages' and has a lifetime\r
731   * identical to it (and the query to which it belongs).\r
732 @@ -893,7 +998,8 @@ notmuch_messages_valid (notmuch_messages_t *messages);\r
733  notmuch_message_t *\r
734  notmuch_messages_get (notmuch_messages_t *messages);\r
735  \r
736 -/* Move the 'messages' iterator to the next message.\r
737 +/**\r
738 + * Move the 'messages' iterator to the next message.\r
739   *\r
740   * If 'messages' is already pointing at the last message then the\r
741   * iterator will be moved to a point just beyond that last message,\r
742 @@ -906,7 +1012,8 @@ notmuch_messages_get (notmuch_messages_t *messages);\r
743  void\r
744  notmuch_messages_move_to_next (notmuch_messages_t *messages);\r
745  \r
746 -/* Destroy a notmuch_messages_t object.\r
747 +/**\r
748 + * Destroy a notmuch_messages_t object.\r
749   *\r
750   * It's not strictly necessary to call this function. All memory from\r
751   * the notmuch_messages_t object will be reclaimed when the containing\r
752 @@ -915,7 +1022,8 @@ notmuch_messages_move_to_next (notmuch_messages_t *messages);\r
753  void\r
754  notmuch_messages_destroy (notmuch_messages_t *messages);\r
755  \r
756 -/* Return a list of tags from all messages.\r
757 +/**\r
758 + * Return a list of tags from all messages.\r
759   *\r
760   * The resulting list is guaranteed not to contain duplicated tags.\r
761   *\r
762 @@ -930,7 +1038,8 @@ notmuch_messages_destroy (notmuch_messages_t *messages);\r
763  notmuch_tags_t *\r
764  notmuch_messages_collect_tags (notmuch_messages_t *messages);\r
765  \r
766 -/* Get the message ID of 'message'.\r
767 +/**\r
768 + * Get the message ID of 'message'.\r
769   *\r
770   * The returned string belongs to 'message' and as such, should not be\r
771   * modified by the caller and will only be valid for as long as the\r
772 @@ -944,7 +1053,8 @@ notmuch_messages_collect_tags (notmuch_messages_t *messages);\r
773  const char *\r
774  notmuch_message_get_message_id (notmuch_message_t *message);\r
775  \r
776 -/* Get the thread ID of 'message'.\r
777 +/**\r
778 + * Get the thread ID of 'message'.\r
779   *\r
780   * The returned string belongs to 'message' and as such, should not be\r
781   * modified by the caller and will only be valid for as long as the\r
782 @@ -958,7 +1068,8 @@ notmuch_message_get_message_id (notmuch_message_t *message);\r
783  const char *\r
784  notmuch_message_get_thread_id (notmuch_message_t *message);\r
785  \r
786 -/* Get a notmuch_messages_t iterator for all of the replies to\r
787 +/**\r
788 + * Get a notmuch_messages_t iterator for all of the replies to\r
789   * 'message'.\r
790   *\r
791   * Note: This call only makes sense if 'message' was ultimately\r
792 @@ -978,7 +1089,8 @@ notmuch_message_get_thread_id (notmuch_message_t *message);\r
793  notmuch_messages_t *\r
794  notmuch_message_get_replies (notmuch_message_t *message);\r
795  \r
796 -/* Get a filename for the email corresponding to 'message'.\r
797 +/**\r
798 + * Get a filename for the email corresponding to 'message'.\r
799   *\r
800   * The returned filename is an absolute filename, (the initial\r
801   * component will match notmuch_database_get_path() ).\r
802 @@ -996,7 +1108,8 @@ notmuch_message_get_replies (notmuch_message_t *message);\r
803  const char *\r
804  notmuch_message_get_filename (notmuch_message_t *message);\r
805  \r
806 -/* Get all filenames for the email corresponding to 'message'.\r
807 +/**\r
808 + * Get all filenames for the email corresponding to 'message'.\r
809   *\r
810   * Returns a notmuch_filenames_t iterator listing all the filenames\r
811   * associated with 'message'. These files may not have identical\r
812 @@ -1008,31 +1121,40 @@ notmuch_message_get_filename (notmuch_message_t *message);\r
813  notmuch_filenames_t *\r
814  notmuch_message_get_filenames (notmuch_message_t *message);\r
815  \r
816 -/* Message flags */\r
817 +/**\r
818 + * Message flags.\r
819 + */\r
820  typedef enum _notmuch_message_flag {\r
821      NOTMUCH_MESSAGE_FLAG_MATCH,\r
822      NOTMUCH_MESSAGE_FLAG_EXCLUDED\r
823  } notmuch_message_flag_t;\r
824  \r
825 -/* Get a value of a flag for the email corresponding to 'message'. */\r
826 +/**\r
827 + * Get a value of a flag for the email corresponding to 'message'.\r
828 + */\r
829  notmuch_bool_t\r
830  notmuch_message_get_flag (notmuch_message_t *message,\r
831                           notmuch_message_flag_t flag);\r
832  \r
833 -/* Set a value of a flag for the email corresponding to 'message'. */\r
834 +/**\r
835 + * Set a value of a flag for the email corresponding to 'message'.\r
836 + */\r
837  void\r
838  notmuch_message_set_flag (notmuch_message_t *message,\r
839                           notmuch_message_flag_t flag, notmuch_bool_t value);\r
840  \r
841 -/* Get the date of 'message' as a time_t value.\r
842 +/**\r
843 + * Get the date of 'message' as a time_t value.\r
844   *\r
845   * For the original textual representation of the Date header from the\r
846   * message call notmuch_message_get_header() with a header value of\r
847 - * "date". */\r
848 + * "date".\r
849 + */\r
850  time_t\r
851  notmuch_message_get_date  (notmuch_message_t *message);\r
852  \r
853 -/* Get the value of the specified header from 'message' as a UTF-8 string.\r
854 +/**\r
855 + * Get the value of the specified header from 'message' as a UTF-8 string.\r
856   *\r
857   * Common headers are stored in the database when the message is\r
858   * indexed and will be returned from the database.  Other headers will\r
859 @@ -1050,7 +1172,8 @@ notmuch_message_get_date  (notmuch_message_t *message);\r
860  const char *\r
861  notmuch_message_get_header (notmuch_message_t *message, const char *header);\r
862  \r
863 -/* Get the tags for 'message', returning a notmuch_tags_t object which\r
864 +/**\r
865 + * Get the tags for 'message', returning a notmuch_tags_t object which\r
866   * can be used to iterate over all tags.\r
867   *\r
868   * The tags object is owned by the message and as such, will only be\r
869 @@ -1083,10 +1206,13 @@ notmuch_message_get_header (notmuch_message_t *message, const char *header);\r
870  notmuch_tags_t *\r
871  notmuch_message_get_tags (notmuch_message_t *message);\r
872  \r
873 -/* The longest possible tag value. */\r
874 +/**\r
875 + * The longest possible tag value.\r
876 + */\r
877  #define NOTMUCH_TAG_MAX 200\r
878  \r
879 -/* Add a tag to the given message.\r
880 +/**\r
881 + * Add a tag to the given message.\r
882   *\r
883   * Return value:\r
884   *\r
885 @@ -1103,7 +1229,8 @@ notmuch_message_get_tags (notmuch_message_t *message);\r
886  notmuch_status_t\r
887  notmuch_message_add_tag (notmuch_message_t *message, const char *tag);\r
888  \r
889 -/* Remove a tag from the given message.\r
890 +/**\r
891 + * Remove a tag from the given message.\r
892   *\r
893   * Return value:\r
894   *\r
895 @@ -1120,7 +1247,8 @@ notmuch_message_add_tag (notmuch_message_t *message, const char *tag);\r
896  notmuch_status_t\r
897  notmuch_message_remove_tag (notmuch_message_t *message, const char *tag);\r
898  \r
899 -/* Remove all tags from the given message.\r
900 +/**\r
901 + * Remove all tags from the given message.\r
902   *\r
903   * See notmuch_message_freeze for an example showing how to safely\r
904   * replace tag values.\r
905 @@ -1131,7 +1259,8 @@ notmuch_message_remove_tag (notmuch_message_t *message, const char *tag);\r
906  notmuch_status_t\r
907  notmuch_message_remove_all_tags (notmuch_message_t *message);\r
908  \r
909 -/* Add/remove tags according to maildir flags in the message filename(s)\r
910 +/**\r
911 + * Add/remove tags according to maildir flags in the message filename(s).\r
912   *\r
913   * This function examines the filenames of 'message' for maildir\r
914   * flags, and adds or removes tags on 'message' as follows when these\r
915 @@ -1165,7 +1294,8 @@ notmuch_message_remove_all_tags (notmuch_message_t *message);\r
916  notmuch_status_t\r
917  notmuch_message_maildir_flags_to_tags (notmuch_message_t *message);\r
918  \r
919 -/* Rename message filename(s) to encode tags as maildir flags\r
920 +/**\r
921 + * Rename message filename(s) to encode tags as maildir flags.\r
922   *\r
923   * Specifically, for each filename corresponding to this message:\r
924   *\r
925 @@ -1201,7 +1331,8 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message);\r
926  notmuch_status_t\r
927  notmuch_message_tags_to_maildir_flags (notmuch_message_t *message);\r
928  \r
929 -/* Freeze the current state of 'message' within the database.\r
930 +/**\r
931 + * Freeze the current state of 'message' within the database.\r
932   *\r
933   * This means that changes to the message state, (via\r
934   * notmuch_message_add_tag, notmuch_message_remove_tag, and\r
935 @@ -1244,7 +1375,8 @@ notmuch_message_tags_to_maildir_flags (notmuch_message_t *message);\r
936  notmuch_status_t\r
937  notmuch_message_freeze (notmuch_message_t *message);\r
938  \r
939 -/* Thaw the current 'message', synchronizing any changes that may have\r
940 +/**\r
941 + * Thaw the current 'message', synchronizing any changes that may have\r
942   * occurred while 'message' was frozen into the notmuch database.\r
943   *\r
944   * See notmuch_message_freeze for an example of how to use this\r
945 @@ -1267,7 +1399,8 @@ notmuch_message_freeze (notmuch_message_t *message);\r
946  notmuch_status_t\r
947  notmuch_message_thaw (notmuch_message_t *message);\r
948  \r
949 -/* Destroy a notmuch_message_t object.\r
950 +/**\r
951 + * Destroy a notmuch_message_t object.\r
952   *\r
953   * It can be useful to call this function in the case of a single\r
954   * query object with many messages in the result, (such as iterating\r
955 @@ -1278,7 +1411,8 @@ notmuch_message_thaw (notmuch_message_t *message);\r
956  void\r
957  notmuch_message_destroy (notmuch_message_t *message);\r
958  \r
959 -/* Is the given 'tags' iterator pointing at a valid tag.\r
960 +/**\r
961 + * Is the given 'tags' iterator pointing at a valid tag.\r
962   *\r
963   * When this function returns TRUE, notmuch_tags_get will return a\r
964   * valid string. Whereas when this function returns FALSE,\r
965 @@ -1290,7 +1424,8 @@ notmuch_message_destroy (notmuch_message_t *message);\r
966  notmuch_bool_t\r
967  notmuch_tags_valid (notmuch_tags_t *tags);\r
968  \r
969 -/* Get the current tag from 'tags' as a string.\r
970 +/**\r
971 + * Get the current tag from 'tags' as a string.\r
972   *\r
973   * Note: The returned string belongs to 'tags' and has a lifetime\r
974   * identical to it (and the query to which it ultimately belongs).\r
975 @@ -1301,7 +1436,8 @@ notmuch_tags_valid (notmuch_tags_t *tags);\r
976  const char *\r
977  notmuch_tags_get (notmuch_tags_t *tags);\r
978  \r
979 -/* Move the 'tags' iterator to the next tag.\r
980 +/**\r
981 + * Move the 'tags' iterator to the next tag.\r
982   *\r
983   * If 'tags' is already pointing at the last tag then the iterator\r
984   * will be moved to a point just beyond that last tag, (where\r
985 @@ -1314,7 +1450,8 @@ notmuch_tags_get (notmuch_tags_t *tags);\r
986  void\r
987  notmuch_tags_move_to_next (notmuch_tags_t *tags);\r
988  \r
989 -/* Destroy a notmuch_tags_t object.\r
990 +/**\r
991 + * Destroy a notmuch_tags_t object.\r
992   *\r
993   * It's not strictly necessary to call this function. All memory from\r
994   * the notmuch_tags_t object will be reclaimed when the containing\r
995 @@ -1323,7 +1460,8 @@ notmuch_tags_move_to_next (notmuch_tags_t *tags);\r
996  void\r
997  notmuch_tags_destroy (notmuch_tags_t *tags);\r
998  \r
999 -/* Store an mtime within the database for 'directory'.\r
1000 +/**\r
1001 + * Store an mtime within the database for 'directory'.\r
1002   *\r
1003   * The 'directory' should be an object retrieved from the database\r
1004   * with notmuch_database_get_directory for a particular path.\r
1005 @@ -1363,35 +1501,44 @@ notmuch_status_t\r
1006  notmuch_directory_set_mtime (notmuch_directory_t *directory,\r
1007                              time_t mtime);\r
1008  \r
1009 -/* Get the mtime of a directory, (as previously stored with\r
1010 +/**\r
1011 + * Get the mtime of a directory, (as previously stored with\r
1012   * notmuch_directory_set_mtime).\r
1013   *\r
1014   * Returns 0 if no mtime has previously been stored for this\r
1015 - * directory.*/\r
1016 + * directory.\r
1017 + */\r
1018  time_t\r
1019  notmuch_directory_get_mtime (notmuch_directory_t *directory);\r
1020  \r
1021 -/* Get a notmuch_filenames_t iterator listing all the filenames of\r
1022 +/**\r
1023 + * Get a notmuch_filenames_t iterator listing all the filenames of\r
1024   * messages in the database within the given directory.\r
1025   *\r
1026   * The returned filenames will be the basename-entries only (not\r
1027 - * complete paths). */\r
1028 + * complete paths).\r
1029 + */\r
1030  notmuch_filenames_t *\r
1031  notmuch_directory_get_child_files (notmuch_directory_t *directory);\r
1032  \r
1033 -/* Get a notmuch_filenams_t iterator listing all the filenames of\r
1034 +/**\r
1035 + * Get a notmuch_filenams_t iterator listing all the filenames of\r
1036   * sub-directories in the database within the given directory.\r
1037   *\r
1038   * The returned filenames will be the basename-entries only (not\r
1039 - * complete paths). */\r
1040 + * complete paths).\r
1041 + */\r
1042  notmuch_filenames_t *\r
1043  notmuch_directory_get_child_directories (notmuch_directory_t *directory);\r
1044  \r
1045 -/* Destroy a notmuch_directory_t object. */\r
1046 +/**\r
1047 + * Destroy a notmuch_directory_t object.\r
1048 + */\r
1049  void\r
1050  notmuch_directory_destroy (notmuch_directory_t *directory);\r
1051  \r
1052 -/* Is the given 'filenames' iterator pointing at a valid filename.\r
1053 +/**\r
1054 + * Is the given 'filenames' iterator pointing at a valid filename.\r
1055   *\r
1056   * When this function returns TRUE, notmuch_filenames_get will return\r
1057   * a valid string. Whereas when this function returns FALSE,\r
1058 @@ -1403,7 +1550,8 @@ notmuch_directory_destroy (notmuch_directory_t *directory);\r
1059  notmuch_bool_t\r
1060  notmuch_filenames_valid (notmuch_filenames_t *filenames);\r
1061  \r
1062 -/* Get the current filename from 'filenames' as a string.\r
1063 +/**\r
1064 + * Get the current filename from 'filenames' as a string.\r
1065   *\r
1066   * Note: The returned string belongs to 'filenames' and has a lifetime\r
1067   * identical to it (and the directory to which it ultimately belongs).\r
1068 @@ -1414,7 +1562,8 @@ notmuch_filenames_valid (notmuch_filenames_t *filenames);\r
1069  const char *\r
1070  notmuch_filenames_get (notmuch_filenames_t *filenames);\r
1071  \r
1072 -/* Move the 'filenames' iterator to the next filename.\r
1073 +/**\r
1074 + * Move the 'filenames' iterator to the next filename.\r
1075   *\r
1076   * If 'filenames' is already pointing at the last filename then the\r
1077   * iterator will be moved to a point just beyond that last filename,\r
1078 @@ -1427,7 +1576,8 @@ notmuch_filenames_get (notmuch_filenames_t *filenames);\r
1079  void\r
1080  notmuch_filenames_move_to_next (notmuch_filenames_t *filenames);\r
1081  \r
1082 -/* Destroy a notmuch_filenames_t object.\r
1083 +/**\r
1084 + * Destroy a notmuch_filenames_t object.\r
1085   *\r
1086   * It's not strictly necessary to call this function. All memory from\r
1087   * the notmuch_filenames_t object will be reclaimed when the\r
1088 @@ -1439,6 +1589,8 @@ notmuch_filenames_move_to_next (notmuch_filenames_t *filenames);\r
1089  void\r
1090  notmuch_filenames_destroy (notmuch_filenames_t *filenames);\r
1091  \r
1092 +/* @} */\r
1093 +\r
1094  NOTMUCH_END_DECLS\r
1095  \r
1096  #endif\r
1097 -- \r
1098 1.8.4.rc3\r
1099 \r