notmuch/contrib/notmuch-mutt
Stefano Zacchiroli 9b98e9bcbf notmuch-mutt: Use of uninitialized value.
On Thu, Feb 14, 2013 at 12:36:58AM +0100, Profpatsch wrote:
> On 13-02-13 02:35pm, Kevin J. McCarthy wrote:
> > A more likely idea is to check whether you have $pipe_decode set.
>
> BRILLIANT!
> So much for copying a basic rc from someone else.
> Of course, that was it and I’m officially an idiot.

Neat, thanks Kevin for debugging the issue down to $pipe_decode (which
I've never used, mutt never stops to amaze me :-)).

> And apparently Mail::Internet errors out if there is no Message-ID.
> (Which mentioned in the docs at CPAN…)
>
> Mystery solved.

Right, but still a more graceful failure model would be nice.

Please find attached a patch that in such cases should 1) give a
supposedly nice error message explaining what's going on and 2) empty
the results dir to avoid showing you unrelated results. It works for me.
But extra checking never hurts, in particular for the tag action, which
I don't personally use.

I guess it would also be nice to actually disable $pipe_decode in the
relevant Mutt macros, but I'm not sure about to do that without
interfering with user desired configuration. Kevin: do you know if there
is a common Mutt trick to store the value of a variable before changing
it, and restoring it a posteriori?  More isolation for this kind of
things in Mutt would definitely be welcome...

Cheers.
--
Stefano Zacchiroli  . . . . . . .  zack@upsilon.cc . . . . o . . . o . o
Maître de conférences . . . . . http://upsilon.cc/zack . . . o . . . o o
Debian Project Leader . . . . . . @zack on identi.ca . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »

From b67ab95855ce7d279d8c0b3ddcbc20e679afc70b Mon Sep 17 00:00:00 2001
From: Stefano Zacchiroli <zack@upsilon.cc>
Date: Thu, 14 Feb 2013 09:31:37 +0100
Subject: [PATCH] notmuch-mutt: more graceful handling of missing Message-Id
 errors

in particular:
- the "thread" action would print an error and empty results dir
- the "tag action would print an error
2013-02-16 11:56:40 -04:00
..
.gitignore contrib: new mutt-notmuch utility for Mutt integration 2012-03-30 18:12:49 -03:00
Makefile contrib: new mutt-notmuch utility for Mutt integration 2012-03-30 18:12:49 -03:00
notmuch-mutt notmuch-mutt: Use of uninitialized value. 2013-02-16 11:56:40 -04:00
notmuch-mutt.rc Add duplicate message removal for notmuch-mutt. 2012-08-02 21:12:14 -03:00
README Update notmuch-mutt requirements in README file. 2012-11-16 15:36:28 -04:00

notmuch-mutt: Notmuch (of a) helper for Mutt
============================================

notmuch-mutt provide integration among the [Mutt] [1] mail user agent and the
[Notmuch] [2] mail indexer.

notmuch-mutt offer two main integration features. The first one is the ability
of stating a **search query interactively** and then jump to a fresh Maildir
containing its search results only. The second one is the ability to
**reconstruct threads on the fly** starting from the currently highlighted
mail, which comes handy when a thread has been split across different maildirs,
archived, or the like.

notmuch-mutt enables to trigger mail searches via a Mutt macro (usually F8) and
reconstruct threads via another (usually F9). Check the manpage for the 2-liner
configuration snippet for your Mutt configuration files (~/.muttrc,
/etc/Muttrc, or a /etc/Muttrc.d snippet).

A [blog style introduction] [3] to notmuch-mutt is available and includes some
more rationale for its existence.

Arguably, some of the logics of notmuch-mutt could disappear by adding support
for a --output=symlinks flag to notmuch.


[1]: http://www.mutt.org/
[2]: http://notmuchmail.org/
[3]: http://upsilon.cc/~zack/blog/posts/2011/01/how_to_use_Notmuch_with_Mutt/


Requirements
------------

To *run* notmuch-mutt you will need Perl with the following libraries:

- Mail::Box <http://search.cpan.org/~markov/Mail-Box/>
  (Debian package: libmail-box-perl)
- Mail::Internet <http://search.cpan.org/~markov/MailTools/>
  (Debian package: libmailtools-perl)
- String::ShellQuote <http://search.cpan.org/~rosch/String-ShellQuote/ShellQuote.pm>
  (Debian package: libstring-shellquote-perl)
- Term::ReadLine <http://search.cpan.org/~hayashi/Term-ReadLine-Gnu/>
  (Debian package: libterm-readline-gnu-perl)
- File::Which <http://search.cpan.org/dist/File-Which/>
  (Debian package: libfile-which-perl)

The --remove-dups option will use fdupes <https://code.google.com/p/fdupes/>
if it is installed.  Version fdupes-1.50-PR2 or higher is required.

To *build* notmuch-mutt documentation you will need:

- pod2man (coming with Perl) to generate the manpage
- markdown to generate README.html out of this file


License
-------

notmuch-mutt is copyright (C) 2011-2012 Stefano Zacchiroli <zack@upsilon.cc>.

notmuch-mutt is released under the terms of the GNU General Public License
(GPL), version 3 or above. A copy of the license is available online at
<http://www.gnu.org/licenses/>.