aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2013-12-28 13:47:26 +0200
committerEli Zaretskii2013-12-28 13:47:26 +0200
commitbf7bea5de09945949ab969f663aaf00fed1f67b4 (patch)
treeede99c7808adecb46544974c00b9fef37df04012
parentefe702196ac87ce78d753672013429018e723a9e (diff)
downloademacs-bf7bea5de09945949ab969f663aaf00fed1f67b4.tar.gz
emacs-bf7bea5de09945949ab969f663aaf00fed1f67b4.zip
Fix bug #14739 with creation of GUI frames from TTY session on Windows.
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.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/frame.el12
-rw-r--r--src/ChangeLog5
-rw-r--r--src/w32fns.c3
4 files changed, 21 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9996dae5932..3c9356fbd7c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12013-12-28 Eli Zaretskii <eliz@gnu.org>
2
3 * frame.el (window-system-for-display): Don't allow to create a
4 GUI frame from a -nw session on MS-Windows. (Bug#14739)
5
12013-12-28 Glenn Morris <rgm@gnu.org> 62013-12-28 Glenn Morris <rgm@gnu.org>
2 7
3 * mail/hashcash.el (hashcash-program): Rename from hashcash-path. 8 * mail/hashcash.el (hashcash-program): Rename from hashcash-path.
diff --git a/lisp/frame.el b/lisp/frame.el
index 6105c88d7be..cb08fcb753f 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -540,10 +540,14 @@ is not considered (see `next-frame')."
540(defun window-system-for-display (display) 540(defun window-system-for-display (display)
541 "Return the window system for DISPLAY. 541 "Return the window system for DISPLAY.
542Return nil if we don't know how to interpret DISPLAY." 542Return nil if we don't know how to interpret DISPLAY."
543 (cl-loop for descriptor in display-format-alist 543 ;; MS-Windows doesn't know how to create a GUI frame in a -nw session.
544 for pattern = (car descriptor) 544 (if (and (eq system-type 'windows-nt)
545 for system = (cdr descriptor) 545 (null (window-system)))
546 when (string-match-p pattern display) return system)) 546 nil
547 (cl-loop for descriptor in display-format-alist
548 for pattern = (car descriptor)
549 for system = (cdr descriptor)
550 when (string-match-p pattern display) return system)))
547 551
548(defun make-frame-on-display (display &optional parameters) 552(defun make-frame-on-display (display &optional parameters)
549 "Make a frame on display DISPLAY. 553 "Make a frame on display DISPLAY.
diff --git a/src/ChangeLog b/src/ChangeLog
index 6bdadaf796f..2749399d392 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-12-28 Eli Zaretskii <eliz@gnu.org>
2
3 * w32fns.c (Fx_create_frame): Error out if called from a TTY
4 session. (Bug#14739)
5
12013-12-27 Jarek Czekalski <jarekczek@poczta.onet.pl> 62013-12-27 Jarek Czekalski <jarekczek@poczta.onet.pl>
2 7
3 * callproc.c (Vexec_path): Document that exec-directory is in it. 8 * callproc.c (Vexec_path): Document that exec-directory is in it.
diff --git a/src/w32fns.c b/src/w32fns.c
index 9536b146535..5ecddbc11d3 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -4346,6 +4346,9 @@ This function is an internal primitive--use `make-frame' instead. */)
4346 Lisp_Object parent; 4346 Lisp_Object parent;
4347 struct kboard *kb; 4347 struct kboard *kb;
4348 4348
4349 if (!FRAME_W32_P (SELECTED_FRAME ()))
4350 error ("Cannot create a GUI frame in a -nw session");
4351
4349 /* Make copy of frame parameters because the original is in pure 4352 /* Make copy of frame parameters because the original is in pure
4350 storage now. */ 4353 storage now. */
4351 parameters = Fcopy_alist (parameters); 4354 parameters = Fcopy_alist (parameters);