]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't create GUI frames in batch sessions
authorJim Porter <jporterbugs@gmail.com>
Tue, 28 Feb 2023 19:35:21 +0000 (11:35 -0800)
committerJim Porter <jporterbugs@gmail.com>
Fri, 3 Mar 2023 17:25:22 +0000 (09:25 -0800)
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: <https://lists.gnu.org/archive/html/emacs-devel/2023-02/msg00879.html>

* lisp/frame.el (make-frame): Always create a terminal frame in batch
sessions.

lisp/frame.el

index 8138334935451fbd18623b158a5bbdcf3d7aaf2c..bf984da0d627e07da707f8fe99b3f549694085cc 100644 (file)
@@ -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)))))