1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-18 18:05:07 +00:00

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

(browse-url-mail): Use it.
This commit is contained in:
Eli Zaretskii 2004-03-07 19:59:15 +00:00
parent 81639ac327
commit 1abcd08819

View File

@ -1301,9 +1301,11 @@ Default to the URL around or before point."
;; --- 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 @@ 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: "))
(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 ---