changeset 74483:00d6850d1b3e

(browse-url): Set DISPLAY to the one of the current frame, in case we're connected to several displays.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 08 Dec 2006 03:17:10 +0000
parents b70a720bbe3e
children e9bc018298b2
files lisp/ChangeLog lisp/net/browse-url.el
diffstat 2 files changed, 27 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Dec 08 02:56:08 2006 +0000
+++ b/lisp/ChangeLog	Fri Dec 08 03:17:10 2006 +0000
@@ -1,3 +1,8 @@
+2006-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* net/browse-url.el (browse-url): Set DISPLAY to the one of the
+	current frame, in case we're connected to several displays.
+
 2006-12-08  Juanma Barranquero  <lekktu@gmail.com>
 
 	* frame.el (other-frame): Doc fix.
@@ -20,9 +25,10 @@
 2006-12-05  Kim F. Storm  <storm@cua.dk>
 
 	* emulation/cua-base.el (cua-paste-pop-rotate-temporarily): Doc fix.
-	(cua-paste-pop): Rework last change for cua-paste-pop-rotate-temporarily,
-	so first M-y and C-y works alike, pasting the head of the kill-ring, and
-	prefix arg C-u M-y inserts the text inserted by the last M-y command.
+	(cua-paste-pop): Rework last change for
+	cua-paste-pop-rotate-temporarily, so first M-y and C-y works alike,
+	pasting the head of the kill-ring, and prefix arg C-u M-y inserts the
+	text inserted by the last M-y command.
 
 2006-12-05  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
 
@@ -39,8 +45,7 @@
 	* progmodes/fortran.el (fortran-mode-abbrev-table)
 	* progmodes/octave-mod.el (octave-abbrev-table)
 	* progmodes/sql.el (sql-mode-abbrev-table): Define abbrevs even
-	if abbrev-table is non-nil (saved user abbrevs may have been
-	restored).
+	if abbrev-table is non-nil (saved user abbrevs may have been restored).
 
 	* progmodes/vhdl-mode.el (vhdl-mode-abbrev-table-init): Do not
 	clear abbrev table, else saved abbrevs will not be restored.
--- a/lisp/net/browse-url.el	Fri Dec 08 02:56:08 2006 +0000
+++ b/lisp/net/browse-url.el	Fri Dec 08 03:17:10 2006 +0000
@@ -760,17 +760,23 @@
   (interactive (browse-url-interactive-arg "URL: "))
   (unless (interactive-p)
     (setq args (or args (list browse-url-new-window-flag))))
-  (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
-    ;; and apply the function (which might be a lambda).
-    (catch 'done
-      (dolist (bf browse-url-browser-function)
-	(when (string-match (car bf) url)
-	  (apply (cdr bf) url args)
-	  (throw 'done t)))
-      (error "No browse-url-browser-function matching URL %s"
-	     url))))
+  (let ((process-environment (copy-sequence process-environment)))
+    ;; 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 (functionp browse-url-browser-function)
+        (apply browse-url-browser-function url args)
+      ;; 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)
+          (when (string-match (car bf) url)
+            (apply (cdr bf) url args)
+            (throw 'done t)))
+        (error "No browse-url-browser-function matching URL %s"
+               url)))))
 
 ;;;###autoload
 (defun browse-url-at-point (&optional arg)