notmuch clon
Find a file
Jonas Bernoulli d5d8846c32 test: Deal with Emacs 27 switching to lexical scope by default
Starting with Emacs 27 undeclared variables in evaluated interactive
code uses lexical scope.  This includes code passed with '--eval' as
we do in the Emacs tests, which also happen to assume dynamic scope.

- This can affect variables defined by libraries that we use.  We
  let-bind such variables to change the behavior of functions which we
  then call with these bindings in effect.  If these libraries are not
  loaded beforehand, then the bindings are lexical and fail to have
  the effect we intended.

  At this time only 'smtpmail' has to be loaded explicitly (for the
  variables let-bound in emacs_deliver_message and emacs_fcc_message).

  'message' doesn't have to be loaded explicitly, because loading
  'notmuch' (in 'run_emacs') already takes care of that, indirectly.

- Our own testing-only variables also have to be declared explicitly.
  We should have done that anyway, but because of how and where these
  variables are used it was very easy to overlook that (i.e. it isn't
  something the byte-compiler ever looks at).  Not so in Emacs 27
  anymore; here this oversight caused four tests to fail.

  The numeric values of these variables get incremented by functions
  that we add to hooks that are run by many tests, not just the tests
  where we actually inspect the value and therefore take care to let-
  bind the values to 0 before we begin.  The global values therefore
  have to be numeric values as well.  I have chosen -100 instead of 0
  as the default in case someone writes a test that inspects the value
  but forgets to let-bind the value.  I hope that the unusual negative
  value that one is going to see in such a case will help debugging
  the issue.
2020-07-28 08:39:44 -03:00
bindings bindings/ruby: replacy use of deprecated notmuch_message_get_flag 2020-07-18 11:03:29 -03:00
compat compat: run uncrustify 2019-06-14 07:41:27 -03:00
completion completion: more complete completion for zsh. 2018-10-02 21:04:26 -03:00
contrib Make notmuch-mutt script more portable 2020-03-22 22:57:25 -03:00
debian debian: drop ValueRangeProcessor symbols 2020-07-11 19:52:21 -03:00
devel test: drop upgrade from v1 tests 2020-07-11 17:20:09 -03:00
doc doc: add new python bindings to main documentation tree. 2020-07-15 08:37:11 -03:00
emacs emacs: notmuch-search: avoid wiping out buffer-local variables 2020-07-22 19:48:24 -03:00
lib lib: fix error return bug with n_d_set_config. 2020-07-22 19:52:55 -03:00
packaging Use https instead of http where possible 2016-06-05 08:32:17 -03:00
parse-time-string parse-time-string: run uncrustify 2019-06-14 07:41:27 -03:00
performance-test perf-tests: #!/bin/bash -> #!/usr/bin/env bash 2019-06-07 07:59:56 -03:00
test test: Deal with Emacs 27 switching to lexical scope by default 2020-07-28 08:39:44 -03:00
util crypto: handle PKCS#7 envelopedData in _notmuch_crypto_decrypt 2020-05-22 22:11:40 -03:00
vim Fix typos as found by codespell 2018-03-24 20:09:54 -03:00
.dir-locals.el .dir-locals.el: changed one-char comment prefix '; ' to two; '; ; ' 2012-01-22 08:41:37 -04:00
.gitignore gitignore: Ignore generated sphinx.config 2020-07-28 08:39:31 -03:00
.mailmap create .mailmap file (for git shortlog/blame) 2016-07-29 06:01:44 +09:00
.travis.yml test: drop upgrade from v1 tests 2020-07-11 17:20:09 -03:00
AUTHORS update AUTHORS 2020-06-16 08:26:55 -03:00
command-line-arguments.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
command-line-arguments.h cli: run uncrustify 2019-06-14 07:41:27 -03:00
configure configure: replace multiple redirects with redirected block 2020-07-18 11:54:54 -03:00
COPYING Use https instead of http where possible 2016-06-05 08:32:17 -03:00
COPYING-GPL-3 Use https instead of http where possible 2016-06-05 08:32:17 -03:00
debugger.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
gmime-filter-reply.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
gmime-filter-reply.h cli: run uncrustify 2019-06-14 07:41:27 -03:00
hooks.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
INSTALL doc: update install suggestions for fedora derivatives 2020-07-03 06:31:54 -03:00
Makefile support make goals after initial {'', dist, data}clean goal(s) 2017-03-10 08:04:27 -04:00
Makefile.global Makefile.global: drop -std=gnu99. C11 (or later) compiler required 2020-06-26 21:48:56 -03:00
Makefile.local build: produce signatures for release candidate tarballs. 2020-07-03 07:37:00 -03:00
mime-node.c smime: Pass PKCS#7 envelopedData to node_decrypt_and_verify 2020-05-22 22:11:51 -03:00
NEWS NEWS: update date for release 2020-07-10 22:25:04 -03:00
notmuch-client.h cli/dump: define GZPUTS and use it in notmuch-dump 2020-04-13 17:14:50 -03:00
notmuch-compact.c cli: convert notmuch_bool_t to stdbool 2017-10-09 22:24:02 -03:00
notmuch-config.c Drop deprecated/unused crypto.gpg_path 2020-02-19 08:17:49 -04:00
notmuch-count.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-dump.c cli/dump: replace use of gzprintf with gzputs for config values 2020-04-13 17:14:50 -03:00
notmuch-insert.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-new.c cli/new: replace newly deprecated n_m_has_maildir_flag 2020-07-20 08:54:42 -03:00
notmuch-reindex.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-reply.c cli/reply: Ignore PKCS#7 wrapper parts when replying 2020-05-22 22:11:25 -03:00
notmuch-restore.c cli/restore: gzerror() after gzclose_r() is a use after free 2020-04-16 07:52:42 -03:00
notmuch-search.c cli/search: replace deprecated notmuch_message_get_flag 2020-07-18 11:03:28 -03:00
notmuch-setup.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-show.c cli/show: replace deprecated notmuch_message_get_flag 2020-07-18 11:03:28 -03:00
notmuch-tag.c cli: convert notmuch_bool_t to stdbool 2017-10-09 22:24:02 -03:00
notmuch-time.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
query-string.c Use https instead of http where possible 2016-06-05 08:32:17 -03:00
README Use https instead of http where possible 2016-06-05 08:32:17 -03:00
README.rst Use https instead of http where possible 2016-06-05 08:32:17 -03:00
sprinter-json.c sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
sprinter-sexp.c sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
sprinter-text.c sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
sprinter.h sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
status.c status: add print_status_gzbytes 2020-04-13 17:14:50 -03:00
tag-util.c cli: convert notmuch_bool_t to stdbool 2017-10-09 22:24:02 -03:00
tag-util.h cli: run uncrustify 2019-06-14 07:41:27 -03:00
version version: set to 0.30 2020-07-10 22:21:19 -03:00

Notmuch - thread-based email index, search and tagging.

Notmuch is a system for indexing, searching, reading, and tagging
large collections of email messages in maildir or mh format. It uses
the Xapian library to provide fast, full-text search with a convenient
search syntax.

Notmuch is free software, released under the GNU General Public
License version 3 (or later).

Building notmuch
----------------
See the INSTALL file for notes on compiling and installing notmuch.

Running notmuch
---------------
After installing notmuch, start by running "notmuch setup" which will
interactively prompt for configuration information such as your name,
email address, and the directory which contains your mail archive to
be indexed. You can change any answers later by running "notmuch
setup" again or by editing the .notmuch-config file in your home
directory.

With notmuch configured you should next run "notmuch new" which will
index all of your existing mail. This can take a long time, (several
hours) if you have a lot of email, (hundreds of thousands of
files). When new mail is delivered to your mail archive in the future,
you will want to run "notmuch new" again. These runs will be much
faster as they will only index new messages.

Finally, you can prove to yourself that things are working by running
some command-line searches such as "notmuch search
from:someone@example.com" or "notmuch search subject:topic". See
"notmuch help search-terms" for more details on the available search
syntax.

The command-line search output is not expected to be particularly
friendly for day-to-day usage. Instead, it is expected that you will
use an email interface that builds on the notmuch command-line tool or
the libnotmuch library.

Notmuch installs a full-featured email interface for use within
emacs. To use this, first add the following line to your .emacs file:

	(autoload 'notmuch "notmuch" "Notmuch mail" t)

Then, either run "emacs -f notmuch" or execute the command "M-x
notmuch" from within a running emacs.

If you're interested in a non-emacs-based interface to notmuch, then
please join the notmuch community. Various other interfaces are
already in progress, (an interface within vim, a curses interface,
graphical interfaces based on evolution, and various web-based
interfaces). The authors of these interfaces would love further
testing or contribution. See contact information below.

Contacting users and developers
-------------------------------
The website for Notmuch is:

	https://notmuchmail.org

The mailing list address for the notmuch community is:

	notmuch@notmuchmail.org

We welcome any sort of questions, comments, kudos, or code there.

Subscription is not required, (but if you do subscribe you'll avoid
any delay due to moderation). See the website for subscription
information.

There is also an IRC channel dedicated to talk about using and
developing notmuch:

	IRC server:	irc.freenode.net
	Channel:	#notmuch