From: Jim Porter Date: Tue, 28 Feb 2023 19:35:21 +0000 (-0800) Subject: Don't create GUI frames in batch sessions X-Git-Tag: emacs-29.0.90~261 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2840895c1ae;p=emacs.git Don't create GUI frames in batch sessions This resolves an issue with running test/lisp/server-tests.el when 'DISPLAY' is set: the tests would start the Emacs server in a batch session, and then request a new GUI frame. However, that caused the tests to terminate with SIGIO, since a batch Emacs doesn't set a SIGIO handler. Ref: * lisp/frame.el (make-frame): Always create a terminal frame in batch sessions. --- diff --git a/lisp/frame.el b/lisp/frame.el index 81383349354..bf984da0d62 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -873,6 +873,11 @@ the new frame according to its own rules." (interactive) (let* ((display (cdr (assq 'display parameters))) (w (cond + ;; When running in a batch session, don't create a GUI + ;; frame. (Batch sessions don't set a SIGIO handler on + ;; relevant platforms, so attempting this would terminate + ;; Emacs.) + (noninteractive nil) ((assq 'terminal parameters) (let ((type (terminal-live-p (cdr (assq 'terminal parameters)))))