On Thu, 9 Feb 2012 14:46:02 +0000, Jani Nikula <jani@nikula.org> wrote: > Make notmuch-show-all-multipart/alternative-parts accept a list of > regexps to match the part types to determine which parts to show in > addition to the preferred types. This allows the user to force display > some alternative part types while normally showing just the preferred > ones. Wah, this patch (1/2) is crap, as it also seems to affect the reply. I'll probably return to this later, after the json reply stuff is merged or so. BR, Jani. > > Signed-off-by: Jani Nikula <jani@nikula.org> > --- > emacs/notmuch-show.el | 23 ++++++++++++++++++----- > 1 files changed, 18 insertions(+), 5 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index 24fde05..5f643f1 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -94,10 +94,20 @@ any given message." > :group 'notmuch-show > :group 'notmuch-hooks) > > -;; Mostly useful for debugging. > (defcustom notmuch-show-all-multipart/alternative-parts t > - "Should all parts of multipart/alternative parts be shown?" > - :type 'boolean > + "Which parts of multipart/alternative should be shown? > + > +This variable determines which parts of multipart/alternative > +should be displayed. Set to t (the default) to show all > +parts. Set to nil to only show the preferred parts. Set to a list > +of regexps to display the preferred parts, and parts matching any > +of the regexps, for example: > + > + (setq notmuch-show-all-multipart/alternative-parts > + '(\"text/.*calendar\" \"text/html\"))" > + :type '(choice (const :tag "Show all parts" t) > + (const :tag "Show preferred parts" nil) > + (repeat :tag "Show preferred and parts matching regexps" string)) > :group 'notmuch-show) > > (defcustom notmuch-show-indent-messages-width 1 > @@ -513,8 +523,11 @@ current buffer, if possible." > ;; should be chosen if there are more than one that match? > (mapc (lambda (inner-part) > (let ((inner-type (plist-get inner-part :content-type))) > - (if (or notmuch-show-all-multipart/alternative-parts > - (string= chosen-type inner-type)) > + (if (or (equal notmuch-show-all-multipart/alternative-parts t) > + (string= chosen-type inner-type) > + (and > + notmuch-show-all-multipart/alternative-parts > + (equal (string-match-p (mapconcat (lambda (s) (format "^%s$" s)) notmuch-show-all-multipart/alternative-parts "\\|") inner-type) 0))) > (notmuch-show-insert-bodypart msg inner-part depth) > (notmuch-show-insert-part-header (plist-get inner-part :id) inner-type inner-type nil " (not shown)")))) > inner-parts) > -- > 1.7.1 >