summaryrefslogtreecommitdiff
path: root/lisp/net/goto-addr.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/net/goto-addr.el')
-rw-r--r--lisp/net/goto-addr.el27
1 files changed, 18 insertions, 9 deletions
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el
index 98a8b0a29e1..e1ae498923b 100644
--- a/lisp/net/goto-addr.el
+++ b/lisp/net/goto-addr.el
@@ -105,12 +105,18 @@ A value of t means there is no limit--fontify regardless of the size."
"A regular expression probably matching an e-mail address.")
(defvar goto-address-url-regexp
- (concat "\\<\\("
- (mapconcat 'identity
- (delete "mailto:" (copy-sequence thing-at-point-uri-schemes))
- "\\|")
- "\\)"
- thing-at-point-url-path-regexp)
+ (concat
+ "\\<\\("
+ (mapconcat 'identity
+ (delete "mailto:"
+ ;; Remove `data:', as it's not terribly useful to follow
+ ;; those. Leaving them causes `use Data::Dumper;' to be
+ ;; fontified oddly in Perl files.
+ (delete "data:"
+ (copy-sequence thing-at-point-uri-schemes)))
+ "\\|")
+ "\\)"
+ thing-at-point-url-path-regexp)
;; (concat "\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|"
;; "telnet\\|wais\\):\\(//[-a-zA-Z0-9_.]+:"
;; "[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*"
@@ -123,7 +129,7 @@ A value of t means there is no limit--fontify regardless of the size."
'goto-address-at-point)
(define-key m (kbd "C-c RET") 'goto-address-at-point)
m)
- "keymap to hold goto-addr's mouse key defs under highlighted URLs.")
+ "Keymap to hold goto-addr's mouse key defs under highlighted URLs.")
(defcustom goto-address-url-face 'bold
"Face to use for URLs."
@@ -168,6 +174,7 @@ and `goto-address-fontify-p'."
(overlay-put this-overlay 'evaporate t)
(overlay-put this-overlay
'mouse-face goto-address-url-mouse-face)
+ (overlay-put this-overlay 'follow-link t)
(overlay-put this-overlay
'help-echo "mouse-2, C-c RET: follow URL")
(overlay-put this-overlay
@@ -183,6 +190,7 @@ and `goto-address-fontify-p'."
(overlay-put this-overlay 'evaporate t)
(overlay-put this-overlay 'mouse-face
goto-address-mail-mouse-face)
+ (overlay-put this-overlay 'follow-link t)
(overlay-put this-overlay
'help-echo "mouse-2, C-c RET: mail this address")
(overlay-put this-overlay
@@ -204,7 +212,7 @@ Send mail to address at point. See documentation for
there, then load the URL at or before point."
(interactive (list last-input-event))
(save-excursion
- (if event (mouse-set-point event))
+ (if event (posn-set-point (event-end event)))
(let ((address (save-excursion (goto-address-find-address-at-point))))
(if (and address
(save-excursion
@@ -234,7 +242,8 @@ address. If no e-mail address found, return nil."
"Sets up goto-address functionality in the current buffer.
Allows user to use mouse/keyboard command to click to go to a URL
or to send e-mail.
-By default, goto-address binds to mouse-2 and C-c RET.
+By default, goto-address binds `goto-address-at-point' to mouse-2 and C-c RET
+only on URLs and e-mail addresses.
Also fontifies the buffer appropriately (see `goto-address-fontify-p' and
`goto-address-highlight-p' for more information)."