From 0c7f9f038a5b3ec27456696aaffa8f0f4042246e 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 b820d5fcd96..d9255a55171 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -873,6 +873,11 @@ make-frame (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.25.1