mailcap search path

Daiki Ueno ueno @ ueda.info.waseda.ac.jp
2000年 1月 12日 (水) 02:43:09 JST


RFC 1524 の "Location of the Mailcap File(s)" によると、
UNIX 上では、mailcap の検索パスを指定できることになっていますが、
mime-view.el では、mailcap-file (~/.mailcap) だけを参照するようです。
そこで、ding の mailcap.el から該当部分を切り取って、以下のようなもの
を書いてみました。

;; 汚い部分なので、どこに入れるべきかは判りかねます。^_^;;

(defcustom mailcap-files 
  (if (memq system-type '(ms-dos ms-windows windows-nt))
      '("~/mail.cap" "~/etc/mail.cap" "~/.mailcap")
    '("~/.mailcap" "/etc/mailcap" "/usr/etc/mailcap"
      "/usr/local/etc/mailcap"))
  "*Search path of mailcap files."
  :group 'mime
  :type '(repeat file))

(defun mailcap-parse-files (&optional path order)
  "Parse out all mailcaps specified in a unix-style path string PATH.
If optional argument ORDER is a function, result is sorted by it.
If optional argument ORDER is not specified, result is sorted original
order.  Otherwise result is not sorted."
  (let ((mailcap-files 
	 (if (or path (setq path (getenv "MAILCAPS")))
	     (split-string path
			   (if (memq system-type
				     '(ms-dos ms-windows windows-nt))
			       ";"
			     ":"))
	   mailcap-files))
	entries)
    (dolist (file mailcap-files)
      (if (file-readable-p file)
	  (setq entries (nconc entries (mailcap-parse-file file t)))))
    (cond ((functionp order) (sort entries order))
	  ((null order) (nreverse entries))
	  (t entries))))

--
Daiki Ueno (ueno @ ueda.info.waseda.ac.jp)




More information about the Emacs-mime-ja mailing list