Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 2F858431FC0 for ; Tue, 29 Apr 2014 03:14:28 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0.502 X-Spam-Level: X-Spam-Status: No, score=0.502 tagged_above=-999 required=5 tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=1.2, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dVbWcJ0dFogr for ; Tue, 29 Apr 2014 03:14:22 -0700 (PDT) Received: from mail2.qmul.ac.uk (mail2.qmul.ac.uk [138.37.6.6]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 746B3431FBD for ; Tue, 29 Apr 2014 03:14:22 -0700 (PDT) Received: from smtp.qmul.ac.uk ([138.37.6.40]) by mail2.qmul.ac.uk with esmtp (Exim 4.71) (envelope-from ) id 1Wf53G-00034b-Jz; Tue, 29 Apr 2014 11:14:17 +0100 Received: from 5751dfa2.skybroadband.com ([87.81.223.162] helo=localhost) by smtp.qmul.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.71) (envelope-from ) id 1Wf53G-0001sR-94; Tue, 29 Apr 2014 11:14:14 +0100 From: Mark Walters To: Jani Nikula , notmuch@notmuchmail.org Subject: Re: [PATCH] emacs: allow functions in notmuch-show-stash-mlarchive-link-alist In-Reply-To: <1398761130-26865-1-git-send-email-jani@nikula.org> References: <1398761130-26865-1-git-send-email-jani@nikula.org> User-Agent: Notmuch/0.15.2+615~g78e3a93 (http://notmuchmail.org) Emacs/23.4.1 (x86_64-pc-linux-gnu) Date: Tue, 29 Apr 2014 11:14:13 +0100 Message-ID: <874n1cbfyi.fsf@qmul.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Sender-Host-Address: 87.81.223.162 X-QM-Geographic: According to ripencc, this message was delivered by a machine in Britain (UK) (GB). X-QM-SPAM-Info: Sender has good ham record. :) X-QM-Body-MD5: 83eca9b1039e3fc154bfd85401ef5673 (of first 20000 bytes) X-SpamAssassin-Score: -0.1 X-SpamAssassin-SpamBar: / X-SpamAssassin-Report: The QM spam filters have analysed this message to determine if it is spam. We require at least 5.0 points to mark a message as spam. This message scored -0.1 points. Summary of the scoring: * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider * (markwalters1009[at]gmail.com) * -0.1 AWL AWL: From: address is in the auto white-list X-QM-Scan-Virus: ClamAV says the message is clean Cc: Carl Worth X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Apr 2014 10:14:28 -0000 This basically looks good to me. I think the docstring to the defcustom needs updating to mention functions and I would mildly prefer slightly different indentation in one place mentioned below (it may take it over 80 chars so if you prefer leave it as it is) On Tue, 29 Apr 2014, Jani Nikula wrote: > Some archives may use a more complicated scheme for referring to > messages than just concatenated url and message-id. In particular, > patchwork requires a query to translate message-id to a patchwork > patch id. Allow functions in notmuch-show-stash-mlarchive-link-alist > to facilitate this. > > For example, one could use something like this for patchwork. > > (lambda (message-id) > (concat > "http://patchwork.example.com/patch/" > (nth 0 > (split-string > (car (last (process-lines "pwclient" "search" "-n" "1" > "-m" (concat "<" message-id ">")))))))) > --- > emacs/notmuch-show.el | 27 ++++++++++++++++----------- > 1 files changed, 16 insertions(+), 11 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index df10d4b..b8bdbb9 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -183,7 +183,9 @@ each attachment handler is logged in buffers with names beginning > These URIs are concatenated with the current message's > Message-Id in `notmuch-show-stash-mlarchive-link'." > :type '(alist :key-type (string :tag "Name") > - :value-type (string :tag "URL")) > + :value-type (choice > + (string :tag "URL") > + (function :tag "Function returning the URL"))) > :group 'notmuch-show) > > (defcustom notmuch-show-stash-mlarchive-link-default "Gmane" > @@ -2055,16 +2057,19 @@ This presumes that the message is available at the selected Mailing List Archive > If optional argument MLA is non-nil, use the provided key instead of prompting > the user (see `notmuch-show-stash-mlarchive-link-alist')." > (interactive) > - (notmuch-common-do-stash > - (concat (cdr (assoc > - (or mla > - (let ((completion-ignore-case t)) > - (completing-read > - "Mailing List Archive: " > - notmuch-show-stash-mlarchive-link-alist > - nil t nil nil notmuch-show-stash-mlarchive-link-default))) > - notmuch-show-stash-mlarchive-link-alist)) > - (notmuch-show-get-message-id t)))) > + (let ((url > + (cdr (assoc This is the indentation bit: I would prefer the "cdr" on the same line as "url". Best wishes Mark > + (or mla > + (let ((completion-ignore-case t)) > + (completing-read > + "Mailing List Archive: " > + notmuch-show-stash-mlarchive-link-alist > + nil t nil nil notmuch-show-stash-mlarchive-link-default))) > + notmuch-show-stash-mlarchive-link-alist)))) > + (notmuch-common-do-stash > + (if (functionp url) > + (funcall url (notmuch-show-get-message-id t)) > + (concat url (notmuch-show-get-message-id t)))))) > > (defun notmuch-show-stash-mlarchive-link-and-go (&optional mla) > "Copy an ML Archive URI for the current message to the kill-ring and visit it. > -- > 1.7.2.5 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch