changeset 28274:e9c99955f520

Restore previous use of browse-url-maybe-new-window.
author Dave Love <fx@gnu.org>
date Wed, 22 Mar 2000 23:06:18 +0000
parents 454890f5952d
children 2c8492145fc8
files lisp/net/browse-url.el
diffstat 1 files changed, 31 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/net/browse-url.el	Wed Mar 22 23:01:04 2000 +0000
+++ b/lisp/net/browse-url.el	Wed Mar 22 23:06:18 2000 +0000
@@ -494,6 +494,13 @@
 	(not (eq (null browse-url-new-window-p)
 		 (null current-prefix-arg)))))
 
+;; interactive-p needs to be called at a function's top-level, hence
+;; the macro.
+(defmacro browse-url-maybe-new-window (arg)
+  `(if (interactive-p)
+       ,arg
+     browse-url-new-window-p))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Browse current buffer
 
@@ -599,6 +606,8 @@
 Prompts for a URL, defaulting to the URL at or before point.  Variable
 `browse-url-browser-function' says which browser to use."
   (interactive (browse-url-interactive-arg "URL: "))
+  (unless (interactive-p)
+    (setq args (list browse-url-new-window-p)))
   (if (functionp browse-url-browser-function)
       (apply browse-url-browser-function url args)
     ;; The `function' can be an alist; look down it for first match
@@ -614,12 +623,15 @@
 	     url))))
 
 ;;;###autoload
-(defun browse-url-at-point ()
+(defun browse-url-at-point (&optional arg)
   "Ask a WWW browser to load the URL at or before point.
 Doesn't let you edit the URL like `browse-url'.  Variable
 `browse-url-browser-function' says which browser to use."
-  (interactive)
-  (browse-url (browse-url-url-at-point)))
+  (interactive "P")
+  (browse-url (browse-url-url-at-point)
+	      (if arg
+		  (not browse-url-new-window-p)
+		browse-url-new-window-p)))
 
 (defun browse-url-event-buffer (event)
   (window-buffer (posn-window (event-start event))))
@@ -706,7 +718,9 @@
 			     (if new-window '("-noraise"))
 			     (list "-remote"
 				   (concat "openURL(" url
-					   (if new-window ",new-window")
+					   (if (browse-url-maybe-new-window
+						new-window)
+					       ",new-window")
 					   ")"))))))))
     (set-process-sentinel process
 			  (list 'lambda '(process change)
@@ -771,7 +785,7 @@
 	(save-excursion
 	  (find-file (format "/tmp/Mosaic.%d" pid))
 	  (erase-buffer)
-	  (insert (if new-window
+	  (insert (if (browse-url-maybe-new-window new-window)
 		      "newwin\n"
 		    "goto\n")
 		  url "\n")
@@ -838,7 +852,7 @@
   ;; Todo: start browser if fails
   (process-send-string "browse-url"
 		       (concat "get url (" url ") output "
-			       (if new-window
+			       (if (browse-url-maybe-new-window new-window)
 				   "new"
 				 "current")
 			       "\r\n"))
@@ -871,7 +885,7 @@
 used instead of `browse-url-new-window-p'."
   (interactive (browse-url-interactive-arg "W3 URL: "))
   (require 'w3)				; w3-fetch-other-window not autoloaded
-  (if new-window
+  (if (browse-url-maybe-new-window new-window)
       (w3-fetch-other-window url)
     (w3-fetch url)))
 
@@ -884,7 +898,9 @@
   (interactive (browse-url-interactive-arg "W3 URL: "))
     (apply 'start-process (concat "gnudoit:" url) nil
 	   browse-url-gnudoit-program
-	   (append browse-url-gnudoit-args (list (concat "(w3-fetch \"" url "\")") "(raise-frame)"))))
+	   (append browse-url-gnudoit-args
+		   (list (concat "(w3-fetch \"" url "\")")
+			 "(raise-frame)"))))
 
 ;; --- Lynx in an xterm ---
 
@@ -897,7 +913,8 @@
 with possible additional arguments `browse-url-xterm-args'."
   (interactive (browse-url-interactive-arg "Lynx URL: "))
   (apply #'start-process `(,(concat "lynx" url) nil ,browse-url-xterm-program
-             ,@browse-url-xterm-args "-e" "lynx" ,url)))
+             ,@browse-url-xterm-args "-e" "lynx"
+	     ,url)))
 
 ;; --- Lynx in an Emacs "term" window ---
 
@@ -920,13 +937,13 @@
 	 (buf (get-buffer "*lynx*"))
 	 (proc (and buf (get-buffer-process buf)))
 	 (n browse-url-lynx-input-attempts))
-    (if (and new-buffer buf)
+    (if (and (browse-url-maybe-new-window new-buffer) buf)
 	;; Rename away the OLD buffer. This isn't very polite, but
 	;; term insists on working in a buffer named *lynx* and would
 	;; choke on *lynx*<1>
 	(progn (set-buffer buf)
 	       (rename-uniquely)))
-    (if (or new-buffer
+    (if (or (browse-url-maybe-new-window new-buffer)
 	    (not buf)
 	    (not proc)
 	    (not (memq (process-status proc) '(run stop))))
@@ -934,7 +951,8 @@
 	(progn
           (setq buf
                 (apply #'make-term
-                       `("lynx" "lynx" nil ,@browse-url-lynx-emacs-args ,url)))
+                       `("lynx" "lynx" nil ,@browse-url-lynx-emacs-args
+			 ,url)))
           (switch-to-buffer buf)
           (term-char-mode)
           (set-process-sentinel
@@ -1005,7 +1023,7 @@
     (let ((to (if (string-match "^mailto:" url)
 		  (substring url 7)
 		url)))
-      (if new-window
+      (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