Commit 1abcd088 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

(rfc2368-parse-mailto-url): Autoload.

(browse-url-mail): Use it.
parent 81639ac3
......@@ -1301,9 +1301,11 @@ Default to the URL around or before point."
;; --- mailto ---
(autoload 'rfc2368-parse-mailto-url "rfc2368")
(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 @@ When called non-interactively, optional second argument NEW-WINDOW is
used instead of `browse-url-new-window-flag'."
(interactive (browse-url-interactive-arg "Mailto URL: "))
(let ((to (if (string-match "^mailto:" url)
(substring url 7)
(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 ---
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment