Mercurial > emacs
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 |