[PATCH] emacs: add missing paren to fix defun in notmuch-address.el.
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 &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. 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 &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)) 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
Re: [PATCH] emacs: add missing paren to fix defun in notmuch-address.el.
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 &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 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 . --- 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
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
Re: [PATCH] Add configurable changed tag to messages that have been changed on disk
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-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