comparison lisp/gnus/mailcap.el @ 88155:d7ddb3e565de

sync with trunk
author Henrik Enberg <henrik.enberg@telia.com>
date Mon, 16 Jan 2006 00:03:54 +0000
parents 0d8b17d428b5
children
comparison
equal deleted inserted replaced
88154:8ce476d3ba36 88155:d7ddb3e565de
1 ;;; mailcap.el --- MIME media types configuration 1 ;;; mailcap.el --- MIME media types configuration
2 ;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. 2
3 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 ;; 2005 Free Software Foundation, Inc.
3 5
4 ;; Author: William M. Perry <wmperry@aventail.com> 6 ;; Author: William M. Perry <wmperry@aventail.com>
5 ;; Lars Magne Ingebrigtsen <larsi@gnus.org> 7 ;; Lars Magne Ingebrigtsen <larsi@gnus.org>
6 ;; Keywords: news, mail, multimedia 8 ;; Keywords: news, mail, multimedia
7 9
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;; GNU General Public License for more details. 20 ;; GNU General Public License for more details.
19 21
20 ;; You should have received a copy of the GNU General Public License 22 ;; You should have received a copy of the GNU General Public License
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, 24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23 ;; Boston, MA 02111-1307, USA. 25 ;; Boston, MA 02110-1301, USA.
24 26
25 ;;; Commentary: 27 ;;; Commentary:
26 28
27 ;; Provides configuration of MIME media types from directly from Lisp 29 ;; Provides configuration of MIME media types from directly from Lisp
28 ;; and via the usual mailcap mechanism (RFC 1524). Deals with 30 ;; and via the usual mailcap mechanism (RFC 1524). Deals with
44 (modify-syntax-entry ?' "\"" table) 46 (modify-syntax-entry ?' "\"" table)
45 (modify-syntax-entry ?` "\"" table) 47 (modify-syntax-entry ?` "\"" table)
46 (modify-syntax-entry ?{ "(" table) 48 (modify-syntax-entry ?{ "(" table)
47 (modify-syntax-entry ?} ")" table) 49 (modify-syntax-entry ?} ")" table)
48 table) 50 table)
49 "A syntax table for parsing sgml attributes.") 51 "A syntax table for parsing SGML attributes.")
52
53 (eval-and-compile
54 (when (featurep 'xemacs)
55 (condition-case nil
56 (require 'lpr)
57 (error nil))))
58
59 (defvar mailcap-print-command
60 (mapconcat 'identity
61 (cons (if (boundp 'lpr-command)
62 lpr-command
63 "lpr")
64 (when (boundp 'lpr-switches)
65 (if (stringp lpr-switches)
66 (list lpr-switches)
67 lpr-switches)))
68 " ")
69 "Shell command (including switches) used to print Postscript files.")
50 70
51 ;; Postpone using defcustom for this as it's so big and we essentially 71 ;; Postpone using defcustom for this as it's so big and we essentially
52 ;; have to have two copies of the data around then. Perhaps just 72 ;; have to have two copies of the data around then. Perhaps just
53 ;; customize the Lisp viewers and rely on the normal configuration 73 ;; customize the Lisp viewers and rely on the normal configuration
54 ;; files for the rest? -- fx 74 ;; files for the rest? -- fx
55 (defvar mailcap-mime-data 75 (defvar mailcap-mime-data
56 '(("application" 76 `(("application"
77 ("vnd.ms-excel"
78 (viewer . "gnumeric %s")
79 (test . (getenv "DISPLAY"))
80 (type . "application/vnd.ms-excel"))
57 ("x-x509-ca-cert" 81 ("x-x509-ca-cert"
58 (viewer . ssl-view-site-cert) 82 (viewer . ssl-view-site-cert)
59 (test . (fboundp 'ssl-view-site-cert)) 83 (test . (fboundp 'ssl-view-site-cert))
60 (type . "application/x-x509-ca-cert")) 84 (type . "application/x-x509-ca-cert"))
61 ("x-x509-user-cert" 85 ("x-x509-user-cert"
64 (type . "application/x-x509-user-cert")) 88 (type . "application/x-x509-user-cert"))
65 ("octet-stream" 89 ("octet-stream"
66 (viewer . mailcap-save-binary-file) 90 (viewer . mailcap-save-binary-file)
67 (non-viewer . t) 91 (non-viewer . t)
68 (type . "application/octet-stream")) 92 (type . "application/octet-stream"))
69 ;;; XEmacs says `ns' device-type not implemented.
70 ;; ("dvi"
71 ;; (viewer . "open %s")
72 ;; (type . "application/dvi")
73 ;; (test . (eq (mm-device-type) 'ns)))
74 ("dvi" 93 ("dvi"
75 (viewer . "xdvi %s") 94 (viewer . "xdvi -safer %s")
76 (test . (eq (mm-device-type) 'x)) 95 (test . (eq window-system 'x))
77 ("needsx11") 96 ("needsx11")
78 (type . "application/dvi")) 97 (type . "application/dvi")
98 ("print" . "dvips -qRP %s"))
79 ("dvi" 99 ("dvi"
80 (viewer . "dvitty %s") 100 (viewer . "dvitty %s")
81 (test . (not (getenv "DISPLAY"))) 101 (test . (not (getenv "DISPLAY")))
82 (type . "application/dvi")) 102 (type . "application/dvi")
103 ("print" . "dvips -qRP %s"))
83 ("emacs-lisp" 104 ("emacs-lisp"
84 (viewer . mailcap-maybe-eval) 105 (viewer . mailcap-maybe-eval)
85 (type . "application/emacs-lisp")) 106 (type . "application/emacs-lisp"))
107 ("x-emacs-lisp"
108 (viewer . mailcap-maybe-eval)
109 (type . "application/x-emacs-lisp"))
86 ("x-tar" 110 ("x-tar"
87 (viewer . mailcap-save-binary-file) 111 (viewer . mailcap-save-binary-file)
88 (non-viewer . t) 112 (non-viewer . t)
89 (type . "application/x-tar")) 113 (type . "application/x-tar"))
90 ("x-latex" 114 ("x-latex"
110 ("zip" 134 ("zip"
111 (viewer . mailcap-save-binary-file) 135 (viewer . mailcap-save-binary-file)
112 (non-viewer . t) 136 (non-viewer . t)
113 (type . "application/zip") 137 (type . "application/zip")
114 ("copiousoutput")) 138 ("copiousoutput"))
115 ;; Prefer free viewers.
116 ("pdf" 139 ("pdf"
117 (viewer . "gv %s") 140 (viewer . "gv -safer %s")
118 (type . "application/pdf") 141 (type . "application/pdf")
119 (test . window-system)) 142 (test . window-system)
143 ("print" . ,(concat "pdf2ps %s - | " mailcap-print-command)))
144 ("pdf"
145 (viewer . "gpdf %s")
146 (type . "application/pdf")
147 ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
148 (test . (eq window-system 'x)))
120 ("pdf" 149 ("pdf"
121 (viewer . "xpdf %s") 150 (viewer . "xpdf %s")
122 (type . "application/pdf") 151 (type . "application/pdf")
123 (test . (eq (mm-device-type) 'x))) 152 ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
153 (test . (eq window-system 'x)))
124 ("pdf" 154 ("pdf"
125 (viewer . "acroread %s") 155 (viewer . ,(concat "pdftotext %s -"))
126 (type . "application/pdf")) 156 (type . "application/pdf")
127 ;;; XEmacs says `ns' device-type not implemented. 157 ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
128 ;; ("postscript" 158 ("copiousoutput"))
129 ;; (viewer . "open %s")
130 ;; (type . "application/postscript")
131 ;; (test . (eq (mm-device-type) 'ns)))
132 ("postscript" 159 ("postscript"
133 (viewer . "gv -safer %s") 160 (viewer . "gv -safer %s")
134 (type . "application/postscript") 161 (type . "application/postscript")
135 (test . window-system) 162 (test . window-system)
163 ("print" . ,(concat mailcap-print-command " %s"))
136 ("needsx11")) 164 ("needsx11"))
137 ("postscript" 165 ("postscript"
138 (viewer . "ghostview -dSAFER %s") 166 (viewer . "ghostview -dSAFER %s")
139 (type . "application/postscript") 167 (type . "application/postscript")
140 (test . (eq (mm-device-type) 'x)) 168 (test . (eq window-system 'x))
169 ("print" . ,(concat mailcap-print-command " %s"))
141 ("needsx11")) 170 ("needsx11"))
142 ("postscript" 171 ("postscript"
143 (viewer . "ps2ascii %s") 172 (viewer . "ps2ascii %s")
144 (type . "application/postscript") 173 (type . "application/postscript")
145 (test . (not (getenv "DISPLAY"))) 174 (test . (not (getenv "DISPLAY")))
146 ("copiousoutput"))) 175 ("print" . ,(concat mailcap-print-command " %s"))
176 ("copiousoutput"))
177 ("sieve"
178 (viewer . sieve-mode)
179 (test . (fboundp 'sieve-mode))
180 (type . "application/sieve"))
181 ("pgp-keys"
182 (viewer . "gpg --import --interactive --verbose")
183 (type . "application/pgp-keys")
184 ("needsterminal")))
147 ("audio" 185 ("audio"
148 ("x-mpeg" 186 ("x-mpeg"
149 (viewer . "maplay %s") 187 (viewer . "maplay %s")
150 (type . "audio/x-mpeg")) 188 (type . "audio/x-mpeg"))
151 (".*" 189 (".*"
171 ("image" 209 ("image"
172 ("x-xwd" 210 ("x-xwd"
173 (viewer . "xwud -in %s") 211 (viewer . "xwud -in %s")
174 (type . "image/x-xwd") 212 (type . "image/x-xwd")
175 ("compose" . "xwd -frame > %s") 213 ("compose" . "xwd -frame > %s")
176 (test . (eq (mm-device-type) 'x)) 214 (test . (eq window-system 'x))
177 ("needsx11")) 215 ("needsx11"))
178 ("x11-dump" 216 ("x11-dump"
179 (viewer . "xwud -in %s") 217 (viewer . "xwud -in %s")
180 (type . "image/x-xwd") 218 (type . "image/x-xwd")
181 ("compose" . "xwd -frame > %s") 219 ("compose" . "xwd -frame > %s")
182 (test . (eq (mm-device-type) 'x)) 220 (test . (eq window-system 'x))
183 ("needsx11")) 221 ("needsx11"))
184 ("windowdump" 222 ("windowdump"
185 (viewer . "xwud -in %s") 223 (viewer . "xwud -in %s")
186 (type . "image/x-xwd") 224 (type . "image/x-xwd")
187 ("compose" . "xwd -frame > %s") 225 ("compose" . "xwd -frame > %s")
188 (test . (eq (mm-device-type) 'x)) 226 (test . (eq window-system 'x))
189 ("needsx11")) 227 ("needsx11"))
190 ;;; XEmacs says `ns' device-type not implemented.
191 ;; (".*"
192 ;; (viewer . "aopen %s")
193 ;; (type . "image/*")
194 ;; (test . (eq (mm-device-type) 'ns)))
195 (".*" 228 (".*"
196 (viewer . "display %s") 229 (viewer . "display %s")
197 (type . "image/*") 230 (type . "image/*")
198 (test . (eq (mm-device-type) 'x)) 231 (test . (eq window-system 'x))
199 ("needsx11")) 232 ("needsx11"))
200 (".*" 233 (".*"
201 (viewer . "ee %s") 234 (viewer . "ee %s")
202 (type . "image/*") 235 (type . "image/*")
203 (test . (eq (mm-device-type) 'x)) 236 (test . (eq window-system 'x))
204 ("needsx11"))) 237 ("needsx11")))
205 ("text" 238 ("text"
206 ("plain" 239 ("plain"
207 (viewer . w3-mode) 240 (viewer . w3-mode)
208 (test . (fboundp 'w3-mode)) 241 (test . (fboundp 'w3-mode))
213 (type . "text/plain")) 246 (type . "text/plain"))
214 ("plain" 247 ("plain"
215 (viewer . fundamental-mode) 248 (viewer . fundamental-mode)
216 (type . "text/plain")) 249 (type . "text/plain"))
217 ("enriched" 250 ("enriched"
218 (viewer . enriched-decode-region) 251 (viewer . enriched-decode)
219 (test . (fboundp 'enriched-decode)) 252 (test . (fboundp 'enriched-decode))
220 (type . "text/enriched")) 253 (type . "text/enriched"))
221 ("html" 254 ("html"
222 (viewer . mm-w3-prepare-buffer) 255 (viewer . mm-w3-prepare-buffer)
223 (test . (fboundp 'w3-prepare-buffer)) 256 (test . (fboundp 'w3-prepare-buffer))
224 (type . "text/html"))) 257 (type . "text/html")))
225 ("video" 258 ("video"
226 ("mpeg" 259 ("mpeg"
227 (viewer . "mpeg_play %s") 260 (viewer . "mpeg_play %s")
228 (type . "video/mpeg") 261 (type . "video/mpeg")
229 (test . (eq (mm-device-type) 'x)) 262 (test . (eq window-system 'x))
230 ("needsx11"))) 263 ("needsx11")))
231 ("x-world" 264 ("x-world"
232 ("x-vrml" 265 ("x-vrml"
233 (viewer . "webspace -remote %s -URL %u") 266 (viewer . "webspace -remote %s -URL %u")
234 (type . "x-world/x-vrml") 267 (type . "x-world/x-vrml")
269 Content-Type header as argument to return a boolean value for the 302 Content-Type header as argument to return a boolean value for the
270 validity. Otherwise, if it is a non-function Lisp symbol or list 303 validity. Otherwise, if it is a non-function Lisp symbol or list
271 whose car is a symbol, it is `eval'led to yield the validity. If it 304 whose car is a symbol, it is `eval'led to yield the validity. If it
272 is a string or list of strings, it represents a shell command to run 305 is a string or list of strings, it represents a shell command to run
273 to return a true or false shell value for the validity.") 306 to return a true or false shell value for the validity.")
307 (put 'mailcap-mime-data 'risky-local-variable t)
274 308
275 (defcustom mailcap-download-directory nil 309 (defcustom mailcap-download-directory nil
276 "*Directory to which `mailcap-save-binary-file' downloads files by default. 310 "*Directory to which `mailcap-save-binary-file' downloads files by default.
277 nil means your home directory." 311 nil means your home directory."
278 :type '(choice (const :tag "Home directory" nil) 312 :type '(choice (const :tag "Home directory" nil)
279 directory) 313 directory)
280 :group 'mailcap) 314 :group 'mailcap)
315
316 (defvar mailcap-poor-system-types
317 '(ms-dos ms-windows windows-nt win32 w32 mswindows)
318 "Systems that don't have a Unix-like directory hierarchy.")
281 319
282 ;;; 320 ;;;
283 ;;; Utility functions 321 ;;; Utility functions
284 ;;; 322 ;;;
285 323
353 (when (or (not mailcap-parsed-p) 391 (when (or (not mailcap-parsed-p)
354 force) 392 force)
355 (cond 393 (cond
356 (path nil) 394 (path nil)
357 ((getenv "MAILCAPS") (setq path (getenv "MAILCAPS"))) 395 ((getenv "MAILCAPS") (setq path (getenv "MAILCAPS")))
358 ((memq system-type '(ms-dos ms-windows windows-nt)) 396 ((memq system-type mailcap-poor-system-types)
359 (setq path '("~/.mailcap" "~/mail.cap" "~/etc/mail.cap"))) 397 (setq path '("~/.mailcap" "~/mail.cap" "~/etc/mail.cap")))
360 (t (setq path 398 (t (setq path
361 ;; This is per RFC 1524, specifically 399 ;; This is per RFC 1524, specifically
362 ;; with /usr before /usr/local. 400 ;; with /usr before /usr/local.
363 '("~/.mailcap" "/etc/mailcap" "/usr/etc/mailcap" 401 '("~/.mailcap" "/etc/mailcap" "/usr/etc/mailcap"
530 (wildcard '())) 568 (wildcard '()))
531 (while major 569 (while major
532 (cond 570 (cond
533 ((equal (car (car major)) minor) 571 ((equal (car (car major)) minor)
534 (setq exact (cons (cdr (car major)) exact))) 572 (setq exact (cons (cdr (car major)) exact)))
535 ((and minor (string-match (car (car major)) minor)) 573 ((and minor (string-match (concat "^" (car (car major)) "$") minor))
536 (setq wildcard (cons (cdr (car major)) wildcard)))) 574 (setq wildcard (cons (cdr (car major)) wildcard))))
537 (setq major (cdr major))) 575 (setq major (cdr major)))
538 (nconc exact wildcard))) 576 (nconc exact wildcard)))
539 577
540 (defun mailcap-unescape-mime-test (test type-info) 578 (defun mailcap-unescape-mime-test (test type-info)
587 625
588 (defvar mailcap-viewer-test-cache nil) 626 (defvar mailcap-viewer-test-cache nil)
589 627
590 (defun mailcap-viewer-passes-test (viewer-info type-info) 628 (defun mailcap-viewer-passes-test (viewer-info type-info)
591 "Return non-nil iff viewer specified by VIEWER-INFO passes its test clause. 629 "Return non-nil iff viewer specified by VIEWER-INFO passes its test clause.
592 Also retun non-nil if it has no test clause. TYPE-INFO is an argument 630 Also return non-nil if it has no test clause. TYPE-INFO is an argument
593 to supply to the test." 631 to supply to the test."
594 (let* ((test-info (assq 'test viewer-info)) 632 (let* ((test-info (assq 'test viewer-info))
595 (test (cdr test-info)) 633 (test (cdr test-info))
596 (otest test) 634 (otest test)
597 (viewer (cdr (assoc 'viewer viewer-info))) 635 (viewer (cdr (assoc 'viewer viewer-info)))
616 (t 654 (t
617 (setq test (mailcap-unescape-mime-test test type-info) 655 (setq test (mailcap-unescape-mime-test test type-info)
618 test (list shell-file-name nil nil nil 656 test (list shell-file-name nil nil nil
619 shell-command-switch test) 657 shell-command-switch test)
620 status (apply 'call-process test)) 658 status (apply 'call-process test))
621 (= 0 status)))) 659 (eq 0 status))))
622 (push (list otest result) mailcap-viewer-test-cache) 660 (push (list otest result) mailcap-viewer-test-cache)
623 result))) 661 result)))
624 662
625 (defun mailcap-add-mailcap-entry (major minor info) 663 (defun mailcap-add-mailcap-entry (major minor info)
626 (let ((old-major (assoc major mailcap-mime-data))) 664 (let ((old-major (assoc major mailcap-mime-data)))
627 (if (null old-major) ; New major area 665 (if (null old-major) ; New major area
628 (setq mailcap-mime-data 666 (setq mailcap-mime-data
629 (cons (cons major (list (cons minor info))) 667 (cons (cons major (list (cons minor info)))
630 mailcap-mime-data)) 668 mailcap-mime-data))
631 (let ((cur-minor (assoc minor old-major))) 669 (let ((cur-minor (assoc minor old-major)))
632 (cond 670 (cond
633 ((or (null cur-minor) ; New minor area, or 671 ((or (null cur-minor) ; New minor area, or
634 (assq 'test info)) ; Has a test, insert at beginning 672 (assq 'test info)) ; Has a test, insert at beginning
635 (setcdr old-major (cons (cons minor info) (cdr old-major)))) 673 (setcdr old-major (cons (cons minor info) (cdr old-major))))
636 ((and (not (assq 'test info)) ; No test info, replace completely 674 ((and (not (assq 'test info)) ; No test info, replace completely
637 (not (assq 'test cur-minor)) 675 (not (assq 'test cur-minor))
638 (equal (assq 'viewer info) ; Keep alternative viewer 676 (equal (assq 'viewer info) ; Keep alternative viewer
639 (assq 'viewer cur-minor))) 677 (assq 'viewer cur-minor)))
640 (setcdr cur-minor info)) 678 (setcdr cur-minor info))
641 (t 679 (t
642 (setcdr old-major (cons (cons minor info) (cdr old-major)))))) 680 (setcdr old-major (cons (cons minor info) (cdr old-major))))))
643 ))) 681 )))
644 682
645 (defun mailcap-add (type viewer &optional test) 683 (defun mailcap-add (type viewer &optional test)
646 "Add VIEWER as a handler for TYPE. 684 "Add VIEWER as a handler for TYPE.
647 If TEST is not given, it defaults to t." 685 If TEST is not given, it defaults to t."
720 ((and (null viewer) (not (equal major "default")) request) 758 ((and (null viewer) (not (equal major "default")) request)
721 (mailcap-mime-info "default" request)) 759 (mailcap-mime-info "default" request))
722 ((or (null request) (equal request "")) 760 ((or (null request) (equal request ""))
723 (mailcap-unescape-mime-test (cdr (assq 'viewer viewer)) info)) 761 (mailcap-unescape-mime-test (cdr (assq 'viewer viewer)) info))
724 ((stringp request) 762 ((stringp request)
725 (if (or (eq request 'test) (eq request 'viewer)) 763 (mailcap-unescape-mime-test
726 (mailcap-unescape-mime-test 764 (cdr-safe (assoc request viewer)) info))
727 (cdr-safe (assoc request viewer)) info)))
728 ((eq request 'all) 765 ((eq request 'all)
729 passed) 766 passed)
730 (t 767 (t
731 ;; MUST make a copy *sigh*, else we modify mailcap-mime-data 768 ;; MUST make a copy *sigh*, else we modify mailcap-mime-data
732 (setq viewer (copy-sequence viewer)) 769 (setq viewer (copy-sequence viewer))
805 (".rgb" . "image/x-rgb") 842 (".rgb" . "image/x-rgb")
806 (".rtf" . "application/rtf") 843 (".rtf" . "application/rtf")
807 (".rtx" . "text/richtext") 844 (".rtx" . "text/richtext")
808 (".sh" . "application/x-sh") 845 (".sh" . "application/x-sh")
809 (".sit" . "application/x-stuffit") 846 (".sit" . "application/x-stuffit")
847 (".siv" . "application/sieve")
810 (".snd" . "audio/basic") 848 (".snd" . "audio/basic")
811 (".src" . "application/x-wais-source") 849 (".src" . "application/x-wais-source")
812 (".tar" . "archive/tar") 850 (".tar" . "archive/tar")
813 (".tcl" . "application/x-tcl") 851 (".tcl" . "application/x-tcl")
814 (".tex" . "application/x-tex") 852 (".tex" . "application/x-tex")
822 (".txt" . "text/plain") 860 (".txt" . "text/plain")
823 (".vbs" . "video/mpeg") 861 (".vbs" . "video/mpeg")
824 (".vox" . "audio/basic") 862 (".vox" . "audio/basic")
825 (".vrml" . "x-world/x-vrml") 863 (".vrml" . "x-world/x-vrml")
826 (".wav" . "audio/x-wav") 864 (".wav" . "audio/x-wav")
865 (".xls" . "application/vnd.ms-excel")
827 (".wrl" . "x-world/x-vrml") 866 (".wrl" . "x-world/x-vrml")
828 (".xbm" . "image/xbm") 867 (".xbm" . "image/xbm")
829 (".xpm" . "image/xpm") 868 (".xpm" . "image/xpm")
830 (".xwd" . "image/windowdump") 869 (".xwd" . "image/windowdump")
831 (".zip" . "application/zip") 870 (".zip" . "application/zip")
848 (when (or (not mailcap-mimetypes-parsed-p) 887 (when (or (not mailcap-mimetypes-parsed-p)
849 force) 888 force)
850 (cond 889 (cond
851 (path nil) 890 (path nil)
852 ((getenv "MIMETYPES") (setq path (getenv "MIMETYPES"))) 891 ((getenv "MIMETYPES") (setq path (getenv "MIMETYPES")))
853 ((memq system-type '(ms-dos ms-windows windows-nt)) 892 ((memq system-type mailcap-poor-system-types)
854 (setq path '("~/mime.typ" "~/etc/mime.typ"))) 893 (setq path '("~/mime.typ" "~/etc/mime.typ")))
855 (t (setq path 894 (t (setq path
856 ;; mime.types seems to be the normal name, definitely so 895 ;; mime.types seems to be the normal name, definitely so
857 ;; on current GNUish systems. The search order follows 896 ;; on current GNUish systems. The search order follows
858 ;; that for mailcap. 897 ;; that for mailcap.
944 (cdr l)))) 983 (cdr l))))
945 mailcap-mime-data))))) 984 mailcap-mime-data)))))
946 985
947 (provide 'mailcap) 986 (provide 'mailcap)
948 987
988 ;;; arch-tag: 1fd4f9c9-c305-4d2e-9747-3a4d45baa0bd
949 ;;; mailcap.el ends here 989 ;;; mailcap.el ends here