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))