Re: [Patch v3 2/3] man: partial conversion to pod.
authorJani Nikula <jani@nikula.org>
Fri, 17 Jan 2014 16:10:52 +0000 (18:10 +0200)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:59:04 +0000 (09:59 -0800)
82/c2b142852ea3d8b2d9085bb20927aa2c0b80b4 [new file with mode: 0644]

diff --git a/82/c2b142852ea3d8b2d9085bb20927aa2c0b80b4 b/82/c2b142852ea3d8b2d9085bb20927aa2c0b80b4
new file mode 100644 (file)
index 0000000..0bf0bd9
--- /dev/null
@@ -0,0 +1,1599 @@
+Return-Path: <jani@nikula.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id C303F431FB6\r
+       for <notmuch@notmuchmail.org>; Fri, 17 Jan 2014 08:11:10 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id wVruVB5w1CyN for <notmuch@notmuchmail.org>;\r
+       Fri, 17 Jan 2014 08:10:59 -0800 (PST)\r
+Received: from mail-ee0-f42.google.com (mail-ee0-f42.google.com\r
+ [74.125.83.42])       (using TLSv1 with cipher RC4-SHA (128/128 bits))        (No client\r
+ certificate requested)        by olra.theworths.org (Postfix) with ESMTPS id\r
+ F1F2F431FBC   for <notmuch@notmuchmail.org>; Fri, 17 Jan 2014 08:10:58 -0800\r
+ (PST)\r
+Received: by mail-ee0-f42.google.com with SMTP id e49so2194904eek.15\r
+       for <notmuch@notmuchmail.org>; Fri, 17 Jan 2014 08:10:57 -0800 (PST)\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+       d=1e100.net; s=20130820;\r
+       h=x-gm-message-state:from:to:cc:subject:in-reply-to:references\r
+       :user-agent:date:message-id:mime-version:content-type\r
+       :content-transfer-encoding;\r
+       bh=jK5i0FMqNoFutoz5zd1ozx4t4f5Uyx8Ymo1hbxGkuV8=;\r
+       b=bl6RDkMkSBvega6BbYvhjk0FytPPL6isohk7UEnU3vlwrv7WGQ7zih2UPjpq6Aew+s\r
+       GMjIvEF4H3a3EyevMTfhKUN2OlkmU7lKCa87bvgU77oCOloP2q7wt6KxybnZkEK9iSGq\r
+       +uYTAIyN4OPXCiI5ptmgsU6tlwjimfZ/VRpWxnZd1t+NxyfQfoBtryLhBFdyRLplMFkQ\r
+       1pGt6P09eLlxX2qFolYGwgsaR1Bm9i7dGDA3bFKmr0ks50sopJdqEITvPkkEmIqrQdZb\r
+       Z0IitlX2SN00hRT6U3yihUqSIr+L6DtTtQufX/TF2Wu62eBZ/rmRk8Kc8zgyy5Hb02H3\r
+       7z2w==\r
+X-Gm-Message-State:\r
+ ALoCoQmp2FZE4J4E8yARQD9b5QXQaQs1vw66EYHqYXMRSifYP6lx78Jrg/v2XYYoRzgYHfh39j7w\r
+X-Received: by 10.14.111.73 with SMTP id v49mr3383813eeg.94.1389975056563;\r
+       Fri, 17 Jan 2014 08:10:56 -0800 (PST)\r
+Received: from localhost (dsl-hkibrasgw2-58c36f-91.dhcp.inet.fi.\r
+       [88.195.111.91])\r
+       by mx.google.com with ESMTPSA id 4sm28025886eed.14.2014.01.17.08.10.53\r
+       for <multiple recipients>\r
+       (version=TLSv1.2 cipher=RC4-SHA bits=128/128);\r
+       Fri, 17 Jan 2014 08:10:55 -0800 (PST)\r
+From: Jani Nikula <jani@nikula.org>\r
+To: David Bremner <david@tethera.net>, notmuch@notmuchmail.org\r
+Subject: Re: [Patch v3 2/3] man: partial conversion to pod.\r
+In-Reply-To: <1389791332-21719-3-git-send-email-david@tethera.net>\r
+References: <m2bnzeoiij.fsf@guru.guru-group.fi>\r
+       <1389791332-21719-1-git-send-email-david@tethera.net>\r
+       <1389791332-21719-3-git-send-email-david@tethera.net>\r
+User-Agent: Notmuch/0.17~rc2+18~g39a67a6 (http://notmuchmail.org) Emacs/24.3.1\r
+       (x86_64-pc-linux-gnu)\r
+Date: Fri, 17 Jan 2014 18:10:52 +0200\r
+Message-ID: <87lhyer3lf.fsf@nikula.org>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Transfer-Encoding: quoted-printable\r
+Cc: David Bremner <bremner@debian.org>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Fri, 17 Jan 2014 16:11:11 -0000\r
+\r
+On Wed, 15 Jan 2014, David Bremner <david@tethera.net> wrote:\r
+> From: David Bremner <bremner@debian.org>\r
+>\r
+> This allows generation of man page and info document from the same source.\r
+> It is also a bit more friendly to edit for most people.\r
+\r
+Before plunging into reviewing this, I'd like to have some more views on\r
+the choice of the format. Also on the mailing list and not just IRC.\r
+\r
+In short, I'm really tempted by using markdown as the format, not least\r
+because it's what we use for the web pages. The big (also literally)\r
+downside is pandoc (http://johnmacfarlane.net/pandoc/), the tool for\r
+converting markdown to man. I don't mind its dependencies, others may\r
+disagree. Are there any sensible alternatives to pandoc?\r
+\r
+That said, I do like pod better than *roff, and if people oppose to\r
+requiring pandoc for building and installing the man pages, I'm okay\r
+with that too.\r
+\r
+\r
+BR,\r
+Jani.\r
+\r
+\r
+>\r
+> The conversion was done with the following perl script (some small\r
+> hand-editing of the .pod may be needed afterwards).\r
+>\r
+> open(POD,"groff -e -mandoc -Tascii -rHY=3D0 | rman -f POD|") || die;\r
+> LINE:\r
+> while(<POD>){\r
+>   my $blank=3D0;\r
+>   while (m/^\s*$/) {\r
+>     $_=3D<POD>;\r
+>     $blank++;\r
+>   }\r
+>   print "\n" if ($blank);\r
+>\r
+>   while(s/^(=3Dhead1 .*)B[<]/\1/){};\r
+>   while(s/^(=3Dhead1 .*)[>]/\1/){};\r
+>\r
+>   s/  */ /g;\r
+>   print;\r
+> }\r
+> ---\r
+>  INSTALL                         |   6 +\r
+>  configure                       |  12 ++\r
+>  info/Makefile.local             |  28 ++++-\r
+>  man/Makefile.local              |  19 ++-\r
+>  man/man1/notmuch-search.1       | 199 -----------------------------\r
+>  man/man1/notmuch.1              | 190 ----------------------------\r
+>  man/man7/notmuch-search-terms.7 | 269 ----------------------------------=\r
+------\r
+>  pod/notmuch-search-terms.pod    | 235 +++++++++++++++++++++++++++++++++++\r
+>  pod/notmuch-search.pod          | 194 +++++++++++++++++++++++++++++\r
+>  pod/notmuch.pod                 | 155 +++++++++++++++++++++++\r
+>  10 files changed, 645 insertions(+), 662 deletions(-)\r
+>  delete mode 100644 man/man1/notmuch-search.1\r
+>  delete mode 100644 man/man1/notmuch.1\r
+>  delete mode 100644 man/man7/notmuch-search-terms.7\r
+>  create mode 100644 pod/notmuch-search-terms.pod\r
+>  create mode 100644 pod/notmuch-search.pod\r
+>  create mode 100644 pod/notmuch.pod\r
+>\r
+> diff --git a/INSTALL b/INSTALL\r
+> index 451bf05..697b7b2 100644\r
+> --- a/INSTALL\r
+> +++ b/INSTALL\r
+> @@ -60,6 +60,12 @@ Talloc which are each described below:\r
+>=20=20\r
+>      Talloc is available from http://talloc.samba.org/\r
+>=20=20\r
+> +    pod2man\r
+> +    -------\r
+> +\r
+> +    Some of the documentation is built with pod2man. This is part\r
+> +    of the standard Perl distribution since Perl 5.6.0\r
+> +\r
+>      texinfo\r
+>      -------\r
+>=20=20\r
+> diff --git a/configure b/configure\r
+> index e75c1d4..6dadbaa 100755\r
+> --- a/configure\r
+> +++ b/configure\r
+> @@ -389,6 +389,15 @@ else\r
+>      have_emacs=3D0\r
+>  fi\r
+>=20=20\r
+> +printf "Checking for pod2man... "\r
+> +if pod2man --help > /dev/null 2>&1; then\r
+> +    printf "Yes.\n"\r
+> +    have_pod2man=3D1\r
+> +else\r
+> +    printf "No (man page install may fail)\n"\r
+> +    have_pod2man=3D0\r
+> +fi\r
+> +\r
+>  printf "Checking for makeinfo... "\r
+>  if makeinfo --version > /dev/null 2>&1; then\r
+>      printf "Yes.\n"\r
+> @@ -768,6 +777,9 @@ HAVE_MAKEINFO =3D ${have_makeinfo}\r
+>  # Whether there's an install-info binary available\r
+>  HAVE_INSTALLINFO =3D ${have_installinfo}\r
+>=20=20\r
+> +# Is pod2man in the path?\r
+> +HAVE_POD2MAN =3D ${have_pod2man}\r
+> +\r
+>  # where to install info files\r
+>=20=20\r
+>  INFODIR =3D ${INFODIR}\r
+> diff --git a/info/Makefile.local b/info/Makefile.local\r
+> index 55e9740..26466ae 100644\r
+> --- a/info/Makefile.local\r
+> +++ b/info/Makefile.local\r
+> @@ -2,10 +2,14 @@\r
+>=20=20\r
+>  dir :=3D info\r
+>=20=20\r
+> +man_texi :=3D  $(dir)/notmuch.texi $(dir)/notmuch-search.texi $(dir)/not=\r
+much-search-terms.texi\r
+> +man_info :=3D $(man_texi:.texi=3D.info)\r
+> +man_entry :=3D $(man_texi:.texi=3D.entry)\r
+> +\r
+>  texi_sources :=3D  $(dir)/notmuch-emacs.texi\r
+>  emacs_info :=3D $(texi_sources:.texi=3D.info)\r
+>=20=20\r
+> -info :=3D $(emacs_info)\r
+> +info :=3D $(emacs_info) $(man_info)\r
+>=20=20\r
+>  ifeq ($(HAVE_MAKEINFO),1)\r
+>  all: $(info)\r
+> @@ -15,11 +19,26 @@ ifeq ($(HAVE_INSTALLINFO),1)\r
+>  install: install-info\r
+>  endif\r
+>=20=20\r
+> -%.info: %.texi\r
+> +%.entry: ../pod/%.pod\r
+> +    printf "@dircategory Notmuch\n@direntry\n" > $@\r
+> +    printf "* %s: (%s). " $(*F) $(*F) >> $@\r
+> +    podselect -section Name $< | \\r
+> +      perl -n -e  's/notmuch.* - (.*)/\u\L$$1/ && print' >> $@\r
+> +    printf "@end direntry\n" >> $@\r
+> +\r
+> +%.info: %.texi %.entry\r
+>      makeinfo --no-split -o $@ $<\r
+>=20=20\r
+>  $(dir)/notmuch-emacs.info: $(dir)/notmuch-emacs.texi $(dir)/version.texi\r
+>=20=20\r
+> +\r
+> +%.raw-texi: ../pod/%.pod\r
+> +    pod2texi  --output $@ $<\r
+> +\r
+> +%.texi: %.raw-texi\r
+> +    # a nasty hack, but the nicer ways seem to have bugs.\r
+> +    sed 's/@node Top/@include $(*F).entry\n@node Top/'< $<  > $@\r
+> +\r
+>  .PHONY: $(dir)/version.texi\r
+>  $(dir)/version.texi: version\r
+>      printf "@set VERSION ${VERSION}\n" > $@\r
+> @@ -29,5 +48,8 @@ install-info: ${info}\r
+>      mkdir -p "$(DESTDIR)$(INFODIR)"\r
+>      install -m0644 $(info) "$(DESTDIR)$(INFODIR)"\r
+>      install-info --section=3DNotmuch --info-dir=3D${DESTDIR}${INFODIR} $(em=\r
+acs_info)\r
+> +    for ifile in $(man_info); do \\r
+> +        install-info --info-dir=3D${DESTDIR}${INFODIR} $${ifile}; \\r
+> +    done\r
+>=20=20\r
+> -CLEAN :=3D $(CLEAN) $(info)\r
+> +CLEAN :=3D $(CLEAN) $(info) $(man_entry) $(dir)/version.texi\r
+> diff --git a/man/Makefile.local b/man/Makefile.local\r
+> index 57910b7..ae4caff 100644\r
+> --- a/man/Makefile.local\r
+> +++ b/man/Makefile.local\r
+> @@ -23,6 +23,8 @@ MAN1 :=3D \\r
+>  MAN5 :=3D $(dir)/man5/notmuch-hooks.5\r
+>  MAN7 :=3D $(dir)/man7/notmuch-search-terms.7\r
+>=20=20\r
+> +GENERATED_MAN :=3D  $(MAIN_PAGE) $(dir)/man1/notmuch-search.1 $(MAN7)\r
+> +\r
+>  MAN1_GZ :=3D $(addsuffix .gz,$(MAN1))\r
+>  MAN5_GZ :=3D $(addsuffix .gz,$(MAN5))\r
+>  MAN7_GZ :=3D $(addsuffix .gz,$(MAN7))\r
+> @@ -34,6 +36,21 @@ COMPRESSED_MAN :=3D $(MAN1_GZ) $(MAN5_GZ) $(MAN7_GZ)\r
+>  %.gz: %\r
+>      gzip --stdout $^ > $@\r
+>=20=20\r
+> +POD2MAN_RECIPE =3D mkdir -p $(@D) && \\r
+> +             pod2man --section=3D$(subst .,,$(suffix $@)) \\r
+> +                     --center=3D"Notmuch Documentation" --release=3D${VERSION} $< > $@\r
+> +\r
+> +$(dir)/man1/%.1: $(dir)/../pod/%.pod\r
+> +    $(POD2MAN_RECIPE)\r
+> +\r
+> +$(dir)/man5/%.5: $(dir)/../pod/%.pod\r
+> +    $(POD2MAN_RECIPE)\r
+> +\r
+> +$(dir)/man7/%.7: $(dir)/../pod/%.pod\r
+> +    $(POD2MAN_RECIPE)\r
+> +\r
+> +CLEAN :=3D $(CLEAN) $(NROFF7)\r
+> +\r
+>  .PHONY: install-man update-man-versions\r
+>=20=20\r
+>  install-man: $(COMPRESSED_MAN)\r
+> @@ -52,4 +69,4 @@ update-man-versions: $(MAN_SOURCE)\r
+>              < $$file.bak > $$file; \\r
+>      done\r
+>=20=20\r
+> -CLEAN :=3D $(CLEAN) $(COMPRESSED_MAN) $(MAN_BACKUP)\r
+> +CLEAN :=3D $(CLEAN) $(COMPRESSED_MAN) $(MAN_BACKUP) $(GENERATED_MAN)\r
+> diff --git a/man/man1/notmuch-search.1 b/man/man1/notmuch-search.1\r
+> deleted file mode 100644\r
+> index 55a81e7..0000000\r
+> --- a/man/man1/notmuch-search.1\r
+> +++ /dev/null\r
+> @@ -1,199 +0,0 @@\r
+> -.TH NOTMUCH-SEARCH 1 2013-12-30 "Notmuch 0.17"\r
+> -.SH NAME\r
+> -notmuch-search \- search for messages matching the given search terms\r
+> -.SH SYNOPSIS\r
+> -\r
+> -.B notmuch search\r
+> -.RI  [  options "...] <" search-term ">..."\r
+> -\r
+> -.SH DESCRIPTION\r
+> -\r
+> -Search for messages matching the given search terms, and display as\r
+> -results the threads containing the matched messages.\r
+> -\r
+> -The output consists of one line per thread, giving a thread ID, the\r
+> -date of the newest (or oldest, depending on the sort option) matched\r
+> -message in the thread, the number of matched messages and total\r
+> -messages in the thread, the names of all participants in the thread,\r
+> -and the subject of the newest (or oldest) message.\r
+> -\r
+> -See \fBnotmuch-search-terms\fR(7)\r
+> -for details of the supported syntax for <search-terms>.\r
+> -\r
+> -Supported options for\r
+> -.B search\r
+> -include\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-format=3D ( json | sexp | text | text0 )\r
+> -\r
+> -Presents the results in either JSON, S-Expressions, newline character\r
+> -separated plain-text (default), or null character separated plain-text\r
+> -(compatible with \fBxargs\fR(1) -0 option where available).\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-format-version=3DN\r
+> -\r
+> -Use the specified structured output format version.  This is intended\r
+> -for programs that invoke \fBnotmuch\fR(1) internally.  If omitted, the\r
+> -latest supported version will be used.\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B \-\-output=3D(summary|threads|messages|files|tags)\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B summary\r
+> -\r
+> -Output a summary of each thread with any message matching the search\r
+> -terms. The summary includes the thread ID, date, the number of\r
+> -messages in the thread (both the number matched and the total number),\r
+> -the authors of the thread and the subject.\r
+> -.RE\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B threads\r
+> -\r
+> -Output the thread IDs of all threads with any message matching the\r
+> -search terms, either one per line (\-\-format=3Dtext), separated by null\r
+> -characters (\-\-format=3Dtext0), as a JSON array (\-\-format=3Djson), or\r
+> -an S-Expression list (\-\-format=3Dsexp).\r
+> -.RE\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B messages\r
+> -\r
+> -Output the message IDs of all messages matching the search terms,\r
+> -either one per line (\-\-format=3Dtext), separated by null characters\r
+> -(\-\-format=3Dtext0), as a JSON array (\-\-format=3Djson), or as an\r
+> -S-Expression list (\-\-format=3Dsexp).\r
+> -.RE\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B files\r
+> -\r
+> -Output the filenames of all messages matching the search terms, either\r
+> -one per line (\-\-format=3Dtext), separated by null characters\r
+> -(\-\-format=3Dtext0), as a JSON array (\-\-format=3Djson), or as an\r
+> -S-Expression list (\-\-format=3Dsexp).\r
+> -\r
+> -Note that each message may have multiple filenames associated with it.\r
+> -All of them are included in the output, unless limited with the\r
+> -\-\-duplicate=3DN option.\r
+> -.RE\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B tags\r
+> -\r
+> -Output all tags that appear on any message matching the search terms,\r
+> -either one per line (\-\-format=3Dtext), separated by null characters\r
+> -(\-\-format=3Dtext0), as a JSON array (\-\-format=3Djson), or as an\r
+> -S-Expression list (\-\-format=3Dsexp).\r
+> -.RE\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-sort=3D ( newest\-first | oldest\-first )\r
+> -\r
+> -This option can be used to present results in either chronological order\r
+> -.RB ( oldest\-first )\r
+> -or reverse chronological order\r
+> -.RB ( newest\-first ).\r
+> -\r
+> -Note: The thread order will be distinct between these two options\r
+> -(beyond being simply reversed). When sorting by\r
+> -.B oldest\-first\r
+> -the threads will be sorted by the oldest message in each thread, but\r
+> -when sorting by\r
+> -.B newest\-first\r
+> -the threads will be sorted by the newest message in each thread.\r
+> -\r
+> -By default, results will be displayed in reverse chronological order,\r
+> -(that is, the newest results will be displayed first).\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-offset=3D[\-]N\r
+> -\r
+> -Skip displaying the first N results. With the leading '\-', start at the=\r
+ Nth\r
+> -result from the end.\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-limit=3DN\r
+> -\r
+> -Limit the number of displayed results to N.\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-exclude=3D(true|false|all|flag)\r
+> -\r
+> -A message is called "excluded" if it matches at least one tag in\r
+> -search.tag_exclude that does not appear explicitly in the search terms.\r
+> -This option specifies whether to omit excluded messages in the search\r
+> -process.\r
+> -\r
+> -The default value,\r
+> -.BR true ,\r
+> -prevents excluded messages from matching the search terms.\r
+> -\r
+> -.B all\r
+> -additionally prevents excluded messages from appearing in displayed\r
+> -results, in effect behaving as though the excluded messages do not exist.\r
+> -\r
+> -.B false\r
+> -allows excluded messages to match search terms and appear in displayed\r
+> -results. Excluded messages are still marked in the relevant outputs.\r
+> -\r
+> -.B flag\r
+> -only has an effect when\r
+> -.BR --output=3Dsummary .\r
+> -The output is almost identical to\r
+> -.BR false ,\r
+> -but the "match count" is the number of matching non-excluded messages in=\r
+ the\r
+> -thread, rather than the number of matching messages.\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.BR \-\-duplicate=3DN\r
+> -\r
+> -Effective with\r
+> -.BR --output=3Dfiles ,\r
+> -output the Nth filename associated with each message matching the\r
+> -query (N is 1-based). If N is greater than the number of files\r
+> -associated with the message, don't print anything.\r
+> -\r
+> -Note that this option is orthogonal with the\r
+> -.BR folder:\r
+> -search prefix. The prefix matches messages based on filenames. This\r
+> -option filters filenames of the matching messages.\r
+> -.RE\r
+> -\r
+> -.SH EXIT STATUS\r
+> -\r
+> -This command supports the following special exit status codes\r
+> -\r
+> -.TP\r
+> -.B 20\r
+> -The requested format version is too old.\r
+> -.TP\r
+> -.B 21\r
+> -The requested format version is too new.\r
+> -\r
+> -.SH SEE ALSO\r
+> -\r
+> -\fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1),\r
+> -\fBnotmuch-dump\fR(1), \fBnotmuch-hooks\fR(5),\r
+> -\fBnotmuch-insert\fR(1), \fBnotmuch-new\fR(1),\r
+> -\fBnotmuch-reply\fR(1), \fBnotmuch-restore\fR(1),\r
+> -\fBnotmuch-search-terms\fR(7), \fBnotmuch-show\fR(1),\r
+> -\fBnotmuch-tag\fR(1)\r
+> diff --git a/man/man1/notmuch.1 b/man/man1/notmuch.1\r
+> deleted file mode 100644\r
+> index 605b514..0000000\r
+> --- a/man/man1/notmuch.1\r
+> +++ /dev/null\r
+> @@ -1,190 +0,0 @@\r
+> -.\" notmuch - Not much of an email program, (just index, search and tagg=\r
+ing)\r
+> -.\"\r
+> -.\" Copyright =C2=A9 2009 Carl Worth\r
+> -.\"\r
+> -.\" Notmuch is free software: you can redistribute it and/or modify\r
+> -.\" it under the terms of the GNU General Public License as published by\r
+> -.\" the Free Software Foundation, either version 3 of the License, or\r
+> -.\" (at your option) any later version.\r
+> -.\"\r
+> -.\" Notmuch is distributed in the hope that it will be useful,\r
+> -.\" but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+> -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+> -.\" GNU General Public License for more details.\r
+> -.\"\r
+> -.\" You should have received a copy of the GNU General Public License\r
+> -.\" along with this program.  If not, see http://www.gnu.org/licenses/ .\r
+> -.\"\r
+> -.\" Author: Carl Worth <cworth@cworth.org>\r
+> -.TH NOTMUCH 1 2013-12-30 "Notmuch 0.17"\r
+> -.SH NAME\r
+> -notmuch \- thread-based email index, search, and tagging\r
+> -.SH SYNOPSIS\r
+> -.B notmuch\r
+> -.RI "[" option " ...] " command  " [" arg " ...]"\r
+> -.SH DESCRIPTION\r
+> -Notmuch is a command-line based program for indexing, searching,\r
+> -reading, and tagging large collections of email messages.\r
+> -\r
+> -This page describes how to get started using notmuch from the command\r
+> -line, and gives a brief overview of the commands available. For more\r
+> -information on e.g.\r
+> -.B notmuch show\r
+> -consult the \fBnotmuch-show\fR(1) man page, also accessible via\r
+> -.B notmuch help show\r
+> -\r
+> -The quickest way to get started with Notmuch is to simply invoke the\r
+> -.B notmuch\r
+> -command with no arguments, which will interactively guide you through\r
+> -the process of indexing your mail.\r
+> -.SH NOTE\r
+> -While the command-line program\r
+> -.B notmuch\r
+> -provides powerful functionality, it does not provide the most\r
+> -convenient interface for that functionality. More sophisticated\r
+> -interfaces are expected to be built on top of either the command-line\r
+> -interface, or more likely, on top of the notmuch library\r
+> -interface. See http://notmuchmail.org for more about alternate\r
+> -interfaces to notmuch. The emacs-based interface to notmuch (available u=\r
+nder\r
+> -.B emacs/\r
+> -in the Notmuch source distribution) is probably the most widely used at\r
+> -this time.\r
+> -\r
+> -.SH OPTIONS\r
+> -\r
+> -Supported global options for\r
+> -.B notmuch\r
+> -include\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B \-\-help\r
+> -\r
+> -Print a synopsis of available commands and exit.\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B \-\-version\r
+> -\r
+> -Print the installed version of notmuch, and exit.\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B \-\-config=3DFILE\r
+> -\r
+> -Specify the configuration file to use. This overrides any\r
+> -configuration file specified by ${NOTMUCH_CONFIG}.\r
+> -\r
+> -.RE\r
+> -\r
+> -.SH COMMANDS\r
+> -\r
+> -\r
+> -.SS SETUP\r
+> -\r
+> -The\r
+> -.B notmuch setup\r
+> -command is used to configure Notmuch for first use, (or to reconfigure\r
+> -it later).\r
+> -\r
+> -The setup command will prompt for your full name, your primary email\r
+> -address, any alternate email addresses you use, and the directory\r
+> -containing your email archives. Your answers will be written to a\r
+> -configuration file in ${NOTMUCH_CONFIG} (if set) or\r
+> -${HOME}/.notmuch-config . This configuration file will be created with\r
+> -descriptive comments, making it easy to edit by hand later to change the\r
+> -configuration. Or you can run\r
+> -.B "notmuch setup"\r
+> -again to change the configuration.\r
+> -\r
+> -The mail directory you specify can contain any number of\r
+> -sub-directories and should primarily contain only files with individual\r
+> -email messages (eg. maildir or mh archives are perfect). If there are\r
+> -other, non-email files (such as indexes maintained by other email\r
+> -programs) then notmuch will do its best to detect those and ignore\r
+> -them.\r
+> -\r
+> -Mail storage that uses mbox format, (where one mbox file contains many\r
+> -messages), will not work with notmuch. If that's how your mail is\r
+> -currently stored, it is recommended you first convert it to maildir\r
+> -format with a utility such as mb2md before running\r
+> -.B "notmuch setup" .\r
+> -\r
+> -Invoking\r
+> -.B notmuch\r
+> -with no command argument will run\r
+> -.B setup\r
+> -if the setup command has not previously been completed.\r
+> -.RE\r
+> -\r
+> -.SS OTHER COMMANDS\r
+> -\r
+> -Several of the notmuch commands accept search terms with a common\r
+> -syntax. See \fNnotmuch-search-terms\fR(7)\r
+> -for more details on the supported syntax.\r
+> -\r
+> -The\r
+> -.BR search ", " show " and " count\r
+> -commands are used to query the email database.\r
+> -\r
+> -The\r
+> -.B reply\r
+> -command is useful for preparing a template for an email reply.\r
+> -\r
+> -The\r
+> -.B tag\r
+> -command is the only command available for manipulating database\r
+> -contents.\r
+> -\r
+> -\r
+> -The\r
+> -.BR dump " and " restore\r
+> -commands can be used to create a textual dump of email tags for backup\r
+> -purposes, and to restore from that dump.\r
+> -\r
+> -The\r
+> -.B config\r
+> -command can be used to get or set settings int the notmuch\r
+> -configuration file.\r
+> -\r
+> -.SH ENVIRONMENT\r
+> -The following environment variables can be used to control the\r
+> -behavior of notmuch.\r
+> -.TP\r
+> -.B NOTMUCH_CONFIG\r
+> -Specifies the location of the notmuch configuration file. Notmuch will\r
+> -use ${HOME}/.notmuch\-config if this variable is not set.\r
+> -\r
+> -.TP\r
+> -.B NOTMUCH_TALLOC_REPORT\r
+> -Location to write a talloc memory usage report. See\r
+> -.B talloc_enable_leak_report_full\r
+> -in \fBtalloc\fR(3)\r
+> -for more information.\r
+> -\r
+> -.TP\r
+> -.B NOTMUCH_DEBUG_QUERY\r
+> -If set to a non-empty value, the notmuch library will print (to stderr) =\r
+Xapian\r
+> -queries it constructs.\r
+> -\r
+> -.SH SEE ALSO\r
+> -\r
+> -\fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1),\r
+> -\fBnotmuch-dump\fR(1), \fBnotmuch-hooks\fR(5),\r
+> -\fBnotmuch-insert\fR(1), \fBnotmuch-new\fR(1),\r
+> -\fBnotmuch-reply\fR(1), \fBnotmuch-restore\fR(1),\r
+> -\fBnotmuch-search\fR(1), \fBnotmuch-search-terms\fR(7),\r
+> -\fBnotmuch-show\fR(1), \fBnotmuch-tag\fR(1)\r
+> -\r
+> -\r
+> -The notmuch website:\r
+> -.B http://notmuchmail.org\r
+> -.SH CONTACT\r
+> -Feel free to send questions, comments, or kudos to the notmuch mailing\r
+> -list <notmuch@notmuchmail.org> . Subscription is not required before\r
+> -posting, but is available from the notmuchmail.org website.\r
+> -\r
+> -Real-time interaction with the Notmuch community is available via IRC\r
+> -(server: irc.freenode.net, channel: #notmuch).\r
+> diff --git a/man/man7/notmuch-search-terms.7 b/man/man7/notmuch-search-te=\r
+rms.7\r
+> deleted file mode 100644\r
+> index a768b63..0000000\r
+> --- a/man/man7/notmuch-search-terms.7\r
+> +++ /dev/null\r
+> @@ -1,269 +0,0 @@\r
+> -.TH NOTMUCH-SEARCH-TERMS 7 2013-12-30 "Notmuch 0.17"\r
+> -\r
+> -.SH NAME\r
+> -notmuch-search-terms \- syntax for notmuch queries\r
+> -\r
+> -.SH SYNOPSIS\r
+> -\r
+> -.B notmuch count\r
+> -.RI  [ options... ]\r
+> -.RI  < search-term ">..."\r
+> -\r
+> -.B "notmuch dump"\r
+> -.RI "[ <" filename "> ] [--]"\r
+> -.RI "[ <" search-term ">...]"\r
+> -\r
+> -.B notmuch search\r
+> -.RI  [  options "...] <" search-term ">..."\r
+> -\r
+> -.B notmuch show\r
+> -.RI "[" options "...] <" search-term ">..."\r
+> -\r
+> -.B notmuch tag\r
+> -.RI  "+<" tag> "|\-<" tag "> [...] [\-\-] <" search-term ">..."\r
+> -\r
+> -\r
+> -.SH DESCRIPTION\r
+> -Several notmuch commands accept a common syntax for search terms.\r
+> -\r
+> -The search terms can consist of free-form text (and quoted phrases)\r
+> -which will match all messages that contain all of the given\r
+> -terms/phrases in the body, the subject, or any of the sender or\r
+> -recipient headers.\r
+> -\r
+> -As a special case, a search string consisting of exactly a single\r
+> -asterisk ("*") will match all messages.\r
+> -\r
+> -In addition to free text, the following prefixes can be used to force\r
+> -terms to match against specific portions of an email, (where\r
+> -<brackets> indicate user-supplied values):\r
+> -\r
+> -    from:<name-or-address>\r
+> -\r
+> -    to:<name-or-address>\r
+> -\r
+> -    subject:<word-or-quoted-phrase>\r
+> -\r
+> -    attachment:<word>\r
+> -\r
+> -    tag:<tag> (or is:<tag>)\r
+> -\r
+> -    id:<message-id>\r
+> -\r
+> -    thread:<thread-id>\r
+> -\r
+> -    folder:<directory-path>\r
+> -\r
+> -    date:<since>..<until>\r
+> -\r
+> -The\r
+> -.B from:\r
+> -prefix is used to match the name or address of the sender of an email\r
+> -message.\r
+> -\r
+> -The\r
+> -.B to:\r
+> -prefix is used to match the names or addresses of any recipient of an\r
+> -email message, (whether To, Cc, or Bcc).\r
+> -\r
+> -Any term prefixed with\r
+> -.B subject:\r
+> -will match only text from the subject of an email. Searching for a\r
+> -phrase in the subject is supported by including quotation marks around\r
+> -the phrase, immediately following\r
+> -.BR subject: .\r
+> -\r
+> -The\r
+> -.B attachment:\r
+> -prefix can be used to search for specific filenames (or extensions) of\r
+> -attachments to email messages.\r
+> -\r
+> -For\r
+> -.BR tag: " and " is:\r
+> -valid tag values include\r
+> -.BR inbox " and " unread\r
+> -by default for new messages added by\r
+> -.B notmuch new\r
+> -as well as any other tag values added manually with\r
+> -.BR "notmuch tag" .\r
+> -\r
+> -For\r
+> -.BR id: ,\r
+> -message ID values are the literal contents of the Message\-ID: header\r
+> -of email messages, but without the '<', '>' delimiters.\r
+> -\r
+> -The\r
+> -.B thread:\r
+> -prefix can be used with the thread ID values that are generated\r
+> -internally by notmuch (and do not appear in email messages). These\r
+> -thread ID values can be seen in the first column of output from\r
+> -.B "notmuch search"\r
+> -\r
+> -The\r
+> -.B folder:\r
+> -prefix can be used to search for email message files that are\r
+> -contained within particular directories within the mail store. If the\r
+> -same email message has multiple message files associated with it, it's\r
+> -sufficient for a match that at least one of the files is contained\r
+> -within a matching directory. Only the directory components below the\r
+> -top-level mail database path are available to be searched.\r
+> -\r
+> -The\r
+> -.B date:\r
+> -prefix can be used to restrict the results to only messages within a\r
+> -particular time range (based on the Date: header) with a range syntax\r
+> -of:\r
+> -\r
+> -    date:<since>..<until>\r
+> -\r
+> -See \fBDATE AND TIME SEARCH\fR below for details on the range\r
+> -expression, and supported syntax for <since> and <until> date and time\r
+> -expressions.\r
+> -\r
+> -The time range can also be specified using timestamps with a syntax\r
+> -of:\r
+> -\r
+> -    <initial-timestamp>..<final-timestamp>\r
+> -\r
+> -Each timestamp is a number representing the number of seconds since\r
+> -1970\-01\-01 00:00:00 UTC.\r
+> -\r
+> -In addition to individual terms, multiple terms can be\r
+> -combined with Boolean operators (\r
+> -.BR and ", " or ", " not\r
+> -, etc.). Each term in the query will be implicitly connected by a\r
+> -logical AND if no explicit operator is provided, (except that terms\r
+> -with a common prefix will be implicitly combined with OR until we get\r
+> -Xapian defect #402 fixed).\r
+> -\r
+> -Parentheses can also be used to control the combination of the Boolean\r
+> -operators, but will have to be protected from interpretation by the\r
+> -shell, (such as by putting quotation marks around any parenthesized\r
+> -expression).\r
+> -\r
+> -.SH DATE AND TIME SEARCH\r
+> -\r
+> -notmuch understands a variety of standard and natural ways of\r
+> -expressing dates and times, both in absolute terms ("2012-10-24") and\r
+> -in relative terms ("yesterday"). Any number of relative terms can be\r
+> -combined ("1 hour 25 minutes") and an absolute date/time can be\r
+> -combined with relative terms to further adjust it. A non-exhaustive\r
+> -description of the syntax supported for absolute and relative terms is\r
+> -given below.\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B The range expression\r
+> -\r
+> -date:<since>..<until>\r
+> -\r
+> -The above expression restricts the results to only messages from\r
+> -<since> to <until>, based on the Date: header.\r
+> -\r
+> -<since> and <until> can describe imprecise times, such as "yesterday".\r
+> -In this case, <since> is taken as the earliest time it could describe\r
+> -(the beginning of yesterday) and <until> is taken as the latest time\r
+> -it could describe (the end of yesterday). Similarly,\r
+> -date:january..february matches from the beginning of January to the\r
+> -end of February.\r
+> -\r
+> -Currently, we do not support spaces in range expressions. You can\r
+> -replace the spaces with '_', or (in most cases) '-', or (in some\r
+> -cases) leave the spaces out altogether. Examples in this man page use\r
+> -spaces for clarity.\r
+> -\r
+> -Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's\r
+> -possible to specify date:..<until> or date:<since>.. to not limit the\r
+> -start or end time, respectively. Pre-1.2.1 Xapian does not report an\r
+> -error on open ended ranges, but it does not work as expected either.\r
+> -\r
+> -Entering date:expr without ".." (for example date:yesterday) won't\r
+> -work, as it's not interpreted as a range expression at all. You can\r
+> -achieve the expected result by duplicating the expr both sides of ".."\r
+> -(for example date:yesterday..yesterday).\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B Relative date and time\r
+> -[N|number] (years|months|weeks|days|hours|hrs|minutes|mins|seconds|secs)=\r
+ [...]\r
+> -\r
+> -All refer to past, can be repeated and will be accumulated.\r
+> -\r
+> -Units can be abbreviated to any length, with the otherwise ambiguous\r
+> -single m being m for minutes and M for months.\r
+> -\r
+> -Number can also be written out one, two, ..., ten, dozen,\r
+> -hundred. Additionally, the unit may be preceded by "last" or "this"\r
+> -(e.g., "last week" or "this month").\r
+> -\r
+> -When combined with absolute date and time, the relative date and time\r
+> -specification will be relative from the specified absolute date and\r
+> -time.\r
+> -\r
+> -Examples: 5M2d, two weeks\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B Supported absolute time formats\r
+> -H[H]:MM[:SS] [(am|a.m.|pm|p.m.)]\r
+> -\r
+> -H[H] (am|a.m.|pm|p.m.)\r
+> -\r
+> -HHMMSS\r
+> -\r
+> -now\r
+> -\r
+> -noon\r
+> -\r
+> -midnight\r
+> -\r
+> -Examples: 17:05, 5pm\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B Supported absolute date formats\r
+> -YYYY-MM[-DD]\r
+> -\r
+> -DD-MM[-[YY]YY]\r
+> -\r
+> -MM-YYYY\r
+> -\r
+> -M[M]/D[D][/[YY]YY]\r
+> -\r
+> -M[M]/YYYY\r
+> -\r
+> -D[D].M[M][.[YY]YY]\r
+> -\r
+> -D[D][(st|nd|rd|th)] Mon[thname] [YYYY]\r
+> -\r
+> -Mon[thname] D[D][(st|nd|rd|th)] [YYYY]\r
+> -\r
+> -Wee[kday]\r
+> -\r
+> -Month names can be abbreviated at three or more characters.\r
+> -\r
+> -Weekday names can be abbreviated at three or more characters.\r
+> -\r
+> -Examples: 2012-07-31, 31-07-2012, 7/31/2012, August 3\r
+> -.RE\r
+> -\r
+> -.RS 4\r
+> -.TP 4\r
+> -.B Time zones\r
+> -(+|-)HH:MM\r
+> -\r
+> -(+|-)HH[MM]\r
+> -\r
+> -Some time zone codes, e.g. UTC, EET.\r
+> -.RE\r
+> -\r
+> -.SH SEE ALSO\r
+> -\r
+> -\fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1),\r
+> -\fBnotmuch-dump\fR(1), \fBnotmuch-hooks\fR(5),\r
+> -\fBnotmuch-insert\fR(1), \fBnotmuch-new\fR(1),\r
+> -\fBnotmuch-reply\fR(1), \fBnotmuch-restore\fR(1),\r
+> -\fBnotmuch-search\fR(1), \fBnotmuch-show\fR(1), \fBnotmuch-tag\fR(1)\r
+> diff --git a/pod/notmuch-search-terms.pod b/pod/notmuch-search-terms.pod\r
+> new file mode 100644\r
+> index 0000000..47b9c20\r
+> --- /dev/null\r
+> +++ b/pod/notmuch-search-terms.pod\r
+> @@ -0,0 +1,235 @@\r
+> +=3Dhead1 Name\r
+> +\r
+> +notmuch-search-terms - syntax for notmuch queries\r
+> +\r
+> +=3Dhead1 Synopsis\r
+> +\r
+> +B<notmuch> B<count> [I<options...>] <I<search-term>>...\r
+> +\r
+> +B<notmuch> B<dump> [ <I<filename>> ] [--] [ <I<search-term>>...]\r
+> +\r
+> +B<notmuch> B<search> [I<options>...] <I<search-term>>...\r
+> +\r
+> +B<notmuch> B<show> [I<options>...] <I<search-term>>...\r
+> +\r
+> +B<notmuch> B<tag> +<I<tag>>|-<I<tag>> [...] [--] <I<search-term>>...\r
+> +\r
+> +=3Dhead1 Description\r
+> +\r
+> +Several notmuch commands accept a common syntax for search terms.\r
+> +\r
+> +The search terms can consist of free-form text (and quoted phrases)\r
+> +which will match all messages that contain all of the given\r
+> +terms/phrases in the body, the subject, or any of the sender or\r
+> +recipient headers.\r
+> +\r
+> +As a special case, a search string consisting of exactly a single\r
+> +asterisk ("*") will match all messages.\r
+> +\r
+> +In addition to free text, the following prefixes can be used to force\r
+> +terms to match against specific portions of an email, (where <brackets>\r
+> +indicate user-supplied values):\r
+> +\r
+> +from:<name-or-address>\r
+> +\r
+> +to:<name-or-address>\r
+> +\r
+> +subject:<word-or-quoted-phrase>\r
+> +\r
+> +attachment:<word>\r
+> +\r
+> +tag:<tag> (or is:<tag>)\r
+> +\r
+> +id:<message-id>\r
+> +\r
+> +thread:<thread-id>\r
+> +\r
+> +folder:<directory-path>\r
+> +\r
+> +date:<since>..<until>\r
+> +\r
+> +The B<from:> prefix is used to match the name or address of the sender of\r
+> +an email message.\r
+> +\r
+> +The B<to:> prefix is used to match the names or addresses of any recipie=\r
+nt\r
+> +of an email message, (whether To, Cc, or Bcc).\r
+> +\r
+> +Any term prefixed with B<subject:> will match only text from the subject\r
+> +of an email. Searching for a phrase in the subject is supported by\r
+> +including quotation marks around the phrase, immediately following\r
+> +B<subject:>.\r
+> +\r
+> +The B<attachment:> prefix can be used to search for specific filenames (=\r
+or\r
+> +extensions) of attachments to email messages.\r
+> +\r
+> +For B<tag:> and B<is:> valid tag values include B<inbox> and B<unread> b=\r
+y default\r
+> +for new messages added by B<notmuch> B<new> as well as any other tag val=\r
+ues\r
+> +added manually with B<notmuch> B<tag>.\r
+> +\r
+> +For B<id:>, message ID values are the literal contents of the Message-ID:\r
+> +header of email messages, but without the `<', `>' delimiters.\r
+> +\r
+> +The B<thread:> prefix can be used with the thread ID values that are\r
+> +generated internally by notmuch (and do not appear in email messages).\r
+> +These thread ID values can be seen in the first column of output from\r
+> +B<notmuch> B<search>\r
+> +\r
+> +The B<folder:> prefix can be used to search for email message files that\r
+> +are contained within particular directories within the mail store. If\r
+> +the same email message has multiple message files associated with it,\r
+> +it's sufficient for a match that at least one of the files is contained\r
+> +within a matching directory. Only the directory components below the\r
+> +top-level mail database path are available to be searched.\r
+> +\r
+> +The B<date:> prefix can be used to restrict the results to only messages\r
+> +within a particular time range (based on the Date: header) with a range\r
+> +syntax of:\r
+> +\r
+> +date:<since>..<until>\r
+> +\r
+> +See B<DATE> B<AND> B<TIME> B<SEARCH> below for details on the range expr=\r
+ession, and\r
+> +supported syntax for <since> and <until> date and time expressions.\r
+> +\r
+> +The time range can also be specified using timestamps with a syntax of:\r
+> +\r
+> +<initial-timestamp>..<final-timestamp>\r
+> +\r
+> +Each timestamp is a number representing the number of seconds since\r
+> +1970-01-01 00:00:00 UTC.\r
+> +\r
+> +In addition to individual terms, multiple terms can be combined with\r
+> +Boolean operators ( B<and>, B<or>, B<not> , etc.). Each term in the quer=\r
+y will\r
+> +be implicitly connected by a logical AND if no explicit operator is\r
+> +provided, (except that terms with a common prefix will be implicitly\r
+> +combined with OR until we get Xapian defect #402 fixed).\r
+> +\r
+> +Parentheses can also be used to control the combination of the Boolean\r
+> +operators, but will have to be protected from interpretation by the\r
+> +shell, (such as by putting quotation marks around any parenthesized\r
+> +expression).\r
+> +\r
+> +=3Dhead1 Date and Time Search\r
+> +\r
+> +notmuch understands a variety of standard and natural ways of\r
+> +expressing dates and times, both in absolute terms ("2012-10-24") and\r
+> +in relative terms ("yesterday"). Any number of relative terms can be\r
+> +combined ("1 hour 25 minutes") and an absolute date/time can be\r
+> +combined with relative terms to further adjust it. A non-exhaustive\r
+> +description of the syntax supported for absolute and relative terms is\r
+> +given below.\r
+> +\r
+> +B<The> B<range> B<expression>\r
+> +\r
+> +date:<since>..<until>\r
+> +\r
+> +The above expression restricts the results to only messages\r
+> +from <since> to <until>, based on the Date: header.\r
+> +\r
+> +<since> and <until> can describe imprecise times, such as\r
+> +"yesterday". In this case, <since> is taken as the earliest\r
+> +time it could describe (the beginning of yesterday) and <until>\r
+> +is taken as the latest time it could describe (the end of\r
+> +yesterday). Similarly, date:january..february matches from the\r
+> +beginning of January to the end of February.\r
+> +\r
+> +Currently, we do not support spaces in range expressions. You\r
+> +can replace the spaces with `_', or (in most cases) `-', or (in\r
+> +some cases) leave the spaces out altogether. Examples in this\r
+> +man page use spaces for clarity.\r
+> +\r
+> +Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's\r
+> +possible to specify date:..<until> or date:<since>.. to not\r
+> +limit the start or end time, respectively. Pre-1.2.1 Xapian\r
+> +does not report an error on open ended ranges, but it does not\r
+> +work as expected either.\r
+> +\r
+> +Entering date:expr without ".." (for example date:yesterday)\r
+> +won't work, as it's not interpreted as a range expression at\r
+> +all. You can achieve the expected result by duplicating the\r
+> +expr both sides of ".." (for example\r
+> +date:yesterday..yesterday).\r
+> +\r
+> +B<Relative> B<date> B<and> B<time>\r
+> +[N|number]\r
+> +(years|months|weeks|days|hours|hrs|minutes|mins|seconds|secs)\r
+> +[...]\r
+> +\r
+> +All refer to past, can be repeated and will be accumulated.\r
+> +\r
+> +Units can be abbreviated to any length, with the otherwise\r
+> +ambiguous single m being m for minutes and M for months.\r
+> +\r
+> +Number can also be written out one, two, ..., ten, dozen,\r
+> +hundred. Additionally, the unit may be preceded by "last" or\r
+> +"this" (e.g., "last week" or "this month").\r
+> +\r
+> +When combined with absolute date and time, the relative date\r
+> +and time specification will be relative from the specified\r
+> +absolute date and time.\r
+> +\r
+> +Examples: 5M2d, two weeks\r
+> +\r
+> +B<Supported> B<absolute> B<time> B<formats>\r
+> +H[H]:MM[:SS] [(am|a.m.|pm|p.m.)]\r
+> +\r
+> +H[H] (am|a.m.|pm|p.m.)\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem HHMMSS\r
+> +\r
+> +=3Dback\r
+> +\r
+> +now\r
+> +\r
+> +noon\r
+> +\r
+> +midnight\r
+> +\r
+> +Examples: 17:05, 5pm\r
+> +\r
+> +B<Supported> B<absolute> B<date> B<formats>\r
+> +YYYY-MM[-DD]\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem DD-MM[-[YY]YY]\r
+> +\r
+> +=3Ditem MM-YYYY\r
+> +\r
+> +=3Ditem M[M]/D[D][/[YY]YY]\r
+> +\r
+> +=3Ditem M[M]/YYYY\r
+> +\r
+> +=3Ditem D[D].M[M][.[YY]YY]\r
+> +\r
+> +=3Dback\r
+> +\r
+> +D[D][(st|nd|rd|th)] Mon[thname] [YYYY]\r
+> +\r
+> +Mon[thname] D[D][(st|nd|rd|th)] [YYYY]\r
+> +\r
+> +Wee[kday]\r
+> +\r
+> +Month names can be abbreviated at three or more characters.\r
+> +\r
+> +Weekday names can be abbreviated at three or more characters.\r
+> +\r
+> +Examples: 2012-07-31, 31-07-2012, 7/31/2012, August 3\r
+> +\r
+> +B<Time> B<zones>\r
+> +(+|-)HH:MM\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem (+|-)HH[MM]\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Some time zone codes, e.g. UTC, EET.\r
+> +\r
+> +=3Dhead1 See Also\r
+> +\r
+> +L<notmuch(1)>, L<notmuch-config(1)>, L<notmuch-count(1)>, L<notmuch-dump=\r
+(1)>,\r
+> +L<notmuch-hooks(5)>, L<notmuch-insert(1)>, L<notmuch-new(1)>, L<notmuch-=\r
+reply(1)>,\r
+> +L<notmuch-restore(1)>, L<notmuch-search(1)>, L<notmuch-show(1)>, L<notmu=\r
+ch-tag(1)>\r
+> diff --git a/pod/notmuch-search.pod b/pod/notmuch-search.pod\r
+> new file mode 100644\r
+> index 0000000..629ac02\r
+> --- /dev/null\r
+> +++ b/pod/notmuch-search.pod\r
+> @@ -0,0 +1,194 @@\r
+> +=3Dhead1 Name\r
+> +\r
+> +notmuch-search - search for messages matching the given search terms\r
+> +\r
+> +=3Dhead1 Synopsis\r
+> +\r
+> +B<notmuch> B<search> [I<options>...] <I<search-term>>...\r
+> +\r
+> +=3Dhead1 Description\r
+> +\r
+> +Search for messages matching the given search terms, and display as\r
+> +results the threads containing the matched messages.\r
+> +\r
+> +The output consists of one line per thread, giving a thread ID, the\r
+> +date of the newest (or oldest, depending on the sort option) matched\r
+> +message in the thread, the number of matched messages and total\r
+> +messages in the thread, the names of all participants in the thread,\r
+> +and the subject of the newest (or oldest) message.\r
+> +\r
+> +See L<notmuch-search-terms(7)> for details of the supported syntax for\r
+> +<search-terms>.\r
+> +\r
+> +Supported options for B<search> include\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--format=3D>(B<json>|B<sexp>|B<text>|B<text0>)\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Presents the results in either JSON, S-Expressions, newline\r
+> +character separated plain-text (default), or null character\r
+> +separated plain-text (compatible with L<xargs(1)> -0 option where\r
+> +available).\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--format-version=3DN>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Use the specified structured output format version. This is\r
+> +intended for programs that invoke L<notmuch(1)> internally. If\r
+> +omitted, the latest supported version will be used.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--output=3D(summary|threads|messages|files|tags)>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +B<summary>\r
+> +\r
+> +Output a summary of each thread with any message matching\r
+> +the search terms. The summary includes the thread ID, date,\r
+> +the number of messages in the thread (both the number\r
+> +matched and the total number), the authors of the thread\r
+> +and the subject.\r
+> +\r
+> +B<threads>\r
+> +\r
+> +Output the thread IDs of all threads with any message\r
+> +matching the search terms, either one per line\r
+> +(--format=3Dtext), separated by null characters\r
+> +(--format=3Dtext0), as a JSON array (--format=3Djson), or an S-\r
+> +Expression list (--format=3Dsexp).\r
+> +\r
+> +B<messages>\r
+> +\r
+> +Output the message IDs of all messages matching the search\r
+> +terms, either one per line (--format=3Dtext), separated by\r
+> +null characters (--format=3Dtext0), as a JSON array\r
+> +(--format=3Djson), or as an S-Expression list\r
+> +(--format=3Dsexp).\r
+> +\r
+> +B<files>\r
+> +\r
+> +Output the filenames of all messages matching the search\r
+> +terms, either one per line (--format=3Dtext), separated by\r
+> +null characters (--format=3Dtext0), as a JSON array\r
+> +(--format=3Djson), or as an S-Expression list\r
+> +(--format=3Dsexp).\r
+> +\r
+> +Note that each message may have multiple filenames\r
+> +associated with it. All of them are included in the\r
+> +output, unless limited with the --duplicate=3DN option.\r
+> +\r
+> +B<tags>\r
+> +\r
+> +Output all tags that appear on any message matching the\r
+> +search terms, either one per line (--format=3Dtext),\r
+> +separated by null characters (--format=3Dtext0), as a JSON\r
+> +array (--format=3Djson), or as an S-Expression list\r
+> +(--format=3Dsexp).\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--sort=3D>(B<newest-first>|B<oldest-first>)\r
+> +\r
+> +=3Dback\r
+> +\r
+> +This option can be used to present results in either\r
+> +chronological order (B<oldest-first>) or reverse chronological\r
+> +order (B<newest-first>).\r
+> +\r
+> +Note: The thread order will be distinct between these two\r
+> +options (beyond being simply reversed). When sorting by\r
+> +B<oldest-first> the threads will be sorted by the oldest message\r
+> +in each thread, but when sorting by B<newest-first> the threads\r
+> +will be sorted by the newest message in each thread.\r
+> +\r
+> +By default, results will be displayed in reverse chronological\r
+> +order, (that is, the newest results will be displayed first).\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--offset=3D[-]N>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Skip displaying the first N results. With the leading `-',\r
+> +start at the Nth result from the end.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--limit=3DN>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Limit the number of displayed results to N.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--exclude=3D(true|false|all|flag)>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +A message is called "excluded" if it matches at least one tag\r
+> +in search.tag_exclude that does not appear explicitly in the\r
+> +search terms. This option specifies whether to omit excluded\r
+> +messages in the search process.\r
+> +\r
+> +The default value, B<true>, prevents excluded messages from\r
+> +matching the search terms.\r
+> +\r
+> +B<all> additionally prevents excluded messages from appearing in\r
+> +displayed results, in effect behaving as though the excluded\r
+> +messages do not exist.\r
+> +\r
+> +B<false> allows excluded messages to match search terms and appear\r
+> +in displayed results. Excluded messages are still marked in the\r
+> +relevant outputs.\r
+> +\r
+> +B<flag> only has an effect when B<--output=3Dsummary>. The output is\r
+> +almost identical to B<false>, but the "match count" is the number\r
+> +of matching non-excluded messages in the thread, rather than\r
+> +the number of matching messages.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--duplicate=3DN>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Effective with B<--output=3Dfiles>, output the Nth filename\r
+> +associated with each message matching the query (N is 1-based).\r
+> +If N is greater than the number of files associated with the\r
+> +message, don't print anything.\r
+> +\r
+> +Note that this option is orthogonal with the B<folder:> search\r
+> +prefix. The prefix matches messages based on filenames. This\r
+> +option filters filenames of the matching messages.\r
+> +\r
+> +=3Dhead1 Exit Status\r
+> +\r
+> +This command supports the following special exit status codes\r
+> +\r
+> +=3Dover 7\r
+> +\r
+> +=3Ditem B<20>\r
+> +\r
+> + The requested format version is too old.\r
+> +\r
+> +=3Ditem B<21>\r
+> +\r
+> + The requested format version is too new.\r
+> +\r
+> +=3Dback\r
+> +\r
+> +=3Dhead1 See Also\r
+> +\r
+> +L<notmuch(1)>, L<notmuch-config(1)>, L<notmuch-count(1)>, L<notmuch-dump=\r
+(1)>,\r
+> +L<notmuch-hooks(5)>, L<notmuch-insert(1)>, L<notmuch-new(1)>, L<notmuch-=\r
+reply(1)>,\r
+> +L<notmuch-restore(1)>, L<notmuch-search-terms(7)>, L<notmuch-show(1)>, L=\r
+<notmuchtag(1)>\r
+> diff --git a/pod/notmuch.pod b/pod/notmuch.pod\r
+> new file mode 100644\r
+> index 0000000..5b11967\r
+> --- /dev/null\r
+> +++ b/pod/notmuch.pod\r
+> @@ -0,0 +1,155 @@\r
+> +=3Dhead1 Name\r
+> +\r
+> +notmuch - thread-based email index, search, and tagging\r
+> +\r
+> +=3Dhead1 Synopsis\r
+> +\r
+> +B<notmuch> [I<option> ...] I<command> [I<arg> ...]\r
+> +\r
+> +=3Dhead1 Description\r
+> +\r
+> +Notmuch is a command-line based program for indexing, searching,\r
+> +reading, and tagging large collections of email messages.\r
+> +\r
+> +This page describes how to get started using notmuch from the command\r
+> +line, and gives a brief overview of the commands available. For more\r
+> +information on e.g. B<notmuch> B<show> consult the L<notmuch-show(1)> ma=\r
+n page,\r
+> +also accessible via B<notmuch> B<help> B<show>\r
+> +\r
+> +The quickest way to get started with Notmuch is to simply invoke the\r
+> +B<notmuch> command with no arguments, which will interactively guide you\r
+> +through the process of indexing your mail.\r
+> +\r
+> +=3Dhead1 Note\r
+> +\r
+> +While the command-line program B<notmuch> provides powerful functionalit=\r
+y,\r
+> +it does not provide the most convenient interface for that\r
+> +functionality. More sophisticated interfaces are expected to be built\r
+> +on top of either the command-line interface, or more likely, on top of\r
+> +the notmuch library interface. See http://notmuchmail.org for more\r
+> +about alternate interfaces to notmuch. The emacs-based interface to\r
+> +notmuch (available under B<emacs/> in the Notmuch source distribution) is\r
+> +probably the most widely used at this time.\r
+> +\r
+> +=3Dhead1 Options\r
+> +\r
+> +Supported global options for B<notmuch> include\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--help>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Print a synopsis of available commands and exit.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--version>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Print the installed version of notmuch, and exit.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<--config=3DFILE>\r
+> +\r
+> +=3Dback\r
+> +\r
+> +Specify the configuration file to use. This overrides any\r
+> +configuration file specified by ${NOTMUCH_CONFIG}.\r
+> +\r
+> +=3Dhead1 Commands\r
+> +\r
+> +B<SETUP>\r
+> +The B<notmuch> B<setup> command is used to configure Notmuch for first u=\r
+se,\r
+> +(or to reconfigure it later).\r
+> +\r
+> +The setup command will prompt for your full name, your primary email\r
+> +address, any alternate email addresses you use, and the directory\r
+> +containing your email archives. Your answers will be written to a\r
+> +configuration file in ${NOTMUCH_CONFIG} (if set) or ${HOME}/.notmuch-\r
+> +config . This configuration file will be created with descriptive\r
+> +comments, making it easy to edit by hand later to change the\r
+> +configuration. Or you can run B<notmuch> B<setup> again to change the\r
+> +configuration.\r
+> +\r
+> +The mail directory you specify can contain any number of sub-\r
+> +directories and should primarily contain only files with individual\r
+> +email messages (eg. maildir or mh archives are perfect). If there are\r
+> +other, non-email files (such as indexes maintained by other email\r
+> +programs) then notmuch will do its best to detect those and ignore\r
+> +them.\r
+> +\r
+> +Mail storage that uses mbox format, (where one mbox file contains many\r
+> +messages), will not work with notmuch. If that's how your mail is\r
+> +currently stored, it is recommended you first convert it to maildir\r
+> +format with a utility such as mb2md before running B<notmuch> B<setup> B=\r
+<.>\r
+> +\r
+> +Invoking B<notmuch> with no command argument will run B<setup> if the se=\r
+tup\r
+> +command has not previously been completed.\r
+> +\r
+> +B<OTHER> B<COMMANDS>\r
+> +Several of the notmuch commands accept search terms with a common\r
+> +syntax. See L<notmuch-search-terms(7)> for more details on the supported\r
+> +syntax.\r
+> +\r
+> +The B<search>, B<show> and B<count> commands are used to query the email\r
+> +database.\r
+> +\r
+> +The B<reply> command is useful for preparing a template for an email\r
+> +reply.\r
+> +\r
+> +The B<tag> command is the only command available for manipulating databa=\r
+se\r
+> +contents.\r
+> +\r
+> +The B<dump> and B<restore> commands can be used to create a textual dump=\r
+ of\r
+> +email tags for backup purposes, and to restore from that dump.\r
+> +\r
+> +The B<config> command can be used to get or set settings int the notmuch\r
+> +configuration file.\r
+> +\r
+> +=3Dhead1 Environment\r
+> +\r
+> +The following environment variables can be used to control the behavior\r
+> +of notmuch.\r
+> +\r
+> +=3Dover 5\r
+> +\r
+> +=3Ditem B<NOTMUCH_CONFIG>\r
+> +\r
+> +Specifies the location of the notmuch configuration file.\r
+> +Notmuch will use ${HOME}/.notmuch-config if this variable is not\r
+> +set.\r
+> +\r
+> +=3Ditem B<NOTMUCH_TALLOC_REPORT>\r
+> +\r
+> +Location to write a talloc memory usage report. See\r
+> +B<talloc_enable_leak_report_full> in L<talloc(3)> for more\r
+> +information.\r
+> +\r
+> +=3Ditem B<NOTMUCH_DEBUG_QUERY>\r
+> +\r
+> +If set to a non-empty value, the notmuch library will print (to\r
+> +stderr) Xapian queries it constructs.\r
+> +\r
+> +=3Dback\r
+> +\r
+> +=3Dhead1 See Also\r
+> +\r
+> +L<notmuch-config(1)>, L<notmuch-count(1)>, L<notmuch-dump(1)>, L<notmuch=\r
+-hooks(5)>,\r
+> +L<notmuch-insert(1)>, L<notmuch-new(1)>, L<notmuch-reply(1)>, L<notmuch-=\r
+restore(1)>,\r
+> +L<notmuch-search(1)>, L<notmuch-search-terms(7)>, L<notmuch-show(1)>,\r
+> +L<notmuch-tag(1)>\r
+> +\r
+> +The notmuch website: B<http://notmuchmail.org>\r
+> +\r
+> +=3Dhead1 Contact\r
+> +\r
+> +Feel free to send questions, comments, or kudos to the notmuch mailing\r
+> +list <notmuch@notmuchmail.org> . Subscription is not required before\r
+> +posting, but is available from the notmuchmail.org website.\r
+> +\r
+> +Real-time interaction with the Notmuch community is available via IRC\r
+> +(server: irc.freenode.net, channel: #notmuch).\r
+> --=20\r
+> 1.8.5.2\r
+>\r
+> _______________________________________________\r
+> notmuch mailing list\r
+> notmuch@notmuchmail.org\r
+> http://notmuchmail.org/mailman/listinfo/notmuch\r