projects
/
gnus
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Gnus -- minor build / warning fixes [OK For Upstream]
[gnus]
/
lisp
/
mailcap.el
diff --git
a/lisp/mailcap.el
b/lisp/mailcap.el
index
aa2cab6
..
8e491d7
100644
(file)
--- a/
lisp/mailcap.el
+++ b/
lisp/mailcap.el
@@
-1,7
+1,6
@@
;;; mailcap.el --- MIME media types configuration
;;; mailcap.el --- MIME media types configuration
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
;; Author: William M. Perry <wmperry@aventail.com>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Author: William M. Perry <wmperry@aventail.com>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
@@
-83,7
+82,7
@@
This is a compatibility function for different Emacsen."
(list lpr-switches)
lpr-switches)))
" ")
(list lpr-switches)
lpr-switches)))
" ")
- "Shell command (including switches) used to print Post
s
cript files.")
+ "Shell command (including switches) used to print Post
S
cript files.")
;; Postpone using defcustom for this as it's so big and we essentially
;; have to have two copies of the data around then. Perhaps just
;; Postpone using defcustom for this as it's so big and we essentially
;; have to have two copies of the data around then. Perhaps just
@@
-91,17
+90,15
@@
This is a compatibility function for different Emacsen."
;; files for the rest? -- fx
(defvar mailcap-mime-data
`(("application"
;; files for the rest? -- fx
(defvar mailcap-mime-data
`(("application"
- ("vnd.ms-excel"
+ ("vnd
\\
.ms-excel"
(viewer . "gnumeric %s")
(test . (getenv "DISPLAY"))
(type . "application/vnd.ms-excel"))
("x-x509-ca-cert"
(viewer . ssl-view-site-cert)
(viewer . "gnumeric %s")
(test . (getenv "DISPLAY"))
(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)
(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-x509-user-cert"))
("octet-stream"
(viewer . mailcap-save-binary-file)
@@
-130,29
+127,32
@@
This is a compatibility function for different Emacsen."
(type . "application/x-tar"))
("x-latex"
(viewer . tex-mode)
(type . "application/x-tar"))
("x-latex"
(viewer . tex-mode)
- (test . (fboundp 'tex-mode))
(type . "application/x-latex"))
("x-tex"
(viewer . tex-mode)
(type . "application/x-latex"))
("x-tex"
(viewer . tex-mode)
- (test . (fboundp 'tex-mode))
(type . "application/x-tex"))
("latex"
(viewer . tex-mode)
(type . "application/x-tex"))
("latex"
(viewer . tex-mode)
- (test . (fboundp 'tex-mode))
(type . "application/latex"))
("tex"
(viewer . tex-mode)
(type . "application/latex"))
("tex"
(viewer . tex-mode)
- (test . (fboundp 'tex-mode))
(type . "application/tex"))
("texinfo"
(viewer . texinfo-mode)
(type . "application/tex"))
("texinfo"
(viewer . texinfo-mode)
- (test . (fboundp 'texinfo-mode))
(type . "application/tex"))
("zip"
(viewer . mailcap-save-binary-file)
(non-viewer . t)
(type . "application/zip")
("copiousoutput"))
(type . "application/tex"))
("zip"
(viewer . mailcap-save-binary-file)
(non-viewer . t)
(type . "application/zip")
("copiousoutput"))
+ ("pdf"
+ (viewer . pdf-view-mode)
+ (type . "application/pdf")
+ (test . (eq window-system 'x)))
+ ("pdf"
+ (viewer . doc-view-mode)
+ (type . "application/pdf")
+ (test . (eq window-system 'x)))
("pdf"
(viewer . "gv -safer %s")
(type . "application/pdf")
("pdf"
(viewer . "gv -safer %s")
(type . "application/pdf")
@@
-193,7
+193,6
@@
This is a compatibility function for different Emacsen."
("copiousoutput"))
("sieve"
(viewer . sieve-mode)
("copiousoutput"))
("sieve"
(viewer . sieve-mode)
- (test . (fboundp 'sieve-mode))
(type . "application/sieve"))
("pgp-keys"
(viewer . "gpg --import --interactive --verbose")
(type . "application/sieve"))
("pgp-keys"
(viewer . "gpg --import --interactive --verbose")
@@
-214,11
+213,6
@@
This is a compatibility function for different Emacsen."
(type . "message/rfc822"))
("rfc-*822"
(viewer . vm-mode)
(type . "message/rfc822"))
("rfc-*822"
(viewer . vm-mode)
- (test . (fboundp 'vm-mode))
- (type . "message/rfc822"))
- ("rfc-*822"
- (viewer . w3-mode)
- (test . (fboundp 'w3-mode))
(type . "message/rfc822"))
("rfc-*822"
(viewer . view-mode)
(type . "message/rfc822"))
("rfc-*822"
(viewer . view-mode)
@@
-253,28
+247,17
@@
This is a compatibility function for different Emacsen."
(test . (eq window-system 'x))
("needsx11")))
("text"
(test . (eq window-system 'x))
("needsx11")))
("text"
- ("plain"
- (viewer . w3-mode)
- (test . (fboundp 'w3-mode))
- (type . "text/plain"))
("plain"
(viewer . view-mode)
("plain"
(viewer . view-mode)
- (test . (fboundp 'view-mode))
(type . "text/plain"))
("plain"
(viewer . fundamental-mode)
(type . "text/plain"))
("enriched"
(viewer . enriched-decode)
(type . "text/plain"))
("plain"
(viewer . fundamental-mode)
(type . "text/plain"))
("enriched"
(viewer . enriched-decode)
- (test . (fboundp 'enriched-decode))
(type . "text/enriched"))
(type . "text/enriched"))
- ("html"
- (viewer . mm-w3-prepare-buffer)
- (test . (fboundp 'w3-prepare-buffer))
- (type . "text/html"))
("dns"
(viewer . dns-mode)
("dns"
(viewer . dns-mode)
- (test . (fboundp 'dns-mode))
(type . "text/dns")))
("video"
("mpeg"
(type . "text/dns")))
("video"
("mpeg"
@@
-291,8
+274,7
@@
This is a compatibility function for different Emacsen."
("archive"
("tar"
(viewer . tar-mode)
("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)
"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)
@@
-313,9
+295,9
@@
attribute name (viewer, test, etc). This looks like:
FLAG)
Where VIEWERINFO specifies how the content-type is viewed. Can be
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
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
@@
-559,8
+541,11
@@
MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus
results)))
(defun mailcap-mailcap-entry-passes-test (info)
results)))
(defun mailcap-mailcap-entry-passes-test (info)
- "Return non-nil if mailcap entry INFO passes its test clause.
-Also return non-nil if no test clause is present."
+ "Replace the test clause of INFO itself with a boolean for some cases.
+This function supports only `test -n $DISPLAY' and `test -z $DISPLAY',
+replaces them with t or nil. As for others or if INFO has a interactive
+spec (needsterm, needsterminal, or needsx11) but DISPLAY is not set,
+the test clause will be unchanged."
(let ((test (assq 'test info)) ; The test clause
status)
(setq status (and test (split-string (cdr test) " ")))
(let ((test (assq 'test info)) ; The test clause
status)
(setq status (and test (split-string (cdr test) " ")))
@@
-658,10
+643,12
@@
to supply to the test."
(let* ((test-info (assq 'test viewer-info))
(test (cdr test-info))
(otest test)
(let* ((test-info (assq 'test viewer-info))
(test (cdr test-info))
(otest test)
- (viewer (cdr (ass
oc
'viewer viewer-info)))
+ (viewer (cdr (ass
q
'viewer viewer-info)))
(default-directory (expand-file-name "~/"))
(default-directory (expand-file-name "~/"))
- status parsed-test cache result)
- (cond ((setq cache (assoc test mailcap-viewer-test-cache))
+ status cache result)
+ (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
(cadr cache))
((not test-info) t) ; No test clause
(t
@@
-758,10
+745,10
@@
If NO-DECODE is non-nil, don't decode STRING."
major ; Major encoding (text, etc)
minor ; Minor encoding (html, etc)
info ; Other info
major ; Major encoding (text, etc)
minor ; Minor encoding (html, etc)
info ; Other info
- save-pos ; Misc. position during parse
+ ; save-pos ; Misc. position during parse (unused?)
major-info ; (assoc major mailcap-mime-data)
major-info ; (assoc major mailcap-mime-data)
-
minor-info ; (assoc minor major-info
)
- test ; current test proc.
+
; minor-info ; (assoc minor major-info) (unused?
)
+ ; test ; current test proc. (unused?)
viewers ; Possible viewers
passed ; Viewers that passed the test
viewer ; The one and only viewer
viewers ; Possible viewers
passed ; Viewers that passed the test
viewer ; The one and only viewer
@@
-1073,6
+1060,18
@@
If FORCE, re-parse even if already parsed."
common-mime-info)))))
commands))
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
(provide 'mailcap)
;;; mailcap.el ends here