mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-28 07:45:00 +00:00
Introduce a new `browse-url-mailto-function' variable for mailto: URLs.
This commit is contained in:
parent
4b8b6f602a
commit
876d1684cf
3
etc/NEWS
3
etc/NEWS
@ -317,6 +317,9 @@ Just set shell-dir-cookie-re to an appropriate regexp.
|
||||
|
||||
** Archive Mode has basic support to browse 7z archives.
|
||||
|
||||
** browse-url has gotten a new variable that is used for mailto: URLs,
|
||||
`browse-url-mailto-function', which defaults to `browse-url-mail'.
|
||||
|
||||
** ERC changes
|
||||
|
||||
*** New vars `erc-autojoin-timing' and `erc-autojoin-delay'.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2010-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* net/browse-url.el (browse-url-browser-function): Revert the
|
||||
default back to the previous value, since the new value broke
|
||||
mailclient.el.
|
||||
(browse-url-mailto-function): New variable for mailto: URLs.
|
||||
(browse-url): Use the new variable for mailto: URLs.
|
||||
|
||||
2010-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* eshell/esh-cmd.el (eshell-parse-command):
|
||||
|
@ -216,13 +216,13 @@
|
||||
|
||||
;;;###autoload
|
||||
(defcustom browse-url-browser-function
|
||||
`(("\\`mailto:" . browse-url-mail)
|
||||
("." .
|
||||
,(cond
|
||||
((memq system-type '(windows-nt ms-dos cygwin))
|
||||
'browse-url-default-windows-browser)
|
||||
((memq system-type '(darwin)) 'browse-url-default-macosx-browser)
|
||||
(t 'browse-url-default-browser))))
|
||||
(cond
|
||||
((memq system-type '(windows-nt ms-dos cygwin))
|
||||
'browse-url-default-windows-browser)
|
||||
((memq system-type '(darwin))
|
||||
'browse-url-default-macosx-browser)
|
||||
(t
|
||||
'browse-url-default-browser))
|
||||
"Function to display the current buffer in a WWW browser.
|
||||
This is used by the `browse-url-at-point', `browse-url-at-mouse', and
|
||||
`browse-url-of-file' commands.
|
||||
@ -265,6 +265,18 @@ regexp should probably be \".\" to specify a default browser."
|
||||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
|
||||
(defcustom browse-url-mailto-function 'browse-url-mail
|
||||
"Function to display mailto: links.
|
||||
This variable uses the same syntax as the
|
||||
`browse-url-browser-function' variable. If the
|
||||
`browse-url-mailto-function' variable is nil, that variable will
|
||||
be used instead."
|
||||
:type '(choice
|
||||
(function-item :tag "Emacs Mail" :value browse-url-mail)
|
||||
(function-item :tag "None" nil))
|
||||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
|
||||
(defcustom browse-url-netscape-program "netscape"
|
||||
;; Info about netscape-remote from Karl Berry.
|
||||
"The name by which to invoke Netscape.
|
||||
@ -780,22 +792,27 @@ narrowed."
|
||||
(defun browse-url (url &rest args)
|
||||
"Ask a WWW browser to load URL.
|
||||
Prompts for a URL, defaulting to the URL at or before point. Variable
|
||||
`browse-url-browser-function' says which browser to use."
|
||||
`browse-url-browser-function' says which browser to use.
|
||||
If the URL is a mailto: URL, consult `browse-url-mailto-function'
|
||||
first, if that exists."
|
||||
(interactive (browse-url-interactive-arg "URL: "))
|
||||
(unless (called-interactively-p 'interactive)
|
||||
(setq args (or args (list browse-url-new-window-flag))))
|
||||
(let ((process-environment (copy-sequence process-environment)))
|
||||
(let ((process-environment (copy-sequence process-environment))
|
||||
(function (or (and (string-match "\\`mailto:" url)
|
||||
browse-url-mailto-function)
|
||||
browse-url-browser-function)))
|
||||
;; When connected to various displays, be careful to use the display of
|
||||
;; the currently selected frame, rather than the original start display,
|
||||
;; which may not even exist any more.
|
||||
(if (stringp (frame-parameter (selected-frame) 'display))
|
||||
(setenv "DISPLAY" (frame-parameter (selected-frame) 'display)))
|
||||
(if (and (consp browse-url-browser-function)
|
||||
(not (functionp browse-url-browser-function)))
|
||||
(if (and (consp function)
|
||||
(not (functionp function)))
|
||||
;; The `function' can be an alist; look down it for first match
|
||||
;; and apply the function (which might be a lambda).
|
||||
(catch 'done
|
||||
(dolist (bf browse-url-browser-function)
|
||||
(dolist (bf function)
|
||||
(when (string-match (car bf) url)
|
||||
(apply (cdr bf) url args)
|
||||
(throw 'done t)))
|
||||
@ -803,7 +820,7 @@ Prompts for a URL, defaulting to the URL at or before point. Variable
|
||||
url))
|
||||
;; Unbound symbols go down this leg, since void-function from
|
||||
;; apply is clearer than wrong-type-argument from dolist.
|
||||
(apply browse-url-browser-function url args))))
|
||||
(apply function url args))))
|
||||
|
||||
;;;###autoload
|
||||
(defun browse-url-at-point (&optional arg)
|
||||
|
Loading…
Reference in New Issue
Block a user