Commit graph

124 commits

Author SHA1 Message Date
Mark Walters
1ed9db6c30 contrib: pick: remove unused function
The function notmuch-pick-show-error was used before Austin's improved
error handling. It is now redundant so remove.
2013-07-04 00:37:47 -03:00
Mark Walters
3d772a0a85 contrib: pick: remove unused variable
This variable was needed at one point for the async parser but is not
needed anymore.
2013-07-04 00:37:37 -03:00
Mark Walters
8c33fde83e contrib: pick: bugfix: make the right variable buffer-local
The variable notmuch-pick-message-buffer should be buffer local but
instead notmuch-pick-message-buffer-name (a non-existent variable) was
made buffer local.
2013-07-04 00:37:30 -03:00
Mark Walters
3a8163e17f contrib: pick: add docstrings to all defvars 2013-07-04 00:37:21 -03:00
Mark Walters
91777f8dc9 contrib: pick: add a docstring for the main notmuch-pick function 2013-07-04 00:37:13 -03:00
Mark Walters
eb26cd1fba contrib: pick: fix refresh result
The function notmuch-pick-refresh-result (used to update tag changes)
was not quite correct: sometimes it got the choice between the subject
and " ..." wrong. This was always true but the new code often calls
this (when opening a message in the message pane to remove the unread
tag) while the async pick process is still running and this caused
mistakes which made the tests fail.

Thus we store the previous subject with the message.
2013-07-04 00:36:38 -03:00
Mark Walters
a9dbcbb00c contrib: pick: remove hack notmuch-pick-show-match-message-with-wait
This function was a horrible hack (sleeping while waiting for the
correct message). The new target code can just open the message in the
message window when it arrives.
2013-07-04 00:36:26 -03:00
Mark Walters
f9aad24f02 contrib: pick: if no target specified go to first matching message 2013-07-04 00:36:19 -03:00
Mark Walters
b7df509fb5 contrib: pick: remove reference to inbox in docstring
Copy the recent changes in show to use just notmuch-archive-tags (as a
link) rather than saying '(defaults to "inbox")'.
2013-06-25 08:45:43 -07:00
Mark Walters
57a88397ca contrib: pick: remove unnecessary funcall
Remove unnecessary funcall. This keeps the pick function inline with
the recently tweaked show function.
2013-06-04 09:02:59 -03:00
Mark Walters
dbc3a247ca contrib: pick: bugfix: use notmuch-show-mark-read-tags instead of unread
Previously pick removed the unread tag from its tag display: since the
tag change is now customisable use the customised variable.

This only affected the tags displayed, not the tags in the database as
notmuch-show (in the view pane) did the actual tag changes.
2013-06-02 20:53:49 -03:00
Mark Walters
cec063736a contrib: pick: bugfix. use notmuch-show-only-matching-messages rather than prefix
Previously pick set a prefix argument prior to calling show in the
message pane to tell show to only show matching messages. This sets
notmuch-show-only-matching-messages instead which is much cleaner and
will work even if the user has configured show to default to showing
only matching messages.
2013-06-02 20:52:41 -03:00
Mark Walters
5461c31d64 contrib: pick: use the sexp parser
This just converts notmuch-pick to use the sexp parser.
2013-06-02 08:11:27 -03:00
Mark Walters
47a419ad16 contrib: pick: add a target message for pick
This adds a target message for pick which it will jump to when (if) it
appears. It adds the target to notmuch-pick-from-show-current-query so
that pick goes straight to the message that was current in the show
view and it adds target to notmuch-pick-refresh-view so that the
current message is preserved.
2013-05-20 15:38:40 -03:00
Mark Walters
740f0cda55 contrib: pick: move save-excursion closer to message insertion
Pick keeps point roughly at the top of the buffer while inserting
messages at the end as they come in (from the async
parser). Previously the save-excursion to do this was done once for
each thread inserted: now it is done for each individual message.

The advantage is that the message insertion code can decide where to
leave point. In the next patch point will be left on the target message.

Note notmuch-pick-insert-msg is unchanged as that is used by the tag
display update code.
2013-05-20 15:37:52 -03:00
Kevin J. McCarthy
c34effad9a notmuch-mutt: improve robustness of mutt macros
Details:
- $pipe_decode is turned off, to prevent message-id from being
  filtered out by "ignore" settings in the muttrc.
- Original values for $pipe_decode and $wait_key are saved and restored.
- The macros, being much longer now, are line wrapped for improved
  readability.
2013-02-16 11:56:55 -04:00
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
David Bremner
6ee07a9c6d notmuch-vim: deprecate, move to contrib
As discussed in id:871udhcmks.fsf@zancas.localnet, notmuch-vim doesn't
really meet the standards of the CLI, emacs interface, or python
bindings in terms of being well maintained.
2013-02-16 08:03:09 -04:00
David Bremner
41a29a8472 nmbug: move from contrib to devel
There seems to be consensus to use presence in contrib as
documentation of limited support by the notmuch developers; in fact
nmbug is pretty integrated into our current development process, so
devel seems more appropriate.
2013-02-16 07:54:33 -04:00
Jani Nikula
a03769db17 nmbug: only push master branch on nmbug push
nmbug pull only merges upstream master, but nmbug push tries to push
all local branches. The asymmetry results in conflicts whenever there
have been changes in the config branch in the origin:

$ nmbug push
To nmbug@nmbug.tethera.net:nmbug-tags
 ! [rejected]        config -> config (non-fast-forward)
error: failed to push some refs to 'nmbug@nmbug.tethera.net:nmbug-tags'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. If you did not intend to push that branch, you may want to
hint: specify branches to push or set the 'push.default' configuration
hint: variable to 'current' or 'upstream' to push only the current branch.
'git push origin' exited with nonzero value

To fix this, only push the master branch on nmbug push. Any config
changes need to be done manually via git anyway.
2013-02-14 07:57:05 -04:00
Mark Walters
a1ddf62f6a contrib: pick: close message pane when quitting from show in the message pane
We add a hook to the show buffer in the message window to close the
message window when that buffer quits.  It checks that the
message-window is still displaying the show-message buffer and then
closes it.
2012-12-25 23:02:12 -04:00
Mark Walters
da6d66e286 contrib: pick: slightly tweak running search and pick from pick buffer
Previously running search or pick from the pick buffer did not close
the message pane (if open). This meant that then new search ends up in
a very small window. Fix this so that the message pane is
shut. However, make it so that the pane is shut after the search
string is entered in case the user is basing the search on something
in the current message.
2012-12-24 19:02:35 -04:00
Mark Walters
480f44fbe4 contrib: pick: Do not indent messages in the message pane
Currently pick just uses notmuch-show to display messages in the
message pane: this means that they get indented just as show
would. However, since pick is only displaying one message at a time
there is no need to indent so override the indentation.
2012-12-18 17:03:00 -04:00
Mark Walters
780a98d14e contrib: pick: archive message updated
Update pick's archive message to respect notmuch-archive-tags. Also
split archive message into an archiving part and a separate
"then-next" part, to move more inline with show. Update the keybinding
so default behaviour is unchanged.
2012-12-15 13:48:02 -04:00
Mark Walters
8f1a8c7b09 contrib: pick: bugfix for pick splitting the window excessively
Previously if you carried on past the last message in a pick view pick
would get confused and `forget' about the split pane and would try and
re-split when moving up again. This was due to faulty logic in
notmuch-pick-show-message: something that should have been in the (when message)
clause was not.

Thanks to jrollins for the bug report.
2012-12-11 10:01:18 -04:00
Mark Walters
bd918e35d4 contrib: pick: use notmuch-clean-address
Now notmuch-clean-address is split out in show pick can use that (with a small
wrapper).
2012-12-03 07:34:31 -04:00
Mark Walters
113e30c01b contrib: pick: use async parser from lib
This moves notmuch-pick to use the newly split out async json parser
from notmuch-lib.el.
2012-12-01 08:16:06 -04:00
markwalters1009
859b8ed791 contrib: pick: remove some debug timing messages
When I submitted notmuch-pick I deleted most of the debug messages but
I missed two cases. Remove them now.
2012-12-01 08:15:45 -04:00
Mark Walters
e0adf10be8 contrib: notmuch-pick: add tests
The test should be run using the wrapper run-tests.sh.  This links
the tests into the normal notmuch TEST_DIRECTORY and runs them from
there. After the test is complete then the links are removed.
2012-11-19 08:22:37 -04:00
Mark Walters
96d9f54615 contrib: pick: bugfix when trying to show a non-message
If the user pressed return on the end result status line it gave a
blank message. Modify the function notmuch-pick-get-message-id to
return nil rather than an empty message-id in this case to fix this.

This also fixes a bug in the (lack of) quoting of the id string.
2012-11-16 15:37:10 -04:00
Kevin J. McCarthy
ff9fd62ab6 Update notmuch-mutt requirements in README file.
This updates the notmuch-mutt README file with requirements for the
recently added duplicate removal patch.

-Kevin
2012-11-16 15:36:28 -04:00
Mark Walters
35ebf0b321 contrib: add pick TODO file 2012-10-28 09:35:38 -03:00
Mark Walters
04c4085ab3 contrib: add pick README. 2012-10-28 09:35:17 -03:00
Mark Walters
3d92a257c8 contrib: add notmuch-pick.el file itself
This adds the main notmuch-pick.el file.
2012-10-28 09:35:02 -03:00
Tomi Ollila
02cafc84b4 contrib/nmbug/nmbug-status: combine thread messages
Newer patch email containing In-Reply-To: to an email sent some time ago
(i.e. to a "thread") was not visible in that "thread" in patch view when
another patch "thread" was submitted in between. This change collects
all messages in every (notmuch-created) thread together before printing
all these threads out in a patch view.

Thanks to Ethan Glasser-Camp for initial review and suggestions with
code examples.
2012-10-24 18:54:26 -03:00
Tomi Ollila
d1e0941350 contrib/nmbug/nmbug-status: added table of views
In latest configuration quite a few long views were added to the
Notmuch Patches page. To ease navigating to the views a 'Views'
section was added to the beginning of page containing hyperlink
to every view.
2012-10-24 18:53:58 -03:00
Tomi Ollila
6b47e2223d contrib/nmbug/nmbug-status: if realname empty, use part of mailaddr
When the From: field in patch email does not contain 'realname'
field, the patch listing does not show anything as patch sender.
In this case use the part before '@' in mail address as the sender
identification in patch listing.
2012-09-01 22:58:49 -03:00
Kevin McCarthy
fffb92da8e Add duplicate message removal for notmuch-mutt.
Add a --remove-dups flag which removes duplicate files from search and
thread results.  Uses fdupes if installed.  Otherwise it runs a size and
Digest::SHA scan on each file to detect duplicates.

Signed-off-by: Stefano Zacchiroli <zack@upsilon.cc>
2012-08-02 21:12:14 -03:00
Tomi Ollila
898128b9f4 contib/nmbug/nmbug-status: leftover whitespaces, indentation & quoting
The initial nmbug-status was pretty consistent in it's whitespacing
but a few lines had some leftover slips. Those are now "corrected".

Also, most of the code used ' as quoting char. As in Python one can
use ' and " interchangeably some code used " instead of '. However
the usage of those were inconsistent. Now all quotes that python
parses are ':s (only quoted content uses ":s).

No functional changes.
2012-07-12 16:02:09 -06:00
Tomi Ollila
620092001e contrib/nmbug/ nmbug-status: restored out['subject']... block level
In reformatting the line 111 accidentally indented to one indentation
level too much (happens easily when interactively indenting python
code using emacs). The line now has 4 spacess less indentation, thus
restoring it to the block level it belongs.
2012-07-12 16:01:42 -06:00
David Bremner
3e5fb88f11 contrib/nmbug: add nmbug-status script
This is (almost) the same script as has been used for
http://nmbug.tethera.net/status for a while now. The only change is
that the configuration is not hardcoded anymore. By default the config
is fetched from a special branch in the nmbug repo that contains only
config info. The idea is that push access to this branch can be
restricted a bit more than the tags, since it will change the
appearence of the web pages.
2012-07-10 15:43:32 -06:00
David Bremner
0d6d5fb812 contrib/nmbug: make nmbug a subdirectory
I want to ship the status tool here as well, along with a sample
config file.
2012-07-09 16:16:26 -06:00
Stefano Zacchiroli
e40d134e25 notmuch-mutt: fix helper invocation for the tag action
As it was before, "-inbox" was interpreted as a getopt option, rather
than as a tag manipulation request. Making the action unusable.

Closes: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678012
2012-07-04 14:59:33 -06:00
Tomi Ollila
a114ac8b77 nmbug: check whether every forked process exit with (non)zero value
If any of the forked process exits with nonzero value, terminate
current operation -- nonzero exit value indicates failure and
then there is no point continuing.
2012-06-03 13:45:28 -03:00
David Bremner
5973881b77 notmuch 0.13.2 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iJwEAAECAAYFAk/LdWUACgkQTiiN/0Um85mL8AP/UosXwRabmZT8WjsJ/tPT0N2s
 zIBguJM7jNwnODZ1kFuS5AjxslbsA3SVubWI1rB5CZwINoF0+f+zc1pHHjAjy61R
 XAbSIQsI+2XvnfvDFnLYzyZb6xUX/Q1vczoJ4o2ngLMW5+kkERWYN+T6Ee291c/D
 MTPvV4fuHxvnFAX+Oig=
 =DiJS
 -----END PGP SIGNATURE-----

Merge tag '0.13.2'

notmuch 0.13.2 release
2012-06-03 11:38:08 -03:00
Austin Clements
c92e2bcd1c notmuch-deliver: Update to new notmuch_database_open API
Commit 5fddc07 changed this API, but missed this use of it.
2012-06-01 11:31:26 -03:00
Stefano Zacchiroli
981a87f735 notmuch-mutt: lookup notmuch-search-terms(7) when asked for help
When asked for interactive help, lookup notmuch-search-terms(7)
instead of notmuch(1). Syntax of notmuch queries used to be described
in the latter, but has recently been moved to the former.

Closes: #675073 (in the Debian BTS)
2012-05-29 18:18:07 -03:00
Justus Winter
37e293eb5f Use notmuch_database_destroy instead of notmuch_database_close
Adapt notmuch-deliver to the notmuch_database_close split.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2012-04-28 09:29:12 -03:00
Stefano Zacchiroli
f162b19148 notmuch-mutt: fix typo in manpage 2012-03-31 11:33:45 -03:00
Stefano Zacchiroli
d13810dc1e contrib: new mutt-notmuch utility for Mutt integration 2012-03-30 18:12:49 -03:00
David Bremner
e5564188e0 contrib/.gitattributes: remove
Now that licensing of notmuch-deliver has been harmonized with
notmuch, there is no reason not to export it.
2011-12-06 11:20:57 -04:00
Ali Polatel
be2263e930 notmuch-deliver: GPL-3+ 2011-12-06 17:06:30 +02:00
Ali Polatel
6201491233 notmuch-deliver: Import from maildrop-2.5.5
maildrop-2.5.5 is GPL-3.
No change in functionality, just a precaution before relicensing.
2011-12-06 16:41:33 +02:00
David Bremner
502a3ad729 contrib/notmuch-deliver: don't export from git
This prevents it from being part of the release tarballs. Hopefully
this is only temporary while we sort out the GPL2 versus GPL3
question.
2011-11-23 07:25:24 -04:00
David Bremner
ebd1adc55b contrib/nmbug: new script for sharing tags with a given prefix.
The main idea is consider the notmuch database as analogous to the
work-tree. A bare git repo is maintained in the users home directory,
with a tree of the form tags/$message-id/$tag

Like notmuch and git, we have a set of subcommnds, mainly modelled on
git.

Implementation wise, the heavy lifting is in the following functions.

   commit	xapian -> git
   checkout	git -> xapian
   merge	fetched git + git -> xapian
   status	find differences between xapian, git, and remote git.

The central implementation trick, from an idea I think due to
tomprince on IRC is manipulate the git index directly from the xapian
tag information.  The merge routine is still done using a temporary
checkout as I wasn't able to get it working with the index only.

There are also some convenience wrappers around git commands, like "fetch"
that essential just set GIT_DIR in the environment.

In order to encode tags (viewed as octet sequences) into filenames,
we whitelist a smallish set of characters and %hex escape anything outside.

The prefix is omitted in git, which lets one save and restore to
different prefixes (although this is only lightly tested).

Thanks to Tomi Ollila for a huge amount of feedback and patches while
putting this together.
2011-11-12 21:24:25 -04:00
Ali Polatel
5a446f4765 notmuch-deliver: update gitignore 2011-11-05 01:12:35 +02:00
Thomas Schwinge
c39fd2a479 notmuch-deliver: Don't read errno inappropriately.
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05 01:12:35 +02:00
Thomas Schwinge
8935c83c56 notmuch-deliver: Won't deliver to more than one folder.
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05 01:12:35 +02:00
Thomas Schwinge
47ddec5034 notmuch-deliver: Advance imported files to maildrop-2.5.2 release. 2011-11-05 01:12:35 +02:00
Thomas Schwinge
f0c3f7a995 notmuch-deliver: Import said files from maildrop-2.2.0 release.
We won't use all of the included build infrastructure files, but adding them
nevertheless helps to track changes that are applied to them upstream.

Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05 01:12:35 +02:00
Thomas Schwinge
38b245b46a Move files copied from maildrop to a separate hierarchy.
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05 01:12:35 +02:00
Thomas Schwinge
5f53ce3e2b Make it build in a separate build directory.
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05 01:12:35 +02:00
Ali Polatel
01478051aa notmuch-deliver: Add mailmap 2011-11-05 01:12:35 +02:00
alip
5a74347025 notmuch-deliver: Fix utter failure 2011-11-05 01:12:35 +02:00
Ali Polatel
73258fec79 notmuch-deliver: Use splice() if it's available
NOTMUCH_DELIVER_NO_SPLICE environment variable may be set to fallback to
the read/write method.
2011-11-05 01:12:35 +02:00
Ali Polatel
c145323120 notmuch-deliver: Add --enable-{gprof,gcov} options to configure 2011-11-05 01:12:35 +02:00
Ali Polatel
649db5eab6 More debug messages 2011-11-05 01:12:35 +02:00
Ali Polatel
d478384dfb notmuch-deliver: Fix typos in option context description 2011-11-05 01:12:35 +02:00
Ali Polatel
50d5caacc9 notmuch-deliver: Fix copy/paste fail 2011-11-05 01:12:34 +02:00
Ali Polatel
af863f8c7f notmuch-deliver: Initial import 2011-11-05 01:12:34 +02:00
Carl Worth
e1a84ab173 Rename the "contrib" directory to "completion".
The original "contrib" name is lousy. Everything in notmuch has been
contributed, and we are integrating as much of it as possible, (rather
than making users grub through contrib looking for useful pieces to
install).

Meanwhile, the only things we have in contrib are command-line
completion scripts, so "completion" makes more sense as a name, (and
helps make "./configure" slightly less ambiguous).
2010-04-06 14:36:31 -07:00
Alexander Botero-Lowry
5d0a01dceb Checkin some command-only tcsh completions
Modified-by Carl Worth <cworth@cworth.org>: Just moved the file down
into contrib where the other completion scripts are.
2009-11-20 18:15:19 +01:00
Ingmar Vanhassel
14807ed2de bash-completion: Move to contrib
Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
2009-11-20 18:05:51 +01:00
Ingmar Vanhassel
8923ea0755 zsh-completion: Initial zsh-completion for notmuch
Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
2009-11-20 18:05:48 +01:00