Do not set x-display-name until X connection is established.
authorDmitry Antipov <dmantipov@yandex.ru>
Sat, 6 Apr 2013 14:06:39 +0000 (18:06 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Sat, 6 Apr 2013 14:06:39 +0000 (18:06 +0400)
This is needed to prevent from weird situation described at
<http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00212.html>.
* frame.el (make-frame): Set x-display-name after call to
window system initialization function, not before.
* term/x-win.el (x-initialize-window-system): Add optional
display argument and use it.
* term/w32-win.el (w32-initialize-window-system):
* term/ns-win.el (ns-initialize-window-system):
* term/pc-win.el (msdos-initialize-window-system):
Add compatible optional display argument.

lisp/ChangeLog
lisp/frame.el
lisp/term/ns-win.el
lisp/term/pc-win.el
lisp/term/w32-win.el
lisp/term/x-win.el

index 8b24997..bfbdf08 100644 (file)
@@ -1,3 +1,17 @@
+2013-04-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not set x-display-name until X connection is established.
+       This is needed to prevent from weird situation described at
+       <http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00212.html>.
+       * frame.el (make-frame): Set x-display-name after call to
+       window system initialization function, not before.
+       * term/x-win.el (x-initialize-window-system): Add optional
+       display argument and use it.
+       * term/w32-win.el (w32-initialize-window-system):
+       * term/ns-win.el (ns-initialize-window-system):
+       * term/pc-win.el (msdos-initialize-window-system):
+       Add compatible optional display argument.
+
 2013-04-06  Eli Zaretskii  <eliz@gnu.org>
 
        * files.el (normal-backup-enable-predicate): On MS-Windows and
index 4bf885b..454b229 100644 (file)
@@ -655,9 +655,8 @@ the new frame according to its own rules."
       (error "Don't know how to create a frame on window system %s" w))
 
     (unless (get w 'window-system-initialized)
-      (unless x-display-name
-        (setq x-display-name display))
-      (funcall (cdr (assq w window-system-initialization-alist)))
+      (funcall (cdr (assq w window-system-initialization-alist)) display)
+      (setq x-display-name display)
       (put w 'window-system-initialized t))
 
     ;; Add parameters from `window-system-default-frame-alist'.
index b8baaa0..5617c31 100644 (file)
@@ -895,7 +895,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
 
 ;; Do the actual Nextstep Windows setup here; the above code just
 ;; defines functions and variables that we use now.
-(defun ns-initialize-window-system ()
+(defun ns-initialize-window-system (&optional display)
   "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing."
   (cl-assert (not ns-initialized))
 
index cf67aca..ab776ea 100644 (file)
@@ -403,7 +403,7 @@ Errors out because it is not supposed to be called, ever."
   (error "terminal-init-internal called for window-system `%s'"
         (window-system)))
 
-(defun msdos-initialize-window-system ()
+(defun msdos-initialize-window-system (&optional display)
   "Initialization function for the `pc' \"window system\"."
   (or (eq (window-system) 'pc)
       (error
index cbd08e6..b0f6581 100644 (file)
@@ -246,7 +246,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
 (declare-function x-parse-geometry "frame.c" (string))
 (defvar x-command-line-resources)
 
-(defun w32-initialize-window-system ()
+(defun w32-initialize-window-system (&optional display)
   "Initialize Emacs for W32 GUI frames."
   (cl-assert (not w32-initialized))
 
index 84d6ddb..822df0e 100644 (file)
@@ -1343,7 +1343,7 @@ Request data types in the order specified by `x-select-request-type'."
 (defvar x-display-name)
 (defvar x-command-line-resources)
 
-(defun x-initialize-window-system ()
+(defun x-initialize-window-system (&optional display)
   "Initialize Emacs for X frames and open the first connection to an X server."
   (cl-assert (not x-initialized))
 
@@ -1357,7 +1357,7 @@ Request data types in the order specified by `x-select-request-type'."
        (while (setq i (string-match "[.*]" x-resource-name))
          (aset x-resource-name i ?-))))
 
-  (x-open-connection (or x-display-name
+  (x-open-connection (or display
                         (setq x-display-name (or (getenv "DISPLAY" (selected-frame))
                                                  (getenv "DISPLAY"))))
                     x-command-line-resources