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 C68D7431FAF for ; Wed, 18 Jan 2012 02:45:18 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -1.098 X-Spam-Level: X-Spam-Status: No, score=-1.098 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_MED=-2.3] 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 Nl9vSNoeW8rD for ; Wed, 18 Jan 2012 02:45:18 -0800 (PST) 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 3AA8F431FAE for ; Wed, 18 Jan 2012 02:45:18 -0800 (PST) Received: from smtp.qmul.ac.uk ([138.37.6.40]) by mail2.qmul.ac.uk with esmtp (Exim 4.71) (envelope-from ) id 1RnT0y-0006Cj-Qw; Wed, 18 Jan 2012 10:45:13 +0000 Received: from 94-192-233-223.zone6.bethere.co.uk ([94.192.233.223] helo=localhost) by smtp.qmul.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from ) id 1RnT0y-0004yY-Dj; Wed, 18 Jan 2012 10:45:12 +0000 From: Mark Walters To: Austin Clements Subject: Re: [PATCH v3] Make buttons for attachments allow viewing as well as saving In-Reply-To: <20120118012539.GA16740@mit.edu> References: <87lip5rj43.fsf@qmul.ac.uk> <1326843886-18387-1-git-send-email-markwalters1009@gmail.com> <20120117235318.GZ16740@mit.edu> <87ipk9rgg9.fsf@qmul.ac.uk> <20120118012539.GA16740@mit.edu> User-Agent: Notmuch/0.11~rc2+73~g1ea2b60 (http://notmuchmail.org) Emacs/23.2.1 (i486-pc-linux-gnu) Date: Wed, 18 Jan 2012 10:46:00 +0000 Message-ID: <87fwfdqoev.fsf@qmul.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Sender-Host-Address: 94.192.233.223 X-QM-SPAM-Info: Sender has good ham record. :) X-QM-Body-MD5: 8a7afb20fe3d809200e60c21cbfad16b (of first 20000 bytes) X-SpamAssassin-Score: -1.8 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 -1.8 points. Summary of the scoring: * -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, * medium trust * [138.37.6.40 listed in list.dnswl.org] * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider * (markwalters1009[at]gmail.com) * -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay * domain * 0.5 AWL AWL: From: address is in the auto white-list X-QM-Scan-Virus: ClamAV says the message is clean Cc: notmuch@notmuchmail.org 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: Wed, 18 Jan 2012 10:45:18 -0000 > > +(defun notmuch-show-view-part (message-id nth &optional filename content-type ) > > + (notmuch-with-temp-part-buffer message-id nth > > + ;; set mm-inlined-types to nil to force an external viewer > > + (let ((handle (mm-make-handle (current-buffer) (list content-type))) > > + (mm-inlined-types nil)) > > + ;; We override mm-save-part as notmuch-show-save-part is better > > + ;; since it offers the filename > > + (flet ((mm-save-part (&rest args) (ignore))) > > + (or (mm-display-part handle) > > + (notmuch-show-save-part message-id nth filename content-type)))))) > > > > Is that a reasonable solution? > > It's *probably* safe to depend on the result of mm-display-part, but > you can avoid the question altogether by simply calling > notmuch-show-save-part from your flet mm-save-part. E.g., > > (flet ((mm-save-part (&rest args) (notmuch-show-save-part > message-id nth filename content-type))) > (mm-display-part handle)) Unfortunately that does not work since mm-display-part has a local variable "filename". I could copy the variables to some notmuch prefixed variables but maybe there is some obvious "quoting" to avoid the problem? (I can't easily check now as the gnu site is closed for the day.) Best wishes Mark