aboutsummaryrefslogtreecommitdiffstats
path: root/README.multi-tty
diff options
context:
space:
mode:
authorKaroly Lorentey2004-01-09 18:57:53 +0000
committerKaroly Lorentey2004-01-09 18:57:53 +0000
commit3224dac1b8a3929f02ebea7766ed04704810586b (patch)
tree59ca226110bd1c50909f389fd2b037494b4dd1b2 /README.multi-tty
parent08c8c725b26298d9d4fb035b4c456f10ac6adc1b (diff)
downloademacs-3224dac1b8a3929f02ebea7766ed04704810586b.tar.gz
emacs-3224dac1b8a3929f02ebea7766ed04704810586b.zip
Hookified termcap devices, added bootstrap display device, plus many bugfixes.
lisp/frame.el (display-color-cells): Pass display parameter to tty-display-color-cells. lisp/term/xterm.el (xterm-register-default-colors): Pass the selected-frame to display-color-cells. src/dispextern.h (set_terminal_modes, reset_terminal_modes): Removed declarations. (get_named_tty_display): New prototype. (tty_clear_end_of_line, term_init): Updated to new prototype. (initial_term_init): Renamed to init_initial_display. src/dispnew.c (Fredraw_frame): ifdef-out DOS-specific code. Add display parameter to set_terminal_modes call. (update_frame): Don't flush the tty of there is no tty. (init_display): Set up a termcap display on the controlling tty and change the initial frame to use that. Delete the initial display. src/frame.c (Fframep): Return t for the initial frame. (make_initial_frame): New function for creating the initial frame during bootstrap. Use init_initial_display, not initial_term_init. (make_terminal_frame): Removed special cases for creating the initial frame. src/frame.h (enum output_method): New entry: output_initial for the bootstrap display. (FRAME_INITIAL_P): New macro. (make_initial_frame): New prototype. src/keyboard.c (interrupt_signal): Exit Emacs on SIGINT from the (frameless) controlling tty, if possible. Explain this in a comment. (init_keyboard): Added comment about exiting on SIGINT. (Fset_input_mode): A termcap frame is never the initial frame anymore. src/sysdep.c (init_sys_modes): Update tty_set_terminal_modes call to the new prototype. (reset_sys_modes): Comment out tty_clear_end_of_line call; it doesn't work anymore. Update tty_reset_terminal_modes call. src/termchar.h (struct tty_display_info): Added pointer to the display structure, for reset_sys_modes. src/termhooks.h (struct display): Added display parameter to set_terminal_modes_hook and reset_terminal_modes_hook. src/term.c (initial_display): New variable. (tty_ring_bell, tty_update_end, tty_set_terminal_window, tty_cursor_to) (tty_raw_cursor_to, tty_clear_to_end, tty_clear_frame, tty_clear_end_of_line) (tty_write_glyphs, tty_insert_glyphs, tty_delete_glyphs, tty_ins_del_lines): New functions. (ring_bell, update_end, set_terminal_window, cursor_to, raw_cursor_to) (clear_to_end, clear_frame, clear_end_of_line, write_glyphs, insert_glyphs) (delete_glyphs, ins_del_lines): Removed special casing of termcap displays. (get_tty_display): New function. (Ftty_display_color_p, Ftty_display_color_cells): Use it. (get_named_tty_display): Removed static. (tty_set_terminal_modes, tty_reset_terminal_modes): Changed to use a display parameter instead of tty_display_info for hook compatibility. (set_terminal_modes, reset_terminal_modes): Removed. (initial_term_init): Renamed to init_initial_display. Set up an output_initial device, not a termcap display. (delete_initial_display): New function. (maybe_fatal): New function, for private use of term_init. (term_init): New parameter for choosing between fatal and simple errors. Removed incomprehensible special casing for the second initialization of the controlling tty. Use maybe_fatal for error handling. Initialize termcap display hooks in the new device. Initialize the display pointer in the tty_display_info structure. (delete_tty): Replace order of reset_sys_modes and delete_display. src/window.c (init_window_once): Call make_initial_frame instead of make_terminal_frame. src/xfaces.c (realize_default_face, realize_face): Don't abort on the bootstrap display device. src/xterm.c (XTset_terminal_modes, XTreset_terminal_modes): Added display parameter. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-48
Diffstat (limited to 'README.multi-tty')
-rw-r--r--README.multi-tty39
1 files changed, 29 insertions, 10 deletions
diff --git a/README.multi-tty b/README.multi-tty
index deb56789a7c..cfc1eb974d6 100644
--- a/README.multi-tty
+++ b/README.multi-tty
@@ -1,4 +1,4 @@
1 -*- coding: utf-8; -*- 1 -*- coding: utf-8; mode: text; -*-
2GOAL 2GOAL
3---- 3----
4 4
@@ -131,7 +131,12 @@ THINGS TO DO
131 sessions automatically convert the face colors to terminal colors 131 sessions automatically convert the face colors to terminal colors
132 when the face is loaded. This conversion must happen instead on 132 when the face is loaded. This conversion must happen instead on
133 the fly in write_glyphs, which might be problematic, as color 133 the fly in write_glyphs, which might be problematic, as color
134 approximation is done in lisp (term/tty-colors.el).) 134 approximation is currently done in lisp (term/tty-colors.el).)
135
136** frame-creation-function should always create a frame that is on the
137 same display as the selected frame. Maybe frame-creation-function
138 should simply be removed and make-frame changed to do the right
139 thing.
135 140
136** The command `emacsclient -t -e '(delete-frame)'' fails to exit. 141** The command `emacsclient -t -e '(delete-frame)'' fails to exit.
137 142
@@ -141,6 +146,11 @@ THINGS TO DO
141 extend emacsclient to handle suspend/resume. A `kill -STOP' almost 146 extend emacsclient to handle suspend/resume. A `kill -STOP' almost
142 works right now.) 147 works right now.)
143 148
149** If there are no frames on its controlling terminal, Emacs should
150 exit if the uses presses C-c there. (See the SIGTERM comment in
151 interrupt_signal on why this seems to be impossible to solve
152 generally.)
153
144** During an X session, Emacs seems to read from stdin. 154** During an X session, Emacs seems to read from stdin.
145 155
146** Move baud_rate to struct display. 156** Move baud_rate to struct display.
@@ -152,11 +162,20 @@ THINGS TO DO
152 an initial frame. (The user would connect to it and open frames 162 an initial frame. (The user would connect to it and open frames
153 later, with emacsclient.) Not necessarily a good idea. 163 later, with emacsclient.) Not necessarily a good idea.
154 164
155** Fix Mac support (I can't do this myself). 165** Fix Mac support (I can't do this myself). Note that the current
166 state of Mac-specific source files in the multi-tty tree are not
167 useful; before starting work on Mac support, revert to pristine,
168 pre-multi-tty versions.
156 169
157** Fix W32 support (I can't do this myself). 170** Fix W32 support (I can't do this myself). Note that the current
171 state of W32-specific source files in the multi-tty tree are not
172 useful; before starting work on W32 support, revert to pristine,
173 pre-multi-tty versions.
158 174
159** Fix DOS support (I can't do this myself). 175** Fix DOS support (I can't do this myself). Note that the current
176 state of DOS-specific source files in the multi-tty tree are not
177 useful; before starting work on DOS support, revert to pristine,
178 pre-multi-tty versions.
160 179
161** Do a grep on XXX and ?? for more issues. 180** Do a grep on XXX and ?? for more issues.
162 181
@@ -349,7 +368,7 @@ DIARY OF CHANGES
349 while true; do TERM=no-such-terminal-definition emacsclient -h; done 368 while true; do TERM=no-such-terminal-definition emacsclient -h; done
350 369
351 Emacs usually dumps core after a few dozen iterations. (The bug 370 Emacs usually dumps core after a few dozen iterations. (The bug
352 seems to be related to the xfree()ing or bzero()ing of 371 seems to be related to the xfreeing or bzeroing of
353 tty_output.Wcm. Maybe there are outside references to struct Wcm? 372 tty_output.Wcm. Maybe there are outside references to struct Wcm?
354 Why were these vars collected into a struct before multi-tty 373 Why were these vars collected into a struct before multi-tty
355 support?) 374 support?)
@@ -358,18 +377,18 @@ DIARY OF CHANGES
358 with hypothetical external references to Wcm, or any other 377 with hypothetical external references to Wcm, or any other
359 tty_output component; it was simply that delete_tty closed the 378 tty_output component; it was simply that delete_tty closed the
360 filehandles of secondary ttys twice, resulting in fclose doubly 379 filehandles of secondary ttys twice, resulting in fclose doubly
361 free()ing memory. Utterly trivial matter. I love the C's memory 380 freeing memory. Utterly trivial matter. I love the C's memory
362 management, it puts hair on your chest.) 381 management, it puts hair on your chest.)
363 382
364-- Support raw secondary terminals. (Note that SIGIO works only on 383-- Support raw secondary terminals. (Note that SIGIO works only on
365 the controlling terminal.) Hint: extend read_input_waiting() for 384 the controlling terminal.) Hint: extend read_input_waiting for
366 multiple ttys and hopefully this will be fixed. 385 multiple ttys and hopefully this will be fixed.
367 386
368 (Done, it seems to have been working already for some time. It 387 (Done, it seems to have been working already for some time. It
369 seems F_SETOWN does work, after all. Not sure what made it fail 388 seems F_SETOWN does work, after all. Not sure what made it fail
370 earlier, but it seems to be fixed (there were several changes 389 earlier, but it seems to be fixed (there were several changes
371 around request_sigio, maybe one of them did it). 390 around request_sigio, maybe one of them did it).
372 read_input_waiting() is only used in sys_select(), don't change 391 read_input_waiting is only used in sys_select, don't change
373 it.) (Update: After adding X support, it's broken again.) 392 it.) (Update: After adding X support, it's broken again.)
374 393
375-- Find out why does Emacs abort when it wants to close its 394-- Find out why does Emacs abort when it wants to close its
@@ -381,7 +400,7 @@ DIARY OF CHANGES
381 term_init/delete_tty. The hint was right, in a way.) 400 term_init/delete_tty. The hint was right, in a way.)
382 401
383-- Issue with SIGIO: it needs to be disabled during redisplay. See if 402-- Issue with SIGIO: it needs to be disabled during redisplay. See if
384 fcntl() kernel behaviour could be emulated by emacsclient. 403 fcntl kernel behaviour could be emulated by emacsclient.
385 404
386 (Done. Simply disabled the SIGIO emulation hack in emacsclient.) 405 (Done. Simply disabled the SIGIO emulation hack in emacsclient.)
387 (Update: it was added back.) 406 (Update: it was added back.)