changeset 55757:5806629f9848

(browse-url-interactive-arg): Enable user to explicitly select the text to be taken as URL.
author Juanma Barranquero <lekktu@gmail.com>
date Sun, 23 May 2004 22:35:59 +0000
parents 11d33fd7f8c4
children 8f9010d2a01e
files lisp/net/browse-url.el
diffstat 1 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/net/browse-url.el	Sun May 23 21:05:08 2004 +0000
+++ b/lisp/net/browse-url.el	Sun May 23 22:35:59 2004 +0000
@@ -577,13 +577,21 @@
 
 (defun browse-url-interactive-arg (prompt)
   "Read a URL from the minibuffer, prompting with PROMPT.
-Default to the URL at or before point.  If invoked with a mouse button,
-set point to the position clicked first.  Return a list for use in
-`interactive' containing the URL and `browse-url-new-window-flag' or its
+If `transient-mark-mode' is non-nil and the mark is active,
+defaults to the current region, else to the URL at or before
+point.  If invoked with a mouse button, set point to the
+position clicked first.  Return a list for use in `interactive'
+containing the URL and `browse-url-new-window-flag' or its
 negation if a prefix argument was given."
   (let ((event (elt (this-command-keys) 0)))
     (and (listp event) (mouse-set-point event)))
-  (list (read-string prompt (browse-url-url-at-point))
+  (list (read-string prompt (or (and transient-mark-mode mark-active
+				     ;; rfc2396 Appendix E.
+				     (replace-regexp-in-string
+				      "[\t\r\f\n ]+" ""
+				      (buffer-substring-no-properties
+				       (region-beginning) (region-end))))
+				(browse-url-url-at-point)))
 	(not (eq (null browse-url-new-window-flag)
 		 (null current-prefix-arg)))))