Mercurial > emacs
changeset 54305:c53b285fdf88
(rfc2368-parse-mailto-url): Autoload.
(browse-url-mail): Use it.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sun, 07 Mar 2004 19:59:15 +0000 |
parents | d61b01de8cdf |
children | b3fd1d53ef39 |
files | lisp/net/browse-url.el |
diffstat | 1 files changed, 20 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/browse-url.el Sun Mar 07 19:55:42 2004 +0000 +++ b/lisp/net/browse-url.el Sun Mar 07 19:59:15 2004 +0000 @@ -1301,9 +1301,11 @@ ;; --- mailto --- +(autoload 'rfc2368-parse-mailto-url "rfc2368") + ;;;###autoload (defun browse-url-mail (url &optional new-window) - "Open a new mail message buffer within Emacs. + "Open a new mail message buffer within Emacs for the RFC 2368 URL. Default to using the mailto: URL around or before point as the recipient's address. Supplying a non-nil interactive prefix argument will cause the mail to be composed in another window rather than the @@ -1318,14 +1320,24 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "Mailto URL: ")) (save-excursion - (let ((to (if (string-match "^mailto:" url) - (substring url 7) - url))) + (let* ((alist (rfc2368-parse-mailto-url url)) + (to (assoc "To" alist)) + (subject (assoc "Subject" alist)) + (body (assoc "Body" alist)) + (rest (delete to (delete subject (delete body alist)))) + (to (cdr to)) + (subject (cdr subject)) + (body (cdr body)) + (mail-citation-hook (unless body mail-citation-hook))) (if (browse-url-maybe-new-window new-window) - (compose-mail-other-window to nil nil nil - (list 'insert-buffer (current-buffer))) - (compose-mail to nil nil nil nil - (list 'insert-buffer (current-buffer))))))) + (compose-mail-other-window to subject rest nil + (if body + (list 'insert body) + (list 'insert-buffer (current-buffer)))) + (compose-mail to subject rest nil nil + (if body + (list 'insert body) + (list 'insert-buffer (current-buffer)))))))) ;; --- Random browser ---