notmuch clon
Find a file
Jani Nikula b8f4e7da3d cli: change the data structure for notmuch address deduplication
Currently we key the address hash table with the case sensitive "name
<address>". Switch to case insensitive keying with just address, and
store the case sensitive name and address in linked lists. This will
be helpful in adding support for different deduplication schemes in
the future.

There will be a slight performance penalty for the current full case
sensitive name + address deduplication, but this is simpler as a whole
when other deduplication schemes are added, and I expect the schemes
to be added to become more popular than the current default.

Aparet from the possible performance penalty, the only user visible
change should be the change in the output ordering for
--output=count. The order is not guaranteed (and is based on hash
table traversal) currently anyway, so this should be of no
consequence.
2015-09-26 07:37:54 -03:00
bindings notmuch 0.20.2 release 2015-06-27 15:29:52 +02:00
compat configure: add workaround for systems without zlib.pc 2014-06-21 16:40:39 -03:00
completion completion: complete addresses in from:/to: search terms 2015-03-13 07:56:38 +01:00
contrib notmuch-mutt: fix xargs/ln usage for OpenBSD compatibility 2015-05-04 08:04:38 +02:00
debian notmuch 0.20.2 release 2015-06-27 15:29:52 +02:00
devel build: extract library versions from notmuch.h 2015-08-10 13:53:55 +02:00
doc lib: add support for date:<expr>..! to mean date:<expr>..<expr> 2015-09-25 21:55:24 -03:00
emacs emacs: wrap current search in parens when filtering 2015-09-07 09:27:09 -03:00
lib lib: add support for date:<expr>..! to mean date:<expr>..<expr> 2015-09-25 21:55:24 -03:00
packaging packaging: fedora: add ruby bindings 2013-06-02 08:03:47 -03:00
parse-time-string parse-time-string: fix setting and rounding of seconds 2015-03-07 10:20:33 +01:00
performance-test test: make script exit (1) if it "fails" to source (.) a file 2015-08-07 21:56:39 +02:00
test lib: add support for date:<expr>..! to mean date:<expr>..<expr> 2015-09-25 21:55:24 -03:00
util util: add strcmp_null, a strcmp that handles NULL parameters 2015-09-26 07:37:35 -03:00
vim VIM: Improve performance of folders_render 2015-01-23 18:18:54 +01: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 sh.config and doc/config.dox 2014-10-28 12:12:33 +01:00
.travis.yml travis: Only notify IRC on success if the previous build failed 2014-08-05 08:03:05 -03:00
AUTHORS Drop date.c file, (use identical function from GMime instead). 2009-11-02 14:36:33 -08:00
command-line-arguments.c cli: add support for hierarchical command line option arrays 2014-11-05 23:17:00 +01:00
command-line-arguments.h cli: add support for hierarchical command line option arrays 2014-11-05 23:17:00 +01:00
configure cli/lib: remove support for GMime 2.4 2015-08-26 20:01:45 -03:00
COPYING Add copy of GNU General Public License (version 3). 2009-10-21 16:25:08 -07:00
COPYING-GPL-3 Add copy of GNU General Public License (version 3). 2009-10-21 16:25:08 -07:00
crypto.c cli/lib: remove support for GMime 2.4 2015-08-26 20:01:45 -03:00
debugger.c notmuch-new: Only install SIGALRM if not running under gdb 2009-11-22 05:36:36 +01:00
gmime-filter-reply.c Filter out carriage-returns in show and reply output. 2009-11-18 23:34:43 +01:00
gmime-filter-reply.h Typsos 2009-11-18 03:21:36 -08:00
hooks.c cli: Flush stdout before fork()ing to run hooks 2014-03-25 21:22:17 -03:00
INSTALL cli/lib: remove support for GMime 2.4 2015-08-26 20:01:45 -03:00
Makefile build: move canonical list of subdirectories to configure script 2014-03-25 08:32:10 -03:00
Makefile.local cli: add utility routine to print error status. 2015-09-20 08:04:31 -03:00
mime-node.c cli/lib: remove support for GMime 2.4 2015-08-26 20:01:45 -03:00
NEWS cli/lib: remove support for GMime 2.4 2015-08-26 20:01:45 -03:00
notmuch-client.h cli: change the data structure for notmuch address deduplication 2015-09-26 07:37:54 -03:00
notmuch-compact.c cli: add global option "--uuid" 2015-08-14 18:23:49 +02:00
notmuch-config.c cli: add global option "--uuid" 2015-08-14 18:23:49 +02:00
notmuch-count.c cli/count: update to use notmuch_query_search_messages_st 2015-09-20 08:04:51 -03:00
notmuch-dump.c cli: convert remainder of CLI to n_q_search_{messages,threads}_st 2015-09-23 08:03:34 -03:00
notmuch-emacs-mua notmuch-emacs-mua: non-forking escape () usage with backslash '\' escape 2015-04-03 09:27:35 +09:00
notmuch-insert.c cli: add global option "--uuid" 2015-08-14 18:23:49 +02:00
notmuch-new.c cli: reset db directory mtime upon directory removal 2015-09-07 09:28:00 -03:00
notmuch-reply.c cli: convert remainder of CLI to n_q_search_{messages,threads}_st 2015-09-23 08:03:34 -03:00
notmuch-restore.c cli: add global option "--uuid" 2015-08-14 18:23:49 +02:00
notmuch-search.c cli: change the data structure for notmuch address deduplication 2015-09-26 07:37:54 -03:00
notmuch-setup.c cli: add global option "--uuid" 2015-08-14 18:23:49 +02:00
notmuch-show.c cli: convert remainder of CLI to n_q_search_{messages,threads}_st 2015-09-23 08:03:34 -03:00
notmuch-tag.c cli: convert remainder of CLI to n_q_search_{messages,threads}_st 2015-09-23 08:03:34 -03:00
notmuch-time.c Add some const correctness to talloc 'ctx' parameter. 2009-11-17 19:10:37 -08:00
notmuch.c cli: add global option "--uuid" 2015-08-14 18:23:49 +02:00
notmuch.desktop notmuch.desktop: Clarify that this is the emacs interface to notmuch. 2010-01-24 07:30:08 +13:00
query-string.c notmuch: Break notmuch.c up into several smaller files. 2009-11-10 12:03:05 -08:00
README emacs: instruct user to autoload notmuch instead of require'ing it 2014-03-30 11:02:08 -03:00
README.rst README.rst: typo/wording fixes 2014-10-24 14:28:44 +02:00
sprinter-json.c sprinters: bugfix when NULL passed for a string. 2012-08-12 21:25:01 +02:00
sprinter-sexp.c Adding an S-expression structured output printer. 2012-12-08 09:26:29 -04:00
sprinter-text.c sprinter: add text0 formatter for null character separated text 2012-12-18 17:03:34 -04:00
sprinter.h sprinter: add text0 formatter for null character separated text 2012-12-18 17:03:34 -04:00
status.c cli: add utility routine to print error status. 2015-09-20 08:04:31 -03:00
tag-util.c cli: add missing \n in error message 2014-03-06 07:46:27 -04:00
tag-util.h cli: export function for illegal tag checking 2014-03-06 07:41:38 -04:00
version version: update to 0.20.2 2015-06-27 15:05:31 +02: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:

	http://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