[notmuch] [PATCH] test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

2010-02-20 Thread Johannes Schindelin
Hi,

On Sat, 20 Feb 2010, Carl Worth wrote:

> This file has had no explicit license information noted in it, but
> has clearly been created and modified according to the terms of GPLv2
> as with the rest of the git code base.
> 
> The purpose of relicensing is to allow other GPLv3+ projects (in
> particular, the notmuch project: http://notmuchmail.org) to use this
> same test-suite structure (and to contribute changes back as well).
> 
> The request for relicensing was presented to the git community in:
> 
>   Message-ID: <871vgmki4f.fsf at steelpick.localdomain>
> 
> and explicitly agreed to by Junio C Hamano, Sverre Rabbelier, Johannes
> Schindelin, Pierre Habouzit, and Johannes Sixt.

As promised:

Acked-by: Johannes Schindelin 

Ciao,
Dscho


[notmuch] tach.el: An interface for handling attachments in message-mode

2010-02-20 Thread Jesse Rosenthal
Dear all,

Sending email in emacs message-mode is great, but the handling of
(outgoing) attachments leaves a lot to be desired. MML's markup can be
confusing, and can easily be edited by mistake.

Thus: tach.el. Tach is a minor mode that adds mutt-like attachment
handling to message mode. It's not notmuch specific, but I wrote it to
use with notmuch, and I thought it might be of use to some on the
list. 

You can get tach by typing:

git clone http://jkr.acm.jhu.edu/git/tach.git

Also, because the server has been a bit spotty recently, I've put the
current version of the file at the end of this message.

To use tach, put tach.el in your load-path, and add the following to
your .emacs:

(require 'tach)
(add-hook 'message-mode-hook 'tach-minor-mode)

Now when you type "C-c C-a" in message-mode, you should get a new window
with an attachment list. In that window, you can add and delete
attachments using `+' and `-', and scroll through them using the arrow
keys or the emacs direction commands.

tach.el will convert the attachments into MML markup as a last
step before sending. Hopefully you should never have to deal with it by
hand.

Some details: tach actually makes a numerical list at the bottom of the
message itself, separated by a custom separator. The message is narrowed
to above this separator, and the attachment window is an indirect buffer
narrowed to the region below the separator. The separator is erased when
the messages are translated to mml markup at the end.

This is still a work in its earliest stages, and the usual disclaimers
apply. It certainly needs more a lot more commenting and
documentation. But I thought it might be useful, or at least fun to play
around with, and I'd love to hear any feedback. As I said, it's not
notmuch-specific, so I'm not sending it as a patch, but if people like
it, we might also consider making it part of the notmuch emacs bundle,
at some point in its future development.

Best,
Jesse

---FILE--BELOW--
;; tach.el -- Interface for handling attachments in message-mode

;; Filename: tach.el
;; Copyright (C) 2010 Jesse Rosenthal
;; Author: Jesse Rosenthal 
;; Maintainer: Jesse Rosenthal 
;; Created: 18 Feb 2010
;; Description: Handles attachments for message mode
;; Version 0.01alpha

;; This file is not part of GNU Emacs.

;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
;; by the Free Software Foundation; either version 2, or (at your
;; option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.

;;; Commentary:

;; To use: add the following to your .emacs: 
;;   (require 'tach)
;;   (add-hook 'message-mode-hook 'tach-minor-mode)
;;
;; Pressing `C-cC-a' in message mode will open up an attachment
;; window. The first time you open it, it will prompt for a file name.
;;
;; In the attachment window, you can press `+' to add a file, or `-'
;; to remove one.
;;
;; Note that the attachment window is actually a different view of the
;; message buffer, so that if there is some failure, the attachment
;; list will be saved at the bottom of the message, as a numerical
;; list under a customizable separator.
;;
;; The files will be added to the outgoing message by mml before it is
;; sent.


(require 'message)
(require 'mml)

(defconst tach-sep  "--attachments follow this line--")

(defconst tach-line-regexp "^\\([0-9]+.\\) +\\(.+?\\) +\\(\\[.+, 
[0-9\.]+[KM]\\]\\)$")

(defvar tach-send-confirmation nil)

(defvar tach-buffer-name)
(make-variable-buffer-local 'tach-buffer-name)

(defvar tach-mode-hooks 'nil)
(make-variable-buffer-local 'tach-mode-hooks)

(defvar tach-mode-map
  (let ((map (make-sparse-keymap)))
(define-key map "+" 'tach-add-file)
(define-key map "-" 'tach-delete-file)
(define-key map "\C-c\C-c" 'tach-send-from-attach-buffer)
(define-key map [up] 'tach-prev-entry)
(define-key map [down] 'tach-next-entry)
(define-key map "n" 'tach-next-entry)
(define-key map "p" 'tach-prev-entry)
(define-key map "\C-n" 'tach-next-entry)
(define-key map "\C-p" 'tach-prev-entry)
map)
  "Keymap for attachment mode")
(fset 'tach-mode-map tach-mode-map)

(defvar tach-minor-mode-map
  (let ((map (make-sparse-keymap)))
(define-key map "\C-c\C-a"  'tach-goto)
map)
  "Keymap for attachment minor mode")
(fset 'tach-minor-mode-map tach-minor-mode-map)

(defun tach-mode ()
  (interactive)
  (kill-all-local-variables)
  (use-local-map 'tach-mode-map)
  (hl-line-mode 1)
  (setq major-mode 

[notmuch] patch queue

2010-02-20 Thread Jameson Rollins
Hey, Carl.  I've noticed that you've been applying some patches that
were recently sent to the list, out of order from the chronological
queue of patches that were sent to the list.  I'm a fan of the recently
applied patches, but I'm curious about what your plans are for the older
patches in the quene.  Are you still planning on processing them?
Should the older patches be rebased against the current master and
resent?

I'm not at all trying to be pushy; there's just some older stuff in the
queue that I would really like to see applied, such as folder-based
tagging, json output, and some of the emacs UI improvements.

Thanks so much for the info.

jamie.
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20100220/b6fdc0c4/attachment.pgp>


[notmuch] [PATCH] test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

2010-02-20 Thread Junio C Hamano
Carl Worth  writes:

> This file has had no explicit license information noted in it, but
> has clearly been created and modified according to the terms of GPLv2
> as with the rest of the git code base.
>
> The purpose of relicensing is to allow other GPLv3+ projects (in
> particular, the notmuch project: http://notmuchmail.org) to use this
> same test-suite structure (and to contribute changes back as well).

Please drop the parentheses around the last phrase (but not the last
phrase itself).

> The request for relicensing was presented to the git community in:
>
>   Message-ID: <871vgmki4f.fsf at steelpick.localdomain>


Message-ID alone is not a good way to help people locate the request.
Please at least mention what mailing list the message was sent to; better
yet, do so like this:

  http://thread.gmane.org/gmane.mail.notmuch.general/1389/focus=140156

so that people can see the consent from the primary author (that is where
the focus is), the original request (that can be seen by looking at its
immediate parent), and messages with consent from other contributors, all
in one place.

> and explicitly agreed to by Junio C Hamano, Sverre Rabbelier, Johannes
> Schindelin, Pierre Habouzit, and Johannes Sixt.
> ---

And a sign-off ;-).

Thanks.


[notmuch] vim client

2010-02-20 Thread Ben Gamari
Excerpts from Arian Kuschki's message of Fri Feb 19 11:49:25 -0500 2010:
> Hi all
> thank you for notmuch, it is a great project. I have been watching 
> progress for a while but then I could no longer restrain myself and 
> started using notmuch's vim client even though it is still a bit rough 
> around the edges. Unfortunately there are some quirks that 
> prevent me from switching over completely. 
> questions:
> 
> 1. will there be a usable  ncurses or mutt version that supports notmuch 
> anytime soon?

Not that I know of. I've thought of starting something before. I really
want to start using notmuch full-time myself, but I agree, the vim
client is far from usable.

> 2. is anybody working on the vim client? I have a small patch and might 
> have couple more as time passes. Is this mailing list the right place to 
> discuss this? From what I can gather the discussion seems to be centred 
> mainly on the emacs client.

I don't believe there is anyone working actively on the vim frontend at
the moment. I looked at it not so long ago and the code is pretty good.
The real problem is all notmuch calls are synchronous. Vim unfortunately
lacks the excellent asynchronous subprocess interface that emacs has.
Therefore, I'm afraid the vim client is going to be just as unuable
until someone has implemented asynchronous subprocess support.

I have a tree starting this sitting around somewhere, but it still has a
ways to go and I won't have time to finish until midterms are over at
the earliest. If someone else wants to take a stab at it, the code is
available git://goldnerlab.physics.umass.edu/vim7.git (the async-process
branch). I'd love to know if anyone makes any progress and I'll keep you
all in the loop if I find any time to invest in it.

I have considered starting work on an ncurses frontend, but I think
ultimately that time would be better used in working on the async vim
code. Vim gives us a whole lot of functionality for free that would take
time to get working on a new ncurses client (e.g. windowing) and I would
far prefer to use notmuch from within vim than from another specialized
application.

Cheers,

- Ben


[notmuch] [PATCH 2/2] notmuch.el: add a submap (on "z" for "ztash") to stash things.

2010-02-20 Thread Carl Worth
On Thu, 11 Feb 2010 23:01:08 -0400, david at tethera.net wrote:
> From: David Bremner 
> 
> Provide key bindings for stuffing various RFC822 header fields and other 
> metadata
> into the emacs kill-ring as text. The bindings are as follows:

A fantastic feature, David! Thanks so much!

I've now applied this, (and pushed it out). As we discussed in IRC, I
also changed the keybinding from 'z' to 'c'.

So, for everyone who didn't pick up on this feature, you can now use the
keybinding 'c i' to copy a message ID when viewing a message within
emacs. Then, if using X, you can immediately use the middle-mouse button
(or similar) to paste that message into an application of choice. It's
very convenient.

There are also similar keybindings for copying out other portions of the
message header. Enjoy!

-Carl
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20100220/7a4079ad/attachment.pgp>


[notmuch] [PATCH v2] Add functions notmuch-show-get-(bcc, cc, date, from, subject, to).

2010-02-20 Thread Carl Worth
On Thu, 11 Feb 2010 22:44:10 -0400, david at tethera.net wrote:
> Return the corresponding header field for the current message as a
> string.  These are thin wrappers around notmuch-show-get-header, which
> means they each cause a full parse of the RFC822 header. The main idea
> is to fix an api.

OK. You at least acknowledge the only misgiving I had about this
patch. (And frankly, my own emacs lisp code probably has much worse
performance bugs.) So I'm not going to worry about that for now.

> Sorry, resending with fixed commit message.

Much appreciated.

> +(defun notmuch-show-get-bcc ()
> +  "Return To address of current message"
> +  (notmuch-show-get-header-field 'bcc))
> +
> +(defun notmuch-show-get-cc ()
> +  "Return To address of current message"
> +  (notmuch-show-get-header-field 'cc))
> +
> +(defun notmuch-show-get-date ()
> +  "Return To address of current message"
> +  (notmuch-show-get-header-field 'date))

I fixed the obviously copied documentation strings above, deleted the
trailing whitespace, and applied this patch.

Thanks!

-Carl
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20100220/2669515d/attachment.pgp>


[notmuch] [PATCH 1/2] notmuch-show-get-header: new function; return alist of parsed header fields.

2010-02-20 Thread Carl Worth
On Thu, 11 Feb 2010 22:34:31 -0400, david at tethera.net wrote:
> From: David Bremner 
> 
> This function parses the displayed message to recover header
> fields. It uses mailheader.el to do the actual header parsing, after
> preprocessing to remove indentation.  It relies on the variables
> notmuch-show-message-begin-regexp, notmuch-show-header-begin-regexp,
> and notmuch-show-message-end-regexp.

Thanks, David.

I've applied this now, (amended to not add any trailing whitespace).

-Carl
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20100220/fd8d9a21/attachment.pgp>


[notmuch] [PATCH] test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

2010-02-20 Thread Carl Worth
This file has had no explicit license information noted in it, but
has clearly been created and modified according to the terms of GPLv2
as with the rest of the git code base.

The purpose of relicensing is to allow other GPLv3+ projects (in
particular, the notmuch project: http://notmuchmail.org) to use this
same test-suite structure (and to contribute changes back as well).

The request for relicensing was presented to the git community in:

Message-ID: <871vgmki4f.fsf at steelpick.localdomain>

and explicitly agreed to by Junio C Hamano, Sverre Rabbelier, Johannes
Schindelin, Pierre Habouzit, and Johannes Sixt.
---

On Fri, 19 Feb 2010 22:04:37 +0100 (CET), Johannes Schindelin 
 wrote:
> On Fri, 19 Feb 2010, Carl Worth wrote:
>
> > I think the most clear step forward would be for test-lib.sh to be
> > updated in the git repository with an explicit licensing blurb
> > reflecting this agreement.
> 
> Sure. If you make an appropriate patch, I'll ACK it.

Thanks Johannes,

Hopefully this does the trick. Otherwise, please let me know.

-Carl

 t/test-lib.sh |   12 
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index afd3053..004470f 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -2,6 +2,18 @@
 #
 # Copyright (c) 2005 Junio C Hamano
 #
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see http://www.gnu.org/licenses/ .

 # if --tee was passed, write the output not only to the terminal, but
 # additionally to the file test-results/$BASENAME.out, too.
-- 
1.6.5.7

-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20100220/0813aa2e/attachment.pgp>


[PATCH] test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

2010-02-20 Thread Carl Worth
This file has had no explicit license information noted in it, but
has clearly been created and modified according to the terms of GPLv2
as with the rest of the git code base.

The purpose of relicensing is to allow other GPLv3+ projects (in
particular, the notmuch project: http://notmuchmail.org) to use this
same test-suite structure and to contribute changes back as well.

The relicensing was agreed to by Junio C Hamano here:

http://thread.gmane.org/gmane.mail.notmuch.general/1389/focus=140156

and in follow-up messages by Sverre Rabbelier, Johannes Schindelin,
Pierre Habouzit, and Johannes Sixt.

Signed-off-by: Carl Worth 
Acked-by: Johannes Schindelin 
---

> Message-ID alone is not a good way to help people locate the request.
> Please at least mention what mailing list the message was sent to; better
> yet, do so like this:

Done as requested.

But while we're on the subject, let me at least make a case for
communication by way of Message-ID. The URL above is good for as long as
gmane continues to live, but that may not be as long as the git project
(and its mailing-list archives) are interesting.

Meanwhile, a message ID lives forever and can be used in multiple
contexts. For example, gmane does already support message-ID-based URLs:

http://mid.gmane.org/7vaav3bnr5.fsf at alter.siamese.dyndns.org

That interface happens to only display the single message, (requiring
clicking on the subject to see the thread), but one can imagine gmane
getting a similar interface to display the thread directly from the
message ID.

Meanwhile, people using systems like notmuch can also use the message ID
directly to view the thread, with something like:

notmuch show id:7vaav3bnr5.fsf at alter.siamese.dyndns.org

So I'm very much in favor of using message IDs more regularly, (and just
expecting that users and their tools will be more accepting of them).

But for now, you've hopefully got your commit message the way you want
it. :-)

 t/test-lib.sh |   12 
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index afd3053..004470f 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -2,6 +2,18 @@
 #
 # Copyright (c) 2005 Junio C Hamano
 #
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see http://www.gnu.org/licenses/ .

 # if --tee was passed, write the output not only to the terminal, but
 # additionally to the file test-results/$BASENAME.out, too.
-- 
1.6.5.7

-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 



[notmuch] Quick thoughts on a notmuch daemon

2010-02-20 Thread Ruben Pollan
I started to code something base on your idea of a notmuch daemon. You can find
it on:
git://gitorious.org/notsomuch/notmuch.git
On the server branch.

The idea is to use unix named sockets to intercomunicate between the daemon and 
the
client. And threads on the server to handle every request. The implementation 
is 
no great, it's a fast hack. It can only handle one request per connection and 
breaks 
some times on concurrent request. But I hope helps to see the idea.

I implemented both, daemon and client in the same binary. So you can still run
as before:
$ notmuch search inbox
If the daemon is already running (so the socket is in 
MAILDIR_PATH/.notmuch/socket) 
it will connect to it and ask for the search. If is not running will fork
creating it and send it the search.

Up to now the comunication between daemon and client is with the same syntax of
notmuch. But I think will be a nice idea to use JSON (or some other
computer-friendly syntax) and convert it to human readable on the client.

What do you think about that approach? Will it fit on what you imagined or is it
to far?

I'm not sure if that is adding to much complexity to notmuch or is a good idea.

-- 
Rub?n Poll?n  | jabber:meskio at jabber.org
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Nos vamos a Croatan.
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20100220/3f2ce28c/attachment.pgp>


Re: [notmuch] vim client

2010-02-20 Thread Ben Gamari
Excerpts from Arian Kuschki's message of Fri Feb 19 11:49:25 -0500 2010:
 Hi all
 thank you for notmuch, it is a great project. I have been watching 
 progress for a while but then I could no longer restrain myself and 
 started using notmuch's vim client even though it is still a bit rough 
 around the edges. Unfortunately there are some quirks that 
 prevent me from switching over completely. 
 questions:
 
 1. will there be a usable  ncurses or mutt version that supports notmuch 
 anytime soon?

Not that I know of. I've thought of starting something before. I really
want to start using notmuch full-time myself, but I agree, the vim
client is far from usable.

 2. is anybody working on the vim client? I have a small patch and might 
 have couple more as time passes. Is this mailing list the right place to 
 discuss this? From what I can gather the discussion seems to be centred 
 mainly on the emacs client.

I don't believe there is anyone working actively on the vim frontend at
the moment. I looked at it not so long ago and the code is pretty good.
The real problem is all notmuch calls are synchronous. Vim unfortunately
lacks the excellent asynchronous subprocess interface that emacs has.
Therefore, I'm afraid the vim client is going to be just as unuable
until someone has implemented asynchronous subprocess support.

I have a tree starting this sitting around somewhere, but it still has a
ways to go and I won't have time to finish until midterms are over at
the earliest. If someone else wants to take a stab at it, the code is
available git://goldnerlab.physics.umass.edu/vim7.git (the async-process
branch). I'd love to know if anyone makes any progress and I'll keep you
all in the loop if I find any time to invest in it.

I have considered starting work on an ncurses frontend, but I think
ultimately that time would be better used in working on the async vim
code. Vim gives us a whole lot of functionality for free that would take
time to get working on a new ncurses client (e.g. windowing) and I would
far prefer to use notmuch from within vim than from another specialized
application.

Cheers,

- Ben
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[notmuch] [PATCH] test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

2010-02-20 Thread Carl Worth
This file has had no explicit license information noted in it, but
has clearly been created and modified according to the terms of GPLv2
as with the rest of the git code base.

The purpose of relicensing is to allow other GPLv3+ projects (in
particular, the notmuch project: http://notmuchmail.org) to use this
same test-suite structure (and to contribute changes back as well).

The request for relicensing was presented to the git community in:

Message-ID: 871vgmki4f@steelpick.localdomain

and explicitly agreed to by Junio C Hamano, Sverre Rabbelier, Johannes
Schindelin, Pierre Habouzit, and Johannes Sixt.
---

On Fri, 19 Feb 2010 22:04:37 +0100 (CET), Johannes Schindelin 
johannes.schinde...@gmx.de wrote:
 On Fri, 19 Feb 2010, Carl Worth wrote:

  I think the most clear step forward would be for test-lib.sh to be
  updated in the git repository with an explicit licensing blurb
  reflecting this agreement.
 
 Sure. If you make an appropriate patch, I'll ACK it.

Thanks Johannes,

Hopefully this does the trick. Otherwise, please let me know.

-Carl

 t/test-lib.sh |   12 
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index afd3053..004470f 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -2,6 +2,18 @@
 #
 # Copyright (c) 2005 Junio C Hamano
 #
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see http://www.gnu.org/licenses/ .
 
 # if --tee was passed, write the output not only to the terminal, but
 # additionally to the file test-results/$BASENAME.out, too.
-- 
1.6.5.7



pgpATSqzudnp1.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [notmuch] [PATCH 1/2] notmuch-show-get-header: new function; return alist of parsed header fields.

2010-02-20 Thread Carl Worth
On Thu, 11 Feb 2010 22:34:31 -0400, da...@tethera.net wrote:
 From: David Bremner brem...@unb.ca
 
 This function parses the displayed message to recover header
 fields. It uses mailheader.el to do the actual header parsing, after
 preprocessing to remove indentation.  It relies on the variables
 notmuch-show-message-begin-regexp, notmuch-show-header-begin-regexp,
 and notmuch-show-message-end-regexp.

Thanks, David.

I've applied this now, (amended to not add any trailing whitespace).

-Carl


pgpq791uNZFmj.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [notmuch] [PATCH v2] Add functions notmuch-show-get-(bcc, cc, date, from, subject, to).

2010-02-20 Thread Carl Worth
On Thu, 11 Feb 2010 22:44:10 -0400, da...@tethera.net wrote:
 Return the corresponding header field for the current message as a
 string.  These are thin wrappers around notmuch-show-get-header, which
 means they each cause a full parse of the RFC822 header. The main idea
 is to fix an api.

OK. You at least acknowledge the only misgiving I had about this
patch. (And frankly, my own emacs lisp code probably has much worse
performance bugs.) So I'm not going to worry about that for now.

 Sorry, resending with fixed commit message.

Much appreciated.

 +(defun notmuch-show-get-bcc ()
 +  Return To address of current message
 +  (notmuch-show-get-header-field 'bcc))
 +
 +(defun notmuch-show-get-cc ()
 +  Return To address of current message
 +  (notmuch-show-get-header-field 'cc))
 +
 +(defun notmuch-show-get-date ()
 +  Return To address of current message
 +  (notmuch-show-get-header-field 'date))

I fixed the obviously copied documentation strings above, deleted the
trailing whitespace, and applied this patch.

Thanks!

-Carl


pgpl4Gm0rHjz6.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [notmuch] [PATCH 2/2] notmuch.el: add a submap (on z for ztash) to stash things.

2010-02-20 Thread Carl Worth
On Thu, 11 Feb 2010 23:01:08 -0400, da...@tethera.net wrote:
 From: David Bremner brem...@unb.ca
 
 Provide key bindings for stuffing various RFC822 header fields and other 
 metadata
 into the emacs kill-ring as text. The bindings are as follows:

A fantastic feature, David! Thanks so much!

I've now applied this, (and pushed it out). As we discussed in IRC, I
also changed the keybinding from 'z' to 'c'.

So, for everyone who didn't pick up on this feature, you can now use the
keybinding 'c i' to copy a message ID when viewing a message within
emacs. Then, if using X, you can immediately use the middle-mouse button
(or similar) to paste that message into an application of choice. It's
very convenient.

There are also similar keybindings for copying out other portions of the
message header. Enjoy!

-Carl


pgp4J8RrcDsy3.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[notmuch] patch queue

2010-02-20 Thread Jameson Rollins
Hey, Carl.  I've noticed that you've been applying some patches that
were recently sent to the list, out of order from the chronological
queue of patches that were sent to the list.  I'm a fan of the recently
applied patches, but I'm curious about what your plans are for the older
patches in the quene.  Are you still planning on processing them?
Should the older patches be rebased against the current master and
resent?

I'm not at all trying to be pushy; there's just some older stuff in the
queue that I would really like to see applied, such as folder-based
tagging, json output, and some of the emacs UI improvements.

Thanks so much for the info.

jamie.


pgpfUmILoPf7B.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[notmuch] tach.el: An interface for handling attachments in message-mode

2010-02-20 Thread Jesse Rosenthal
Dear all,

Sending email in emacs message-mode is great, but the handling of
(outgoing) attachments leaves a lot to be desired. MML's markup can be
confusing, and can easily be edited by mistake.

Thus: tach.el. Tach is a minor mode that adds mutt-like attachment
handling to message mode. It's not notmuch specific, but I wrote it to
use with notmuch, and I thought it might be of use to some on the
list. 

You can get tach by typing:

git clone http://jkr.acm.jhu.edu/git/tach.git

Also, because the server has been a bit spotty recently, I've put the
current version of the file at the end of this message.

To use tach, put tach.el in your load-path, and add the following to
your .emacs:

(require 'tach)
(add-hook 'message-mode-hook 'tach-minor-mode)

Now when you type C-c C-a in message-mode, you should get a new window
with an attachment list. In that window, you can add and delete
attachments using `+' and `-', and scroll through them using the arrow
keys or the emacs direction commands.

tach.el will convert the attachments into MML markup as a last
step before sending. Hopefully you should never have to deal with it by
hand.

Some details: tach actually makes a numerical list at the bottom of the
message itself, separated by a custom separator. The message is narrowed
to above this separator, and the attachment window is an indirect buffer
narrowed to the region below the separator. The separator is erased when
the messages are translated to mml markup at the end.

This is still a work in its earliest stages, and the usual disclaimers
apply. It certainly needs more a lot more commenting and
documentation. But I thought it might be useful, or at least fun to play
around with, and I'd love to hear any feedback. As I said, it's not
notmuch-specific, so I'm not sending it as a patch, but if people like
it, we might also consider making it part of the notmuch emacs bundle,
at some point in its future development.

Best,
Jesse

---FILE--BELOW--
;; tach.el -- Interface for handling attachments in message-mode

;; Filename: tach.el
;; Copyright (C) 2010 Jesse Rosenthal
;; Author: Jesse Rosenthal jrosent...@jhu.edu
;; Maintainer: Jesse Rosenthal jrosent...@jhu.edu
;; Created: 18 Feb 2010
;; Description: Handles attachments for message mode
;; Version 0.01alpha

;; This file is not part of GNU Emacs.

;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
;; by the Free Software Foundation; either version 2, or (at your
;; option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.

;;; Commentary:

;; To use: add the following to your .emacs: 
;;   (require 'tach)
;;   (add-hook 'message-mode-hook 'tach-minor-mode)
;;
;; Pressing `C-cC-a' in message mode will open up an attachment
;; window. The first time you open it, it will prompt for a file name.
;;
;; In the attachment window, you can press `+' to add a file, or `-'
;; to remove one.
;;
;; Note that the attachment window is actually a different view of the
;; message buffer, so that if there is some failure, the attachment
;; list will be saved at the bottom of the message, as a numerical
;; list under a customizable separator.
;;
;; The files will be added to the outgoing message by mml before it is
;; sent.


(require 'message)
(require 'mml)

(defconst tach-sep  --attachments follow this line--)

(defconst tach-line-regexp ^\\([0-9]+.\\) +\\(.+?\\) +\\(\\[.+, 
[0-9\.]+[KM]\\]\\)$)

(defvar tach-send-confirmation nil)

(defvar tach-buffer-name)
(make-variable-buffer-local 'tach-buffer-name)

(defvar tach-mode-hooks 'nil)
(make-variable-buffer-local 'tach-mode-hooks)

(defvar tach-mode-map
  (let ((map (make-sparse-keymap)))
(define-key map + 'tach-add-file)
(define-key map - 'tach-delete-file)
(define-key map \C-c\C-c 'tach-send-from-attach-buffer)
(define-key map [up] 'tach-prev-entry)
(define-key map [down] 'tach-next-entry)
(define-key map n 'tach-next-entry)
(define-key map p 'tach-prev-entry)
(define-key map \C-n 'tach-next-entry)
(define-key map \C-p 'tach-prev-entry)
map)
  Keymap for attachment mode)
(fset 'tach-mode-map tach-mode-map)

(defvar tach-minor-mode-map
  (let ((map (make-sparse-keymap)))
(define-key map \C-c\C-a  'tach-goto)
map)
  Keymap for attachment minor mode)
(fset 'tach-minor-mode-map tach-minor-mode-map)

(defun tach-mode ()
  (interactive)
  (kill-all-local-variables)
  (use-local-map 'tach-mode-map)
  (hl-line-mode 1)
  (setq 

[notmuch] notmuch for mutt (was: vim client)

2010-02-20 Thread martin f krafft
also sprach Ruben Pollan mes...@sindominio.net [2010.02.19.2112 +0100]:
  1. will there be a usable  ncurses or mutt version that supports
  notmuch anytime soon?
 
 I started to work on that I while ago. I didn't hack on it for
 a while, but I hope I'll return to it soon. Anyway to create
 a proper good client is a lot of work, I don't think I'll be able
 to make something usable in months (if I ever make it).

How would mutt support notmuch? Could you elaborate on the way you
plan to integrate them?

-- 
martin | http://madduck.net/ | http://two.sentenc.es/
 
it is easier to be a lover than a husband for the simple reason
 that it is more difficult to be witty every day
 than to say pretty things from time to time.
   -- honoré de balzac
 
spamtraps: madduck.bo...@madduck.net


digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch