From 2840895c1ae4f60c3b225dc1d75854fb09bca259 Mon Sep 17 00:00:00 2001 From: Jim Porter Date: Tue, 28 Feb 2023 11:35:21 -0800 Subject: [PATCH] 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. --- lisp/frame.el | 5 +++++ 1 file changed, 5 insertions(+) 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))))) -- 2.39.2