;; Handler for mailto URLs with early Emacs 22 versions on Mac OS X ;; Bug: If an Emacs window (frame) is present, it will be reused (instead ;; of getting a new one), then automatically closed when Mutt is quit. (require 'url-parse) (defun url-mailto (url) "Handler for mailto URLs." (setenv "LC_CTYPE" "fr_FR.UTF-8") (setenv "LC_MESSAGES" "fr_FR.UTF-8") (setenv "PATH" (concat (getenv "HOME") "/bin:/usr/local/bin" ":/opt/local/bin:/usr/bin:/bin")) (setq locale-coding-system 'utf-8) (prefer-coding-system 'utf-8) (when (not (fboundp 'gnuserv-start)) (locate-library "gnuserv-compat") (load-library "gnuserv-compat")) (gnuserv-start) (defadvice term-handle-exit (after close-emacs) (smart-close)) (ad-activate 'term-handle-exit) (set-buffer (apply 'make-term "Mutt" "mutt" nil (append (mutt-opt (url-attributes url)) (list (url-filename url))))) (term-mode) (term-char-mode) (switch-to-buffer "*Mutt*") ) (defun mutt-opt (attr-list) (if attr-list (append (mutt-opt-aux (car attr-list)) (mutt-opt (cdr attr-list)))) ) (defun mutt-opt-aux (attr) (let ((opt (cdr (assoc (car attr) '(("bcc" . "-b") ("cc" . "-c") ("subject" . "-s")))))) (if opt (list opt (url-unhex-string (cdr attr))))) ) (provide 'url-mailto) ;; $Id: url-mailto-22-0.el 42397 2011-03-06 21:17:24Z vinc17/prunille $