Re: [RFC PATCH] test: add devel/test-in-docker.sh
[notmuch-archives.git] / 32 / f5fa4ec1ff55a8483b33686c9d64fb0e1156ba
1 Return-Path: <bremner@tethera.net>\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 4578F431E84\r
6         for <notmuch@notmuchmail.org>; Thu,  6 Mar 2014 05:21:44 -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.001\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=0.001 tagged_above=-999 required=5\r
12         tests=[WEIRD_QUOTING=0.001] 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 4RGc26ILo9gv for <notmuch@notmuchmail.org>;\r
16         Thu,  6 Mar 2014 05:21:29 -0800 (PST)\r
17 Received: from yantan.tethera.net (yantan.tethera.net [199.188.72.155])\r
18         (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))\r
19         (No client certificate requested)\r
20         by olra.theworths.org (Postfix) with ESMTPS id BD6A6431FCF\r
21         for <notmuch@notmuchmail.org>; Thu,  6 Mar 2014 05:21:14 -0800 (PST)\r
22 Received: from remotemail by yantan.tethera.net with local (Exim 4.80)\r
23         (envelope-from <bremner@tethera.net>)\r
24         id 1WLYEc-0000vv-EC; Thu, 06 Mar 2014 09:21:14 -0400\r
25 Received: (nullmailer pid 2394 invoked by uid 1000); Thu, 06 Mar 2014\r
26         13:20:57 -0000\r
27 From: David Bremner <david@tethera.net>\r
28 To: notmuch@notmuchmail.org\r
29 Subject: [PATCH v2 1/4] doc: convert sphinx based docs\r
30 Date: Thu,  6 Mar 2014 09:20:45 -0400\r
31 Message-Id: <1394112048-2151-2-git-send-email-david@tethera.net>\r
32 X-Mailer: git-send-email 1.8.5.3\r
33 In-Reply-To: <1394112048-2151-1-git-send-email-david@tethera.net>\r
34 References: <m2d2i0jz2h.fsf@guru.guru-group.fi>\r
35         <1394112048-2151-1-git-send-email-david@tethera.net>\r
36 MIME-Version: 1.0\r
37 Content-Type: text/plain; charset=UTF-8\r
38 Content-Transfer-Encoding: 8bit\r
39 X-BeenThere: notmuch@notmuchmail.org\r
40 X-Mailman-Version: 2.1.13\r
41 Precedence: list\r
42 List-Id: "Use and development of the notmuch mail system."\r
43         <notmuch.notmuchmail.org>\r
44 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
45         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
46 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
47 List-Post: <mailto:notmuch@notmuchmail.org>\r
48 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
49 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
50         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
51 X-List-Received-Date: Thu, 06 Mar 2014 13:21:44 -0000\r
52 \r
53 This is the output from sphinx-quickstart, massaged a bit, along with\r
54 our existing man pages converted to rst.\r
55 \r
56 A skeleton notmuch-emacs manual is also included. It is not suitable\r
57 for end user use yet.\r
58 ---\r
59  INSTALL                           |  18 ++-\r
60  Makefile                          |   2 +-\r
61  debian/control                    |   1 +\r
62  doc/.gitignore                    |   2 +\r
63  doc/INSTALL                       |  24 ++++\r
64  doc/Makefile                      |   5 +\r
65  doc/Makefile.local                |  27 +++++\r
66  doc/conf.py                       | 166 +++++++++++++++++++++++++++\r
67  doc/index.rst                     |  30 +++++\r
68  doc/man1/notmuch-compact.rst      |  52 +++++++++\r
69  doc/man1/notmuch-config.rst       | 123 ++++++++++++++++++++\r
70  doc/man1/notmuch-count.rst        |  60 ++++++++++\r
71  doc/man1/notmuch-dump.rst         |  72 ++++++++++++\r
72  doc/man1/notmuch-insert.rst       |  58 ++++++++++\r
73  doc/man1/notmuch-new.rst          |  52 +++++++++\r
74  doc/man1/notmuch-reply.rst        | 112 ++++++++++++++++++\r
75  doc/man1/notmuch-restore.rst      |  59 ++++++++++\r
76  doc/man1/notmuch-search.rst       | 146 ++++++++++++++++++++++++\r
77  doc/man1/notmuch-show.rst         | 179 +++++++++++++++++++++++++++++\r
78  doc/man1/notmuch-tag.rst          | 107 +++++++++++++++++\r
79  doc/man1/notmuch.rst              | 143 +++++++++++++++++++++++\r
80  doc/man5/notmuch-hooks.rst        |  44 +++++++\r
81  doc/man7/notmuch-search-terms.rst | 234 ++++++++++++++++++++++++++++++++++++++\r
82  doc/notmuch-emacs.rst             | 192 +++++++++++++++++++++++++++++++\r
83  24 files changed, 1905 insertions(+), 3 deletions(-)\r
84  create mode 100644 doc/.gitignore\r
85  create mode 100644 doc/INSTALL\r
86  create mode 100644 doc/Makefile\r
87  create mode 100644 doc/Makefile.local\r
88  create mode 100644 doc/conf.py\r
89  create mode 100644 doc/index.rst\r
90  create mode 100644 doc/man1/notmuch-compact.rst\r
91  create mode 100644 doc/man1/notmuch-config.rst\r
92  create mode 100644 doc/man1/notmuch-count.rst\r
93  create mode 100644 doc/man1/notmuch-dump.rst\r
94  create mode 100644 doc/man1/notmuch-insert.rst\r
95  create mode 100644 doc/man1/notmuch-new.rst\r
96  create mode 100644 doc/man1/notmuch-reply.rst\r
97  create mode 100644 doc/man1/notmuch-restore.rst\r
98  create mode 100644 doc/man1/notmuch-search.rst\r
99  create mode 100644 doc/man1/notmuch-show.rst\r
100  create mode 100644 doc/man1/notmuch-tag.rst\r
101  create mode 100644 doc/man1/notmuch.rst\r
102  create mode 100644 doc/man5/notmuch-hooks.rst\r
103  create mode 100644 doc/man7/notmuch-search-terms.rst\r
104  create mode 100644 doc/notmuch-emacs.rst\r
105 \r
106 diff --git a/INSTALL b/INSTALL\r
107 index fce9352..690b0ef 100644\r
108 --- a/INSTALL\r
109 +++ b/INSTALL\r
110 @@ -60,16 +60,30 @@ Talloc which are each described below:\r
111  \r
112         Talloc is available from http://talloc.samba.org/\r
113  \r
114 +Building Documentation\r
115 +----------------------\r
116 +\r
117 +By default the documentation for notmuch is built using sphinx.\r
118 +\r
119 +Sphinx is available from www.sphinx-doc.org.\r
120 +\r
121 +If you prefer, you can build the man pages using rst2man, from the\r
122 +python docutils package. See doc/INSTALL for details.\r
123 +\r
124 +\r
125 +Installing Dependencies from Packages\r
126 +-------------------------------------\r
127 +\r
128  On a modern, package-based operating system you can install all of the\r
129  dependencies with a simple simple command line. For example:\r
130  \r
131    For Debian and similar:\r
132  \r
133 -        sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev\r
134 +        sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev python-sphinx\r
135  \r
136    For Fedora and similar:\r
137  \r
138 -       sudo yum install xapian-core-devel gmime-devel libtalloc-devel\r
139 +       sudo yum install xapian-core-devel gmime-devel libtalloc-devel python-sphinx\r
140  \r
141  On other systems, a similar command can be used, but the details of\r
142  the package names may be different.\r
143 diff --git a/Makefile b/Makefile\r
144 index 0428160..39f0e62 100644\r
145 --- a/Makefile\r
146 +++ b/Makefile\r
147 @@ -5,7 +5,7 @@ all:\r
148  # List all subdirectories here. Each contains its own Makefile.local.\r
149  # Use of '=', without '+=', seems to be required for out-of-tree\r
150  # builds to work.\r
151 -subdirs = compat completion emacs lib man parse-time-string performance-test util test\r
152 +subdirs = compat completion doc emacs lib man parse-time-string performance-test util test\r
153  \r
154  # We make all targets depend on the Makefiles themselves.\r
155  global_deps = Makefile Makefile.config Makefile.local \\r
156 diff --git a/debian/control b/debian/control\r
157 index 475b787..caf8a5d 100644\r
158 --- a/debian/control\r
159 +++ b/debian/control\r
160 @@ -15,6 +15,7 @@ Build-Depends:\r
161   libz-dev,\r
162   python-all (>= 2.6.6-3~),\r
163   python3-all (>= 3.1.2-7~),\r
164 + python-sphinx (>= 1.0),\r
165   ruby, ruby-dev (>>1:1.9.3~),\r
166   emacs23-nox | emacs23 (>=23~) | emacs23-lucid (>=23~) |\r
167   emacs24-nox | emacs24 (>=24~) | emacs24-lucid (>=24~),\r
168 diff --git a/doc/.gitignore b/doc/.gitignore\r
169 new file mode 100644\r
170 index 0000000..a60fb31\r
171 --- /dev/null\r
172 +++ b/doc/.gitignore\r
173 @@ -0,0 +1,2 @@\r
174 +docdeps.mk\r
175 +_build\r
176 diff --git a/doc/INSTALL b/doc/INSTALL\r
177 new file mode 100644\r
178 index 0000000..e37c2b9\r
179 --- /dev/null\r
180 +++ b/doc/INSTALL\r
181 @@ -0,0 +1,24 @@\r
182 +This file contains some more detailed information about building and\r
183 +installing the documentation.\r
184 +\r
185 +Building with sphinx.\r
186 +---------------------\r
187 +\r
188 +- You need sphinx at least version 1.0.\r
189 +\r
190 +- You can build build and install man pages with 'make install-man'\r
191 +\r
192 +- You can build man, info, html, and pdf versions of the docs\r
193 +  (currently only the man pages) with\r
194 +\r
195 +     'make install-{man|info|html|pdf}'\r
196 +\r
197 +Building the man pages\r
198 +----------------------\r
199 +\r
200 +- You can build the man pages with rst2man (from python-docutils) with\r
201 +  'make rst2man'.\r
202 +\r
203 +- Currently there is no support to automagically install the resulting\r
204 +  nroff files, but it should work to modify the target install-man\r
205 +  in doc/Makefile.local.\r
206 diff --git a/doc/Makefile b/doc/Makefile\r
207 new file mode 100644\r
208 index 0000000..fa25832\r
209 --- /dev/null\r
210 +++ b/doc/Makefile\r
211 @@ -0,0 +1,5 @@\r
212 +all:\r
213 +       $(MAKE) -C .. all\r
214 +\r
215 +.DEFAULT:\r
216 +       $(MAKE) -C .. $@\r
217 diff --git a/doc/Makefile.local b/doc/Makefile.local\r
218 new file mode 100644\r
219 index 0000000..ec23012\r
220 --- /dev/null\r
221 +++ b/doc/Makefile.local\r
222 @@ -0,0 +1,27 @@\r
223 +# -*- makefile -*-\r
224 +\r
225 +dir := doc\r
226 +\r
227 +# You can set these variables from the command line.\r
228 +SPHINXOPTS    := -q -c $(dir)\r
229 +SPHINXBUILD   = sphinx-build\r
230 +DOCBUILDDIR      := $(dir)/_build\r
231 +\r
232 +# Internal variables.\r
233 +ALLSPHINXOPTS   := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir)\r
234 +\r
235 +.PHONY: sphinx-html sphinx-man sphinx-texinfo sphinx-info\r
236 +\r
237 +sphinx-html:\r
238 +       $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DOCBUILDDIR)/html\r
239 +\r
240 +sphinx-man:\r
241 +       $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(DOCBUILDDIR)/man\r
242 +\r
243 +sphinx-texinfo:\r
244 +       $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(DOCBUILDDIR)/texinfo\r
245 +\r
246 +sphinx-info: sphinx-texinfo\r
247 +       make -C $(DOCBUILDDIR)/texinfo info\r
248 +\r
249 +CLEAN := $(CLEAN) $(DOCBUILDDIR)\r
250 diff --git a/doc/conf.py b/doc/conf.py\r
251 new file mode 100644\r
252 index 0000000..6c2806d\r
253 --- /dev/null\r
254 +++ b/doc/conf.py\r
255 @@ -0,0 +1,166 @@\r
256 +\r
257 +# -*- coding: utf-8 -*-\r
258 +\r
259 +import sys\r
260 +import os\r
261 +\r
262 +# The suffix of source filenames.\r
263 +source_suffix = '.rst'\r
264 +\r
265 +# The master toctree document.\r
266 +master_doc = 'index'\r
267 +\r
268 +# General information about the project.\r
269 +project = u'notmuch'\r
270 +copyright = u'2014, Carl Worth and many others'\r
271 +\r
272 +# The short X.Y version.\r
273 +version = '0.17'\r
274 +# The full version, including alpha/beta/rc tags.\r
275 +release = '0.17'\r
276 +\r
277 +# List of patterns, relative to source directory, that match files and\r
278 +# directories to ignore when looking for source files.\r
279 +exclude_patterns = ['_build', 'notmuch-emacs.rst']\r
280 +\r
281 +# The name of the Pygments (syntax highlighting) style to use.\r
282 +pygments_style = 'sphinx'\r
283 +\r
284 +# -- Options for HTML output ----------------------------------------------\r
285 +\r
286 +# The theme to use for HTML and HTML Help pages.  See the documentation for\r
287 +# a list of builtin themes.\r
288 +html_theme = 'default'\r
289 +\r
290 +\r
291 +# Add any paths that contain custom static files (such as style sheets) here,\r
292 +# relative to this directory. They are copied after the builtin static files,\r
293 +# so a file named "default.css" will overwrite the builtin "default.css".\r
294 +html_static_path = ['_static']\r
295 +\r
296 +# Output file base name for HTML help builder.\r
297 +htmlhelp_basename = 'notmuchdoc'\r
298 +\r
299 +# -- Options for manual page output ---------------------------------------\r
300 +\r
301 +# One entry per manual page. List of tuples\r
302 +# (source start file, name, description, authors, manual section).\r
303 +\r
304 +man_pages = [\r
305 +\r
306 +('man1/notmuch','notmuch',\r
307 +        u'thread-based email index, search, and tagging',\r
308 +        [u'Carl Worth and many others'], 1),\r
309 +\r
310 +('man1/notmuch-compact','notmuch-compact',\r
311 +        u'compact the notmuch database',\r
312 +        [u'Carl Worth and many others'], 1),\r
313 +\r
314 +('man1/notmuch-config','notmuch-config',\r
315 +        u'access notmuch configuration file',\r
316 +        [u'Carl Worth and many others'], 1),\r
317 +\r
318 +('man1/notmuch-count','notmuch-count',\r
319 +        u'count messages matching the given search terms',\r
320 +        [u'Carl Worth and many others'], 1),\r
321 +\r
322 +('man1/notmuch-dump','notmuch-dump',\r
323 +        u'creates a plain-text dump of the tags of each message',\r
324 +        [u'Carl Worth and many others'], 1),\r
325 +\r
326 +('man5/notmuch-hooks','notmuch-hooks',\r
327 +        u'hooks for notmuch',\r
328 +        [u'Carl Worth and many others'], 5),\r
329 +\r
330 +('man1/notmuch-insert','notmuch-insert',\r
331 +        u'add a message to the maildir and notmuch database',\r
332 +        [u'Carl Worth and many others'], 1),\r
333 +\r
334 +('man1/notmuch-new','notmuch-new',\r
335 +        u'incorporate new mail into the notmuch database',\r
336 +        [u'Carl Worth and many others'], 1),\r
337 +\r
338 +('man1/notmuch-reply','notmuch-reply',\r
339 +        u'constructs a reply template for a set of messages',\r
340 +        [u'Carl Worth and many others'], 1),\r
341 +\r
342 +('man1/notmuch-restore','notmuch-restore',\r
343 +        u'restores the tags from the given file (see notmuch dump)',\r
344 +        [u'Carl Worth and many others'], 1),\r
345 +\r
346 +('man1/notmuch-search','notmuch-search',\r
347 +        u'search for messages matching the given search terms',\r
348 +        [u'Carl Worth and many others'], 1),\r
349 +\r
350 +('man7/notmuch-search-terms','notmuch-search-terms',\r
351 +        u'syntax for notmuch queries',\r
352 +        [u'Carl Worth and many others'], 7),\r
353 +\r
354 +('man1/notmuch-show','notmuch-show',\r
355 +        u'show messages matching the given search terms',\r
356 +        [u'Carl Worth and many others'], 1),\r
357 +\r
358 +('man1/notmuch-tag','notmuch-tag',\r
359 +        u'add/remove tags for all messages matching the search terms',\r
360 +        [u'Carl Worth and many others'], 1),\r
361 +\r
362 +\r
363 +]\r
364 +# If true, show URL addresses after external links.\r
365 +#man_show_urls = False\r
366 +\r
367 +# -- Options for Texinfo output -------------------------------------------\r
368 +\r
369 +# Grouping the document tree into Texinfo files. List of tuples\r
370 +# (source start file, target name, title, author,\r
371 +#  dir menu entry, description, category)\r
372 +# If true, do not generate a @detailmenu in the "Top" node's menu.\r
373 +texinfo_no_detailmenu = True\r
374 +\r
375 +texinfo_documents = [\r
376 + ('notmuch-emacs', 'notmuch-emacs', u'notmuch Documentation',\r
377 +   u'Carl Worth and many others', 'notmuch-emacs',\r
378 +   'emacs based front-end for notmuch', 'Miscellaneous'),\r
379 +('man1/notmuch','notmuch',u'notmuch Documentation',\r
380 +      u'Carl Worth and many others', 'notmuch',\r
381 +      'thread-based email index, search, and tagging','Miscellaneous'),\r
382 +('man1/notmuch-compact','notmuch-compact',u'notmuch Documentation',\r
383 +      u'Carl Worth and many others', 'notmuch-compact',\r
384 +      'compact the notmuch database','Miscellaneous'),\r
385 +('man1/notmuch-config','notmuch-config',u'notmuch Documentation',\r
386 +      u'Carl Worth and many others', 'notmuch-config',\r
387 +      'access notmuch configuration file','Miscellaneous'),\r
388 +('man1/notmuch-count','notmuch-count',u'notmuch Documentation',\r
389 +      u'Carl Worth and many others', 'notmuch-count',\r
390 +      'count messages matching the given search terms','Miscellaneous'),\r
391 +('man1/notmuch-dump','notmuch-dump',u'notmuch Documentation',\r
392 +      u'Carl Worth and many others', 'notmuch-dump',\r
393 +      'creates a plain-text dump of the tags of each message','Miscellaneous'),\r
394 +('man5/notmuch-hooks','notmuch-hooks',u'notmuch Documentation',\r
395 +      u'Carl Worth and many others', 'notmuch-hooks',\r
396 +      'hooks for notmuch','Miscellaneous'),\r
397 +('man1/notmuch-insert','notmuch-insert',u'notmuch Documentation',\r
398 +      u'Carl Worth and many others', 'notmuch-insert',\r
399 +      'add a message to the maildir and notmuch database','Miscellaneous'),\r
400 +('man1/notmuch-new','notmuch-new',u'notmuch Documentation',\r
401 +      u'Carl Worth and many others', 'notmuch-new',\r
402 +      'incorporate new mail into the notmuch database','Miscellaneous'),\r
403 +('man1/notmuch-reply','notmuch-reply',u'notmuch Documentation',\r
404 +      u'Carl Worth and many others', 'notmuch-reply',\r
405 +      'constructs a reply template for a set of messages','Miscellaneous'),\r
406 +('man1/notmuch-restore','notmuch-restore',u'notmuch Documentation',\r
407 +      u'Carl Worth and many others', 'notmuch-restore',\r
408 +      'restores the tags from the given file (see notmuch dump)','Miscellaneous'),\r
409 +('man1/notmuch-search','notmuch-search',u'notmuch Documentation',\r
410 +      u'Carl Worth and many others', 'notmuch-search',\r
411 +      'search for messages matching the given search terms','Miscellaneous'),\r
412 +('man7/notmuch-search-terms','notmuch-search-terms',u'notmuch Documentation',\r
413 +      u'Carl Worth and many others', 'notmuch-search-terms',\r
414 +      'syntax for notmuch queries','Miscellaneous'),\r
415 +('man1/notmuch-show','notmuch-show',u'notmuch Documentation',\r
416 +      u'Carl Worth and many others', 'notmuch-show',\r
417 +      'show messages matching the given search terms','Miscellaneous'),\r
418 +('man1/notmuch-tag','notmuch-tag',u'notmuch Documentation',\r
419 +      u'Carl Worth and many others', 'notmuch-tag',\r
420 +      'add/remove tags for all messages matching the search terms','Miscellaneous'),\r
421 +]\r
422 diff --git a/doc/index.rst b/doc/index.rst\r
423 new file mode 100644\r
424 index 0000000..b33aa9f\r
425 --- /dev/null\r
426 +++ b/doc/index.rst\r
427 @@ -0,0 +1,30 @@\r
428 +\r
429 +Welcome to notmuch's documentation!\r
430 +===================================\r
431 +\r
432 +Contents:\r
433 +\r
434 +.. toctree::\r
435 +   :titlesonly:\r
436 +\r
437 +   man1/notmuch\r
438 +   man1/notmuch-compact\r
439 +   man1/notmuch-config\r
440 +   man1/notmuch-count\r
441 +   man1/notmuch-dump\r
442 +   man5/notmuch-hooks\r
443 +   man1/notmuch-insert\r
444 +   man1/notmuch-new\r
445 +   man1/notmuch-reply\r
446 +   man1/notmuch-restore\r
447 +   man1/notmuch-search\r
448 +   man7/notmuch-search-terms\r
449 +   man1/notmuch-show\r
450 +   man1/notmuch-tag\r
451 +\r
452 +Indices and tables\r
453 +==================\r
454 +\r
455 +* :ref:`genindex`\r
456 +* :ref:`modindex`\r
457 +* :ref:`search`\r
458 diff --git a/doc/man1/notmuch-compact.rst b/doc/man1/notmuch-compact.rst\r
459 new file mode 100644\r
460 index 0000000..e0109dc\r
461 --- /dev/null\r
462 +++ b/doc/man1/notmuch-compact.rst\r
463 @@ -0,0 +1,52 @@\r
464 +===============\r
465 +notmuch-compact\r
466 +===============\r
467 +\r
468 +SYNOPSIS\r
469 +========\r
470 +\r
471 +**notmuch** **compact** [--quiet] [--backup=<*directory*>]\r
472 +\r
473 +DESCRIPTION\r
474 +===========\r
475 +\r
476 +The **compact** command can be used to compact the notmuch database.\r
477 +This can both reduce the space required by the database and improve\r
478 +lookup performance.\r
479 +\r
480 +The compacted database is built in a temporary directory and is later\r
481 +moved into the place of the origin database. The original uncompacted\r
482 +database is discarded, unless the ``--backup=``\ <directory> option is\r
483 +used.\r
484 +\r
485 +Note that the database write lock will be held during the compaction\r
486 +process (which may be quite long) to protect data integrity.\r
487 +\r
488 +Supported options for **compact** include\r
489 +\r
490 +    ``--backup=``\ <directory>\r
491 +        Save the current database to the given directory before\r
492 +        replacing it with the compacted database. The backup directory\r
493 +        must not exist and it must reside on the same mounted filesystem\r
494 +        as the current database.\r
495 +\r
496 +    ``--quiet``\r
497 +        Do not report database compaction progress to stdout.\r
498 +\r
499 +ENVIRONMENT\r
500 +===========\r
501 +\r
502 +The following environment variables can be used to control the behavior\r
503 +of notmuch.\r
504 +\r
505 +**NOTMUCH\_CONFIG**\r
506 +    Specifies the location of the notmuch configuration file. Notmuch\r
507 +    will use ${HOME}/.notmuch-config if this variable is not set.\r
508 +\r
509 +SEE ALSO\r
510 +========\r
511 +\r
512 +**notmuch(1)**, **notmuch-count(1)**, **notmuch-dump(1)**,\r
513 +**notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**,\r
514 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
515 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
516 diff --git a/doc/man1/notmuch-config.rst b/doc/man1/notmuch-config.rst\r
517 new file mode 100644\r
518 index 0000000..3c9a568\r
519 --- /dev/null\r
520 +++ b/doc/man1/notmuch-config.rst\r
521 @@ -0,0 +1,123 @@\r
522 +==============\r
523 +notmuch-config\r
524 +==============\r
525 +\r
526 +SYNOPSIS\r
527 +========\r
528 +\r
529 +**notmuch** **config** **get** <*section*>.<*item*>\r
530 +\r
531 +**notmuch** **config** **set** <*section*>.<*item*> [*value* ...]\r
532 +\r
533 +**notmuch** **config** **list**\r
534 +\r
535 +DESCRIPTION\r
536 +===========\r
537 +\r
538 +The **config** command can be used to get or set settings in the notmuch\r
539 +configuration file.\r
540 +\r
541 +    **get**\r
542 +        The value of the specified configuration item is printed to\r
543 +        stdout. If the item has multiple values (it is a list), each\r
544 +        value is separated by a newline character.\r
545 +\r
546 +    **set**\r
547 +        The specified configuration item is set to the given value. To\r
548 +        specify a multiple-value item (a list), provide each value as a\r
549 +        separate command-line argument.\r
550 +\r
551 +        If no values are provided, the specified configuration item will\r
552 +        be removed from the configuration file.\r
553 +\r
554 +    **list**\r
555 +        Every configuration item is printed to stdout, each on a\r
556 +        separate line of the form:\r
557 +\r
558 +        *section*.\ *item*\ =\ *value*\r
559 +\r
560 +        No additional whitespace surrounds the dot or equals sign\r
561 +        characters. In a multiple-value item (a list), the values are\r
562 +        separated by semicolon characters.\r
563 +\r
564 +The available configuration items are described below.\r
565 +\r
566 +    **database.path**\r
567 +        The top-level directory where your mail currently exists and to\r
568 +        where mail will be delivered in the future. Files should be\r
569 +        individual email messages. Notmuch will store its database\r
570 +        within a sub-directory of the path configured here named\r
571 +        ``.notmuch``.\r
572 +\r
573 +    **user.name**\r
574 +        Your full name.\r
575 +\r
576 +    **user.primary\_email**\r
577 +        Your primary email address.\r
578 +\r
579 +    **user.other\_email**\r
580 +        A list of other email addresses at which you receive email.\r
581 +\r
582 +    **new.tags**\r
583 +        A list of tags that will be added to all messages incorporated\r
584 +        by **notmuch new**.\r
585 +\r
586 +    **new.ignore**\r
587 +        A list of file and directory names, without path, that will not\r
588 +        be searched for messages by **notmuch new**. All the files and\r
589 +        directories matching any of the names specified here will be\r
590 +        ignored, regardless of the location in the mail store directory\r
591 +        hierarchy.\r
592 +\r
593 +    **search.exclude\_tags**\r
594 +        A list of tags that will be excluded from search results by\r
595 +        default. Using an excluded tag in a query will override that\r
596 +        exclusion.\r
597 +\r
598 +    **maildir.synchronize\_flags**\r
599 +        If true, then the following maildir flags (in message filenames)\r
600 +        will be synchronized with the corresponding notmuch tags:\r
601 +\r
602 +        +--------+-----------------------------------------------+\r
603 +        | Flag   | Tag                                           |\r
604 +        +========+===============================================+\r
605 +        | D      | draft                                         |\r
606 +        +--------+-----------------------------------------------+\r
607 +        | F      | flagged                                       |\r
608 +        +--------+-----------------------------------------------+\r
609 +        | P      | passed                                        |\r
610 +        +--------+-----------------------------------------------+\r
611 +        | R      | replied                                       |\r
612 +        +--------+-----------------------------------------------+\r
613 +        | S      | unread (added when 'S' flag is not present)   |\r
614 +        +--------+-----------------------------------------------+\r
615 +\r
616 +        The **notmuch new** command will notice flag changes in\r
617 +        filenames and update tags, while the **notmuch tag** and\r
618 +        **notmuch restore** commands will notice tag changes and update\r
619 +        flags in filenames.\r
620 +\r
621 +        If there have been any changes in the maildir (new messages\r
622 +        added, old ones removed or renamed, maildir flags changed,\r
623 +        etc.), it is advisable to run **notmuch new** before **notmuch\r
624 +        tag** or **notmuch restore** commands to ensure the tag changes\r
625 +        are properly synchronized to the maildir flags, as the commands\r
626 +        expect the database and maildir to be in sync.\r
627 +\r
628 +ENVIRONMENT\r
629 +===========\r
630 +\r
631 +The following environment variables can be used to control the behavior\r
632 +of notmuch.\r
633 +\r
634 +**NOTMUCH\_CONFIG**\r
635 +    Specifies the location of the notmuch configuration file. Notmuch\r
636 +    will use ${HOME}/.notmuch-config if this variable is not set.\r
637 +\r
638 +SEE ALSO\r
639 +========\r
640 +\r
641 +**notmuch(1)**, **notmuch-count(1)**, **notmuch-dump(1)**,\r
642 +**notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**,\r
643 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
644 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
645 diff --git a/doc/man1/notmuch-count.rst b/doc/man1/notmuch-count.rst\r
646 new file mode 100644\r
647 index 0000000..ca78c18\r
648 --- /dev/null\r
649 +++ b/doc/man1/notmuch-count.rst\r
650 @@ -0,0 +1,60 @@\r
651 +=============\r
652 +notmuch-count\r
653 +=============\r
654 +\r
655 +SYNOPSIS\r
656 +========\r
657 +\r
658 +**notmuch** **count** [*option* ...] <*search-term*> ...\r
659 +\r
660 +DESCRIPTION\r
661 +===========\r
662 +\r
663 +Count messages matching the search terms.\r
664 +\r
665 +The number of matching messages (or threads) is output to stdout.\r
666 +\r
667 +With no search terms, a count of all messages (or threads) in the\r
668 +database will be displayed.\r
669 +\r
670 +See **notmuch-search-terms(7)** for details of the supported syntax for\r
671 +<search-terms>.\r
672 +\r
673 +Supported options for **count** include\r
674 +\r
675 +    ``--output=(messages|threads|files)``\r
676 +\r
677 +        **messages**\r
678 +            Output the number of matching messages. This is the default.\r
679 +\r
680 +        **threads**\r
681 +            Output the number of matching threads.\r
682 +\r
683 +        **files**\r
684 +            Output the number of files associated with matching\r
685 +            messages. This may be bigger than the number of matching\r
686 +            messages due to duplicates (i.e. multiple files having the\r
687 +            same message-id).\r
688 +\r
689 +    ``--exclude=(true|false)``\r
690 +        Specify whether to omit messages matching search.tag\_exclude\r
691 +        from the count (the default) or not.\r
692 +\r
693 +    ``--batch``\r
694 +        Read queries from a file (stdin by default), one per line, and\r
695 +        output the number of matching messages (or threads) to stdout,\r
696 +        one per line. On an empty input line the count of all messages\r
697 +        (or threads) in the database will be output. This option is not\r
698 +        compatible with specifying search terms on the command line.\r
699 +\r
700 +    ``--input=``\ <filename>\r
701 +        Read input from given file, instead of from stdin. Implies\r
702 +        ``--batch``.\r
703 +\r
704 +SEE ALSO\r
705 +========\r
706 +\r
707 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-dump(1)**,\r
708 +**notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**,\r
709 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
710 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
711 diff --git a/doc/man1/notmuch-dump.rst b/doc/man1/notmuch-dump.rst\r
712 new file mode 100644\r
713 index 0000000..17d1da5\r
714 --- /dev/null\r
715 +++ b/doc/man1/notmuch-dump.rst\r
716 @@ -0,0 +1,72 @@\r
717 +============\r
718 +notmuch-dump\r
719 +============\r
720 +\r
721 +SYNOPSIS\r
722 +========\r
723 +\r
724 +**notmuch** **dump** [--format=(batch-tag|sup)] [--] [--output=<*file*>] [--] [<*search-term*> ...]\r
725 +\r
726 +DESCRIPTION\r
727 +===========\r
728 +\r
729 +Dump tags for messages matching the given search terms.\r
730 +\r
731 +Output is to the given filename, if any, or to stdout.\r
732 +\r
733 +These tags are the only data in the notmuch database that can't be\r
734 +recreated from the messages themselves. The output of notmuch dump is\r
735 +therefore the only critical thing to backup (and much more friendly to\r
736 +incremental backup than the native database files.)\r
737 +\r
738 +``--format=(sup|batch-tag)``\r
739 +    Notmuch restore supports two plain text dump formats, both with one\r
740 +    message-id per line, followed by a list of tags.\r
741 +\r
742 +    **batch-tag**\r
743 +        The default **batch-tag** dump format is intended to more robust\r
744 +        against malformed message-ids and tags containing whitespace or\r
745 +        non-\ **ascii(7)** characters. Each line has the form\r
746 +\r
747 +            +<*encoded-tag*\ > +<*encoded-tag*\ > ... --\r
748 +            id:<*quoted-message-id*\ >\r
749 +\r
750 +        Tags are hex-encoded by replacing every byte not matching the\r
751 +        regex **[A-Za-z0-9@=.,\_+-]** with **%nn** where nn is the two\r
752 +        digit hex encoding. The message ID is a valid Xapian query,\r
753 +        quoted using Xapian boolean term quoting rules: if the ID\r
754 +        contains whitespace or a close paren or starts with a double\r
755 +        quote, it must be enclosed in double quotes and double quotes\r
756 +        inside the ID must be doubled. The astute reader will notice\r
757 +        this is a special case of the batch input format for\r
758 +        **notmuch-tag(1)**; note that the single message-id query is\r
759 +        mandatory for **notmuch-restore(1)**.\r
760 +\r
761 +    **sup**\r
762 +        The **sup** dump file format is specifically chosen to be\r
763 +        compatible with the format of files produced by sup-dump. So if\r
764 +        you've previously been using sup for mail, then the **notmuch\r
765 +        restore** command provides you a way to import all of your tags\r
766 +        (or labels as sup calls them). Each line has the following form\r
767 +\r
768 +            <*message-id*\ > **(** <*tag*\ > ... **)**\r
769 +\r
770 +        with zero or more tags are separated by spaces. Note that\r
771 +        (malformed) message-ids may contain arbitrary non-null\r
772 +        characters. Note also that tags with spaces will not be\r
773 +        correctly restored with this format.\r
774 +\r
775 +    With no search terms, a dump of all messages in the database will be\r
776 +    generated. A "--" argument instructs notmuch that the remaining\r
777 +    arguments are search terms.\r
778 +\r
779 +    See **notmuch-search-terms(7)** for details of the supported syntax\r
780 +    for <search-terms>.\r
781 +\r
782 +SEE ALSO\r
783 +========\r
784 +\r
785 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
786 +**notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**,\r
787 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
788 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
789 diff --git a/doc/man1/notmuch-insert.rst b/doc/man1/notmuch-insert.rst\r
790 new file mode 100644\r
791 index 0000000..2be1a7b\r
792 --- /dev/null\r
793 +++ b/doc/man1/notmuch-insert.rst\r
794 @@ -0,0 +1,58 @@\r
795 +==============\r
796 +notmuch-insert\r
797 +==============\r
798 +\r
799 +SYNOPSIS\r
800 +========\r
801 +\r
802 +**notmuch** **insert** [option ...] [+<*tag*>|-<*tag*> ...]\r
803 +\r
804 +DESCRIPTION\r
805 +===========\r
806 +\r
807 +**notmuch insert** reads a message from standard input and delivers it\r
808 +into the maildir directory given by configuration option\r
809 +**database.path**, then incorporates the message into the notmuch\r
810 +database. It is an alternative to using a separate tool to deliver the\r
811 +message then running **notmuch new** afterwards.\r
812 +\r
813 +The new message will be tagged with the tags specified by the\r
814 +**new.tags** configuration option, then by operations specified on the\r
815 +command-line: tags prefixed by '+' are added while those prefixed by '-'\r
816 +are removed.\r
817 +\r
818 +If the new message is a duplicate of an existing message in the database\r
819 +(it has same Message-ID), it will be added to the maildir folder and\r
820 +notmuch database, but the tags will not be changed.\r
821 +\r
822 +Option arguments must appear before any tag operation arguments.\r
823 +Supported options for **insert** include\r
824 +\r
825 +    ``--folder=<``\ folder\ **>**\r
826 +        Deliver the message to the specified folder, relative to the\r
827 +        top-level directory given by the value of **database.path**. The\r
828 +        default is to deliver to the top-level directory.\r
829 +\r
830 +    ``--create-folder``\r
831 +        Try to create the folder named by the ``--folder`` option, if it\r
832 +        does not exist. Otherwise the folder must already exist for mail\r
833 +        delivery to succeed.\r
834 +\r
835 +EXIT STATUS\r
836 +===========\r
837 +\r
838 +This command returns exit status 0 if the message was successfully added\r
839 +to the mail directory, even if the message could not be indexed and\r
840 +added to the notmuch database. In the latter case, a warning will be\r
841 +printed to standard error but the message file will be left on disk.\r
842 +\r
843 +If the message could not be written to disk then a non-zero exit status\r
844 +is returned.\r
845 +\r
846 +SEE ALSO\r
847 +========\r
848 +\r
849 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
850 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-reply(1)**,\r
851 +**notmuch-restore(1)**, **notmuch-search(1)**,\r
852 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
853 diff --git a/doc/man1/notmuch-new.rst b/doc/man1/notmuch-new.rst\r
854 new file mode 100644\r
855 index 0000000..d11fcee\r
856 --- /dev/null\r
857 +++ b/doc/man1/notmuch-new.rst\r
858 @@ -0,0 +1,52 @@\r
859 +===========\r
860 +notmuch-new\r
861 +===========\r
862 +\r
863 +SYNOPSIS\r
864 +========\r
865 +\r
866 +**notmuch** **new** [--no-hooks]\r
867 +\r
868 +DESCRIPTION\r
869 +===========\r
870 +\r
871 +Find and import any new messages to the database.\r
872 +\r
873 +The **new** command scans all sub-directories of the database,\r
874 +performing full-text indexing on new messages that are found. Each new\r
875 +message will automatically be tagged with both the **inbox** and\r
876 +**unread** tags.\r
877 +\r
878 +You should run **notmuch new** once after first running **notmuch\r
879 +setup** to create the initial database. The first run may take a long\r
880 +time if you have a significant amount of mail (several hundred thousand\r
881 +messages or more). Subsequently, you should run **notmuch new** whenever\r
882 +new mail is delivered and you wish to incorporate it into the database.\r
883 +These subsequent runs will be much quicker than the initial run.\r
884 +\r
885 +Invoking ``notmuch`` with no command argument will run **new** if\r
886 +**notmuch setup** has previously been completed, but **notmuch new** has\r
887 +not previously been run.\r
888 +\r
889 +**notmuch new** updates tags according to maildir flag changes if the\r
890 +**maildir.synchronize\_flags** configuration option is enabled. See\r
891 +**notmuch-config(1)** for details.\r
892 +\r
893 +The **new** command supports hooks. See **notmuch-hooks(5)** for more\r
894 +details on hooks.\r
895 +\r
896 +Supported options for **new** include\r
897 +\r
898 +    ``--no-hooks``\r
899 +        Prevents hooks from being run.\r
900 +\r
901 +    ``--quiet``\r
902 +        Do not print progress or results.\r
903 +\r
904 +SEE ALSO\r
905 +========\r
906 +\r
907 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
908 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
909 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
910 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
911 diff --git a/doc/man1/notmuch-reply.rst b/doc/man1/notmuch-reply.rst\r
912 new file mode 100644\r
913 index 0000000..cfbd4ea\r
914 --- /dev/null\r
915 +++ b/doc/man1/notmuch-reply.rst\r
916 @@ -0,0 +1,112 @@\r
917 +=============\r
918 +notmuch-reply\r
919 +=============\r
920 +\r
921 +SYNOPSIS\r
922 +========\r
923 +\r
924 +**notmuch** **reply** [option ...] <*search-term*> ...\r
925 +\r
926 +DESCRIPTION\r
927 +===========\r
928 +\r
929 +Constructs a reply template for a set of messages.\r
930 +\r
931 +To make replying to email easier, **notmuch reply** takes an existing\r
932 +set of messages and constructs a suitable mail template. The Reply-to:\r
933 +header (if any, otherwise From:) is used for the To: address. Unless\r
934 +``--reply-to=sender`` is specified, values from the To: and Cc: headers\r
935 +are copied, but not including any of the current user's email addresses\r
936 +(as configured in primary\_mail or other\_email in the .notmuch-config\r
937 +file) in the recipient list.\r
938 +\r
939 +It also builds a suitable new subject, including Re: at the front (if\r
940 +not already present), and adding the message IDs of the messages being\r
941 +replied to to the References list and setting the In-Reply-To: field\r
942 +correctly.\r
943 +\r
944 +Finally, the original contents of the emails are quoted by prefixing\r
945 +each line with '> ' and included in the body.\r
946 +\r
947 +The resulting message template is output to stdout.\r
948 +\r
949 +Supported options for **reply** include\r
950 +\r
951 +    ``--format=``\ (**default**\ \|\ **json**\ \|\ **sexp**\ \|\ **headers-only**)\r
952 +\r
953 +        **default**\r
954 +            Includes subject and quoted message body as an RFC 2822\r
955 +            message.\r
956 +\r
957 +        **json**\r
958 +            Produces JSON output containing headers for a reply message\r
959 +            and the contents of the original message. This output can be\r
960 +            used by a client to create a reply message intelligently.\r
961 +\r
962 +        **sexp**\r
963 +            Produces S-Expression output containing headers for a reply\r
964 +            message and the contents of the original message. This\r
965 +            output can be used by a client to create a reply message\r
966 +            intelligently.\r
967 +\r
968 +        **headers-only**\r
969 +            Only produces In-Reply-To, References, To, Cc, and Bcc\r
970 +            headers.\r
971 +\r
972 +    ``--format-version=N``\r
973 +        Use the specified structured output format version. This is\r
974 +        intended for programs that invoke **notmuch(1)** internally. If\r
975 +        omitted, the latest supported version will be used.\r
976 +\r
977 +    ``--reply-to=``\ (**all**\ \|\ **sender**)\r
978 +\r
979 +        **all** (default)\r
980 +            Replies to all addresses.\r
981 +\r
982 +        **sender**\r
983 +            Replies only to the sender. If replying to user's own\r
984 +            message (Reply-to: or From: header is one of the user's\r
985 +            configured email addresses), try To:, Cc:, and Bcc: headers\r
986 +            in this order, and copy values from the first that contains\r
987 +            something other than only the user's addresses.\r
988 +\r
989 +    ``--decrypt``\r
990 +        Decrypt any MIME encrypted parts found in the selected content\r
991 +        (ie. "multipart/encrypted" parts). Status of the decryption will\r
992 +        be reported (currently only supported with --format=json and\r
993 +        --format=sexp) and on successful decryption the\r
994 +        multipart/encrypted part will be replaced by the decrypted\r
995 +        content.\r
996 +\r
997 +        Decryption expects a functioning **gpg-agent(1)** to provide any\r
998 +        needed credentials. Without one, the decryption will fail.\r
999 +\r
1000 +See **notmuch-search-terms(7)** for details of the supported syntax for\r
1001 +<search-terms>.\r
1002 +\r
1003 +Note: It is most common to use **notmuch reply** with a search string\r
1004 +matching a single message, (such as id:<message-id>), but it can be\r
1005 +useful to reply to several messages at once. For example, when a series\r
1006 +of patches are sent in a single thread, replying to the entire thread\r
1007 +allows for the reply to comment on issues found in multiple patches. The\r
1008 +default format supports replying to multiple messages at once, but the\r
1009 +JSON and S-Expression formats do not.\r
1010 +\r
1011 +EXIT STATUS\r
1012 +===========\r
1013 +\r
1014 +This command supports the following special exit status codes\r
1015 +\r
1016 +``20``\r
1017 +    The requested format version is too old.\r
1018 +\r
1019 +``21``\r
1020 +    The requested format version is too new.\r
1021 +\r
1022 +SEE ALSO\r
1023 +========\r
1024 +\r
1025 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1026 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
1027 +**notmuch-new(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
1028 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
1029 diff --git a/doc/man1/notmuch-restore.rst b/doc/man1/notmuch-restore.rst\r
1030 new file mode 100644\r
1031 index 0000000..d6cf19a\r
1032 --- /dev/null\r
1033 +++ b/doc/man1/notmuch-restore.rst\r
1034 @@ -0,0 +1,59 @@\r
1035 +===============\r
1036 +notmuch-restore\r
1037 +===============\r
1038 +\r
1039 +SYNOPSIS\r
1040 +========\r
1041 +\r
1042 +**notmuch** **restore** [--accumulate] [--format=(auto|batch-tag|sup)] [--input=<*filename*>]\r
1043 +\r
1044 +DESCRIPTION\r
1045 +===========\r
1046 +\r
1047 +Restores the tags from the given file (see **notmuch dump**).\r
1048 +\r
1049 +The input is read from the given filename, if any, or from stdin.\r
1050 +\r
1051 +Supported options for **restore** include\r
1052 +\r
1053 +    ``--accumulate``\r
1054 +        The union of the existing and new tags is applied, instead of\r
1055 +        replacing each message's tags as they are read in from the dump\r
1056 +        file.\r
1057 +\r
1058 +    ``--format=(sup|batch-tag|auto)``\r
1059 +        Notmuch restore supports two plain text dump formats, with each\r
1060 +        line specifying a message-id and a set of tags. For details of\r
1061 +        the actual formats, see **notmuch-dump(1)**.\r
1062 +\r
1063 +        **sup**\r
1064 +            The **sup** dump file format is specifically chosen to be\r
1065 +            compatible with the format of files produced by sup-dump. So\r
1066 +            if you've previously been using sup for mail, then the\r
1067 +            **notmuch restore** command provides you a way to import all\r
1068 +            of your tags (or labels as sup calls them).\r
1069 +\r
1070 +        **batch-tag**\r
1071 +            The **batch-tag** dump format is intended to more robust\r
1072 +            against malformed message-ids and tags containing whitespace\r
1073 +            or non-\ **ascii(7)** characters. See **notmuch-dump(1)**\r
1074 +            for details on this format.\r
1075 +\r
1076 +            **notmuch restore** updates the maildir flags according to\r
1077 +            tag changes if the **maildir.synchronize\_flags**\r
1078 +            configuration option is enabled. See **notmuch-config(1)**\r
1079 +            for details.\r
1080 +\r
1081 +        **auto**\r
1082 +            This option (the default) tries to guess the format from the\r
1083 +            input. For correctly formed input in either supported\r
1084 +            format, this heuristic, based the fact that batch-tag format\r
1085 +            contains no parentheses, should be accurate.\r
1086 +\r
1087 +SEE ALSO\r
1088 +========\r
1089 +\r
1090 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1091 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
1092 +**notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-search(1)**,\r
1093 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
1094 diff --git a/doc/man1/notmuch-search.rst b/doc/man1/notmuch-search.rst\r
1095 new file mode 100644\r
1096 index 0000000..7ac6c68\r
1097 --- /dev/null\r
1098 +++ b/doc/man1/notmuch-search.rst\r
1099 @@ -0,0 +1,146 @@\r
1100 +==============\r
1101 +notmuch-search\r
1102 +==============\r
1103 +\r
1104 +SYNOPSIS\r
1105 +========\r
1106 +\r
1107 +**notmuch** **search** [*option* ...] <*search-term*> ...\r
1108 +\r
1109 +DESCRIPTION\r
1110 +===========\r
1111 +\r
1112 +Search for messages matching the given search terms, and display as\r
1113 +results the threads containing the matched messages.\r
1114 +\r
1115 +The output consists of one line per thread, giving a thread ID, the date\r
1116 +of the newest (or oldest, depending on the sort option) matched message\r
1117 +in the thread, the number of matched messages and total messages in the\r
1118 +thread, the names of all participants in the thread, and the subject of\r
1119 +the newest (or oldest) message.\r
1120 +\r
1121 +See **notmuch-search-terms(7)** for details of the supported syntax for\r
1122 +<search-terms>.\r
1123 +\r
1124 +Supported options for **search** include\r
1125 +\r
1126 +    ``--format=``\ (**json**\ \|\ **sexp**\ \|\ **text**\ \|\ **text0**)\r
1127 +        Presents the results in either JSON, S-Expressions, newline\r
1128 +        character separated plain-text (default), or null character\r
1129 +        separated plain-text (compatible with **xargs(1)** -0 option\r
1130 +        where available).\r
1131 +\r
1132 +    ``--format-version=N``\r
1133 +        Use the specified structured output format version. This is\r
1134 +        intended for programs that invoke **notmuch(1)** internally. If\r
1135 +        omitted, the latest supported version will be used.\r
1136 +\r
1137 +    ``--output=(summary|threads|messages|files|tags)``\r
1138 +\r
1139 +        **summary**\r
1140 +            Output a summary of each thread with any message matching\r
1141 +            the search terms. The summary includes the thread ID, date,\r
1142 +            the number of messages in the thread (both the number\r
1143 +            matched and the total number), the authors of the thread and\r
1144 +            the subject.\r
1145 +\r
1146 +        **threads**\r
1147 +            Output the thread IDs of all threads with any message\r
1148 +            matching the search terms, either one per line\r
1149 +            (--format=text), separated by null characters\r
1150 +            (--format=text0), as a JSON array (--format=json), or an\r
1151 +            S-Expression list (--format=sexp).\r
1152 +\r
1153 +        **messages**\r
1154 +            Output the message IDs of all messages matching the search\r
1155 +            terms, either one per line (--format=text), separated by\r
1156 +            null characters (--format=text0), as a JSON array\r
1157 +            (--format=json), or as an S-Expression list (--format=sexp).\r
1158 +\r
1159 +        **files**\r
1160 +            Output the filenames of all messages matching the search\r
1161 +            terms, either one per line (--format=text), separated by\r
1162 +            null characters (--format=text0), as a JSON array\r
1163 +            (--format=json), or as an S-Expression list (--format=sexp).\r
1164 +\r
1165 +            Note that each message may have multiple filenames\r
1166 +            associated with it. All of them are included in the output,\r
1167 +            unless limited with the --duplicate=N option.\r
1168 +\r
1169 +        **tags**\r
1170 +            Output all tags that appear on any message matching the\r
1171 +            search terms, either one per line (--format=text), separated\r
1172 +            by null characters (--format=text0), as a JSON array\r
1173 +            (--format=json), or as an S-Expression list (--format=sexp).\r
1174 +\r
1175 +    ``--sort=``\ (**newest-first**\ \|\ **oldest-first**)\r
1176 +        This option can be used to present results in either\r
1177 +        chronological order (**oldest-first**) or reverse chronological\r
1178 +        order (**newest-first**).\r
1179 +\r
1180 +        Note: The thread order will be distinct between these two\r
1181 +        options (beyond being simply reversed). When sorting by\r
1182 +        **oldest-first** the threads will be sorted by the oldest\r
1183 +        message in each thread, but when sorting by **newest-first** the\r
1184 +        threads will be sorted by the newest message in each thread.\r
1185 +\r
1186 +        By default, results will be displayed in reverse chronological\r
1187 +        order, (that is, the newest results will be displayed first).\r
1188 +\r
1189 +    ``--offset=[-]N``\r
1190 +        Skip displaying the first N results. With the leading '-', start\r
1191 +        at the Nth result from the end.\r
1192 +\r
1193 +    ``--limit=N``\r
1194 +        Limit the number of displayed results to N.\r
1195 +\r
1196 +    ``--exclude=(true|false|all|flag)``\r
1197 +        A message is called "excluded" if it matches at least one tag in\r
1198 +        search.tag\_exclude that does not appear explicitly in the\r
1199 +        search terms. This option specifies whether to omit excluded\r
1200 +        messages in the search process.\r
1201 +\r
1202 +        The default value, **true**, prevents excluded messages from\r
1203 +        matching the search terms.\r
1204 +\r
1205 +        **all** additionally prevents excluded messages from appearing\r
1206 +        in displayed results, in effect behaving as though the excluded\r
1207 +        messages do not exist.\r
1208 +\r
1209 +        **false** allows excluded messages to match search terms and\r
1210 +        appear in displayed results. Excluded messages are still marked\r
1211 +        in the relevant outputs.\r
1212 +\r
1213 +        **flag** only has an effect when ``--output=summary``. The\r
1214 +        output is almost identical to **false**, but the "match count"\r
1215 +        is the number of matching non-excluded messages in the thread,\r
1216 +        rather than the number of matching messages.\r
1217 +\r
1218 +    ``--duplicate=N``\r
1219 +        Effective with ``--output=files``, output the Nth filename\r
1220 +        associated with each message matching the query (N is 1-based).\r
1221 +        If N is greater than the number of files associated with the\r
1222 +        message, don't print anything.\r
1223 +\r
1224 +        Note that this option is orthogonal with the **folder:** search\r
1225 +        prefix. The prefix matches messages based on filenames. This\r
1226 +        option filters filenames of the matching messages.\r
1227 +\r
1228 +EXIT STATUS\r
1229 +===========\r
1230 +\r
1231 +This command supports the following special exit status codes\r
1232 +\r
1233 +``20``\r
1234 +    The requested format version is too old.\r
1235 +\r
1236 +``21``\r
1237 +    The requested format version is too new.\r
1238 +\r
1239 +SEE ALSO\r
1240 +========\r
1241 +\r
1242 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1243 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
1244 +**notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**,\r
1245 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
1246 diff --git a/doc/man1/notmuch-show.rst b/doc/man1/notmuch-show.rst\r
1247 new file mode 100644\r
1248 index 0000000..bad868b\r
1249 --- /dev/null\r
1250 +++ b/doc/man1/notmuch-show.rst\r
1251 @@ -0,0 +1,179 @@\r
1252 +============\r
1253 +notmuch-show\r
1254 +============\r
1255 +\r
1256 +SYNOPSIS\r
1257 +========\r
1258 +\r
1259 +**notmuch** **show** [*option* ...] <*search-term*> ...\r
1260 +\r
1261 +DESCRIPTION\r
1262 +===========\r
1263 +\r
1264 +Shows all messages matching the search terms.\r
1265 +\r
1266 +See **notmuch-search-terms(7)** for details of the supported syntax for\r
1267 +<search-terms>.\r
1268 +\r
1269 +The messages will be grouped and sorted based on the threading (all\r
1270 +replies to a particular message will appear immediately after that\r
1271 +message in date order). The output is not indented by default, but depth\r
1272 +tags are printed so that proper indentation can be performed by a\r
1273 +post-processor (such as the emacs interface to notmuch).\r
1274 +\r
1275 +Supported options for **show** include\r
1276 +\r
1277 +    ``--entire-thread=(true|false)``\r
1278 +        If true, **notmuch show** outputs all messages in the thread of\r
1279 +        any message matching the search terms; if false, it outputs only\r
1280 +        the matching messages. For ``--format=json`` and\r
1281 +        ``--format=sexp`` this defaults to true. For other formats, this\r
1282 +        defaults to false.\r
1283 +\r
1284 +    ``--format=(text|json|sexp|mbox|raw)``\r
1285 +\r
1286 +        **text** (default for messages)\r
1287 +            The default plain-text format has all text-content MIME\r
1288 +            parts decoded. Various components in the output,\r
1289 +            (**message**, **header**, **body**, **attachment**, and MIME\r
1290 +            **part**), will be delimited by easily-parsed markers. Each\r
1291 +            marker consists of a Control-L character (ASCII decimal 12),\r
1292 +            the name of the marker, and then either an opening or\r
1293 +            closing brace, ('{' or '}'), to either open or close the\r
1294 +            component. For a multipart MIME message, these parts will be\r
1295 +            nested.\r
1296 +\r
1297 +        **json**\r
1298 +            The output is formatted with Javascript Object Notation\r
1299 +            (JSON). This format is more robust than the text format for\r
1300 +            automated processing. The nested structure of multipart MIME\r
1301 +            messages is reflected in nested JSON output. By default JSON\r
1302 +            output includes all messages in a matching thread; that is,\r
1303 +            by default,\r
1304 +\r
1305 +            ``--format=json`` sets ``--entire-thread`` The caller can\r
1306 +            disable this behaviour by setting ``--entire-thread=false``\r
1307 +\r
1308 +        **sexp**\r
1309 +            The output is formatted as an S-Expression (sexp). This\r
1310 +            format is more robust than the text format for automated\r
1311 +            processing. The nested structure of multipart MIME messages\r
1312 +            is reflected in nested S-Expression output. By default,\r
1313 +            S-Expression output includes all messages in a matching\r
1314 +            thread; that is, by default,\r
1315 +\r
1316 +            ``--format=sexp`` sets ``--entire-thread`` The caller can\r
1317 +            disable this behaviour by setting ``--entire-thread=false``\r
1318 +\r
1319 +        **mbox**\r
1320 +            All matching messages are output in the traditional, Unix\r
1321 +            mbox format with each message being prefixed by a line\r
1322 +            beginning with "From " and a blank line separating each\r
1323 +            message. Lines in the message content beginning with "From "\r
1324 +            (preceded by zero or more '>' characters) have an additional\r
1325 +            '>' character added. This reversible escaping is termed\r
1326 +            "mboxrd" format and described in detail here:\r
1327 +\r
1328 +           http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html\r
1329 +\r
1330 +        **raw** (default for a single part, see --part)\r
1331 +            For a message or an attached message part, the original, raw\r
1332 +            content of the email message is output. Consumers of this\r
1333 +            format should expect to implement MIME decoding and similar\r
1334 +            functions.\r
1335 +\r
1336 +            For a single part (--part) the raw part content is output\r
1337 +            after performing any necessary MIME decoding. Note that\r
1338 +            messages with a simple body still have two parts: part 0 is\r
1339 +            the whole message and part 1 is the body.\r
1340 +\r
1341 +            For a multipart part, the part headers and body (including\r
1342 +            all child parts) is output.\r
1343 +\r
1344 +            The raw format must only be used with search terms matching\r
1345 +            single message.\r
1346 +\r
1347 +    ``--format-version=N``\r
1348 +        Use the specified structured output format version. This is\r
1349 +        intended for programs that invoke **notmuch(1)** internally. If\r
1350 +        omitted, the latest supported version will be used.\r
1351 +\r
1352 +    ``--part=N``\r
1353 +        Output the single decoded MIME part N of a single message. The\r
1354 +        search terms must match only a single message. Message parts are\r
1355 +        numbered in a depth-first walk of the message MIME structure,\r
1356 +        and are identified in the 'json', 'sexp' or 'text' output\r
1357 +        formats.\r
1358 +\r
1359 +    ``--verify``\r
1360 +        Compute and report the validity of any MIME cryptographic\r
1361 +        signatures found in the selected content (ie. "multipart/signed"\r
1362 +        parts). Status of the signature will be reported (currently only\r
1363 +        supported with --format=json and --format=sexp), and the\r
1364 +        multipart/signed part will be replaced by the signed data.\r
1365 +\r
1366 +    ``--decrypt``\r
1367 +        Decrypt any MIME encrypted parts found in the selected content\r
1368 +        (ie. "multipart/encrypted" parts). Status of the decryption will\r
1369 +        be reported (currently only supported with --format=json and\r
1370 +        --format=sexp) and on successful decryption the\r
1371 +        multipart/encrypted part will be replaced by the decrypted\r
1372 +        content.\r
1373 +\r
1374 +        Decryption expects a functioning **gpg-agent(1)** to provide any\r
1375 +        needed credentials. Without one, the decryption will fail.\r
1376 +\r
1377 +        Implies --verify.\r
1378 +\r
1379 +    ``--exclude=(true|false)``\r
1380 +        Specify whether to omit threads only matching\r
1381 +        search.tag\_exclude from the search results (the default) or\r
1382 +        not. In either case the excluded message will be marked with the\r
1383 +        exclude flag (except when output=mbox when there is nowhere to\r
1384 +        put the flag).\r
1385 +\r
1386 +        If --entire-thread is specified then complete threads are\r
1387 +        returned regardless (with the excluded flag being set when\r
1388 +        appropriate) but threads that only match in an excluded message\r
1389 +        are not returned when ``--exclude=true.``\r
1390 +\r
1391 +        The default is ``--exclude=true.``\r
1392 +\r
1393 +    ``--body=(true|false)``\r
1394 +        If true (the default) **notmuch show** includes the bodies of\r
1395 +        the messages in the output; if false, bodies are omitted.\r
1396 +        ``--body=false`` is only implemented for the json and sexp\r
1397 +        formats and it is incompatible with ``--part > 0.``\r
1398 +\r
1399 +        This is useful if the caller only needs the headers as body-less\r
1400 +        output is much faster and substantially smaller.\r
1401 +\r
1402 +    ``--include-html``\r
1403 +        Include "text/html" parts as part of the output (currently only\r
1404 +        supported with --format=json and --format=sexp). By default,\r
1405 +        unless ``--part=N`` is used to select a specific part or\r
1406 +        ``--include-html`` is used to include all "text/html" parts, no\r
1407 +        part with content type "text/html" is included in the output.\r
1408 +\r
1409 +A common use of **notmuch show** is to display a single thread of email\r
1410 +messages. For this, use a search term of "thread:<thread-id>" as can be\r
1411 +seen in the first column of output from the **notmuch search** command.\r
1412 +\r
1413 +EXIT STATUS\r
1414 +===========\r
1415 +\r
1416 +This command supports the following special exit status codes\r
1417 +\r
1418 +``20``\r
1419 +    The requested format version is too old.\r
1420 +\r
1421 +``21``\r
1422 +    The requested format version is too new.\r
1423 +\r
1424 +SEE ALSO\r
1425 +========\r
1426 +\r
1427 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1428 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
1429 +**notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**,\r
1430 +**notmuch-search(1)**, **notmuch-search-terms(7)**, **notmuch-tag(1)**\r
1431 diff --git a/doc/man1/notmuch-tag.rst b/doc/man1/notmuch-tag.rst\r
1432 new file mode 100644\r
1433 index 0000000..2e7e1d3\r
1434 --- /dev/null\r
1435 +++ b/doc/man1/notmuch-tag.rst\r
1436 @@ -0,0 +1,107 @@\r
1437 +===========\r
1438 +notmuch-tag\r
1439 +===========\r
1440 +\r
1441 +SYNOPSIS\r
1442 +========\r
1443 +\r
1444 +**notmuch** **tag** [options ...] +<*tag*>|-<*tag*> [--] <*search-term*> ...\r
1445 +\r
1446 +**notmuch** **tag** **--batch** [--input=<*filename*>]\r
1447 +\r
1448 +DESCRIPTION\r
1449 +===========\r
1450 +\r
1451 +Add/remove tags for all messages matching the search terms.\r
1452 +\r
1453 +See **notmuch-search-terms(7)** for details of the supported syntax for\r
1454 +<*search-term*\ >.\r
1455 +\r
1456 +Tags prefixed by '+' are added while those prefixed by '-' are removed.\r
1457 +For each message, tag changes are applied in the order they appear on\r
1458 +the command line.\r
1459 +\r
1460 +The beginning of the search terms is recognized by the first argument\r
1461 +that begins with neither '+' nor '-'. Support for an initial search term\r
1462 +beginning with '+' or '-' is provided by allowing the user to specify a\r
1463 +"--" argument to separate the tags from the search terms.\r
1464 +\r
1465 +**notmuch tag** updates the maildir flags according to tag changes if\r
1466 +the **maildir.synchronize\_flags** configuration option is enabled. See\r
1467 +**notmuch-config(1)** for details.\r
1468 +\r
1469 +Supported options for **tag** include\r
1470 +\r
1471 +    ``--remove-all``\r
1472 +        Remove all tags from each message matching the search terms\r
1473 +        before applying the tag changes appearing on the command line.\r
1474 +        This means setting the tags of each message to the tags to be\r
1475 +        added. If there are no tags to be added, the messages will have\r
1476 +        no tags.\r
1477 +\r
1478 +    ``--batch``\r
1479 +        Read batch tagging operations from a file (stdin by default).\r
1480 +        This is more efficient than repeated **notmuch tag**\r
1481 +        invocations. See `TAG FILE FORMAT <#tag_file_format>`__ below\r
1482 +        for the input format. This option is not compatible with\r
1483 +        specifying tagging on the command line.\r
1484 +\r
1485 +    ``--input=``\ <filename>\r
1486 +        Read input from given file, instead of from stdin. Implies\r
1487 +        ``--batch``.\r
1488 +\r
1489 +TAG FILE FORMAT\r
1490 +===============\r
1491 +\r
1492 +The input must consist of lines of the format:\r
1493 +\r
1494 ++<*tag*\ >\|-<*tag*\ > [...] [--] <*query*\ >\r
1495 +\r
1496 +Each line is interpreted similarly to **notmuch tag** command line\r
1497 +arguments. The delimiter is one or more spaces ' '. Any characters in\r
1498 +<*tag*\ > **may** be hex-encoded with %NN where NN is the hexadecimal\r
1499 +value of the character. To hex-encode a character with a multi-byte\r
1500 +UTF-8 encoding, hex-encode each byte. Any spaces in <tag> **must** be\r
1501 +hex-encoded as %20. Any characters that are not part of <*tag*\ > **must\r
1502 +not** be hex-encoded.\r
1503 +\r
1504 +In the future tag:"tag with spaces" style quoting may be supported for\r
1505 +<*tag*\ > as well; for this reason all double quote characters in\r
1506 +<*tag*\ > **should** be hex-encoded.\r
1507 +\r
1508 +The <*query*\ > should be quoted using Xapian boolean term quoting\r
1509 +rules: if a term contains whitespace or a close paren or starts with a\r
1510 +double quote, it must be enclosed in double quotes (not including any\r
1511 +prefix) and double quotes inside the term must be doubled (see below for\r
1512 +examples).\r
1513 +\r
1514 +Leading and trailing space ' ' is ignored. Empty lines and lines\r
1515 +beginning with '#' are ignored.\r
1516 +\r
1517 +EXAMPLE\r
1518 +-------\r
1519 +\r
1520 +The following shows a valid input to batch tagging. Note that only the\r
1521 +isolated '\*' acts as a wildcard. Also note the two different quotings\r
1522 +of the tag **space in tags**\r
1523 +\r
1524 +::\r
1525 +\r
1526 +    +winner *\r
1527 +    +foo::bar%25 -- (One and Two) or (One and tag:winner)\r
1528 +    +found::it -- tag:foo::bar%\r
1529 +    # ignore this line and the next\r
1530 +\r
1531 +    +space%20in%20tags -- Two\r
1532 +    # add tag '(tags)', among other stunts.\r
1533 +    +crazy{ +(tags) +&are +#possible\ -- tag:"space in tags"\r
1534 +    +match*crazy -- tag:crazy{\r
1535 +    +some_tag -- id:"this is ""nauty)"""\r
1536 +\r
1537 +SEE ALSO\r
1538 +========\r
1539 +\r
1540 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1541 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
1542 +**notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**,\r
1543 +**notmuch-search(1)**, **notmuch-search-terms(7)**, **notmuch-show(1)**,\r
1544 diff --git a/doc/man1/notmuch.rst b/doc/man1/notmuch.rst\r
1545 new file mode 100644\r
1546 index 0000000..9710294\r
1547 --- /dev/null\r
1548 +++ b/doc/man1/notmuch.rst\r
1549 @@ -0,0 +1,143 @@\r
1550 +=======\r
1551 +notmuch\r
1552 +=======\r
1553 +\r
1554 +SYNOPSIS\r
1555 +========\r
1556 +\r
1557 +**notmuch** [option ...] **command** [arg ...]\r
1558 +\r
1559 +DESCRIPTION\r
1560 +===========\r
1561 +\r
1562 +Notmuch is a command-line based program for indexing, searching,\r
1563 +reading, and tagging large collections of email messages.\r
1564 +\r
1565 +This page describes how to get started using notmuch from the command\r
1566 +line, and gives a brief overview of the commands available. For more\r
1567 +information on e.g. **notmuch show** consult the **notmuch-show(1)** man\r
1568 +page, also accessible via **notmuch help show**\r
1569 +\r
1570 +The quickest way to get started with Notmuch is to simply invoke the\r
1571 +``notmuch`` command with no arguments, which will interactively guide\r
1572 +you through the process of indexing your mail.\r
1573 +\r
1574 +NOTE\r
1575 +====\r
1576 +\r
1577 +While the command-line program ``notmuch`` provides powerful\r
1578 +functionality, it does not provide the most convenient interface for\r
1579 +that functionality. More sophisticated interfaces are expected to be\r
1580 +built on top of either the command-line interface, or more likely, on\r
1581 +top of the notmuch library interface. See http://notmuchmail.org for\r
1582 +more about alternate interfaces to notmuch. The emacs-based interface to\r
1583 +notmuch (available under **emacs/** in the Notmuch source distribution)\r
1584 +is probably the most widely used at this time.\r
1585 +\r
1586 +OPTIONS\r
1587 +=======\r
1588 +\r
1589 +Supported global options for ``notmuch`` include\r
1590 +\r
1591 +    ``--help``\r
1592 +        Print a synopsis of available commands and exit.\r
1593 +\r
1594 +    ``--version``\r
1595 +        Print the installed version of notmuch, and exit.\r
1596 +\r
1597 +    ``--config=FILE``\r
1598 +        Specify the configuration file to use. This overrides any\r
1599 +        configuration file specified by ${NOTMUCH\_CONFIG}.\r
1600 +\r
1601 +COMMANDS\r
1602 +========\r
1603 +\r
1604 +SETUP\r
1605 +-----\r
1606 +\r
1607 +The **notmuch setup** command is used to configure Notmuch for first\r
1608 +use, (or to reconfigure it later).\r
1609 +\r
1610 +The setup command will prompt for your full name, your primary email\r
1611 +address, any alternate email addresses you use, and the directory\r
1612 +containing your email archives. Your answers will be written to a\r
1613 +configuration file in ${NOTMUCH\_CONFIG} (if set) or\r
1614 +${HOME}/.notmuch-config . This configuration file will be created with\r
1615 +descriptive comments, making it easy to edit by hand later to change the\r
1616 +configuration. Or you can run **notmuch setup** again to change the\r
1617 +configuration.\r
1618 +\r
1619 +The mail directory you specify can contain any number of sub-directories\r
1620 +and should primarily contain only files with individual email messages\r
1621 +(eg. maildir or mh archives are perfect). If there are other, non-email\r
1622 +files (such as indexes maintained by other email programs) then notmuch\r
1623 +will do its best to detect those and ignore them.\r
1624 +\r
1625 +Mail storage that uses mbox format, (where one mbox file contains many\r
1626 +messages), will not work with notmuch. If that's how your mail is\r
1627 +currently stored, it is recommended you first convert it to maildir\r
1628 +format with a utility such as mb2md before running **notmuch setup .**\r
1629 +\r
1630 +Invoking ``notmuch`` with no command argument will run **setup** if the\r
1631 +setup command has not previously been completed.\r
1632 +\r
1633 +OTHER COMMANDS\r
1634 +--------------\r
1635 +\r
1636 +Several of the notmuch commands accept search terms with a common\r
1637 +syntax. See **notmuch-search-terms**\ (7) for more details on the\r
1638 +supported syntax.\r
1639 +\r
1640 +The **search**, **show** and **count** commands are used to query the\r
1641 +email database.\r
1642 +\r
1643 +The **reply** command is useful for preparing a template for an email\r
1644 +reply.\r
1645 +\r
1646 +The **tag** command is the only command available for manipulating\r
1647 +database contents.\r
1648 +\r
1649 +The **dump** and **restore** commands can be used to create a textual\r
1650 +dump of email tags for backup purposes, and to restore from that dump.\r
1651 +\r
1652 +The **config** command can be used to get or set settings in the notmuch\r
1653 +configuration file.\r
1654 +\r
1655 +ENVIRONMENT\r
1656 +===========\r
1657 +\r
1658 +The following environment variables can be used to control the behavior\r
1659 +of notmuch.\r
1660 +\r
1661 +**NOTMUCH\_CONFIG**\r
1662 +    Specifies the location of the notmuch configuration file. Notmuch\r
1663 +    will use ${HOME}/.notmuch-config if this variable is not set.\r
1664 +\r
1665 +**NOTMUCH\_TALLOC\_REPORT**\r
1666 +    Location to write a talloc memory usage report. See\r
1667 +    **talloc\_enable\_leak\_report\_full** in **talloc(3)** for more\r
1668 +    information.\r
1669 +\r
1670 +**NOTMUCH\_DEBUG\_QUERY**\r
1671 +    If set to a non-empty value, the notmuch library will print (to\r
1672 +    stderr) Xapian queries it constructs.\r
1673 +\r
1674 +SEE ALSO\r
1675 +========\r
1676 +\r
1677 +**notmuch-config(1)**, **notmuch-count(1)**, **notmuch-dump(1)**,\r
1678 +**notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**,\r
1679 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
1680 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
1681 +\r
1682 +The notmuch website: **http://notmuchmail.org**\r
1683 +\r
1684 +CONTACT\r
1685 +=======\r
1686 +\r
1687 +Feel free to send questions, comments, or kudos to the notmuch mailing\r
1688 +list <notmuch@notmuchmail.org> . Subscription is not required before\r
1689 +posting, but is available from the notmuchmail.org website.\r
1690 +\r
1691 +Real-time interaction with the Notmuch community is available via IRC\r
1692 +(server: irc.freenode.net, channel: #notmuch).\r
1693 diff --git a/doc/man5/notmuch-hooks.rst b/doc/man5/notmuch-hooks.rst\r
1694 new file mode 100644\r
1695 index 0000000..493abf2\r
1696 --- /dev/null\r
1697 +++ b/doc/man5/notmuch-hooks.rst\r
1698 @@ -0,0 +1,44 @@\r
1699 +=============\r
1700 +notmuch-hooks\r
1701 +=============\r
1702 +\r
1703 +SYNOPSIS\r
1704 +========\r
1705 +\r
1706 +       $DATABASEDIR/.notmuch/hooks/*\r
1707 +\r
1708 +DESCRIPTION\r
1709 +===========\r
1710 +\r
1711 +Hooks are scripts (or arbitrary executables or symlinks to such) that\r
1712 +notmuch invokes before and after certain actions. These scripts reside\r
1713 +in the .notmuch/hooks directory within the database directory and must\r
1714 +have executable permissions.\r
1715 +\r
1716 +The currently available hooks are described below.\r
1717 +\r
1718 +    **pre-new**\r
1719 +        This hook is invoked by the **new** command before scanning or\r
1720 +        importing new messages into the database. If this hook exits\r
1721 +        with a non-zero status, notmuch will abort further processing of\r
1722 +        the **new** command.\r
1723 +\r
1724 +        Typically this hook is used for fetching or delivering new mail\r
1725 +        to be imported into the database.\r
1726 +\r
1727 +    **post-new**\r
1728 +        This hook is invoked by the **new** command after new messages\r
1729 +        have been imported into the database and initial tags have been\r
1730 +        applied. The hook will not be run if there have been any errors\r
1731 +        during the scan or import.\r
1732 +\r
1733 +        Typically this hook is used to perform additional query-based\r
1734 +        tagging on the imported messages.\r
1735 +\r
1736 +SEE ALSO\r
1737 +========\r
1738 +\r
1739 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1740 +**notmuch-dump(1)**, **notmuch-insert(1)**, **notmuch-new(1)**,\r
1741 +**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,\r
1742 +**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
1743 diff --git a/doc/man7/notmuch-search-terms.rst b/doc/man7/notmuch-search-terms.rst\r
1744 new file mode 100644\r
1745 index 0000000..99148b2\r
1746 --- /dev/null\r
1747 +++ b/doc/man7/notmuch-search-terms.rst\r
1748 @@ -0,0 +1,234 @@\r
1749 +====================\r
1750 +notmuch-search-terms\r
1751 +====================\r
1752 +\r
1753 +SYNOPSIS\r
1754 +========\r
1755 +\r
1756 +**notmuch** **count** [option ...] <*search-term*> ...\r
1757 +\r
1758 +**notmuch** **dump** **--format=(batch-tag|sup)** [--] [--output=<*file*>] [--] [<*search-term*> ...]\r
1759 +\r
1760 +**notmuch** **search** [option ...] <*search-term*> ...\r
1761 +\r
1762 +**notmuch** **show** [option ...] <*search-term*> ...\r
1763 +\r
1764 +**notmuch** **tag** +<*tag*> ... -<*tag*> [--] <*search-term*> ...\r
1765 +\r
1766 +DESCRIPTION\r
1767 +===========\r
1768 +\r
1769 +Several notmuch commands accept a common syntax for search terms.\r
1770 +\r
1771 +The search terms can consist of free-form text (and quoted phrases)\r
1772 +which will match all messages that contain all of the given\r
1773 +terms/phrases in the body, the subject, or any of the sender or\r
1774 +recipient headers.\r
1775 +\r
1776 +As a special case, a search string consisting of exactly a single\r
1777 +asterisk ("\*") will match all messages.\r
1778 +\r
1779 +In addition to free text, the following prefixes can be used to force\r
1780 +terms to match against specific portions of an email, (where <brackets>\r
1781 +indicate user-supplied values):\r
1782 +\r
1783 +-  from:<name-or-address>\r
1784 +\r
1785 +-  to:<name-or-address>\r
1786 +\r
1787 +-  subject:<word-or-quoted-phrase>\r
1788 +\r
1789 +-  attachment:<word>\r
1790 +\r
1791 +-  tag:<tag> (or is:<tag>)\r
1792 +\r
1793 +-  id:<message-id>\r
1794 +\r
1795 +-  thread:<thread-id>\r
1796 +\r
1797 +-  folder:<directory-path>\r
1798 +\r
1799 +-  date:<since>..<until>\r
1800 +\r
1801 +The **from:** prefix is used to match the name or address of the sender\r
1802 +of an email message.\r
1803 +\r
1804 +The **to:** prefix is used to match the names or addresses of any\r
1805 +recipient of an email message, (whether To, Cc, or Bcc).\r
1806 +\r
1807 +Any term prefixed with **subject:** will match only text from the\r
1808 +subject of an email. Searching for a phrase in the subject is supported\r
1809 +by including quotation marks around the phrase, immediately following\r
1810 +**subject:**.\r
1811 +\r
1812 +The **attachment:** prefix can be used to search for specific filenames\r
1813 +(or extensions) of attachments to email messages.\r
1814 +\r
1815 +For **tag:** and **is:** valid tag values include **inbox** and\r
1816 +**unread** by default for new messages added by **notmuch new** as well\r
1817 +as any other tag values added manually with **notmuch tag**.\r
1818 +\r
1819 +For **id:**, message ID values are the literal contents of the\r
1820 +Message-ID: header of email messages, but without the '<', '>'\r
1821 +delimiters.\r
1822 +\r
1823 +The **thread:** prefix can be used with the thread ID values that are\r
1824 +generated internally by notmuch (and do not appear in email messages).\r
1825 +These thread ID values can be seen in the first column of output from\r
1826 +**notmuch search**\r
1827 +\r
1828 +The **folder:** prefix can be used to search for email message files\r
1829 +that are contained within particular directories within the mail store.\r
1830 +If the same email message has multiple message files associated with it,\r
1831 +it's sufficient for a match that at least one of the files is contained\r
1832 +within a matching directory. Only the directory components below the\r
1833 +top-level mail database path are available to be searched.\r
1834 +\r
1835 +The **date:** prefix can be used to restrict the results to only\r
1836 +messages within a particular time range (based on the Date: header) with\r
1837 +a range syntax of:\r
1838 +\r
1839 +date:<since>..<until>\r
1840 +\r
1841 +See **DATE AND TIME SEARCH** below for details on the range expression,\r
1842 +and supported syntax for <since> and <until> date and time expressions.\r
1843 +\r
1844 +The time range can also be specified using timestamps with a syntax of:\r
1845 +\r
1846 +<initial-timestamp>..<final-timestamp>\r
1847 +\r
1848 +Each timestamp is a number representing the number of seconds since\r
1849 +1970-01-01 00:00:00 UTC.\r
1850 +\r
1851 +In addition to individual terms, multiple terms can be combined with\r
1852 +Boolean operators ( **and**, **or**, **not** , etc.). Each term in the\r
1853 +query will be implicitly connected by a logical AND if no explicit\r
1854 +operator is provided, (except that terms with a common prefix will be\r
1855 +implicitly combined with OR until we get Xapian defect #402 fixed).\r
1856 +\r
1857 +Parentheses can also be used to control the combination of the Boolean\r
1858 +operators, but will have to be protected from interpretation by the\r
1859 +shell, (such as by putting quotation marks around any parenthesized\r
1860 +expression).\r
1861 +\r
1862 +DATE AND TIME SEARCH\r
1863 +====================\r
1864 +\r
1865 +notmuch understands a variety of standard and natural ways of expressing\r
1866 +dates and times, both in absolute terms ("2012-10-24") and in relative\r
1867 +terms ("yesterday"). Any number of relative terms can be combined ("1\r
1868 +hour 25 minutes") and an absolute date/time can be combined with\r
1869 +relative terms to further adjust it. A non-exhaustive description of the\r
1870 +syntax supported for absolute and relative terms is given below.\r
1871 +\r
1872 +The range expression\r
1873 +--------------------\r
1874 +\r
1875 +**date:<since>..<until>**\r
1876 +\r
1877 +The above expression restricts the results to only messages from <since>\r
1878 +to <until>, based on the Date: header.\r
1879 +\r
1880 +<since> and <until> can describe imprecise times, such as "yesterday".\r
1881 +In this case, <since> is taken as the earliest time it could describe\r
1882 +(the beginning of yesterday) and <until> is taken as the latest time it\r
1883 +could describe (the end of yesterday). Similarly, date:january..february\r
1884 +matches from the beginning of January to the end of February.\r
1885 +\r
1886 +Currently, we do not support spaces in range expressions. You can\r
1887 +replace the spaces with '\_', or (in most cases) '-', or (in some cases)\r
1888 +leave the spaces out altogether. Examples in this man page use spaces\r
1889 +for clarity.\r
1890 +\r
1891 +Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's possible\r
1892 +to specify date:..<until> or date:<since>.. to not limit the start or\r
1893 +end time, respectively. Pre-1.2.1 Xapian does not report an error on\r
1894 +open ended ranges, but it does not work as expected either.\r
1895 +\r
1896 +Entering date:expr without ".." (for example date:yesterday) won't work,\r
1897 +as it's not interpreted as a range expression at all. You can achieve\r
1898 +the expected result by duplicating the expr both sides of ".." (for\r
1899 +example date:yesterday..yesterday).\r
1900 +\r
1901 +Relative date and time\r
1902 +----------------------\r
1903 +\r
1904 +[N\|number]\r
1905 +(years\|months\|weeks\|days\|hours\|hrs\|minutes\|mins\|seconds\|secs)\r
1906 +[...]\r
1907 +\r
1908 +All refer to past, can be repeated and will be accumulated.\r
1909 +\r
1910 +Units can be abbreviated to any length, with the otherwise ambiguous\r
1911 +single m being m for minutes and M for months.\r
1912 +\r
1913 +Number can also be written out one, two, ..., ten, dozen, hundred.\r
1914 +Additionally, the unit may be preceded by "last" or "this" (e.g., "last\r
1915 +week" or "this month").\r
1916 +\r
1917 +When combined with absolute date and time, the relative date and time\r
1918 +specification will be relative from the specified absolute date and\r
1919 +time.\r
1920 +\r
1921 +Examples: 5M2d, two weeks\r
1922 +\r
1923 +Supported absolute time formats\r
1924 +-------------------------------\r
1925 +\r
1926 +-  H[H]:MM[:SS] [(am\|a.m.\|pm\|p.m.)]\r
1927 +\r
1928 +-  H[H] (am\|a.m.\|pm\|p.m.)\r
1929 +\r
1930 +-  HHMMSS\r
1931 +\r
1932 +-  now\r
1933 +\r
1934 +-  noon\r
1935 +\r
1936 +-  midnight\r
1937 +\r
1938 +-  Examples: 17:05, 5pm\r
1939 +\r
1940 +Supported absolute date formats\r
1941 +-------------------------------\r
1942 +\r
1943 +-  YYYY-MM[-DD]\r
1944 +\r
1945 +-  DD-MM[-[YY]YY]\r
1946 +\r
1947 +-  MM-YYYY\r
1948 +\r
1949 +-  M[M]/D[D][/[YY]YY]\r
1950 +\r
1951 +-  M[M]/YYYY\r
1952 +\r
1953 +-  D[D].M[M][.[YY]YY]\r
1954 +\r
1955 +-  D[D][(st\|nd\|rd\|th)] Mon[thname] [YYYY]\r
1956 +\r
1957 +-  Mon[thname] D[D][(st\|nd\|rd\|th)] [YYYY]\r
1958 +\r
1959 +-  Wee[kday]\r
1960 +\r
1961 +Month names can be abbreviated at three or more characters.\r
1962 +\r
1963 +Weekday names can be abbreviated at three or more characters.\r
1964 +\r
1965 +Examples: 2012-07-31, 31-07-2012, 7/31/2012, August 3\r
1966 +\r
1967 +Time zones\r
1968 +----------\r
1969 +\r
1970 +-  (+\|-)HH:MM\r
1971 +\r
1972 +-  (+\|-)HH[MM]\r
1973 +\r
1974 +Some time zone codes, e.g. UTC, EET.\r
1975 +\r
1976 +SEE ALSO\r
1977 +========\r
1978 +\r
1979 +**notmuch(1)**, **notmuch-config(1)**, **notmuch-count(1)**,\r
1980 +**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,\r
1981 +**notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**,\r
1982 +**notmuch-search(1)**, **notmuch-show(1)**, **notmuch-tag(1)**\r
1983 diff --git a/doc/notmuch-emacs.rst b/doc/notmuch-emacs.rst\r
1984 new file mode 100644\r
1985 index 0000000..28301b3\r
1986 --- /dev/null\r
1987 +++ b/doc/notmuch-emacs.rst\r
1988 @@ -0,0 +1,192 @@\r
1989 +=============\r
1990 +notmuch-emacs\r
1991 +=============\r
1992 +\r
1993 +About this Manual\r
1994 +=================\r
1995 +\r
1996 +This manual covers only the emacs interface to notmuch. For information\r
1997 +on the command line interface, see See section “Description” in Notmuch\r
1998 +Manual Pager. To save typing, we will sometimes use *notmuch* in this\r
1999 +manual to refer to the Emacs interface to notmuch. If the distinction\r
2000 +should every be important, we’ll refer to the Emacs inteface as\r
2001 +*notmuch-emacs*.\r
2002 +\r
2003 +Notmuch-emacs is highly customizable via the the Emacs customization\r
2004 +framework (or just by setting the appropriate variables). We try to\r
2005 +point out relevant variables in this manual, but in order to avoid\r
2006 +duplication of information, but you can usually find the most detailed\r
2007 +description in the varables docstring.\r
2008 +\r
2009 +notmuch-hello\r
2010 +=============\r
2011 +\r
2012 +.. index::\r
2013 +   single: notmuch-hello\r
2014 +   single: notmuch\r
2015 +\r
2016 +``notmuch-hello`` is the main entry point for notmuch. You can start it\r
2017 +with ``M-x notmuch`` or ``M-x notmuch-hello``. The startup screen looks\r
2018 +something like the following. There are some hints at the bottom of the\r
2019 +screen. There are three main parts to the notmuch-hello screen,\r
2020 +discussed below. The **bold** text indicates buttons you can click with\r
2021 +a mouse or by positioning the cursor and pressing ``<return>``\r
2022 +\r
2023 +|   Welcome to **notmuch** You have 52 messages.\r
2024 +|\r
2025 +| Saved searches: **[edit]**\r
2026 +|\r
2027 +|        52 **inbox**           52 **unread**\r
2028 +|\r
2029 +| Search: ____________________________________\r
2030 +|\r
2031 +| All tags: **[show]**\r
2032 +|\r
2033 +|       Type a search query and hit RET to view matching threads.\r
2034 +|              Edit saved searches with the ``edit`` button.\r
2035 +| Hit RET or click on a saved search or tag name to view matching threads.\r
2036 +|     ``=`` to refresh this screen. ``s`` to search messages. ``q`` to quit.\r
2037 +|                  **Customize** this page.\r
2038 +\r
2039 +You can change the overall appearence of the notmuch-hello screen by\r
2040 +customizing the variable :index:`notmuch-hello-sections`.\r
2041 +\r
2042 +\r
2043 +\r
2044 +notmuch-hello key bindings\r
2045 +--------------------------\r
2046 +\r
2047 +``<tab>``\r
2048 +    Move to the next widget (button or text entry field)\r
2049 +\r
2050 +``<backtab>``\r
2051 +    Move to the previous widget.\r
2052 +\r
2053 +``<return>``\r
2054 +    Activate the current widget.\r
2055 +\r
2056 +``=``\r
2057 +    Refresh the buffer; mainly update the counts of messages for various\r
2058 +    saved searches.\r
2059 +\r
2060 +``G``\r
2061 +    Import mail, See :ref:`importing`\r
2062 +\r
2063 +``m``\r
2064 +    Compose a message\r
2065 +\r
2066 +``s``\r
2067 +    Search the notmuch database using :ref:`notmuch-search`\r
2068 +\r
2069 +``v``\r
2070 +    Print notmuch version\r
2071 +\r
2072 +``q``\r
2073 +    Quit\r
2074 +\r
2075 +.. _saved-searches:\r
2076 +\r
2077 +Saved Searches\r
2078 +--------------\r
2079 +\r
2080 +Notmuch replaces the static assignment of messages with the more dynamic\r
2081 +notion of searching. Notmuch-hello presents the user with a customizable\r
2082 +set of saved searchs. The initial defaults are ``tag:inbox`` and\r
2083 +``tag:unread``, but you can customize the following variables\r
2084 +\r
2085 +:index:`notmuch-saved-searches`\r
2086 +    A list of cons pairs, the first being the name to display, the\r
2087 +    second being a query string for notmuch. See section “Description”\r
2088 +    in Notmuch Query Syntax.\r
2089 +\r
2090 +:index:`notmuch-saved-searches-sort-function`\r
2091 +    This variable controls how saved searches should be sorted. A value\r
2092 +    of ``nil`` displays the saved searches in the order they are stored\r
2093 +    in ‘notmuch-saved-searches’.\r
2094 +\r
2095 +:index:`notmuch-column-control`\r
2096 +    Controls the number of columns for displaying saved-searches/tags\r
2097 +\r
2098 +Search Box\r
2099 +----------\r
2100 +\r
2101 +The search box lets the user enter an notmuch query. See section\r
2102 +“Description” in Notmuch Query Syntax, for more info on notmuch query\r
2103 +syntax. A history of recent searches is also displayed by default. The\r
2104 +latter is controlled by the variable :index:`notmuch-hello-recent-searches-max`.\r
2105 +\r
2106 +Known Tags\r
2107 +----------\r
2108 +\r
2109 +One special kind of saved search provided by default is for each\r
2110 +individual tag defined in the database. This can be controlled via the\r
2111 +following variables.\r
2112 +\r
2113 +:index:`notmuch-hello-tag-list-make-query`\r
2114 +    Control how to construct a search (“virtual folder”) from a given\r
2115 +    tag.\r
2116 +\r
2117 +:index:`notmuch-hello-hide-tags`\r
2118 +    Which tags not to display at all.\r
2119 +\r
2120 +:index:`notmuch-column-control`\r
2121 +    Controls the number of columns for displaying saved-searches/tags\r
2122 +\r
2123 +.. _notmuch-search:\r
2124 +\r
2125 +notmuch-search\r
2126 +==============\r
2127 +\r
2128 +``notmuch-search-mode`` is used to display the results from executing\r
2129 +a query via ``notmuch-search``. The syntax for these queries is the\r
2130 +the same as :ref:`saved-searches`. For details of this syntax see\r
2131 +info:notmuch-search-terms\r
2132 +\r
2133 +By default the output approximates that of the command line See section\r
2134 +“Description” in notmuch search command.\r
2135 +\r
2136 +The main purpose of the ``notmuch-search-mode`` buffer is to act as a\r
2137 +menu of results that the user can explore further by pressing\r
2138 +``<return>`` on the appropriate line.\r
2139 +\r
2140 +``n,C-n,<down>``\r
2141 +    Move to next line\r
2142 +\r
2143 +``p,C-p,<up>``\r
2144 +    Move to previous line\r
2145 +\r
2146 +``<return>``\r
2147 +    Open thread on current line in :ref:`notmuch-show` mode\r
2148 +\r
2149 +``?``\r
2150 +    Display full set of key bindings\r
2151 +\r
2152 +The presentation of results can be controlled by the following\r
2153 +variables.\r
2154 +\r
2155 +:index:`notmuch-search-result-format`\r
2156 +    Control how each thread of messages is presented in the\r
2157 +    ``notmuch-show-mode`` buffer\r
2158 +\r
2159 +:index:`notmuch-search-oldest-first`\r
2160 +    Display the oldest threads at the top of the buffer\r
2161 +\r
2162 +.. _notmuch-show:\r
2163 +\r
2164 +notmuch-show\r
2165 +============\r
2166 +\r
2167 +notmuch-tree\r
2168 +============\r
2169 +\r
2170 +Configuration\r
2171 +=============\r
2172 +\r
2173 +.. _importing:\r
2174 +\r
2175 +Importing Mail\r
2176 +--------------\r
2177 +\r
2178 +:index:`notmuch-poll`\r
2179 +\r
2180 +:index:`notmuch-poll-script`\r
2181 -- \r
2182 1.8.5.3\r
2183 \r