Re: [PATCH] Add configurable changed tag to messages that have been changed on disk

2014-07-03 Thread David Bremner
Gaute Hope e...@gaute.vetsj.com writes:

 When one of the source files for a message is changed on disk, renamed,
 deleted or a new source file is added. A configurable changed tag is
 is added. The tag can be configured under the option 'changed_tags' in
 the [new] section, the default is none. Tests have been updated to
 accept the new config option.

 notmuch-setup now asks for a changed tag after the new tags question.

 This could be useful for for example 'afew' to detect remote changes in
 IMAP folders and update the FolderNameFilter to also add tags or remove
 tags when a _existing_ message has been added to or removed from a
 maildir.

The discussion on this proposal seems to have died out without reaching
a conclusion. David M expressed a strong preference for some kind of
modification time field in the database.  Gaute agreed with some caveats
that such an approach could solve his problems as well. On the other
hand, nobody seems to be actually working on such an approach at the
moment.  Gaute and or David do you have any interest in revisiting the
series id:1323796305-28789-1-git-send-email-schno...@schnouki.net and
seeing if it can be reworked into mergeable shape? I suspect in
particular something needs to be added with respect to message deletion
Thomas, are you still running some variant of these patches?

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


Re: [PATCH] emacs: add missing paren to fix defun in notmuch-address.el.

2014-07-03 Thread Sebastian Lipp
Tomi Ollila tomi.oll...@iki.fi writes:
 On Tue, Apr 09 2013, David Bremner wrote:
 There seems to be a few warnings:

 In notmuch-bbdb/snarf-from:
 notmuch-address.el:116:26:Warning: reference to free variable
 `bbdb-get-addresses-headers'

 In notmuch-bbdb/snarf-to:
 notmuch-address.el:122:29:Warning: reference to free variable
 `bbdb-get-addresses-headers'

 In end of data:
 notmuch-address.el:143:1:Warning: the following functions are not known to be
 defined: bbdb-get-addresses, bbdb-update-records, notmuch-show-get-header

 Do we need a few defvars?

 For the above set, something like:

 (defvar bbdb-get-addresses-headers)

 (declare-function notmuch-show-get-header notmuch-show (header optional 
 props))

 (declare-function bbdb-get-addresses bbdb-com 
   (only-first-address
uninteresting-senders
get-header-content-function
rest get-header-content-function-args))

 (declare-function bbdb-update-records bbdb-com (addrs auto-create-p 
 offer-to-create))

As I'd like to see this in notmuch I made the change. The patch is
attached. As it is my first contribution to notmuch at all: Just tell me
if I'm supposed to do it in any other way.

LG
basti

From 522e4294258e6392a02c923b4b7e78a898986fca Mon Sep 17 00:00:00 2001
From: Daniel Bergey ber...@alum.mit.edu
Date: Mon, 8 Apr 2013 19:55:04 -0500
Subject: [PATCH] emacs: functions to import sender or recipient into BBDB [v3]

From a show buffer, notmuch-bbdb/snarf-from imports the sender into
bbdb.  notmuch-bbdb/snarf-to imports all recipients.  Newly imported
contacts are reported in the minibuffer / Messages buffer.

Both functions use the BBDB parser to recognize email address formats.

[v3] Fixes a few warnings as suggested by Tomi Ollila in
 id:87vc7vgbym.fsf@zancas.localnet
[v2] Fixes missing close parenthesis in original.
 Spotted by Karl Fogel kfo...@red-bean.com.
---
 emacs/notmuch-address.el | 53 
 1 file changed, 53 insertions(+)

diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el
index fa65cd5..ee7b169 100644
--- a/emacs/notmuch-address.el
+++ b/emacs/notmuch-address.el
@@ -113,6 +113,59 @@ to know how address selection is made by default.
 (when (notmuch-address-locate-command notmuch-address-command)
   (notmuch-address-message-insinuate))
 
+;; functions to add sender / recipients to BBDB
+
+(defvar bbdb-get-addresses-headers)
+
+(declare-function notmuch-show-get-header notmuch-show (header optional props))
+
+(declare-function bbdb-get-addresses bbdb-com 
+  (only-first-address
+   uninteresting-senders
+   get-header-content-function
+   rest get-header-content-function-args))
+
+(declare-function bbdb-update-records bbdb-com (addrs auto-create-p offer-to-create))
+
+(defun notmuch-bbdb/snarf-headers (headers)
+  ;; Helper function to avoid code duplication in the two below
+  ;; headers should have the same format as bbdb-get-addresses-headers
+
+  ;; bbdb-get-addresses reads these
+  ;; Ugh, pass-by-global
+  (let ((addrs (bbdb-get-addresses nil nil 'notmuch-bbdb/get-header-content))
+	(bbdb-get-addresses-headers headers) ; headers to read
+	(bbdb-gag-messages t)) ; suppress m/n processed message)
+(bbdb-update-records addrs t t)))
+
+(defun notmuch-bbdb/snarf-from ()
+  Import the sender of the current message into BBDB
+  (interactive)
+  (notmuch-bbdb/snarf-headers
+   (list (assoc 'authors bbdb-get-addresses-headers
+
+(defun notmuch-bbdb/snarf-to ()
+  Import all recipients of the current message into BBDB
+  (interactive)
+  (notmuch-bbdb/snarf-headers
+   (list (assoc 'recipients bbdb-get-addresses-headers
+
+(defvar notmuch-bbdb/header-by-name
+  ;; both are case sensitive
+  '( (From . :From)
+ (To . :To)
+ (CC . :Cc)
+ (BCC . :Bcc)
+ (Resent-From . nil)
+ (Reply-To . nil)
+ (Resent-To . nil)
+ (Resent-CC . nil))
+  Alist for dispatching header symbols as used by notmuch-show-get-header
+from strings as used by bbdb-get-addresses)
+
+(defun notmuch-bbdb/get-header-content (name)
+  (notmuch-show-get-header (cdr (assoc name notmuch-bbdb/header-by-name
+
 ;;
 
 (provide 'notmuch-address)
-- 
2.0.1

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


[PATCH] Add configurable changed tag to messages that have been changed on disk

2014-07-03 Thread David Bremner
Gaute Hope  writes:

> When one of the source files for a message is changed on disk, renamed,
> deleted or a new source file is added. A configurable changed tag is
> is added. The tag can be configured under the option 'changed_tags' in
> the [new] section, the default is none. Tests have been updated to
> accept the new config option.
>
> notmuch-setup now asks for a changed tag after the new tags question.
>
> This could be useful for for example 'afew' to detect remote changes in
> IMAP folders and update the FolderNameFilter to also add tags or remove
> tags when a _existing_ message has been added to or removed from a
> maildir.

The discussion on this proposal seems to have died out without reaching
a conclusion. David M expressed a strong preference for some kind of
modification time field in the database.  Gaute agreed with some caveats
that such an approach could solve his problems as well. On the other
hand, nobody seems to be actually working on such an approach at the
moment.  Gaute and or David do you have any interest in revisiting the
series id:1323796305-28789-1-git-send-email-schnouki at schnouki.net and
seeing if it can be reworked into mergeable shape? I suspect in
particular something needs to be added with respect to message deletion
Thomas, are you still running some variant of these patches?

d


[PATCH] emacs: add missing paren to fix defun in notmuch-address.el.

2014-07-03 Thread Karl Fogel
Sebastian Lipp  writes:
>Tomi Ollila  writes:
>> On Tue, Apr 09 2013, David Bremner wrote:
>>> There seems to be a few warnings:
>>>
>>> In notmuch-bbdb/snarf-from:
>>> notmuch-address.el:116:26:Warning: reference to free variable
>>> `bbdb-get-addresses-headers'
>>>
>>> In notmuch-bbdb/snarf-to:
>>> notmuch-address.el:122:29:Warning: reference to free variable
>>> `bbdb-get-addresses-headers'
>>>
>>> In end of data:
>>> notmuch-address.el:143:1:Warning: the following functions are not known to 
>>> be
>>> defined: bbdb-get-addresses, bbdb-update-records, 
>>> notmuch-show-get-header
>>>
>>> Do we need a few defvars?
>>
>> For the above set, something like:
>>
>> (defvar bbdb-get-addresses-headers)
>>
>> (declare-function notmuch-show-get-header "notmuch-show" (header  
>> props))
>>
>> (declare-function bbdb-get-addresses "bbdb-com" 
>>   (only-first-address
>>uninteresting-senders
>>get-header-content-function
>> get-header-content-function-args))
>>
>> (declare-function bbdb-update-records "bbdb-com" (addrs auto-create-p 
>> offer-to-create))
>
>As I'd like to see this in notmuch I made the change. The patch is
>attached. As it is my first contribution to notmuch at all: Just tell me
>if I'm supposed to do it in any other way.

I think your patch includes much more than just the above, though.

(It helps to include a log message with the patch -- then people can see
what you intended the code change to be, and compare that against the
code change the patch actually makes.)

>diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el
>index fa65cd5..ee7b169 100644
>--- a/emacs/notmuch-address.el
>+++ b/emacs/notmuch-address.el
>@@ -113,6 +113,59 @@ to know how address selection is made by default."
> (when (notmuch-address-locate-command notmuch-address-command)
>   (notmuch-address-message-insinuate))
> 
>+;; functions to add sender / recipients to BBDB
>+
>+(defvar bbdb-get-addresses-headers)

I think it's good to include an initial value (even an invalid
placeholder one, if the real initialization has not happened yet), and a
doc string.  C-h f defvar RET will say more about how to do that.

(By the way, this isn't a user-customizeable variable, right?  If it
were, then `defcustom' would be better than `defvar'.)

>+(declare-function notmuch-show-get-header "notmuch-show" (header  
>props))
>+
>+(declare-function bbdb-get-addresses "bbdb-com" 
>+  (only-first-address
>+   uninteresting-senders
>+   get-header-content-function
>+get-header-content-function-args))
>+
>+(declare-function bbdb-update-records "bbdb-com" (addrs auto-create-p 
>offer-to-create))

At this point, your patch has accomplished what Tomi originally
suggested.  But then the patch continues with what looks like
substantive new code:

>+(defun notmuch-bbdb/snarf-headers (headers)
>+  ;; Helper function to avoid code duplication in the two below
>+  ;; headers should have the same format as bbdb-get-addresses-headers
>+
>+  ;; bbdb-get-addresses reads these
>+  ;; Ugh, pass-by-global
>+  (let ((addrs (bbdb-get-addresses nil nil 'notmuch-bbdb/get-header-content))
>+  (bbdb-get-addresses-headers headers) ; headers to read
>+  (bbdb-gag-messages t)) ; suppress m/n processed message)
>+(bbdb-update-records addrs t t)))
>+
>+(defun notmuch-bbdb/snarf-from ()
>+  "Import the sender of the current message into BBDB"
>+  (interactive)
>+  (notmuch-bbdb/snarf-headers
>+   (list (assoc 'authors bbdb-get-addresses-headers
>+
>+(defun notmuch-bbdb/snarf-to ()
>+  "Import all recipients of the current message into BBDB"
>+  (interactive)
>+  (notmuch-bbdb/snarf-headers
>+   (list (assoc 'recipients bbdb-get-addresses-headers
>+
>+(defvar notmuch-bbdb/header-by-name
>+  ;; both are case sensitive
>+  '( ("From" . :From)
>+ ("To" . :To)
>+ ("CC" . :Cc)
>+ ("BCC" . :Bcc)
>+ ("Resent-From" . nil)
>+ ("Reply-To" . nil)
>+ ("Resent-To" . nil)
>+ ("Resent-CC" . nil))
>+  "Alist for dispatching header symbols as used by notmuch-show-get-header
>+from strings as used by bbdb-get-addresses")
>+
>+(defun notmuch-bbdb/get-header-content (name)
>+  (notmuch-show-get-header (cdr (assoc name notmuch-bbdb/header-by-name

It looks like new code, but I suspect what actually happened is that
this is just the original code, somehow mis-expressed as "+" lines in
the patch.  Is that what happened?

Best,
-Karl