mailcap.el: Make it easier to use mailcap for viewing single files
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sat, 6 Dec 2014 01:41:19 +0000 (01:41 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Sat, 6 Dec 2014 01:41:19 +0000 (01:41 +0000)
lisp/ChangeLog
lisp/mailcap.el

index 7d4bb9e..cc76e4b 100644 (file)
@@ -1,3 +1,9 @@
+2014-12-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mailcap.el (mailcap-mime-data): Add doc-view-mode as a viewer for
+       PDFs.
+       (mailcap-view-mime): New function.
+
 2014-12-01  Glenn Morris  <rgm@gnu.org>
 
        * gnus-cloud.el (gnus-cloud): Add :version tag.
index 4f1bdf4..1a1a992 100644 (file)
@@ -152,6 +152,10 @@ This is a compatibility function for different Emacsen."
       (non-viewer . t)
       (type   . "application/zip")
       ("copiousoutput"))
+     ("pdf"
+      (viewer . doc-view-mode)
+      (type . "application/pdf")
+      (test . (eq window-system 'x)))
      ("pdf"
       (viewer . "gv -safer %s")
       (type . "application/pdf")
@@ -1060,6 +1064,18 @@ If FORCE, re-parse even if already parsed."
                             common-mime-info)))))
     commands))
 
+(defun mailcap-view-mime (type)
+  "View the data in the current buffer that has MIME type TYPE.
+`mailcap-mime-data' determines the method to use."
+  (let ((method (mailcap-mime-info type)))
+    (if (stringp method)
+       (shell-command-on-region (point-min) (point-max)
+                                ;; Use stdin as the "%s".
+                                (format method "-")
+                                (current-buffer)
+                                t)
+      (funcall method))))
+
 (provide 'mailcap)
 
 ;;; mailcap.el ends here