notmuch
3 years agocli/crypto: fix segfault on failed gmime2 crypto context creation
Jani Nikula [Mon, 16 Oct 2017 15:40:44 +0000 (18:40 +0300)]
cli/crypto: fix segfault on failed gmime2 crypto context creation

Commit 1fdc08d0ffab ("cli/crypto: treat failure to create a crypto
context as fatal.") started treating crypto context creation failures
"as fatal", returning NULL from _mime_node_create().

Unfortunately, we do not have NULL checks for _mime_node_create()
failures. The only caller, mime_node_child(), could check and return
NULL (as it's documented to do on errors) but none of the several call
sites have NULL checks either. And none of them really have a trivial
but feasible and graceful way of recovery.

So while the right thing to do would be to handle NULL returns
properly all over the place, and we have other scenarios that do
return NULL from above mentioned functions, the crypto context
creation failure is something that does seem to show up regularly in
some scenarios, revert back to the functionality before commit
1fdc08d0ffab as an interim fix.

3 years agodebian: changelog stanza for 0.25.1-1 0.25.1
David Bremner [Tue, 12 Sep 2017 01:22:22 +0000 (22:22 -0300)]
debian: changelog stanza for 0.25.1-1

3 years agoNEWS: news entry for 0.25.1
David Bremner [Tue, 12 Sep 2017 01:20:26 +0000 (22:20 -0300)]
NEWS: news entry for 0.25.1

3 years agoversion: bump to 0.25.1
David Bremner [Tue, 12 Sep 2017 01:19:46 +0000 (22:19 -0300)]
version: bump to 0.25.1

3 years agoemacs: override enriched-decode-display-prop for text/enriched display
Jani Nikula [Mon, 11 Sep 2017 20:09:49 +0000 (23:09 +0300)]
emacs: override enriched-decode-display-prop for text/enriched display

Switch to a local version of enriched-decode-display-prop if we
encounter a text/enriched part. This is to mitigate
https://bugs.gnu.org/28350. Normally it would be prudent to remove the
override afterwards, but in this case just leave it in.

Notes from db:
      This doesn't disable text/enriched, just one feature of it.

3 years agodebian: start changelog for next debian upload
David Bremner [Thu, 17 Aug 2017 00:38:26 +0000 (21:38 -0300)]
debian: start changelog for next debian upload

3 years agodo not use bullets in debian/NEWS
Daniel Kahn Gillmor [Thu, 20 Jul 2017 06:28:52 +0000 (08:28 +0200)]
do not use bullets in debian/NEWS

see lintian's debian-news-entry-uses-asterisk for justification

3 years agoremove obsolete lintian-override (see https://bugs.debian.org/865055)
Daniel Kahn Gillmor [Fri, 28 Jul 2017 18:45:05 +0000 (14:45 -0400)]
remove obsolete lintian-override (see https://bugs.debian.org/865055)

3 years agodebian: actually stop shipping 50notmuch.el debian/0.25-6
David Bremner [Tue, 15 Aug 2017 10:52:47 +0000 (07:52 -0300)]
debian: actually stop shipping 50notmuch.el

3 years agodebian upload 0.25-5 debian/0.25-5
David Bremner [Thu, 10 Aug 2017 10:44:07 +0000 (06:44 -0400)]
debian upload 0.25-5

fix typo in -4

3 years agodebian: upload 0.25-4 debian/0.25-4
David Bremner [Fri, 4 Aug 2017 22:15:09 +0000 (18:15 -0400)]
debian: upload 0.25-4

replace notmuch-emacs with elpa-emacs as a recommend

3 years agodebian: changelog stanza for 0.25-3 debian/0.25-3
David Bremner [Thu, 3 Aug 2017 13:26:34 +0000 (09:26 -0400)]
debian: changelog stanza for 0.25-3

3 years agodebian: add maintainer scripts to remove old startup file
David Bremner [Thu, 3 Aug 2017 13:20:37 +0000 (09:20 -0400)]
debian: add maintainer scripts to remove old startup file

We do it for notmuch and notmuch-emacs because the history is a bit
unclear. It seems to be safe to call when that conffile is not owned
by a given package

3 years agodebian: update gmime dependencies debian/0.25-2
David Bremner [Wed, 26 Jul 2017 14:51:59 +0000 (10:51 -0400)]
debian: update gmime dependencies

- build against gmime 3.0 by preference
- drop gmime-2.4-dev, no longer supported upstream

3 years agodebian: add changelog entry for 0.25 0.25 debian/0.25-1
David Bremner [Tue, 25 Jul 2017 11:30:24 +0000 (07:30 -0400)]
debian: add changelog entry for 0.25

3 years agoNEWS: set date
David Bremner [Tue, 25 Jul 2017 11:24:11 +0000 (07:24 -0400)]
NEWS: set date

3 years agoversion: bump to 0.25
David Bremner [Tue, 25 Jul 2017 11:21:29 +0000 (07:21 -0400)]
version: bump to 0.25

3 years agoNEWS: formatting fixups
David Bremner [Tue, 25 Jul 2017 11:16:20 +0000 (07:16 -0400)]
NEWS: formatting fixups

These are from Tomi, split from the previous commit

3 years agoNEWS for release 0.25: Emacs: support for stashing message timestamp
Tomi Ollila [Sun, 23 Jul 2017 19:38:14 +0000 (22:38 +0300)]
NEWS for release 0.25: Emacs: support for stashing message timestamp

3 years agodebian: changelog for 0.25~rc1-2 debian/0.25_rc1-2
David Bremner [Tue, 18 Jul 2017 22:48:12 +0000 (19:48 -0300)]
debian: changelog for 0.25~rc1-2

3 years agodebian: finalize changelog for 0.25~rc1-1 0.25_rc1 debian/0.25_rc1-1
David Bremner [Tue, 18 Jul 2017 10:06:04 +0000 (07:06 -0300)]
debian: finalize changelog for 0.25~rc1-1

3 years agoversion: bump to 0.25~rc1
David Bremner [Tue, 18 Jul 2017 10:04:29 +0000 (07:04 -0300)]
version: bump to 0.25~rc1

3 years agodebian: allow emacs25 as a build depend
David Bremner [Mon, 17 Jul 2017 15:06:12 +0000 (12:06 -0300)]
debian: allow emacs25 as a build depend

It's a bit crazy to require emacs 24 installed just to build, when it
isn't required to run.

3 years agoemacs: convert remaining format-versions from 3 to 4
David Bremner [Mon, 17 Jul 2017 15:06:11 +0000 (12:06 -0300)]
emacs: convert remaining format-versions from 3 to 4

This is needed for consistent beheviour between notmuch built against
gmime-2.6 and gmime-3.0 w.r.t. error reporting.

3 years agofix the generated documentation output
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:05 +0000 (00:16 +0200)]
fix the generated documentation output

3 years agoFix orthography
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:02 +0000 (00:16 +0200)]
Fix orthography

3 years agouse modern debian/copyright
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:06 +0000 (00:16 +0200)]
use modern debian/copyright

3 years agoavoid false lintian warning about "iff"
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:04 +0000 (00:16 +0200)]
avoid false lintian warning about "iff"

3 years agoresolve lintian tag debhelper-but-no-misc-depends notmuch-emacs
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:03 +0000 (00:16 +0200)]
resolve lintian tag debhelper-but-no-misc-depends notmuch-emacs

This is likely not strictly necessary given that notmuch-emacs is a
transitional package.  But having a simple consistency until we
eventually remove the transitional notmuch-emacs package seems ok too,
and fewer arbitrary lintian warnings will make real lintian warnings
more visible.

3 years agofix Python capitalization
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:01 +0000 (00:16 +0200)]
fix Python capitalization

3 years agoexplicitly mark notmuch-emacs as transitional
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:16:00 +0000 (00:16 +0200)]
explicitly mark notmuch-emacs as transitional

3 years agoBump standards version to 4.0.0 (no changes needed)
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:15:59 +0000 (00:15 +0200)]
Bump standards version to 4.0.0 (no changes needed)

Some things that might be interesting (and are acceptable and
supported under 4.0.0, though not required) are:

 * supporting DEB_BUILD_OPTIONS tag nodoc wihle tagging build-deps (we
   could put python-sphinx into <!nodoc>, for example)

 * splitting out Build-Depends-Arch from Build-Depends

3 years agoDrop duplicate Section header for notmuch-vim
Daniel Kahn Gillmor [Mon, 17 Jul 2017 22:15:58 +0000 (00:15 +0200)]
Drop duplicate Section header for notmuch-vim

Resolves lintian binary-control-field-duplicates-source

3 years agoNEWS: drop redundant mention of dump fix
David Bremner [Tue, 18 Jul 2017 09:36:31 +0000 (06:36 -0300)]
NEWS: drop redundant mention of dump fix

This actually happened in 0.24.x.

3 years agoMerge tag 'debian/0.25_rc0-2'
David Bremner [Mon, 17 Jul 2017 12:20:10 +0000 (09:20 -0300)]
Merge tag 'debian/0.25_rc0-2'

merge 32 bit compilation fix

3 years agodebian: changelog stanza for 0.25~rc0-2 debian/0.25_rc0-2
David Bremner [Mon, 17 Jul 2017 11:50:08 +0000 (08:50 -0300)]
debian: changelog stanza for 0.25~rc0-2

3 years agoutil: make g_mime_utils_header_decode_date_unix match prototype
David Bremner [Mon, 17 Jul 2017 11:47:18 +0000 (08:47 -0300)]
util: make g_mime_utils_header_decode_date_unix match prototype

The problem shows up on 32 bit architectures where sizeof(time_t) !=
sizeof(gint64).  Upcasting the 32 bit time_t to a 64 bit integer
should hopefully be safe.

3 years agoNEWS: Initial writeup for my contributions to 0.25
David Bremner [Mon, 17 Jul 2017 01:43:11 +0000 (22:43 -0300)]
NEWS: Initial writeup for my contributions to 0.25

3 years agoMerge tag '0.25_rc0'
David Bremner [Sun, 16 Jul 2017 12:08:39 +0000 (09:08 -0300)]
Merge tag '0.25_rc0'

notmuch 0.25~rc0 release

3 years agodebian: note two closed bugs in changelog 0.25_rc0 debian/0.25_rc0-1
David Bremner [Sun, 16 Jul 2017 11:49:06 +0000 (08:49 -0300)]
debian: note two closed bugs in changelog

3 years agodebian: don't create obsolete bash completion dir
David Bremner [Sun, 16 Jul 2017 11:45:55 +0000 (08:45 -0300)]
debian: don't create obsolete bash completion dir

3 years agodebian: set distribution to experimental, finalize changelog
David Bremner [Sun, 16 Jul 2017 11:20:15 +0000 (08:20 -0300)]
debian: set distribution to experimental, finalize changelog

3 years agodebian: add more c++ gunk to symbols file
David Bremner [Sun, 16 Jul 2017 11:18:19 +0000 (08:18 -0300)]
debian: add more c++ gunk to symbols file

3 years agodebian: bump changelog version, mention SONAME bump
David Bremner [Sun, 16 Jul 2017 11:08:18 +0000 (08:08 -0300)]
debian: bump changelog version, mention SONAME bump

3 years agoNEWS: start entry for 0.25
David Bremner [Sun, 16 Jul 2017 11:02:51 +0000 (08:02 -0300)]
NEWS: start entry for 0.25

3 years agoversion: bump version to 0.25~rc0
David Bremner [Sun, 16 Jul 2017 11:01:42 +0000 (08:01 -0300)]
version: bump version to 0.25~rc0

3 years agocrypto: clean up unused definitions in gmime 3.0
David Bremner [Sat, 15 Jul 2017 23:01:46 +0000 (01:01 +0200)]
crypto: clean up unused definitions in gmime 3.0

based on the same patch from dkg as the previous commit.

3 years agocrypto: Avoid explicit handling of GMimeCryptoContext in gmime 3
David Bremner [Sat, 15 Jul 2017 23:01:45 +0000 (01:01 +0200)]
crypto: Avoid explicit handling of GMimeCryptoContext in gmime 3

gmime 3.0 knows how to select the correct GMimeCryptoContext
automatically, so a bunch of the code in notmuch can be dropped in
that case.

The #ifdef removal of the crypto stuff is better than #define aliasing
in gmime-extra.h for this stuff.  When built against gmime 3.0:

    * it reduces compiled code, and
    * it avoids initializing unused gpgme contexts

(based on a patch from dkg)

3 years agocli/crypto: eliminated compiler warnings about unused arguments
David Bremner [Sat, 15 Jul 2017 23:01:44 +0000 (01:01 +0200)]
cli/crypto: eliminated compiler warnings about unused arguments

These are due to (excessively?) fancy macro definitions in gmime-extra.h

3 years agocli/crypto: treat failure to create a crypto context as fatal.
David Bremner [Sat, 15 Jul 2017 23:01:43 +0000 (01:01 +0200)]
cli/crypto: treat failure to create a crypto context as fatal.

Silently ignoring signed/encrypted parts seems like the wrong idea,
and it also complicates future gmime-3.0 compatibility changes.

3 years agoemacs: change default for notmuch-crypto-process-mime to t
David Bremner [Wed, 12 Jul 2017 10:48:18 +0000 (07:48 -0300)]
emacs: change default for notmuch-crypto-process-mime to t

There are some cases like remote usage where this might cause
problems, but those users can easily customize the variable. The
inconvenience seems to be outweighed by the security benefit for most
users.

3 years agoNEWS: a few formatting updates for 0.24 news items (wiki compatibility)
Tomi Ollila [Thu, 13 Jul 2017 17:35:34 +0000 (20:35 +0300)]
NEWS: a few formatting updates for 0.24 news items (wiki compatibility)

- removed 7 trailing dots -- to make those lines subsection headers

- converted some (mime type) text to monospace

- removed one extra space

3 years agoclean up use of constants in g_mime_multipart_ wrappers
Daniel Kahn Gillmor [Fri, 14 Jul 2017 13:12:01 +0000 (15:12 +0200)]
clean up use of constants in g_mime_multipart_ wrappers

When compiling as C code (instead of C++) against gmime 3.0, gcc gives
errors like the following:

    error: invalid conversion from ‘int’ to ‘GMimeDecryptFlags’ [-fpermissive]

so use explicit *_NONE values instead.

3 years agoconfig: deprecate/drop crypto.gpg_path under gmime 2.6/3.0
Daniel Kahn Gillmor [Fri, 14 Jul 2017 13:12:00 +0000 (15:12 +0200)]
config: deprecate/drop crypto.gpg_path under gmime 2.6/3.0

gmime 3.0 no longer offers a means to set the path for gpg.

Users can set $PATH anyway if they want to pick a
differently-installed gpg (e.g. /usr/local/bin/gpg), so this isn't
much of a reduction in functionality.

The one main difference is for people who have tried to use "gpg2" to
make use of gpg 2.1, but that isn't usefully co-installable anyway.

3 years agoAdd additional munged reply-to tests
Daniel Kahn Gillmor [Fri, 14 Jul 2017 20:14:23 +0000 (22:14 +0200)]
Add additional munged reply-to tests

The reply-to munging code might behave differently whether there's an
exact match on the strings or not, or whether the string is a raw
addr-spec instead of an name-addr.  These tests cover those variations
(i also had to tweak json output further below when this new test was
added).

3 years agoEnsure that "notmuch reply" succeeds during testing.
Daniel Kahn Gillmor [Fri, 14 Jul 2017 20:14:22 +0000 (22:14 +0200)]
Ensure that "notmuch reply" succeeds during testing.

In some (bad!) cases, "notmuch reply" might fail, or might even
segfault.  If this happens, it indicates a bug, and the test suite
should notice it.

3 years agocli: wrap getting uid
David Bremner [Sat, 3 Jun 2017 00:19:04 +0000 (21:19 -0300)]
cli: wrap getting uid

Apparently it moved from "name" to "key_id" in gmime-3.0

3 years agocli: make keyid from fingerprint in gmime 3.0
David Bremner [Fri, 2 Jun 2017 23:57:01 +0000 (20:57 -0300)]
cli: make keyid from fingerprint in gmime 3.0

The "key_id" field seems to used for userid in gmime-3.0, while the
keyid is dropped in the fingerprint field if the full fingerprint is
not available.

3 years agolib: paper over allocation difference
David Bremner [Sat, 20 May 2017 12:05:22 +0000 (09:05 -0300)]
lib: paper over allocation difference

In gmime 3.0 this function is "transfer none", so no deallocation is
needed (or permitted)

3 years agolib: add version of _n_m_f_get_combinded_header for gmime 3.0
David Bremner [Wed, 17 May 2017 10:40:09 +0000 (07:40 -0300)]
lib: add version of _n_m_f_get_combinded_header for gmime 3.0

The iterator is gone, so we need a new loop structure.

3 years agolib: refactor _notmuch_messsage_file_get_combined_header
David Bremner [Wed, 17 May 2017 10:18:55 +0000 (07:18 -0300)]
lib: refactor _notmuch_messsage_file_get_combined_header

We need to rewrite the loop for gmime-3.0; move the loop body to its
own function to avoid code duplication.  Keep the common exit via
"goto DONE" to make this pure code movement.  It's important to note
that the existing exit path only deallocates the iterator.

3 years agolib: wrap use of g_mime_utils_header_decode_date
David Bremner [Wed, 17 May 2017 01:59:54 +0000 (22:59 -0300)]
lib: wrap use of g_mime_utils_header_decode_date

This changes return type in gmime 3.0

3 years agocli: hide rename of GMimeCertificateTrust
David Bremner [Sun, 14 May 2017 17:51:38 +0000 (14:51 -0300)]
cli: hide rename of GMimeCertificateTrust

Both the enum and the values are renamed in GMime 3.0.

3 years agocli: generalize use of GMIME_SIGNATURE_{ERROR,STATUS} to gmime-3
David Bremner [Sun, 14 May 2017 17:49:31 +0000 (14:49 -0300)]
cli: generalize use of GMIME_SIGNATURE_{ERROR,STATUS} to gmime-3

The ERROR enum is merged into to the STATUS enum, and the set of flags
is different.

3 years agoutil: fake gmime-2.6 compatible API for gmime-3.0
David Bremner [Sat, 6 May 2017 11:54:32 +0000 (08:54 -0300)]
util: fake gmime-2.6 compatible API for gmime-3.0

Several functions have added arguments which accept NULL and provide
hopefully sensible defaults. Use macros to minimize source changes.

3 years agocli: replace use of g_mime_message_get_recipients
David Bremner [Sat, 6 May 2017 11:41:14 +0000 (08:41 -0300)]
cli: replace use of g_mime_message_get_recipients

This function, and associated enum, have been renamed and generalized
in gmime-3.0.

3 years agolib/cli: replace use of g_mime_message_get_sender
David Bremner [Sat, 6 May 2017 02:26:57 +0000 (23:26 -0300)]
lib/cli: replace use of g_mime_message_get_sender

This function changes semantics in gmime-3.0 so make a new function
that provides the same functionality in both

3 years agocli: replace use of g_mime_message_get_reply_to
David Bremner [Thu, 4 May 2017 18:59:37 +0000 (14:59 -0400)]
cli: replace use of g_mime_message_get_reply_to

This function changes signature in gmime 3.0, so we provide two new
functions, one for each signature.

3 years agocli: replace use of g_mime_message_get_date_as_string
David Bremner [Thu, 4 May 2017 12:48:44 +0000 (08:48 -0400)]
cli: replace use of g_mime_message_get_date_as_string

This function goes away in gmime-3.0. Also, the memory management is
apparently error prone, witness the memory leak in notmuch-reply.

3 years agotest/crypto: mark extra space in userid as a bug in gmime-2.6
David Bremner [Sat, 3 Jun 2017 00:29:25 +0000 (21:29 -0300)]
test/crypto: mark extra space in userid as a bug in gmime-2.6

I can't see the space in the output of gpg -K --with-colons

3 years agocli: add space separator for keyword, string, and int arguments
David Bremner [Sat, 1 Jul 2017 15:18:45 +0000 (12:18 -0300)]
cli: add space separator for keyword, string, and int arguments

Defer the complication of optional boolean arguments for later (never?).

3 years agocli: change api of parse_option
David Bremner [Sat, 1 Jul 2017 15:18:44 +0000 (12:18 -0300)]
cli: change api of parse_option

The idea is to allow it (in a future commit) advance to the next argv
element to get a value

3 years agocli/show: convert keyword options to booleans
David Bremner [Sat, 1 Jul 2017 15:18:43 +0000 (12:18 -0300)]
cli/show: convert keyword options to booleans

There are two keyword options here that impliment boolean options. It
is simpler to use the built-in boolean argument handling, and also
more robust against divergence in parsing boolean and keyword arguments.

3 years agoemacs: tree: drop repeated "of" from docstring
Kyle Meyer [Sat, 8 Jul 2017 01:01:59 +0000 (21:01 -0400)]
emacs: tree: drop repeated "of" from docstring

3 years agodebian: drop notmuch-dbg
David Bremner [Thu, 6 Jul 2017 11:30:09 +0000 (08:30 -0300)]
debian: drop notmuch-dbg

notmuch-dbgsym should be auto generated now.

3 years agotest/crypto: add test for corrupted signatures
David Bremner [Sat, 3 Jun 2017 17:47:40 +0000 (14:47 -0300)]
test/crypto: add test for corrupted signatures

Have an empty list of signatures is not the nicest mechanism to signal
complete failure to verify, but it's the one we currently have.

3 years agotest: add test for modified pgp/mime signed message
David Bremner [Sat, 3 Jun 2017 17:47:39 +0000 (14:47 -0300)]
test: add test for modified pgp/mime signed message

This is a good thing to test in any case, but particularly as we hit
the dark corners of the gmime crypto API.

3 years agotest: mark test as broken in gmime 3.0
David Bremner [Sat, 3 Jun 2017 17:47:37 +0000 (14:47 -0300)]
test: mark test as broken in gmime 3.0

Currently I'm not sure what the intent of this test is, so it's not
clear if the new answer is better or worse than the old one.

3 years agotest: mark inclusion of headers as broken in gmime-2.x
David Bremner [Sat, 3 Jun 2017 17:47:36 +0000 (14:47 -0300)]
test: mark inclusion of headers as broken in gmime-2.x

The output of headers here reflects an underlying bug / quirk of
gmime-2.6.

3 years agotest/multipart: reorganize creation of multipart message
David Bremner [Sat, 3 Jun 2017 17:47:35 +0000 (14:47 -0300)]
test/multipart: reorganize creation of multipart message

We want to have the bodies of the multipart available in a file on
their own for planned modifications to tests.

3 years agocli: implement structured output version 4
David Bremner [Sat, 3 Jun 2017 17:47:34 +0000 (14:47 -0300)]
cli: implement structured output version 4

Since the error field is unused by the emacs front end, no changes are
needed other than bumping the format version number.

As it is, this is a bit overengineered, but it will reduce duplication
when we support gmime 3.0

3 years agodevel/schemata: describe version 4
David Bremner [Sat, 3 Jun 2017 17:47:33 +0000 (14:47 -0300)]
devel/schemata: describe version 4

Replace numeric errors with human readable flags.  Not all sig_error
keys will necessarily be generated with a given version of gmime.

Drop status "none" as it's currrently unused and I don't know what
it's for.

3 years agoemacs: convert to use format-version 3
David Bremner [Sat, 3 Jun 2017 17:47:32 +0000 (14:47 -0300)]
emacs: convert to use format-version 3

Keeping the emacs interface running old format-versions makes it
impossible to test new format-versions or deprecate old ones.

3 years agoMerge branch 'release'
David Bremner [Tue, 4 Jul 2017 00:35:05 +0000 (21:35 -0300)]
Merge branch 'release'

3 years agodebian: upload 0.24.2-2 debian/0.24.2-2
David Bremner [Sun, 2 Jul 2017 15:49:06 +0000 (12:49 -0300)]
debian: upload 0.24.2-2

Just a no-change rebuild.

3 years agoMerge branch 'debian'
David Bremner [Sun, 2 Jul 2017 13:50:17 +0000 (10:50 -0300)]
Merge branch 'debian'

merge in changes from 0.23.7-3 debian upload

3 years agolib/index: add simple html filter
David Bremner [Thu, 8 Jun 2017 02:11:49 +0000 (23:11 -0300)]
lib/index: add simple html filter

The filter just drops all (HTML) tags. As an enabling change, pass the
content type to the filter constructor so we can decide which scanner
to user.

3 years agolib/index.cc: generalize filter state machine
David Bremner [Thu, 8 Jun 2017 02:11:48 +0000 (23:11 -0300)]
lib/index.cc: generalize filter state machine

To match things more complicated than fixed strings, we need states
with multiple out arrows.

3 years agolib/index: separate state table definition from scanner.
David Bremner [Thu, 8 Jun 2017 02:11:47 +0000 (23:11 -0300)]
lib/index: separate state table definition from scanner.

We want to reuse the scanner definition with a different table.  This
is mainly code movement, and making the state table part of the filter
struct/class.

3 years agolib/index: generalize name of indexing filter
David Bremner [Thu, 8 Jun 2017 02:11:46 +0000 (23:11 -0300)]
lib/index: generalize name of indexing filter

In followup commits we will generalize the functionality of this
filter to deal with other types of non-indexable content.

3 years agoFix minor mistake where indentation width is ignored
Tom Hinton [Thu, 29 Jun 2017 14:08:25 +0000 (14:08 +0000)]
Fix minor mistake where indentation width is ignored

3 years agoAdd indentation to imenu in notmuch-show
Damien Cassou [Sun, 18 Jun 2017 10:04:35 +0000 (12:04 +0200)]
Add indentation to imenu in notmuch-show

3 years agoremove extra space in Emacs prompt
Piotr Trojanek [Fri, 16 Jun 2017 12:57:05 +0000 (13:57 +0100)]
remove extra space in Emacs prompt

Trivial: fix extra space in the "Insert failed" Emacs prompt message.

3 years agofix wrong printf formatting of signed/unsigned integers
Piotr Trojanek [Fri, 16 Jun 2017 22:50:25 +0000 (23:50 +0100)]
fix wrong printf formatting of signed/unsigned integers

3 years agoremove ineffective assignments
Piotr Trojanek [Fri, 16 Jun 2017 22:50:24 +0000 (23:50 +0100)]
remove ineffective assignments

Detected by cppcheck.

3 years agofix leaks due to missing invocations of va_end
Piotr Trojanek [Fri, 16 Jun 2017 22:50:23 +0000 (23:50 +0100)]
fix leaks due to missing invocations of va_end

As the Linux man page states: "Each invocation of va_start() must be
matched by a corresponding invocation of va_end() in the same
function." Detected by cppcheck.

3 years agominor whitespace cleanups
Piotr Trojanek [Fri, 16 Jun 2017 22:50:22 +0000 (23:50 +0100)]
minor whitespace cleanups

3 years agoAdd Emacs' imenu support in notmuch-show and notmuch-search
Damien Cassou [Mon, 12 Jun 2017 13:30:10 +0000 (15:30 +0200)]
Add Emacs' imenu support in notmuch-show and notmuch-search

Emacs' major modes can facilitate navigation in their buffers by
supporting Imenu. In such major modes, launching Imenu (M-x imenu)
makes Emacs display a list of items (e.g., function definitions in a
code buffer). Selecting an item from this list moves point to this
item.

This patch adds Imenu support to both notmuch-show and notmuch-search
buffers:

* in notmuch-show, Imenu will present a list of all messages in the
  currently visible thread;

* in notmuch-search, Imenu will present a list of all messages in the
  search buffer.

3 years agoMerge branch 'release'
David Bremner [Thu, 1 Jun 2017 10:54:38 +0000 (07:54 -0300)]
Merge branch 'release'

3 years agofixup! NEWS: news for 0.24.2 0.24.2 debian/0.24.2-1
David Bremner [Thu, 1 Jun 2017 10:32:10 +0000 (07:32 -0300)]
fixup! NEWS: news for 0.24.2