comparison README.multi-tty @ 83427:2afc49c9f0c0

Store local environment in frame (not terminal) parameters. * src/callproc.c (child_setup, getenv_internal, Fgetenv_internal): Store the local environment in a frame (not terminal) parameter. Update doc strings. (syms_of_callproc): Update doc strings. (Qenvironment): Moved to frame.c. * lisp/env.el (read-envvar-name, setenv, getenv, environment): Use frame parameters to store the local environment, not terminal parameters. * server.el (server-process-filter): Store the local environment in a frame (not terminal) parameter. Do not try to decode environment strings. * lisp/frame.el (make-frame): Set up the 'environment frame parameter, when needed. * src/frame.c (Qenvironment): Move here from callproc.c. (Fdelete_frame): Don't allow other frames to refer to a deleted frame in their 'environment parameter. (Fframe_with_environment): New function. (syms_of_frame): Defsubr it. Initialize and staticpro Qenvironment. * frame.h (Qenvironment): Declare. * lisp.h (Fframe_with_environment): EXFUN it. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-467
author Karoly Lorentey <lorentey@elte.hu>
date Thu, 29 Dec 2005 04:31:04 +0000
parents 1f5d64c4df6f
children 76396de7f50a
comparison
equal deleted inserted replaced
83426:7c7d1f1cb2e7 83427:2afc49c9f0c0
410 specific terminal, and eliminate the hackish terminal-related frame 410 specific terminal, and eliminate the hackish terminal-related frame
411 parameters (display, tty, tty-type). 411 parameters (display, tty, tty-type).
412 412
413 make_terminal_frame 413 make_terminal_frame
414 create_tty_output 414 create_tty_output
415 415
416 ** Decide whether to keep the C implementation of terminal parameters,
417 or revert to the previous, purely Lisp code. It turned out that
418 local environments do not need terminal parameters after all.
416 419
417 ** Move Fsend_string_to_terminal to term.c, and declare get_named_tty 420 ** Move Fsend_string_to_terminal to term.c, and declare get_named_tty
418 as static, removing it from dispextern.h. 421 as static, removing it from dispextern.h.
419 Move fatal to emacs.c and declare it somewhere. 422 Move fatal to emacs.c and declare it somewhere.
420 423
1360 (Implemented in patch-461; `terminal-getenv', `terminal-setenv' and 1363 (Implemented in patch-461; `terminal-getenv', `terminal-setenv' and
1361 `with-terminal-environment' are now replaced by extensions to 1364 `with-terminal-environment' are now replaced by extensions to
1362 `getenv' and `setenv', and the new `local-environment-variables' 1365 `getenv' and `setenv', and the new `local-environment-variables'
1363 facility. Yay!) 1366 facility. Yay!)
1364 1367
1368 (Updated in patch-465 to fix the semantics of let-binding
1369 `process-environment'. `process-environment' was changed to
1370 override all local/global environment variables, and a new variable
1371 `global-environment' was introduced to have `process-environment's
1372 old meaning.)
1373
1374 (Updated in patch-466 to fix the case when two emacsclient sessions
1375 share the same terminal, but have different environment. The local
1376 environment lists are now stored as frame parameters, so the
1377 C-level terminal parameters are not strictly necessary any more.)
1378
1365 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d 1379 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d
1366 1380