From 7747e23ecd6c7b140a67812ad22421ef426a7a24 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 5 Dec 2014 16:40:45 +0100 Subject: [PATCH] Make it easier to use mailcap for viewing single files * mailcap.el (mailcap-mime-data): Add doc-view-mode as a viewer for PDFs. (mailcap-view-mime): New function. --- lisp/gnus/ChangeLog | 6 ++++++ lisp/gnus/mailcap.el | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index c526b533ab9..09094184f12 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,9 @@ +2014-12-05 Lars Magne Ingebrigtsen + + * mailcap.el (mailcap-mime-data): Add doc-view-mode as a viewer for + PDFs. + (mailcap-view-mime): New function. + 2014-12-01 Glenn Morris * gnus-cloud.el (gnus-cloud): Add :version tag. diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el index 4f1bdf4b1df..1a1a9923425 100644 --- a/lisp/gnus/mailcap.el +++ b/lisp/gnus/mailcap.el @@ -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 -- 2.39.2