[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/gnus/mailcap.el
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/gnus/mailcap.el |
Date: |
Sat, 04 Sep 2004 09:45:21 -0400 |
Index: emacs/lisp/gnus/mailcap.el
diff -c emacs/lisp/gnus/mailcap.el:1.9 emacs/lisp/gnus/mailcap.el:1.10
*** emacs/lisp/gnus/mailcap.el:1.9 Wed Apr 21 19:15:28 2004
--- emacs/lisp/gnus/mailcap.el Sat Sep 4 13:13:43 2004
***************
*** 1,5 ****
;;; mailcap.el --- MIME media types configuration
! ;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
;; Author: William M. Perry <address@hidden>
;; Lars Magne Ingebrigtsen <address@hidden>
--- 1,6 ----
;;; mailcap.el --- MIME media types configuration
! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
! ;; Free Software Foundation, Inc.
;; Author: William M. Perry <address@hidden>
;; Lars Magne Ingebrigtsen <address@hidden>
***************
*** 46,59 ****
(modify-syntax-entry ?{ "(" table)
(modify-syntax-entry ?} ")" table)
table)
! "A syntax table for parsing sgml attributes.")
;; 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
;; customize the Lisp viewers and rely on the normal configuration
;; files for the rest? -- fx
(defvar mailcap-mime-data
! '(("application"
("x-x509-ca-cert"
(viewer . ssl-view-site-cert)
(test . (fboundp 'ssl-view-site-cert))
--- 47,82 ----
(modify-syntax-entry ?{ "(" table)
(modify-syntax-entry ?} ")" table)
table)
! "A syntax table for parsing SGML attributes.")
!
! (eval-and-compile
! (when (featurep 'xemacs)
! (condition-case nil
! (require 'lpr)
! (error nil))))
!
! (defvar mailcap-print-command
! (mapconcat 'identity
! (cons (if (boundp 'lpr-command)
! lpr-command
! "lpr")
! (when (boundp 'lpr-switches)
! (if (stringp lpr-switches)
! (list lpr-switches)
! lpr-switches)))
! " ")
! "Shell command (including switches) used to print Postscript 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
;; customize the Lisp viewers and rely on the normal configuration
;; files for the rest? -- fx
(defvar mailcap-mime-data
! `(("application"
! ("vnd.ms-excel"
! (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))
***************
*** 66,88 ****
(viewer . mailcap-save-binary-file)
(non-viewer . t)
(type . "application/octet-stream"))
- ;;; XEmacs says `ns' device-type not implemented.
- ;; ("dvi"
- ;; (viewer . "open %s")
- ;; (type . "application/dvi")
- ;; (test . (eq (mm-device-type) 'ns)))
("dvi"
! (viewer . "xdvi %s")
! (test . (eq (mm-device-type) 'x))
("needsx11")
! (type . "application/dvi"))
("dvi"
(viewer . "dvitty %s")
(test . (not (getenv "DISPLAY")))
! (type . "application/dvi"))
("emacs-lisp"
(viewer . mailcap-maybe-eval)
(type . "application/emacs-lisp"))
("x-tar"
(viewer . mailcap-save-binary-file)
(non-viewer . t)
--- 89,111 ----
(viewer . mailcap-save-binary-file)
(non-viewer . t)
(type . "application/octet-stream"))
("dvi"
! (viewer . "xdvi -safer %s")
! (test . (eq window-system 'x))
("needsx11")
! (type . "application/dvi")
! ("print" . "dvips -qRP %s"))
("dvi"
(viewer . "dvitty %s")
(test . (not (getenv "DISPLAY")))
! (type . "application/dvi")
! ("print" . "dvips -qRP %s"))
("emacs-lisp"
(viewer . mailcap-maybe-eval)
(type . "application/emacs-lisp"))
+ ("x-emacs-lisp"
+ (viewer . mailcap-maybe-eval)
+ (type . "application/x-emacs-lisp"))
("x-tar"
(viewer . mailcap-save-binary-file)
(non-viewer . t)
***************
*** 114,149 ****
("copiousoutput"))
;; Prefer free viewers.
("pdf"
! (viewer . "gv %s")
(type . "application/pdf")
! (test . window-system))
("pdf"
(viewer . "xpdf %s")
(type . "application/pdf")
! (test . (eq (mm-device-type) 'x)))
("pdf"
(viewer . "acroread %s")
! (type . "application/pdf"))
! ;;; XEmacs says `ns' device-type not implemented.
! ;; ("postscript"
! ;; (viewer . "open %s")
! ;; (type . "application/postscript")
! ;; (test . (eq (mm-device-type) 'ns)))
("postscript"
(viewer . "gv -safer %s")
(type . "application/postscript")
(test . window-system)
("needsx11"))
("postscript"
(viewer . "ghostview -dSAFER %s")
(type . "application/postscript")
! (test . (eq (mm-device-type) 'x))
("needsx11"))
("postscript"
(viewer . "ps2ascii %s")
(type . "application/postscript")
(test . (not (getenv "DISPLAY")))
! ("copiousoutput")))
("audio"
("x-mpeg"
(viewer . "maplay %s")
--- 137,188 ----
("copiousoutput"))
;; Prefer free viewers.
("pdf"
! (viewer . "gv -safer %s")
(type . "application/pdf")
! (test . window-system)
! ("print" . ,(concat "pdf2ps %s - | " mailcap-print-command)))
("pdf"
(viewer . "xpdf %s")
(type . "application/pdf")
! ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
! (test . (eq window-system 'x)))
("pdf"
(viewer . "acroread %s")
! (type . "application/pdf")
! ("print" . ,(concat "cat %s | acroread -toPostScript | "
! mailcap-print-command))
! (test . window-system))
! ("pdf"
! (viewer . ,(concat "pdftotext %s -"))
! (type . "application/pdf")
! ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
! ("copiousoutput"))
("postscript"
(viewer . "gv -safer %s")
(type . "application/postscript")
(test . window-system)
+ ("print" . ,(concat mailcap-print-command " %s"))
("needsx11"))
("postscript"
(viewer . "ghostview -dSAFER %s")
(type . "application/postscript")
! (test . (eq window-system 'x))
! ("print" . ,(concat mailcap-print-command " %s"))
("needsx11"))
("postscript"
(viewer . "ps2ascii %s")
(type . "application/postscript")
(test . (not (getenv "DISPLAY")))
! ("print" . ,(concat mailcap-print-command " %s"))
! ("copiousoutput"))
! ("sieve"
! (viewer . sieve-mode)
! (test . (fboundp 'sieve-mode))
! (type . "application/sieve"))
! ("pgp-keys"
! (viewer . "gpg --import --interactive --verbose")
! (type . "application/pgp-keys")
! ("needsterminal")))
("audio"
("x-mpeg"
(viewer . "maplay %s")
***************
*** 173,206 ****
(viewer . "xwud -in %s")
(type . "image/x-xwd")
("compose" . "xwd -frame > %s")
! (test . (eq (mm-device-type) 'x))
("needsx11"))
("x11-dump"
(viewer . "xwud -in %s")
(type . "image/x-xwd")
("compose" . "xwd -frame > %s")
! (test . (eq (mm-device-type) 'x))
("needsx11"))
("windowdump"
(viewer . "xwud -in %s")
(type . "image/x-xwd")
("compose" . "xwd -frame > %s")
! (test . (eq (mm-device-type) 'x))
("needsx11"))
- ;;; XEmacs says `ns' device-type not implemented.
- ;; (".*"
- ;; (viewer . "aopen %s")
- ;; (type . "image/*")
- ;; (test . (eq (mm-device-type) 'ns)))
(".*"
(viewer . "display %s")
(type . "image/*")
! (test . (eq (mm-device-type) 'x))
("needsx11"))
(".*"
(viewer . "ee %s")
(type . "image/*")
! (test . (eq (mm-device-type) 'x))
("needsx11")))
("text"
("plain"
--- 212,240 ----
(viewer . "xwud -in %s")
(type . "image/x-xwd")
("compose" . "xwd -frame > %s")
! (test . (eq window-system 'x))
("needsx11"))
("x11-dump"
(viewer . "xwud -in %s")
(type . "image/x-xwd")
("compose" . "xwd -frame > %s")
! (test . (eq window-system 'x))
("needsx11"))
("windowdump"
(viewer . "xwud -in %s")
(type . "image/x-xwd")
("compose" . "xwd -frame > %s")
! (test . (eq window-system 'x))
("needsx11"))
(".*"
(viewer . "display %s")
(type . "image/*")
! (test . (eq window-system 'x))
("needsx11"))
(".*"
(viewer . "ee %s")
(type . "image/*")
! (test . (eq window-system 'x))
("needsx11")))
("text"
("plain"
***************
*** 215,221 ****
(viewer . fundamental-mode)
(type . "text/plain"))
("enriched"
! (viewer . enriched-decode-region)
(test . (fboundp 'enriched-decode))
(type . "text/enriched"))
("html"
--- 249,255 ----
(viewer . fundamental-mode)
(type . "text/plain"))
("enriched"
! (viewer . enriched-decode)
(test . (fboundp 'enriched-decode))
(type . "text/enriched"))
("html"
***************
*** 226,232 ****
("mpeg"
(viewer . "mpeg_play %s")
(type . "video/mpeg")
! (test . (eq (mm-device-type) 'x))
("needsx11")))
("x-world"
("x-vrml"
--- 260,266 ----
("mpeg"
(viewer . "mpeg_play %s")
(type . "video/mpeg")
! (test . (eq window-system 'x))
("needsx11")))
("x-world"
("x-vrml"
***************
*** 280,285 ****
--- 314,323 ----
directory)
:group 'mailcap)
+ (defvar mailcap-poor-system-types
+ '(ms-dos ms-windows windows-nt win32 w32 mswindows)
+ "Systems that don't have a Unix-like directory hierarchy.")
+
;;;
;;; Utility functions
;;;
***************
*** 356,362 ****
(cond
(path nil)
((getenv "MAILCAPS") (setq path (getenv "MAILCAPS")))
! ((memq system-type '(ms-dos ms-windows windows-nt))
(setq path '("~/.mailcap" "~/mail.cap" "~/etc/mail.cap")))
(t (setq path
;; This is per RFC 1524, specifically
--- 394,400 ----
(cond
(path nil)
((getenv "MAILCAPS") (setq path (getenv "MAILCAPS")))
! ((memq system-type mailcap-poor-system-types)
(setq path '("~/.mailcap" "~/mail.cap" "~/etc/mail.cap")))
(t (setq path
;; This is per RFC 1524, specifically
***************
*** 533,539 ****
(cond
((equal (car (car major)) minor)
(setq exact (cons (cdr (car major)) exact)))
! ((and minor (string-match (car (car major)) minor))
(setq wildcard (cons (cdr (car major)) wildcard))))
(setq major (cdr major)))
(nconc exact wildcard)))
--- 571,577 ----
(cond
((equal (car (car major)) minor)
(setq exact (cons (cdr (car major)) exact)))
! ((and minor (string-match (concat "^" (car (car major)) "$") minor))
(setq wildcard (cons (cdr (car major)) wildcard))))
(setq major (cdr major)))
(nconc exact wildcard)))
***************
*** 590,596 ****
(defun mailcap-viewer-passes-test (viewer-info type-info)
"Return non-nil iff viewer specified by VIEWER-INFO passes its test clause.
! Also retun non-nil if it has no test clause. TYPE-INFO is an argument
to supply to the test."
(let* ((test-info (assq 'test viewer-info))
(test (cdr test-info))
--- 628,634 ----
(defun mailcap-viewer-passes-test (viewer-info type-info)
"Return non-nil iff viewer specified by VIEWER-INFO passes its test clause.
! Also return non-nil if it has no test clause. TYPE-INFO is an argument
to supply to the test."
(let* ((test-info (assq 'test viewer-info))
(test (cdr test-info))
***************
*** 619,625 ****
test (list shell-file-name nil nil nil
shell-command-switch test)
status (apply 'call-process test))
! (= 0 status))))
(push (list otest result) mailcap-viewer-test-cache)
result)))
--- 657,663 ----
test (list shell-file-name nil nil nil
shell-command-switch test)
status (apply 'call-process test))
! (eq 0 status))))
(push (list otest result) mailcap-viewer-test-cache)
result)))
***************
*** 629,646 ****
(setq mailcap-mime-data
(cons (cons major (list (cons minor info)))
mailcap-mime-data))
! (let ((cur-minor (assoc minor old-major)))
! (cond
! ((or (null cur-minor) ; New minor area, or
! (assq 'test info)) ; Has a test, insert at beginning
! (setcdr old-major (cons (cons minor info) (cdr old-major))))
! ((and (not (assq 'test info)) ; No test info, replace completely
! (not (assq 'test cur-minor))
(equal (assq 'viewer info) ; Keep alternative viewer
(assq 'viewer cur-minor)))
! (setcdr cur-minor info))
! (t
! (setcdr old-major (cons (cons minor info) (cdr old-major))))))
)))
(defun mailcap-add (type viewer &optional test)
--- 667,684 ----
(setq mailcap-mime-data
(cons (cons major (list (cons minor info)))
mailcap-mime-data))
! (let ((cur-minor (assoc minor old-major)))
! (cond
! ((or (null cur-minor) ; New minor area, or
! (assq 'test info)) ; Has a test, insert at beginning
! (setcdr old-major (cons (cons minor info) (cdr old-major))))
! ((and (not (assq 'test info)) ; No test info, replace completely
! (not (assq 'test cur-minor))
(equal (assq 'viewer info) ; Keep alternative viewer
(assq 'viewer cur-minor)))
! (setcdr cur-minor info))
! (t
! (setcdr old-major (cons (cons minor info) (cdr old-major))))))
)))
(defun mailcap-add (type viewer &optional test)
***************
*** 723,731 ****
((or (null request) (equal request ""))
(mailcap-unescape-mime-test (cdr (assq 'viewer viewer)) info))
((stringp request)
! (if (or (eq request 'test) (eq request 'viewer))
! (mailcap-unescape-mime-test
! (cdr-safe (assoc request viewer)) info)))
((eq request 'all)
passed)
(t
--- 761,768 ----
((or (null request) (equal request ""))
(mailcap-unescape-mime-test (cdr (assq 'viewer viewer)) info))
((stringp request)
! (mailcap-unescape-mime-test
! (cdr-safe (assoc request viewer)) info))
((eq request 'all)
passed)
(t
***************
*** 808,813 ****
--- 845,851 ----
(".rtx" . "text/richtext")
(".sh" . "application/x-sh")
(".sit" . "application/x-stuffit")
+ (".siv" . "application/sieve")
(".snd" . "audio/basic")
(".src" . "application/x-wais-source")
(".tar" . "archive/tar")
***************
*** 825,830 ****
--- 863,869 ----
(".vox" . "audio/basic")
(".vrml" . "x-world/x-vrml")
(".wav" . "audio/x-wav")
+ (".xls" . "application/vnd.ms-excel")
(".wrl" . "x-world/x-vrml")
(".xbm" . "image/xbm")
(".xpm" . "image/xpm")
***************
*** 851,857 ****
(cond
(path nil)
((getenv "MIMETYPES") (setq path (getenv "MIMETYPES")))
! ((memq system-type '(ms-dos ms-windows windows-nt))
(setq path '("~/mime.typ" "~/etc/mime.typ")))
(t (setq path
;; mime.types seems to be the normal name, definitely so
--- 890,896 ----
(cond
(path nil)
((getenv "MIMETYPES") (setq path (getenv "MIMETYPES")))
! ((memq system-type mailcap-poor-system-types)
(setq path '("~/mime.typ" "~/etc/mime.typ")))
(t (setq path
;; mime.types seems to be the normal name, definitely so
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/gnus/mailcap.el,
Miles Bader <=