Mercurial > emacs
comparison README.multi-tty @ 83230:d8738586aaec
Remove remaining references to updating_frame.
* src/dispextern.h (updated_window): Remove comment reference to
updating_frame.
* src/dispnew.c (update_window): Remove bogus xassert.
* src/xterm.c: (x_clear_frame): Update comment.
(x_draw_window_cursor): Remove reference to updating_frame.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-270
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 28 Nov 2004 14:39:06 +0000 |
parents | fe1db7935e1a |
children | ad592995fd24 |
comparison
equal
deleted
inserted
replaced
83229:b8f2149f9c3d | 83230:d8738586aaec |
---|---|
1 -*- coding: utf-8; mode: text; -*- | 1 -*- coding: utf-8; mode: text; -*- |
2 GOAL | 2 GOAL |
3 ---- | 3 ---- |
4 | 4 |
5 The goal of this branch is to implement support for opening multiple, | 5 This branch implements support for opening multiple, different tty |
6 different tty devices and simultaneous X and tty frames from a single | 6 devices and simultaneous X and tty frames from a single Emacs session. |
7 Emacs session. | |
8 | 7 |
9 Some use cases: | 8 Some use cases: |
10 Emacs is notoriously slow at startup, so most people use another | 9 Emacs is notoriously slow at startup, so most people use another |
11 editor or emacsclient for quick editing jobs from the console. | 10 editor or emacsclient for quick editing jobs from the console. |
12 Unfortunately, emacsclient was very awkward to use, because it did not | 11 Unfortunately, emacsclient was very awkward to use, because it did not |
26 I'm Károly Lőrentey. My address: lorentey@elte.hu. | 25 I'm Károly Lőrentey. My address: lorentey@elte.hu. |
27 | 26 |
28 Comments, bug reports, suggestions and patches are welcome; send them | 27 Comments, bug reports, suggestions and patches are welcome; send them |
29 to multi-tty@lists.fnord.hu. | 28 to multi-tty@lists.fnord.hu. |
30 | 29 |
30 The following is a (sadly incomplete) list of people who have | |
31 contributed to the project by testing, submitting patches, bug | |
32 reports, and suggestions. Thanks! | |
33 | |
34 ARISAWA Akihiro <ari at mbf dot ocn dot ne dot jp> | |
35 Han Boetes <han at mijncomputer dot nl> | |
36 Robert J. Chassell <bob at rattlesnake dot com> | |
37 Romain Francoise <romain at orebokech dot com> | |
38 Ami Fischman <ami at fischman dot org> | |
39 Friedrich Delgado Friedrichs <friedel at nomaden dot org> | |
40 IRIE Tetsuya <irie at t dot email dot ne dot jp> | |
41 Yoshiaki Kasahara <kasahara at nc dot kyushu-u dot ac dot jp> | |
42 Jurej Kubelka <Juraj dot Kubelka at email dot cz> | |
43 David Lichteblau <david at lichteblau dot com> | |
44 Istvan Marko <mi-mtty at kismala dot com> | |
45 Ted Morse <morse at ciholas dot com> | |
46 Dan Nicolaescu <dann at ics dot uci dot edu> | |
47 Gergely Nagy <algernon at debian dot org> | |
48 Mark Plaksin <happy at mcplaksin dot org> | |
49 Francisco Borges <borges at let dot rug dot nl> | |
50 Frank Ruell <stoerte at dreamwarrior dot net> | |
51 Dan Waber <dwaber at logolalia dot com> | |
52 and many others. | |
53 | |
54 Richard Stallman was kind enough to review an earlier version of my | |
55 patches. | |
56 | |
57 | |
31 MAILING LISTS | 58 MAILING LISTS |
32 ------------- | 59 ------------- |
33 | 60 |
34 The multi-tty mailing list (discussion & bug reports): | 61 The multi-tty mailing list (discussion & bug reports): |
35 | 62 |
62 know if you succeed or fail to use it on other platforms---I'll have a | 89 know if you succeed or fail to use it on other platforms---I'll have a |
63 few tricky test cases for you. | 90 few tricky test cases for you. |
64 | 91 |
65 Known problems: | 92 Known problems: |
66 | 93 |
67 * Mac, Windows and DOS support is broken, probably doesn't | 94 * The single-kboard mode. |
68 even compile -- this will be solved later. | 95 |
96 If your multi-tty Emacs session seems to be frozen, you | |
97 probably have a recursive editing session or a pending | |
98 minibuffer prompt (which is a kind of recursive editing) on | |
99 another display. To unfreeze your session, switch to that | |
100 display and complete the recursive edit, for example by | |
101 pressing C-] (`abort-recursive-edit'). | |
102 | |
103 I am sorry to say that currently there is no way to break | |
104 out of this "single-kboard mode" from a frozen display. If | |
105 you are unable to switch to the display that locks the | |
106 others (for example because it is on a remote computer), | |
107 then you can use emacsclient to break out of all recursive | |
108 editing sessions: | |
109 | |
110 emacsclient -e '(top-level)' | |
111 | |
112 Note that this (perhaps) unintuitive behaviour is by design. | |
113 Single-kboard mode is required because of an intrinsic Emacs | |
114 limitation that is very hard to eliminate. (This limitation | |
115 is related to the single-threaded nature of Emacs.) | |
116 | |
117 I plan to implement better user notification and support for | |
118 breaking out of single-kboard mode from locked displays. | |
119 | |
120 * Mac, Windows and DOS support is broken, doesn't even | |
121 compile. Multiple display support will probably not provide | |
122 new Emacs features on these systems, but the multi-tty | |
123 branch changed a few low-level interfaces, and the | |
124 system-dependent source files need to be adapted | |
125 accordingly. The changes are mostly trivial, so almost | |
126 anyone can help, if only by compiling the branch and | |
127 reporting the compiler errors. (It is not worth to do this | |
128 yet, though.) | |
129 | |
69 | 130 |
70 HOW TO GET THE BRANCH | 131 HOW TO GET THE BRANCH |
71 --------------------- | 132 --------------------- |
72 | 133 |
73 The branch uses GNU Arch (http://www.gnuarch.org) for version control. | 134 The branch uses GNU Arch (http://www.gnuarch.org) for version control. |
84 tla register-archive http://mirrors.gnuarch.org/lorentey@elte.hu--2004/ | 145 tla register-archive http://mirrors.gnuarch.org/lorentey@elte.hu--2004/ |
85 tla get lorentey@elte.hu--2004/emacs--multi-tty <directory> | 146 tla get lorentey@elte.hu--2004/emacs--multi-tty <directory> |
86 | 147 |
87 (I use a recent tla development snapshot, but any of the released | 148 (I use a recent tla development snapshot, but any of the released |
88 versions of arch will do fine, I think.) My GPG key id is 0FB27A3F; | 149 versions of arch will do fine, I think.) My GPG key id is 0FB27A3F; |
89 it is available from hkp://wwwkeys.eu.pgp.net/, or my homepage at | 150 it is available from hkp://wwwkeys.eu.pgp.net/, or from my homepage at |
90 http://lorentey.hu/rolam/gpg.html) | 151 http://lorentey.hu/rolam/gpg.html) |
91 | 152 |
92 To update your source tree to the latest revision after the first | 153 Don't worry if the above checkout takes a few minutes to complete; |
93 checkout, simply use the following command: | 154 once you have a source tree, updating it to the latest revision will |
94 | 155 be _much_ faster. Use the following command for the update: |
95 tla replay lorentey@elte.hu--2004/emacs--multi-tty--0 | 156 |
96 | 157 tla replay |
97 If you are interested, you can find more information about Arch on | 158 |
98 http://wiki.gnuarch.org/. It's a wonderful source control system, I | 159 You can find more information about Arch on http://wiki.gnuarch.org/. |
99 highly recommend it. | 160 It's a wonderful source control system, I highly recommend it. |
100 | 161 |
101 If you don't have tla, the branch has a homepage from which you can | 162 If you don't have tla, the branch has a homepage from which you can |
102 download conventional patches against Emacs CVS HEAD: | 163 download conventional patches against Emacs CVS HEAD: |
103 | 164 |
104 http://lorentey.hu/project/emacs.html | 165 http://lorentey.hu/project/emacs.html |
144 | 205 |
145 Creating new frames on the same tty with C-x 5 2 works, and they | 206 Creating new frames on the same tty with C-x 5 2 works, and they |
146 behave the same way as in previous Emacs versions. If you exit emacs, | 207 behave the same way as in previous Emacs versions. If you exit emacs, |
147 all terminals should be restored to their previous states. | 208 all terminals should be restored to their previous states. |
148 | 209 |
149 This is work in progress, and probably full of bugs. You should | 210 This is work in progress, and probably full of bugs. It is a good |
150 always run emacs from gdb, so that you'll have a live instance to | 211 idea to run emacs from gdb, so that you'll have a live instance to |
151 debug if something goes wrong. Please send me | 212 debug if something goes wrong. Please send me your bug reports on our |
152 (multi-tty@lists.fnord.hu) your bug reports. | 213 mailing list: multi-tty@lists.fnord.hu |
153 | 214 |
154 TIPS & TRICKS | 215 TIPS & TRICKS |
155 ------------- | 216 ------------- |
156 | 217 |
157 I think the best way to use the new Emacs is to have it running inside | 218 I think the best way to use the new Emacs is to have it running inside |
265 *** The `window-system' variable has been made frame-local. | 326 *** The `window-system' variable has been made frame-local. |
266 | 327 |
267 *** The new `initial-window-system' variable contains the | 328 *** The new `initial-window-system' variable contains the |
268 `window-system' value for the first frame. | 329 `window-system' value for the first frame. |
269 | 330 |
270 THANKS | |
271 ------ | |
272 | |
273 The following is a (sadly incomplete) list of people who have | |
274 contributed to the project by testing, submitting patches, bug | |
275 reports, and suggestions. Thanks! | |
276 | |
277 ARISAWA Akihiro <ari at mbf dot ocn dot ne dot jp> | |
278 Han Boetes <han at mijncomputer dot nl> | |
279 Robert J. Chassell <bob at rattlesnake dot com> | |
280 Romain Francoise <romain at orebokech dot com> | |
281 Ami Fischman <ami at fischman dot org> | |
282 Friedrich Delgado Friedrichs <friedel at nomaden dot org> | |
283 IRIE Tetsuya <irie at t dot email dot ne dot jp> | |
284 Yoshiaki Kasahara <kasahara at nc dot kyushu-u dot ac dot jp> | |
285 Jurej Kubelka <Juraj dot Kubelka at email dot cz> | |
286 David Lichteblau <david at lichteblau dot com> | |
287 Istvan Marko <mi-mtty at kismala dot com> | |
288 Ted Morse <morse at ciholas dot com> | |
289 Dan Nicolaescu <dann at ics dot uci dot edu> | |
290 Gergely Nagy <algernon at debian dot org> | |
291 Mark Plaksin <happy at mcplaksin dot org> | |
292 Francisco Borges <borges at let dot rug dot nl> | |
293 Frank Ruell <stoerte at dreamwarrior dot net> | |
294 Dan Waber <dwaber at logolalia dot com> | |
295 and many others. | |
296 | |
297 Richard Stallman was kind enough to review an earlier version of my | |
298 patches. | |
299 | |
300 CHANGELOG | 331 CHANGELOG |
301 --------- | 332 --------- |
302 | 333 |
303 See arch logs. | 334 See arch logs. |
304 | 335 |
307 (The rest of this file consists of my development notes and as such it | 338 (The rest of this file consists of my development notes and as such it |
308 is probably not very interesting for anyone else.) | 339 is probably not very interesting for anyone else.) |
309 | 340 |
310 THINGS TO DO | 341 THINGS TO DO |
311 ------------ | 342 ------------ |
312 | |
313 ** rif->flush_display_optional (NULL) calls should be replaced by a | |
314 new global function. | |
315 | |
316 ** Hunt down display-related functions in frame.el and extend them all | |
317 to accept display ids. | |
318 | |
319 ** Have a look at fatal_error_hook. | |
320 | |
321 ** Check if we got term-setup-hook right. | |
322 | |
323 ** make-frame does not correctly handle extra parameters in its | |
324 argument: | |
325 | |
326 (frame-parameter (make-frame (list (cons 'foobar 42))) 'foobar) | |
327 => nil | |
328 | |
329 (This is likely an error in the CVS trunk.) | |
330 | |
331 ** Fix set-input-mode for multi-tty. It's a truly horrible interface; | |
332 what if we'd blow it up into several separate functions (with a | |
333 compatibility definition)? | |
334 | |
335 ** Lisp-level stuff that needs to be updated for multi-tty: | |
336 | |
337 - normal-erase-is-backspace-mode (simple.el) (rep. by Dan Waber) | |
338 | |
339 | 343 |
340 ** The single-keyboard mode of MULTI_KBOARD is extremely confusing | 344 ** The single-keyboard mode of MULTI_KBOARD is extremely confusing |
341 sometimes; Emacs does not respond to stimuli from other keyboards. | 345 sometimes; Emacs does not respond to stimuli from other keyboards. |
342 At least a beep or a message would be important, if the single-mode | 346 At least a beep or a message would be important, if the single-mode |
343 is still required to prevent interference. (Reported by Dan | 347 is still required to prevent interference. (Reported by Dan |
344 Nicolaescu.) (Update: selecting a region with the mouse enables | 348 Nicolaescu.) |
345 single_kboard under X. This is very confusing.) Update: | 349 |
346 After discussions with Richard, this will be resolved by having | 350 Update: selecting a region with the mouse enables single_kboard |
347 locked displays warn the user to wait, and introducing a complex | 351 under X. This is very confusing. |
348 protocol to remotely bail out of single-kboard mode by pressing C-g. | 352 |
353 Update: After discussions with Richard, this will be resolved by | |
354 having locked displays warn the user to wait, and introducing a | |
355 complex protocol to remotely bail out of single-kboard mode by | |
356 pressing C-g. | |
357 | |
358 Update: Warning the user is not trivial to implement, as Emacs has | |
359 only one echo area. Ideally the warning should not be displayed on | |
360 the display that is locking the others. Perhaps the high | |
361 probability of user confusion caused by single_kboard mode deserves | |
362 a special case in the display code. Alternatively, it might be | |
363 good enough to signal single_kboard mode by changing the modelines | |
364 or some other frame-local display element on the locked out displays. | |
365 | |
366 ** normal-erase-is-backspace-mode in simple.el needs to be updated for | |
367 multi-tty (rep. by Dan Waber). | |
368 | |
369 ** Hunt down display-related functions in frame.el and extend them all | |
370 to accept display ids. | |
371 | |
372 ** rif->flush_display_optional (NULL) calls should be replaced by a | |
373 new global function. | |
374 | |
375 ** Have a look at fatal_error_hook. | |
376 | |
377 ** Check if we got term-setup-hook right. | |
378 | |
379 ** make-frame does not correctly handle extra parameters in its | |
380 argument: | |
381 | |
382 (frame-parameter (make-frame (list (cons 'foobar 42))) 'foobar) | |
383 => nil | |
384 | |
385 (This is likely an error in the CVS trunk.) | |
386 | |
387 ** Fix set-input-mode for multi-tty. It's a truly horrible interface; | |
388 what if we'd blow it up into several separate functions (with a | |
389 compatibility definition)? | |
349 | 390 |
350 ** The terminal customization files in term/*.el tend to change global | 391 ** The terminal customization files in term/*.el tend to change global |
351 parameters, which may confuse Emacs with multiple displays. Change | 392 parameters, which may confuse Emacs with multiple displays. Change |
352 them to tweak only frame-local settings, if possible. | 393 them to tweak only frame-local settings, if possible. |
353 | 394 |
362 implement. | 403 implement. |
363 | 404 |
364 ** Gergely Nagy suggests that C-x # should only kill the current | 405 ** Gergely Nagy suggests that C-x # should only kill the current |
365 frame, not any other emacsclient frame that may have the same file | 406 frame, not any other emacsclient frame that may have the same file |
366 opened for editing. I think I agree with him. | 407 opened for editing. I think I agree with him. |
367 | |
368 ** Miles Bader suggests that C-x C-c on an emacsclient frame should | |
369 only close the frame, not exit the entire Emacs session. Update: | |
370 see above for a function that does this. Maybe this should be the | |
371 new default? | |
372 | 408 |
373 ** Very strange bug: visible-bell does not work on secondary | 409 ** Very strange bug: visible-bell does not work on secondary |
374 terminals in xterm and konsole. The screen does flicker a bit, | 410 terminals in xterm and konsole. The screen does flicker a bit, |
375 but it's so quick it isn't noticable. | 411 but it's so quick it isn't noticable. |
376 | 412 |
938 device names, this is not possible until struct display becomes | 974 device names, this is not possible until struct display becomes |
939 accessible as a Lisp-level object. | 975 accessible as a Lisp-level object. |
940 | 976 |
941 (Done.) | 977 (Done.) |
942 | 978 |
979 -- Miles Bader suggests that C-x C-c on an emacsclient frame should | |
980 only close the frame, not exit the entire Emacs session. Update: | |
981 see above for a function that does this. Maybe this should be the | |
982 new default? | |
983 | |
984 (Done. This is the new default. No complaints so far.) | |
985 | |
986 | |
943 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d | 987 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d |