Remove fboundp checks from mailcap-mime-data
* lisp/gnus/mailcap.el (mailcap-mime-data): Remove fboundp checks. (mailcap-viewer-passes-test): Do it instead. Thanks to Stefan Monnier.
This commit is contained in:
parent
54f59907f1
commit
2ab48bafa3
1 changed files with 10 additions and 23 deletions
|
@ -96,11 +96,9 @@ This is a compatibility function for different Emacsen."
|
|||
(type . "application/vnd.ms-excel"))
|
||||
("x-x509-ca-cert"
|
||||
(viewer . ssl-view-site-cert)
|
||||
(test . (fboundp 'ssl-view-site-cert))
|
||||
(type . "application/x-x509-ca-cert"))
|
||||
("x-x509-user-cert"
|
||||
(viewer . ssl-view-user-cert)
|
||||
(test . (fboundp 'ssl-view-user-cert))
|
||||
(type . "application/x-x509-user-cert"))
|
||||
("octet-stream"
|
||||
(viewer . mailcap-save-binary-file)
|
||||
|
@ -129,23 +127,18 @@ This is a compatibility function for different Emacsen."
|
|||
(type . "application/x-tar"))
|
||||
("x-latex"
|
||||
(viewer . tex-mode)
|
||||
(test . (fboundp 'tex-mode))
|
||||
(type . "application/x-latex"))
|
||||
("x-tex"
|
||||
(viewer . tex-mode)
|
||||
(test . (fboundp 'tex-mode))
|
||||
(type . "application/x-tex"))
|
||||
("latex"
|
||||
(viewer . tex-mode)
|
||||
(test . (fboundp 'tex-mode))
|
||||
(type . "application/latex"))
|
||||
("tex"
|
||||
(viewer . tex-mode)
|
||||
(test . (fboundp 'tex-mode))
|
||||
(type . "application/tex"))
|
||||
("texinfo"
|
||||
(viewer . texinfo-mode)
|
||||
(test . (fboundp 'texinfo-mode))
|
||||
(type . "application/tex"))
|
||||
("zip"
|
||||
(viewer . mailcap-save-binary-file)
|
||||
|
@ -155,13 +148,11 @@ This is a compatibility function for different Emacsen."
|
|||
("pdf"
|
||||
(viewer . pdf-view-mode)
|
||||
(type . "application/pdf")
|
||||
(test . (and (fboundp 'pdf-view-mode)
|
||||
(eq window-system 'x))))
|
||||
(test . (eq window-system 'x)))
|
||||
("pdf"
|
||||
(viewer . doc-view-mode)
|
||||
(type . "application/pdf")
|
||||
(test . (and (fboundp 'doc-view-mode)
|
||||
(eq window-system 'x))))
|
||||
(test . (eq window-system 'x)))
|
||||
("pdf"
|
||||
(viewer . "gv -safer %s")
|
||||
(type . "application/pdf")
|
||||
|
@ -202,7 +193,6 @@ This is a compatibility function for different Emacsen."
|
|||
("copiousoutput"))
|
||||
("sieve"
|
||||
(viewer . sieve-mode)
|
||||
(test . (fboundp 'sieve-mode))
|
||||
(type . "application/sieve"))
|
||||
("pgp-keys"
|
||||
(viewer . "gpg --import --interactive --verbose")
|
||||
|
@ -223,7 +213,6 @@ This is a compatibility function for different Emacsen."
|
|||
(type . "message/rfc822"))
|
||||
("rfc-*822"
|
||||
(viewer . vm-mode)
|
||||
(test . (fboundp 'vm-mode))
|
||||
(type . "message/rfc822"))
|
||||
("rfc-*822"
|
||||
(viewer . view-mode)
|
||||
|
@ -260,18 +249,15 @@ This is a compatibility function for different Emacsen."
|
|||
("text"
|
||||
("plain"
|
||||
(viewer . view-mode)
|
||||
(test . (fboundp 'view-mode))
|
||||
(type . "text/plain"))
|
||||
("plain"
|
||||
(viewer . fundamental-mode)
|
||||
(type . "text/plain"))
|
||||
("enriched"
|
||||
(viewer . enriched-decode)
|
||||
(test . (fboundp 'enriched-decode))
|
||||
(type . "text/enriched"))
|
||||
("dns"
|
||||
(viewer . dns-mode)
|
||||
(test . (fboundp 'dns-mode))
|
||||
(type . "text/dns")))
|
||||
("video"
|
||||
("mpeg"
|
||||
|
@ -288,8 +274,7 @@ This is a compatibility function for different Emacsen."
|
|||
("archive"
|
||||
("tar"
|
||||
(viewer . tar-mode)
|
||||
(type . "archive/tar")
|
||||
(test . (fboundp 'tar-mode)))))
|
||||
(type . "archive/tar"))))
|
||||
"The mailcap structure is an assoc list of assoc lists.
|
||||
1st assoc list is keyed on the major content-type
|
||||
2nd assoc list is keyed on the minor content-type (which can be a regexp)
|
||||
|
@ -310,9 +295,9 @@ attribute name (viewer, test, etc). This looks like:
|
|||
FLAG)
|
||||
|
||||
Where VIEWERINFO specifies how the content-type is viewed. Can be
|
||||
a string, in which case it is run through a shell, with
|
||||
appropriate parameters, or a symbol, in which case the symbol is
|
||||
`funcall'ed, with the buffer as an argument.
|
||||
a string, in which case it is run through a shell, with appropriate
|
||||
parameters, or a symbol, in which case the symbol is `funcall'ed if
|
||||
and only if it exists as a function, with the buffer as an argument.
|
||||
|
||||
TESTINFO is a test for the viewer's applicability, or nil. If nil, it
|
||||
means the viewer is always valid. If it is a Lisp function, it is
|
||||
|
@ -658,10 +643,12 @@ to supply to the test."
|
|||
(let* ((test-info (assq 'test viewer-info))
|
||||
(test (cdr test-info))
|
||||
(otest test)
|
||||
(viewer (cdr (assoc 'viewer viewer-info)))
|
||||
(viewer (cdr (assq 'viewer viewer-info)))
|
||||
(default-directory (expand-file-name "~/"))
|
||||
status parsed-test cache result)
|
||||
(cond ((setq cache (assoc test mailcap-viewer-test-cache))
|
||||
(cond ((not (or (stringp viewer) (fboundp viewer)))
|
||||
nil) ; Non-existent Lisp function
|
||||
((setq cache (assoc test mailcap-viewer-test-cache))
|
||||
(cadr cache))
|
||||
((not test-info) t) ; No test clause
|
||||
(t
|
||||
|
|
Loading…
Add table
Reference in a new issue