+2007-09-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * server.el (server-getenv-from): Remove. Use getenv-internal instead.
+ (server-create-tty-frame): Don't set unused `tty' property.
+ Set `display' instead of display-environment-variable.
+ (server-create-window-system-frame): No display-environment-variable.
+
2007-09-21 Michael Albinus <michael.albinus@gmx.de>
* rfn-eshadow.el (rfn-eshadow-setup-minibuffer-hook)
(rfn-eshadow-update-overlay-hook): New defvars.
- (rfn-eshadow-setup-minibuffer, rfn-eshadow-update-overlay): Run
- the hooks.
+ (rfn-eshadow-setup-minibuffer, rfn-eshadow-update-overlay):
+ Run the hooks.
* net/tramp.el (tramp-rfn-eshadow-overlay): New defvar.
(tramp-rfn-eshadow-setup-minibuffer)
New clients have no properties."
(add-to-list 'server-clients proc))
-(defun server-getenv-from (env variable)
- "Get the value of VARIABLE in ENV.
-VARIABLE should be a string. Value is nil if VARIABLE is
-undefined in ENV. Otherwise, value is a string.
-
-ENV should be in the same format as `process-environment'."
- (let (entry result)
- (while (and env (null result))
- (setq entry (car env)
- env (cdr env))
- (if (and (> (length entry) (length variable))
- (eq ?= (aref entry (length variable)))
- (equal variable (substring entry 0 (length variable))))
- (setq result (substring entry (+ (length variable) 1)))))
- result))
-
(defmacro server-with-environment (env vars &rest body)
"Evaluate BODY with environment variables VARS set to those in ENV.
The environment variables are then restored to their previous values.
(value (make-symbol "value")))
`(let ((process-environment process-environment))
(dolist (,var ,vars)
- (let ((,value (server-getenv-from ,env ,var)))
+ (let ((,value (getenv-internal ,var ,env)))
(push (if (null ,value)
,var
(concat ,var "=" ,value))
`((client . ,proc)
(environment . ,(process-get proc 'env)))))))
- (set-frame-parameter frame 'display-environment-variable
- (server-getenv-from (process-get proc 'env) "DISPLAY"))
+ ;; ttys don't use the `display' parameter, but callproc.c does to set
+ ;; the DISPLAY environment on subprocesses.
+ (set-frame-parameter frame 'display
+ (getenv-internal "DISPLAY" (process-get proc 'env)))
(select-frame frame)
(process-put proc 'frame frame)
- (process-put proc 'tty (terminal-name frame))
(process-put proc 'terminal (frame-terminal frame))
;; Display *scratch* by default.
frame))
(defun server-create-window-system-frame (display nowait proc)
- (if (not (fboundp 'x-create-frame))
+ (if (not (fboundp 'make-frame-on-display))
(progn
;; This emacs does not support X.
(server-log "Window system unsupported" proc)
;; initialization parameters for X frames at
;; the moment.
(modify-frame-parameters frame params)
- (set-frame-parameter frame 'display-environment-variable
- (server-getenv-from (process-get proc 'env) "DISPLAY"))
(select-frame frame)
(process-put proc 'frame frame)
(process-put proc 'terminal (frame-terminal frame))