(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)
(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)
("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")
("copiousoutput"))
("sieve"
(viewer . sieve-mode)
- (test . (fboundp 'sieve-mode))
(type . "application/sieve"))
("pgp-keys"
(viewer . "gpg --import --interactive --verbose")
(type . "message/rfc822"))
("rfc-*822"
(viewer . vm-mode)
- (test . (fboundp 'vm-mode))
(type . "message/rfc822"))
("rfc-*822"
(viewer . view-mode)
("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"
("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)
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
(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