comparison README.multi-tty @ 83118:7652900ea029

Fixed environment variable handling during terminal initialization. lisp/server.el (server-getenv): New inline function. lisp/term/rxvt.el (rxvt-set-background-mode): Use server-getenv instead of getenv. lisp/term/x-win.el (x-initialize-window-system): Ditto. lisp/term/xterm.el (xterm-rxvt-set-background-mode): Ditto. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-158
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 08 May 2004 16:20:28 +0000
parents fd147ed0d1b8
children d153d9579f9b
comparison
equal deleted inserted replaced
83117:46882e012e30 83118:7652900ea029
63 development infrastructure for the multi-tty branch.) 63 development infrastructure for the multi-tty branch.)
64 64
65 STATUS 65 STATUS
66 ------ 66 ------
67 67
68 The branch is now very stable and almost full-featured. I hope the 68 The branch is now very stable and almost full-featured. All of the
69 major problems were fixed. (It still needs testing on other 69 major problems have been fixed, only a few minor issues remain. (It
70 architectures, though.) Both multiple tty device support and 70 still needs to be ported to Windows/Mac/DOS, though.) Both multiple
71 simultaneous X and tty frame support works fine. Emacsclient has been 71 tty device support and simultaneous X and tty frame support works
72 extended to support opening new tty and X frames. It has been changed 72 fine. Emacsclient has been extended to support opening new tty and X
73 open new Emacs frames by default. 73 frames. It has been changed open new Emacs frames by default.
74
75 The multi-tty branch has been scheduled for inclusion in the next
76 major release of Emacs (version 22). I expect the merge into the
77 development trunk to occur sometime during next year (2005), after the
78 merge of the Unicode branch.
74 79
75 Please let me know if you find any bugs in this branch. 80 Please let me know if you find any bugs in this branch.
76 81
77 HOW TO COMPILE AND TEST 82 HOW TO COMPILE AND TEST
78 ----------------------- 83 -----------------------
130 * Only tested on my GNU/Linux box, Solaris 8 and FreeBSD. 135 * Only tested on my GNU/Linux box, Solaris 8 and FreeBSD.
131 136
132 NEWS 137 NEWS
133 ---- 138 ----
134 139
135 For the NEWS file: 140 For the NEWS file: (Needs work)
136 141
137 ** Support for multiple terminal devices has been added. 142 ** Support for multiple terminal devices has been added.
138 143
139 *** You can specify a terminal device (`tty' parameter) and a terminal 144 *** You can specify a terminal device (`tty' parameter) and a terminal
140 type (`tty-type' parameter) to `make-terminal-frame'. 145 type (`tty-type' parameter) to `make-terminal-frame'.
194 See arch logs. 199 See arch logs.
195 200
196 THINGS TO DO 201 THINGS TO DO
197 ------------ 202 ------------
198 203
199 ** frame-creation-function was removed, which might be a bad idea.
200 Think up a compatible solution.
201
202 ** make-frame does not correctly handle extra parameters in its 204 ** make-frame does not correctly handle extra parameters in its
203 argument: 205 argument:
204 206
205 (frame-parameter (make-frame (list (cons 'foobar 42))) 'foobar) 207 (frame-parameter (make-frame (list (cons 'foobar 42))) 'foobar)
206 => nil 208 => nil
221 At least a beep or a message would be important, if the single-mode 223 At least a beep or a message would be important, if the single-mode
222 is still required to prevent interference. (Reported by Dan 224 is still required to prevent interference. (Reported by Dan
223 Nicolaescu.) (Update: selecting a region with the mouse enables 225 Nicolaescu.) (Update: selecting a region with the mouse enables
224 single_kboard under X. This is very confusing.) 226 single_kboard under X. This is very confusing.)
225 227
226 ** Change Lisp code not to (getenv "TERM"); use the `tty-type' frame
227 parameter or the frame-tty-type function instead. (M-x tags-search
228 "TERM" helps with this.) Update: Actually, all getenv invocations
229 should be checked for multi-tty compatibility, and an interface
230 must be implemented to get the remote client's environment.
231
232 ** The terminal customization files in term/*.el tend to change global 228 ** The terminal customization files in term/*.el tend to change global
233 parameters, which may confuse Emacs with multiple displays. Change 229 parameters, which may confuse Emacs with multiple displays. Change
234 them to tweak only frame-local settings, if possible. 230 them to tweak only frame-local settings, if possible.
235 231
236 ** Dan Nicolaescu suggests that -nw should be added as an alias for -t 232 ** Dan Nicolaescu suggests that -nw should be added as an alias for -t
270 ":0.0") 266 ":0.0")
271 267
272 etc. 268 etc.
273 269
274 See next issue why this is necessary. 270 See next issue why this is necessary.
271
272 (Update: The consensus on emacs-devel seems to be to do this via
273 integer identifiers. That's fine by me.)
275 274
276 ** The following needs to be supported: 275 ** The following needs to be supported:
277 276
278 $ emacsclient -t 277 $ emacsclient -t
279 C-z 278 C-z
284 same terminal device; each new emacsclient process should create 283 same terminal device; each new emacsclient process should create
285 its own display. As displays are currently identified by their 284 its own display. As displays are currently identified by their
286 device names, this is not possible until struct display becomes 285 device names, this is not possible until struct display becomes
287 accessible as a Lisp-level object. 286 accessible as a Lisp-level object.
288 287
289 ** Add an elaborate mechanism for display-local variables. (There are
290 already a few of these; search for `terminal-local' in the Elisp
291 manual.)
292
293 ** Very strange bug: visible-bell does not work on secondary 288 ** Very strange bug: visible-bell does not work on secondary
294 terminals in xterm and konsole. The screen does flicker a bit, 289 terminals in xterm and konsole. The screen does flicker a bit,
295 but it's so quick it isn't noticable. 290 but it's so quick it isn't noticable.
296 291
297 ** Clean up the frame-local variable system. I think it's ugly and 292 ** Clean up the frame-local variable system. I think it's ugly and
301 296
302 ** Implement support for starting an interactive Emacs session without 297 ** Implement support for starting an interactive Emacs session without
303 an initial frame. (The user would connect to it and open frames 298 an initial frame. (The user would connect to it and open frames
304 later, with emacsclient.) 299 later, with emacsclient.)
305 300
306 ** Fix Mac support (I can't do this myself). Note that the current 301 ** Fix Mac support (I can't do this entirely myself). Note that the
307 state of Mac-specific source files in the multi-tty tree are not 302 current state of Mac-specific source files in the multi-tty tree
308 useful; before starting work on Mac support, revert to pristine, 303 are not useful; before starting work on Mac support, revert to
309 pre-multi-tty versions. 304 pristine, pre-multi-tty versions.
310 305
311 ** Fix W32 support (I can't do this myself). Note that the current 306 ** Fix W32 support (I can't do this entirely myself). Note that the
312 state of W32-specific source files in the multi-tty tree are not 307 current state of W32-specific source files in the multi-tty tree
313 useful; before starting work on W32 support, revert to pristine, 308 are not useful; before starting work on W32 support, revert to
314 pre-multi-tty versions. 309 pristine, pre-multi-tty versions.
315 310
316 ** Fix DOS support (I can't do this myself). Note that the current 311 ** Fix DOS support (I can't do this entirely myself). Note that the
317 state of DOS-specific source files in the multi-tty tree are not 312 current state of DOS-specific source files in the multi-tty tree
318 useful; before starting work on DOS support, revert to pristine, 313 are not useful; before starting work on DOS support, revert to
319 pre-multi-tty versions. 314 pristine, pre-multi-tty versions.
320 315
321 ** Do a grep on XXX and ?? for more issues. 316 ** Do a grep on XXX and ?? for more issues.
322 317
323 ** Understand Emacs's low-level input system (it's black magic) :-) 318 ** Understand Emacs's low-level input system (it's black magic) :-)
324 What exactly does interrupt_input do? I tried to disable it for 319 What exactly does interrupt_input do? I tried to disable it for
774 variables to be frame-local, as suggested by Mark Plaksin 769 variables to be frame-local, as suggested by Mark Plaksin
775 (thanks!). I think that the redisplay bugs are in fact not bugs, 770 (thanks!). I think that the redisplay bugs are in fact not bugs,
776 but delays caused by single_kboard --> perhaps MULTI_KBOARD should 771 but delays caused by single_kboard --> perhaps MULTI_KBOARD should
777 be removed.) 772 be removed.)
778 773
774 -- frame-creation-function was removed, which might be a bad idea.
775 Think up a compatible solution.
776
777 (It was an internal interface that may be changed when necessary.)
778
779 -- Change Lisp code not to (getenv "TERM"); use the `tty-type' frame
780 parameter or the frame-tty-type function instead. (M-x tags-search
781 "TERM" helps with this.) Update: Actually, all getenv invocations
782 should be checked for multi-tty compatibility, and an interface
783 must be implemented to get the remote client's environment.
784
785 (Done. Only getenv calls in lisp/term/*.el were changed; other
786 calls should be mostly left as they are.)
787
788 -- Add an elaborate mechanism for display-local variables. (There are
789 already a few of these; search for `terminal-local' in the Elisp
790 manual.)
791
792 (Not needed. Display-local variables could be emulated by
793 frame-local variables.)
779 794
780 795
781 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d 796 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d