]> git.eshelyaron.com Git - emacs.git/commitdiff
Make it easier to use mailcap for viewing single files
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 5 Dec 2014 15:40:45 +0000 (16:40 +0100)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 5 Dec 2014 15:51:59 +0000 (16:51 +0100)
* mailcap.el (mailcap-mime-data): Add doc-view-mode as a viewer for
PDFs.
(mailcap-view-mime): New function.

lisp/gnus/ChangeLog
lisp/gnus/mailcap.el

index c526b533ab903ab6cba4a295846229df76fe22a8..09094184f12e50872ca641c2ab3e7505136757a6 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 4f1bdf4b1dffe76d689eb96454e7ed55ad581e9a..1a1a9923425cdac027933f2f5b105fb019fb525a 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