Function: server--create-frame

server--create-frame is a byte-compiled function defined in server.el.gz.

Signature

(server--create-frame NOWAIT PROC PARAMETERS)

Source Code

;; Defined in /usr/src/emacs/lisp/server.el.gz
(defun server--create-frame (nowait proc parameters)
  (add-to-list 'frame-inherited-parameters 'client)
  ;; When `nowait' is set, flag frame as client-created, but use
  ;; a dummy client.  This will prevent the frame from being deleted
  ;; when emacsclient quits while also preventing
  ;; `server-save-buffers-kill-terminal' from unexpectedly killing
  ;; emacs on that frame.
  (let ((frame (make-frame `((client . ,(if nowait 'nowait proc))
                             ;; This is a leftover from an earlier
                             ;; attempt at making it possible for process
                             ;; run in the server process to use the
                             ;; environment of the client process.
                             ;; It has no effect now and to make it work
                             ;; we'd need to decide how to make
                             ;; process-environment interact with client
                             ;; envvars, and then to change the
                             ;; C functions `child_setup' and
                             ;; `getenv_internal' accordingly.
                             (environment . ,(process-get proc 'env))
                             ,@parameters))))
    (server-log (format "%s created" frame) proc)
    (select-frame frame)
    (process-put proc 'frame frame)
    (process-put proc 'terminal (frame-terminal frame))
    frame))