Add a regexp, `notmuch-show-part-headers-hidden' and if the
content-type of a part matches, don't show the part header.
---
 emacs/notmuch-show.el |   43 ++++++++++++++++++++++++++++---------------
 1 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index d0e0d38..a0a2873 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -123,6 +123,12 @@ indentation."
                 (const :tag "View interactively"
                        notmuch-show-interactively-view-part)))

+(defcustom notmuch-show-part-headers-hidden nil
+  "Headers for parts whose content-type matches this regexp will
+not be shown."
+  :group 'notmuch
+  :type 'regexp)
+
 (defmacro with-current-notmuch-show-message (&rest body)
   "Evaluate body with current buffer set to the text of current message"
   `(save-excursion
@@ -355,24 +361,31 @@ message at DEPTH in the current thread."
   "Submap for button commands")
 (fset 'notmuch-show-part-button-map notmuch-show-part-button-map)

+(defun notmuch-show-hidden-part-header (content-type)
+  "Return non-nil if a part header should be hidden for
+CONTENT-TYPE parts."
+  (and notmuch-show-part-headers-hidden
+       (string-match notmuch-show-part-headers-hidden content-type)))
+
 (defun notmuch-show-insert-part-header (nth content-type declared-type
                                            &optional name comment
                                            &rest button-parameters)
-  (apply #'insert-button
-        (concat "[ "
-                (if name (concat name ": ") "")
-                declared-type
-                (if (not (string-equal declared-type content-type))
-                    (concat " (as " content-type ")")
-                  "")
-                (or comment "")
-                " ]")
-        :type 'notmuch-show-part-button-type
-        :notmuch-part nth
-        :notmuch-filename name
-        :notmuch-content-type content-type
-        button-parameters)
-  (insert "\n"))
+  (unless (notmuch-show-hidden-part-header content-type)
+    (apply #'insert-button
+          (concat "[ "
+                  (if name (concat name ": ") "")
+                  declared-type
+                  (if (not (string-equal declared-type content-type))
+                      (concat " (as " content-type ")")
+                    "")
+                  (or comment "")
+                  " ]")
+          :type 'notmuch-show-part-button-type
+          :notmuch-part nth
+          :notmuch-filename name
+          :notmuch-content-type content-type
+          button-parameters)
+    (insert "\n")))

 ;; Functions handling particular MIME parts.

-- 
1.7.8.3

Reply via email to