# HG changeset patch # User Stefan Monnier # Date 1192049002 0 # Node ID c164c81cba594b7b76d6535219af1c7e71e98649 # Parent c37307b0bf017590b33ca078aed47deb37847fc9 (server-create-tty-frame, server-create-window-system-frame): Set frame-inherited-parameters. diff -r c37307b0bf01 -r c164c81cba59 lisp/ChangeLog --- a/lisp/ChangeLog Wed Oct 10 20:24:19 2007 +0000 +++ b/lisp/ChangeLog Wed Oct 10 20:43:22 2007 +0000 @@ -1,5 +1,8 @@ 2007-10-10 Stefan Monnier + * server.el (server-create-tty-frame) + (server-create-window-system-frame): Set frame-inherited-parameters. + * frame.el (frame-inherited-parameters): New var. (make-frame): Use it. diff -r c37307b0bf01 -r c164c81cba59 lisp/server.el --- a/lisp/server.el Wed Oct 10 20:24:19 2007 +0000 +++ b/lisp/server.el Wed Oct 10 20:43:22 2007 +0000 @@ -561,6 +561,7 @@ (server-quote-arg text))))))))) (defun server-create-tty-frame (tty type proc) + (add-to-list 'frame-inherited-parameters 'client) (let ((frame (server-with-environment (process-get proc 'env) '("LANG" "LC_CTYPE" "LC_ALL" @@ -575,6 +576,16 @@ ;; Ignore nowait here; we always need to ;; clean up opened ttys when the client dies. `((client . ,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))))))) ;; ttys don't use the `display' parameter, but callproc.c does to set @@ -594,6 +605,7 @@ frame)) (defun server-create-window-system-frame (display nowait proc) + (add-to-list 'frame-inherited-parameters 'client) (if (not (fboundp 'make-frame-on-display)) (progn ;; This emacs does not support X. @@ -606,6 +618,7 @@ ;; `server-save-buffers-kill-terminal' from unexpectedly ;; killing emacs on that frame. (let* ((params `((client . ,(if nowait 'nowait proc)) + ;; This is a leftover, see above. (environment . ,(process-get proc 'env)))) (frame (make-frame-on-display (or display @@ -614,9 +627,8 @@ (error "Please specify display")) params))) (server-log (format "%s created" frame) proc) - ;; XXX We need to ensure the parameters are - ;; really set because Emacs forgets unhandled - ;; initialization parameters for X frames at + ;; XXX We need to ensure the parameters are really set because Emacs + ;; forgets unhandled initialization parameters for X frames at ;; the moment. (modify-frame-parameters frame params) (select-frame frame)