[PATCH 1/3] info: start info documentation.
authorDavid Bremner <david@tethera.net>
Sun, 5 Jan 2014 11:39:08 +0000 (07:39 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:58:53 +0000 (09:58 -0800)
61/57510aa888dad12ae8c42aa7b4c8700801f051 [new file with mode: 0644]

diff --git a/61/57510aa888dad12ae8c42aa7b4c8700801f051 b/61/57510aa888dad12ae8c42aa7b4c8700801f051
new file mode 100644 (file)
index 0000000..a46029e
--- /dev/null
@@ -0,0 +1,510 @@
+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 16248431FC3\r
+       for <notmuch@notmuchmail.org>; Sun,  5 Jan 2014 03:39:37 -0800 (PST)\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 bZ5WbTmwXiSX for <notmuch@notmuchmail.org>;\r
+       Sun,  5 Jan 2014 03:39:27 -0800 (PST)\r
+Received: from yantan.tethera.net (yantan.tethera.net [199.188.72.155])\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 BA6E4431FC2\r
+       for <notmuch@notmuchmail.org>; Sun,  5 Jan 2014 03:39:27 -0800 (PST)\r
+Received: from remotemail by yantan.tethera.net with local (Exim 4.80)\r
+       (envelope-from <bremner@tethera.net>)\r
+       id 1Vzm3B-0001YF-1x; Sun, 05 Jan 2014 07:39:25 -0400\r
+Received: (nullmailer pid 5366 invoked by uid 1000); Sun, 05 Jan 2014\r
+       11:39:21 -0000\r
+From: David Bremner <david@tethera.net>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 1/3] info: start info documentation.\r
+Date: Sun,  5 Jan 2014 07:39:08 -0400\r
+Message-Id: <1388921950-5017-2-git-send-email-david@tethera.net>\r
+X-Mailer: git-send-email 1.8.5.2\r
+In-Reply-To: <1388921950-5017-1-git-send-email-david@tethera.net>\r
+References: <1366852752-3584-1-git-send-email-david@tethera.net>\r
+       <1388921950-5017-1-git-send-email-david@tethera.net>\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: Sun, 05 Jan 2014 11:39:37 -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                |  10 +-\r
+ configure               |  32 ++++++\r
+ info/Makefile           |   7 ++\r
+ info/Makefile.local     |  33 ++++++\r
+ info/notmuch-emacs.texi | 270 ++++++++++++++++++++++++++++++++++++++++++++++++\r
+ 6 files changed, 358 insertions(+), 6 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 0428160..250fbaa 100644\r
+--- a/Makefile\r
++++ b/Makefile\r
+@@ -2,10 +2,12 @@\r
+ # given explicitly on the command line) so mention it first.\r
+ all:\r
\r
+-# List all subdirectories here. Each contains its own Makefile.local.\r
+-# Use of '=', without '+=', seems to be required for out-of-tree\r
+-# builds to work.\r
+-subdirs = compat completion emacs lib man parse-time-string performance-test util test\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 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 13b6062..e75c1d4 100755\r
+--- a/configure\r
++++ b/configure\r
+@@ -376,6 +376,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
+@@ -385,6 +389,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
+@@ -740,6 +762,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.5.2\r
+\r