Subject: bug#4377: allow one to still choose xpdf instead of doc-view

From: [email-masked]
Date: Wed, 09 Sep 2009 02:28:42 +0800

My god, that's tons and tons of lisp to add to one's .emacs file, just
to say "I wish to have emacs still call xpdf when encountering a .pdf
file, like back before they introduced doc-view".

I'm filing an emacs-pretest-bug so they will make it easier to allow one
to choose if one wants doc-view, or stick with xpdf.

>>>>> "KY" == Katsumi Yamaoka <[email-masked]> writes:

>>>>> [email-masked] wrote:

>> The only way to get xpdf called on them is via dired-do-shell-command,
>> which knows about xpdf.

KY> Is what you want the one like this?

KY> (defadvice dired-view-file (around use-xpdf activate)
KY>   "Use xpdf to view a pdf file."
KY>   (unless (let ((file (dired-get-file-for-visit)))
KY> 	    (and (not (file-directory-p file))
KY> 		 (let ((case-fold-search t))
KY> 		   (string-match "\\.pdf\\'" file))
KY> 		 (prog1
KY> 		     t
KY> 		   (call-process "xpdf" nil nil nil file))))
KY>     ad-do-it))

KY> The `v' key in the dired buffer uses xpdf to display a file iff
KY> its extension is ".pdf".

KY> Otherwise,

KY> (autoload 'mailcap-parse-mailcaps "mailcap" nil t)
KY> (autoload 'mm-mailcap-command "mm-decode")
KY> (defadvice dired-view-file (around use-mailcap-mime-data activate)
KY>   "Use an external viewer to view a file according to `mailcap-mime-data'."
KY>   (unless (let ((file (dired-get-file-for-visit))
KY> 		extension type command)
KY> 	    (and (not (file-directory-p file))
KY> 		 (progn
KY> 		   (mailcap-parse-mailcaps)
KY> 		   (setq extension (file-name-extension file)))
KY> 		 (setq type (mailcap-extension-to-mime extension))
KY> 		 (setq command (mailcap-mime-info type))
KY> 		 (setq command (mm-mailcap-command command file nil))
KY> 		 (prog1
KY> 		     t
KY> 		   (shell-command command))))
KY>     ad-do-it))

KY> There will be other ELisp packages that use external viewers.
KY> `gnus-dired-find-file-mailcap' is it, though it may not be your
KY> taste.