aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-05-27 17:57:59 +0000
committerKaroly Lorentey2004-05-27 17:57:59 +0000
commit3a2584741dfc78f6b9dde2a9290d26b542dc75c0 (patch)
tree8ab66262409ae61904cf7fc62173e560501072d7
parent4e1bb54039da0e3d5c84e231104703d62ace938d (diff)
downloademacs-3a2584741dfc78f6b9dde2a9290d26b542dc75c0.tar.gz
emacs-3a2584741dfc78f6b9dde2a9290d26b542dc75c0.zip
Fix background mode initialization on client tty frames (rep. by Dan Nicolaescu).
lisp/server.el (server-process-filter): Add the client parameter to the initialization parameters of new frames. (server-getenv): Use the 'client frame parameter and not server-clients-with to get the client; server-getenv is called during frame initialization. (Dan Nicolaescu) git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-179
-rw-r--r--lisp/server.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/server.el b/lisp/server.el
index 620d4a7e5fa..818639889c2 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -480,7 +480,11 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
480 (or display 480 (or display
481 (frame-parameter nil 'display) 481 (frame-parameter nil 'display)
482 (getenv "DISPLAY") 482 (getenv "DISPLAY")
483 (error "Please specify display")))) 483 (error "Please specify display"))
484 (list (cons 'client proc))))
485 ;; XXX We need to ensure the client parameter is
486 ;; really set because Emacs forgets initialization
487 ;; parameters for X frames at the moment.
484 (modify-frame-parameters frame (list (cons 'client proc))) 488 (modify-frame-parameters frame (list (cons 'client proc)))
485 (select-frame frame) 489 (select-frame frame)
486 (server-client-set client 'frame frame) 490 (server-client-set client 'frame frame)
@@ -513,8 +517,7 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
513 (setq request (substring request (match-end 0))) 517 (setq request (substring request (match-end 0)))
514 (unless (server-client-get client 'version) 518 (unless (server-client-get client 'version)
515 (error "Protocol error; make sure you use the correct version of emacsclient")) 519 (error "Protocol error; make sure you use the correct version of emacsclient"))
516 (setq frame (make-frame-on-tty tty type)) 520 (setq frame (make-frame-on-tty tty type (list (cons 'client proc))))
517 (modify-frame-parameters frame (list (cons 'client proc)))
518 (select-frame frame) 521 (select-frame frame)
519 (server-client-set client 'frame frame) 522 (server-client-set client 'frame frame)
520 (server-client-set client 'tty (frame-tty-name frame)) 523 (server-client-set client 'tty (frame-tty-name frame))
@@ -891,10 +894,10 @@ function consults the environment of the Emacs process.
891 894
892If FRAME is nil or missing, then the selected frame is used." 895If FRAME is nil or missing, then the selected frame is used."
893 (when (not frame) (setq frame (selected-frame))) 896 (when (not frame) (setq frame (selected-frame)))
894 (let ((clients (server-clients-with 'frame frame)) env) 897 (let ((client (frame-parameter frame 'client)) env)
895 (if (null clients) 898 (if (null client)
896 (getenv variable) 899 (getenv variable)
897 (setq env (server-client-get (car clients) 'environment)) 900 (setq env (server-client-get client 'environment))
898 (if (null env) 901 (if (null env)
899 (getenv variable) 902 (getenv variable)
900 (cdr (assoc variable env)))))) 903 (cdr (assoc variable env))))))