--- /dev/null
+Return-Path: <bremner@tethera.net>\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 43774431FC2\r
+ for <notmuch@notmuchmail.org>; Wed, 24 Apr 2013 18:19:50 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+ 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 z1GeSw7R98zf for <notmuch@notmuchmail.org>;\r
+ Wed, 24 Apr 2013 18:19:48 -0700 (PDT)\r
+Received: from tesseract.cs.unb.ca (tesseract.cs.unb.ca [131.202.240.238])\r
+ (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id EF725431FAF\r
+ for <notmuch@notmuchmail.org>; Wed, 24 Apr 2013 18:19:47 -0700 (PDT)\r
+Received: from fctnnbsc30w-156034082078.dhcp-dynamic.fibreop.nb.bellaliant.net\r
+ ([156.34.82.78] helo=zancas.localnet)\r
+ by tesseract.cs.unb.ca with esmtpsa\r
+ (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80)\r
+ (envelope-from <bremner@tethera.net>)\r
+ id 1UVAqd-0002Tw-35; Wed, 24 Apr 2013 22:19:47 -0300\r
+Received: from bremner by zancas.localnet with local (Exim 4.80)\r
+ (envelope-from <bremner@tethera.net>)\r
+ id 1UVAqX-00013z-Fi; Wed, 24 Apr 2013 22:19:37 -0300\r
+From: david@tethera.net\r
+To: notmuch@notmuchmail.org\r
+Subject: [RFC Patch v2 1/3] info: start info documentation.\r
+Date: Wed, 24 Apr 2013 22:19:10 -0300\r
+Message-Id: <1366852752-3584-2-git-send-email-david@tethera.net>\r
+X-Mailer: git-send-email 1.8.2.rc2\r
+In-Reply-To: <1366852752-3584-1-git-send-email-david@tethera.net>\r
+References: <1362882151-14030-1-git-send-email-david@tethera.net>\r
+ <1366852752-3584-1-git-send-email-david@tethera.net>\r
+X-Spam_bar: -\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: Thu, 25 Apr 2013 01:19:50 -0000\r
+\r
+From: David Bremner <bremner@debian.org>\r
+\r
+Initially, just a skeleton of documentation for the emacs\r
+interface. There are a few dangling references to other info pages;\r
+these are to be generated from the man pages in a following commit.\r
+\r
+As far as actual documentation, so far this contains only a brief\r
+intro to notmuch-hello.\r
+---\r
+ INSTALL | 12 ++-\r
+ Makefile | 5 +-\r
+ configure | 32 ++++++\r
+ info/Makefile | 7 ++\r
+ info/Makefile.local | 33 ++++++\r
+ info/notmuch-emacs.texi | 270 ++++++++++++++++++++++++++++++++++++++++++++++++\r
+ 6 files changed, 356 insertions(+), 3 deletions(-)\r
+ create mode 100644 info/Makefile\r
+ create mode 100644 info/Makefile.local\r
+ create mode 100644 info/notmuch-emacs.texi\r
+\r
+diff --git a/INSTALL b/INSTALL\r
+index fce9352..451bf05 100644\r
+--- a/INSTALL\r
++++ b/INSTALL\r
+@@ -60,16 +60,24 @@ Talloc which are each described below:\r
+ \r
+ Talloc is available from http://talloc.samba.org/\r
+ \r
++ texinfo\r
++ -------\r
++\r
++ To build the info documentation, you need makeinfo and\r
++ pod2texi. To install the info documentation, you need\r
++ install-info; these are all part of the texinfo distribution\r
++ as of version 5.0.\r
++\r
+ On a modern, package-based operating system you can install all of the\r
+ dependencies with a simple simple command line. For example:\r
+ \r
+ For Debian and similar:\r
+ \r
+- sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev\r
++ sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev makeinfo texinfo\r
+ \r
+ For Fedora and similar:\r
+ \r
+- sudo yum install xapian-core-devel gmime-devel libtalloc-devel\r
++ sudo yum install xapian-core-devel gmime-devel libtalloc-devel texinfo\r
+ \r
+ On other systems, a similar command can be used, but the details of\r
+ the package names may be different.\r
+diff --git a/Makefile b/Makefile\r
+index 73a8554..250fbaa 100644\r
+--- a/Makefile\r
++++ b/Makefile\r
+@@ -4,7 +4,10 @@ all:\r
+ \r
+ # List all subdirectories here. Each contains its own Makefile.local\r
+ subdirs := compat completion emacs lib man parse-time-string\r
+-subdirs += performance-test util test\r
++subdirs += performance-test util info\r
++# it seems to be important to keep test last.\r
++subdirs += test\r
++\r
+ \r
+ # We make all targets depend on the Makefiles themselves.\r
+ global_deps = Makefile Makefile.config Makefile.local \\r
+diff --git a/configure b/configure\r
+index 460fcfc..5243f6a 100755\r
+--- a/configure\r
++++ b/configure\r
+@@ -358,6 +358,10 @@ if [ -z "${EMACSETCDIR}" ]; then\r
+ fi\r
+ fi\r
+ \r
++if [ -z "${INFODIR}" ]; then\r
++ INFODIR='$(prefix)/share/info'\r
++fi\r
++\r
+ printf "Checking if emacs is available... "\r
+ if emacs --quick --batch > /dev/null 2>&1; then\r
+ printf "Yes.\n"\r
+@@ -367,6 +371,24 @@ else\r
+ have_emacs=0\r
+ fi\r
+ \r
++printf "Checking for makeinfo... "\r
++if makeinfo --version > /dev/null 2>&1; then\r
++ printf "Yes.\n"\r
++ have_makeinfo=1\r
++else\r
++ printf "No (so will not info docs)\n"\r
++ have_makeinfo=0\r
++fi\r
++\r
++printf "Checking for install-info... "\r
++if install-info --version > /dev/null 2>&1; then\r
++ printf "Yes.\n"\r
++ have_installinfo=1\r
++else\r
++ printf "No (so will not install info docs)\n"\r
++ have_installinfo=0\r
++fi\r
++\r
+ libdir_in_ldconfig=0\r
+ \r
+ printf "Checking which platform we are on... "\r
+@@ -659,6 +681,16 @@ emacsetcdir=${EMACSETCDIR}\r
+ # Whether there's an emacs binary available for byte-compiling\r
+ HAVE_EMACS = ${have_emacs}\r
+ \r
++# Whether there's a makeinfo binary available to build info docs\r
++HAVE_MAKEINFO = ${have_makeinfo}\r
++\r
++# Whether there's an install-info binary available\r
++HAVE_INSTALLINFO = ${have_installinfo}\r
++\r
++# where to install info files\r
++\r
++INFODIR = ${INFODIR}\r
++\r
+ # The directory to which desktop files should be installed\r
+ desktop_dir = \$(prefix)/share/applications\r
+ \r
+diff --git a/info/Makefile b/info/Makefile\r
+new file mode 100644\r
+index 0000000..de492a7\r
+--- /dev/null\r
++++ b/info/Makefile\r
+@@ -0,0 +1,7 @@\r
++# See Makefile.local for the list of files to be compiled in this\r
++# directory.\r
++all:\r
++ $(MAKE) -C .. all\r
++\r
++.DEFAULT:\r
++ $(MAKE) -C .. $@\r
+diff --git a/info/Makefile.local b/info/Makefile.local\r
+new file mode 100644\r
+index 0000000..55e9740\r
+--- /dev/null\r
++++ b/info/Makefile.local\r
+@@ -0,0 +1,33 @@\r
++# -*- makefile -*-\r
++\r
++dir := info\r
++\r
++texi_sources := $(dir)/notmuch-emacs.texi\r
++emacs_info := $(texi_sources:.texi=.info)\r
++\r
++info := $(emacs_info)\r
++\r
++ifeq ($(HAVE_MAKEINFO),1)\r
++all: $(info)\r
++endif\r
++\r
++ifeq ($(HAVE_INSTALLINFO),1)\r
++install: install-info\r
++endif\r
++\r
++%.info: %.texi\r
++ makeinfo --no-split -o $@ $<\r
++\r
++$(dir)/notmuch-emacs.info: $(dir)/notmuch-emacs.texi $(dir)/version.texi\r
++\r
++.PHONY: $(dir)/version.texi\r
++$(dir)/version.texi: version\r
++ printf "@set VERSION ${VERSION}\n" > $@\r
++\r
++.PHONY: install-info\r
++install-info: ${info}\r
++ mkdir -p "$(DESTDIR)$(INFODIR)"\r
++ install -m0644 $(info) "$(DESTDIR)$(INFODIR)"\r
++ install-info --section=Notmuch --info-dir=${DESTDIR}${INFODIR} $(emacs_info)\r
++\r
++CLEAN := $(CLEAN) $(info)\r
+diff --git a/info/notmuch-emacs.texi b/info/notmuch-emacs.texi\r
+new file mode 100644\r
+index 0000000..434a360\r
+--- /dev/null\r
++++ b/info/notmuch-emacs.texi\r
+@@ -0,0 +1,270 @@\r
++\input texinfo @c -*-texinfo-*-\r
++@comment $Id@w{$}\r
++@comment %**start of header\r
++@setfilename notmuch-emacs.info\r
++@include version.texi\r
++@settitle Notmuch @value{VERSION}\r
++@comment %**end of header\r
++\r
++@macro keyindex {NAME}\r
++@kindex \NAME\\r
++@cindex \NAME\\r
++@end macro\r
++\r
++@macro funindex {NAME}\r
++@findex \NAME\\r
++@cindex \NAME\\r
++@end macro\r
++\r
++@macro varindex {NAME}\r
++@vindex \NAME\\r
++@cindex \NAME\\r
++@end macro\r
++\r
++\r
++@copying\r
++This manual is for Notmuch (version @value{VERSION})\r
++\r
++Copyright @copyright{} 2013 David Bremner\r
++\r
++This manual is distributed under the same terms as notmuch, which are as follows.\r
++@quotation\r
++ This program 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
++ This program 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
++@end quotation\r
++@end copying\r
++\r
++@dircategory Notmuch\r
++@direntry\r
++* notmuch-emacs: (notmuch-emacs). Emacs interface to notmuch\r
++@end direntry\r
++\r
++@titlepage\r
++@title Notmuch\r
++@subtitle for version @value{VERSION}\r
++@author David Bremner (@email{david@@tethera.net})\r
++@page\r
++@vskip 0pt plus 1filll\r
++@insertcopying\r
++@end titlepage\r
++\r
++@contents\r
++\r
++@ifnottex\r
++@node Top\r
++@top Notmuch\r
++\r
++This manual is for Notmuch (version @value{VERSION}).\r
++@end ifnottex\r
++\r
++@menu\r
++* About this Manual::\r
++* notmuch-hello::\r
++* notmuch-search::\r
++* Configuration::\r
++* Function Index::\r
++* Variable Index::\r
++* Index::\r
++@end menu\r
++\r
++\r
++@node About this Manual\r
++@unnumbered About this Manual\r
++\r
++This manual covers only the emacs interface to notmuch. For\r
++information on the command line interface, see\r
++@xref{top,the notmuch man page,Description,notmuch,Notmuch Manual Pager}.\r
++To save\r
++typing, we will sometimes use @emph{notmuch} in this manual to refer\r
++to the Emacs interface to notmuch. If the distinction should every be\r
++important, we'll refer to the Emacs inteface as @emph{notmuch-emacs}.\r
++\r
++Notmuch-emacs is highly customizable via the the Emacs customization\r
++framework (or just by setting the appropriate variables). We try to\r
++point out relevant variables in this manual, but in order to avoid\r
++duplication of information, but you can usually find the most detailed\r
++description in the varables docstring.\r
++\r
++@node notmuch-hello\r
++@chapter notmuch-hello\r
++\r
++@funindex notmuch-hello\r
++@funindex notmuch\r
++\r
++@command{notmuch-hello} is the main entry point for notmuch. You can\r
++start it with @kbd{M-x notmuch} or @kbd{M-x notmuch-hello}. The\r
++startup screen looks something like the following. There are some\r
++hints at the bottom of the screen. There are three main parts to the\r
++notmuch-hello screen, discussed below. The @strong{bold} text\r
++indicates buttons you can click with a mouse or by positioning the\r
++cursor and pressing @kbd{<return>}\r
++\r
++@example\r
++@group\r
++----------------------------------------------------------------------------\r
++\r
++ Welcome to @strong{notmuch}. You have 52 messages.\r
++\r
++Saved searches: @strong{[edit]}\r
++\r
++ 52 @strong{inbox} 52 @strong{unread}\r
++\r
++Search: .\r
++\r
++All tags: @strong{[show]}\r
++\r
++ Type a search query and hit RET to view matching threads.\r
++ Edit saved searches with the `edit' button.\r
++ Hit RET or click on a saved search or tag name to view matching threads.\r
++ `=' to refresh this screen. `s' to search messages. `q' to quit.\r
++ @strong{Customize} this page.\r
++\r
++----------------------------------------------------------------------------\r
++@end group\r
++@end example\r
++\r
++You can change the overall appearence of the notmuch-hello screen by\r
++customizing the variable @var{notmuch-hello-sections}.\r
++@varindex{notmuch-hellow-sections}\r
++\r
++@menu\r
++* notemuch-hello Key Bindings::\r
++* Saved Searches::\r
++* Search Box::\r
++* Known Tags::\r
++@end menu\r
++\r
++@node notemuch-hello Key Bindings\r
++@section notmuch-hello key bindings\r
++\r
++@table @kbd\r
++\r
++@item <tab>\r
++ Move to the next widget (button or text entry field)\r
++@item <backtab>\r
++ Move to the previous widget.\r
++@item <return>\r
++ Activate the current widget.\r
++@item =\r
++Refresh the buffer; mainly update the counts of messages for various\r
++saved searches.\r
++@item G\r
++ Import mail, @xref{Importing Mail}.\r
++@item m\r
++ Compose a message\r
++@item s\r
++Search the notmuch database, @xref{notmuch-search}.\r
++@item v\r
++ Print notmuch version\r
++@item q\r
++Quit\r
++@end table\r
++\r
++\r
++@node Saved Searches\r
++@section Saved Searches\r
++@cindex Saved Searches\r
++\r
++@varindex notmuch-saved-searches\r
++@varindex notmuch-saved-search-sort-function\r
++@varindex notmuch-column-control\r
++\r
++Notmuch replaces the static assignment of messages with the more\r
++dynamic notion of searching.\r
++Notmuch-hello presents the user with a customizable set of saved\r
++searchs. The initial defaults are @code{tag:inbox} and\r
++@code{tag:unread}, but you can customize the following variables\r
++\r
++\r
++@table @var\r
++@item notmuch-saved-searches\r
++A list of cons pairs, the first being the name to display, the second\r
++being a query string for notmuch. @xref{top,Notmuch Query\r
++Syntax,Description,notmuch-search-terms,Notmuch Query Syntax}.\r
++\r
++@item notmuch-saved-searches-sort-function\r
++ This variable controls how saved searches should be sorted. A value\r
++ of @code{nil} displays the saved searches in the order they are\r
++ stored in `notmuch-saved-searches'.\r
++@item notmuch-column-control\r
++ Controls the number of columns for displaying saved-searches/tags\r
++@end table\r
++\r
++@node Search Box\r
++@section Search Box\r
++@cindex Search Box\r
++\r
++@varindex notmuch-hello-recent-searches-max\r
++The search box lets the user enter an notmuch query. @xref{top,Notmuch\r
++Query Syntax,Description,notmuch-search-terms,Notmuch Query Syntax},\r
++for more info on notmuch query syntax. A history of recent searches is\r
++also displayed by default. The latter is controlled by the variable\r
++@var{notmuch-hello-recent-searches-max}.\r
++\r
++@node Known Tags\r
++@section Know Tags\r
++@cindex Known Tags\r
++@varindex notmuch-hello-tag-list-make-query\r
++@varindex notmuch-hello-hide-tags\r
++@varindex notmuch-column-control\r
++\r
++One special kind of saved search provided by default is for each\r
++individual tag defined in the database. This can be controlled via the\r
++following variables.\r
++\r
++@table @var\r
++@item notmuch-hello-tag-list-make-query\r
++ Control how to construct a search (``virtual folder'') from a given tag.\r
++@item notmuch-hello-hide-tags\r
++ Which tags not to display at all.\r
++@item notmuch-column-control\r
++ Controls the number of columns for displaying saved-searches/tags\r
++@end table\r
++\r
++\r
++@node notmuch-search\r
++@chapter notmuch-search\r
++\r
++\r
++@node Configuration\r
++@chapter Configuration\r
++\r
++\r
++@menu\r
++* Importing Mail::\r
++@end menu\r
++\r
++@node Importing Mail\r
++@section Importing Mail\r
++\r
++@funindex notmuch-poll\r
++@vindex notmuch-poll-script\r
++\r
++@node Function Index\r
++@unnumbered Function Index\r
++\r
++@printindex fn\r
++\r
++@node Variable Index\r
++@unnumbered Variable Index\r
++\r
++@printindex vr\r
++\r
++@node Index\r
++@unnumbered Index\r
++\r
++@printindex cp\r
++\r
++\r
++@bye\r
+-- \r
+1.8.2.rc2\r
+\r