diff options
Diffstat (limited to 'lisp/net/goto-addr.el')
-rw-r--r-- | lisp/net/goto-addr.el | 27 |
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)." |