]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #14739 with creation of GUI frames from TTY session on Windows.
authorEli Zaretskii <eliz@gnu.org>
Sat, 28 Dec 2013 11:47:26 +0000 (13:47 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 28 Dec 2013 11:47:26 +0000 (13:47 +0200)
 src/w32fns.c (Fx_create_frame): Error out if called from a TTY
 session.

 lisp/frame.el (window-system-for-display): Don't allow to create a
 GUI frame from a -nw session on MS-Windows.

lisp/ChangeLog
lisp/frame.el
src/ChangeLog
src/w32fns.c

index 9996dae593249a94a119a5bd27aaf0b1e363dae2..3c9356fbd7cbf41a504dde6fe6a1118742ef928c 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * frame.el (window-system-for-display): Don't allow to create a
+       GUI frame from a -nw session on MS-Windows.  (Bug#14739)
+
 2013-12-28  Glenn Morris  <rgm@gnu.org>
 
        * mail/hashcash.el (hashcash-program): Rename from hashcash-path.
index 6105c88d7be4dd8f45f5bcb0dc0b5da01485f86b..cb08fcb753f42f6b92cd6421c68d175dd19c5781 100644 (file)
@@ -540,10 +540,14 @@ is not considered (see `next-frame')."
 (defun window-system-for-display (display)
   "Return the window system for DISPLAY.
 Return nil if we don't know how to interpret DISPLAY."
-  (cl-loop for descriptor in display-format-alist
-           for pattern = (car descriptor)
-           for system = (cdr descriptor)
-           when (string-match-p pattern display) return system))
+  ;; MS-Windows doesn't know how to create a GUI frame in a -nw session.
+  (if (and (eq system-type 'windows-nt)
+          (null (window-system)))
+      nil
+    (cl-loop for descriptor in display-format-alist
+            for pattern = (car descriptor)
+            for system = (cdr descriptor)
+            when (string-match-p pattern display) return system)))
 
 (defun make-frame-on-display (display &optional parameters)
   "Make a frame on display DISPLAY.
index 6bdadaf796f9a6f2128b78a3e708cb752aa596fe..2749399d3921e150c5548d8d3c83beb52dd0781f 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (Fx_create_frame): Error out if called from a TTY
+       session.  (Bug#14739)
+
 2013-12-27  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 
        * callproc.c (Vexec_path): Document that exec-directory is in it.
index 9536b1465359b241c786797c6333e98dd1ad5bcd..5ecddbc11d3e1b55a247bbaa692f413e89780fb9 100644 (file)
@@ -4346,6 +4346,9 @@ This function is an internal primitive--use `make-frame' instead.  */)
   Lisp_Object parent;
   struct kboard *kb;
 
+  if (!FRAME_W32_P (SELECTED_FRAME ()))
+    error ("Cannot create a GUI frame in a -nw session");
+
   /* Make copy of frame parameters because the original is in pure
      storage now. */
   parameters = Fcopy_alist (parameters);