Mercurial > emacs
diff README.multi-tty @ 83449:ff74a86c2b16
Overhaul and simplify single_kboard API. Allow calls to `recursive-edit' in process filters. Small fixes.
* lisp/server.el (server-process-filter): Protect `display-splash-screen'
call in a condition-case. Explain why.
* src/callint.c (Fcall_interactively): Update call to
`temporarily_switch_to_single_kboard'.
* src/fns.c (Fy_or_n_p): Ditto.
* src/frame.c (Fdelete_frame): Remove unused variable `count'.
* src/keyboard.c (wrong_kboard_jmpbuf): Remove global variable.
* src/keyboard.c (read_char): Add wrong_kboard_jmpbuf parameter to allow
for recursive calls. Update longjmp invocations. Remember the
original current_kboard, and longjmp to `wrong_kboard_jmpbuf' when a
filter, timer or sentinel changes it. Comment out unnecessary calls to
`record_single_kboard_state' and `any_kboard_state'. Update recursive
calls.
* src/keyboard.c (read_key_sequence): Add `wrong_kboard_jmpbuf' local
variable. Update setjmp and read_char calls. Abort if
interrupted_kboard died in read_char.
* src/keyboard.c (any_kboard_state, single_kboard_state)
(record_single_kboard_state): Comment out obsolete functions.
(push_frame_kboard): Remove function.
(pop_kboard): Switch out of single_kboard mode if the
kboard has been deleted.
(temporarily_switch_to_single_kboard): Change first
parameter to a frame pointer. Throw an error when caller wants to
change kboards while in single_kboard mode.
(restore_kboard_configuration): Abort if pop_kboard changed
the kboard in single_kboard mode.
(Frecursive_edit): Switch to single_kboard mode only in
nested command loops.
(cmd_error, command_loop, command_loop_1, timer_check):
Comment out unnecessary call to `any_kboard_state' and
`record_single_kboard_state'.
* src/keyboard.c (delete_kboard): Exit single_kboard mode if we have just
deleted that kboard.
* src/keyboard.c (interrupt_signal): Use `Fkill_emacs' to exit Emacs, not
`fatal_error_signal'.
* src/keyboard.h (read_char, single_kboard_state)
(record_single_kboard_state): Remove.
(temporarily_switch_to_single_kboard): Update.
* src/lread.c: Include setjmp.h. Update declaration of `read_char'.
(read_filtered_event): Call `read_char' with a local
`wrong_kboard_jmpbuf'.
* src/minibuf.c (read_minibuf): Update call to
`temporarily_switch_to_single_kboard'.
* src/termchar.h (tty_display_info): Rename `previous_terminal_frame'
member to `previous_frame'.
* src/xdisp.c (redisplay_internal): Update references to
`previous_terminal_frame'.
(display_mode_line, Fformat_mode_line): Replace calls to
`push_frame_kboard' with `push_kboard'.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-489
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Tue, 03 Jan 2006 01:50:46 +0000 |
parents | dc3a189e9e3a |
children | 845a93c68e9a |
line wrap: on
line diff
--- a/README.multi-tty Tue Jan 03 01:22:02 2006 +0000 +++ b/README.multi-tty Tue Jan 03 01:50:46 2006 +0000 @@ -401,12 +401,6 @@ THINGS TO DO ------------ -** Let-binding `overriding-terminal-local-map' on a brand new frame - does not seem to work correctly. (See `fancy-splash-screens'.) - The keymap seems to be set up right, but events go to another - terminal. Or is it `unread-command-events' that gets Emacs - confused? Investigate. - ** `delete-frame' events are handled by `special-event-map' immediately when read by `read_char'. This is fine but it prevents higher-level keymaps from binding that event to get notified of the @@ -466,6 +460,10 @@ Emacs with GTK support. If you want to play around with GTK multidisplay (and don't mind core dumps), you can edit src/config.h and define HAVE_GTK_MULTIDISPLAY there by hand. + + Update: Han reports that GTK+ version 2.8.9 almost gets display + disconnects right. GTK will probably be fully fixed by the time + multi-tty gets into the trunk. ** Audit `face-valid-attribute-values' usage in customize and elsewhere. Its return value depends on the current window system. @@ -477,10 +475,6 @@ ** frames-on-display-list should also accept frames. -** I smell something funny around pop_kboard's "deleted kboard" case. - Determine what are the circumstances of this case, and fix any - bug that comes to light. - ** Consider the `tty-type' frame parameter and the `display-tty-type' function. They serve the exact same purpose. I think it may be a good idea to eliminate one of them, preferably `tty-type'. @@ -514,10 +508,6 @@ instead of delete-frame-functions), after-delete-terminal-functions, after-create-terminal-functions. -** Fix set-input-mode for multi-tty. It's a truly horrible interface; - what if we'd blow it up into several separate functions (with a - compatibility definition)? - ** BULK RENAME: The `display-' prefix of new Lisp-level functions conflicts with stuff like `display-time-mode'. Use `device-' or `terminal-' instead. I think I prefer `terminal-'. @@ -583,6 +573,8 @@ by changing the modelines or some other frame-local display element on the locked out displays. + Update: In fact struct kboard does have an echo_string slot. + ** The session management module is prone to crashes when the X connection is closed and then later I try to connect to a new X session: @@ -670,6 +662,9 @@ terminals in xterm and konsole. The screen does flicker a bit, but it's so quick it isn't noticable. + (Update: This is probably some problem with padding or whatnot on + the secondary terminals.) + ** Move baud_rate to struct display. ** Implement support for starting an interactive Emacs session without @@ -1414,6 +1409,32 @@ against `delete-frame-functions' throwing an error and preventing a frame delete. (patch-475) +-- Fix set-input-mode for multi-tty. It's a truly horrible interface; + what if we'd blow it up into several separate functions (with a + compatibility definition)? + + (Done. See `set-input-interrupt-mode', `set-output-flow-control', + `set-input-meta-mode' and `set-quit-char'.) (patch-457) + +-- Let-binding `overriding-terminal-local-map' on a brand new frame + does not seem to work correctly. (See `fancy-splash-screens'.) + The keymap seems to be set up right, but events go to another + terminal. Or is it `unread-command-events' that gets Emacs + confused? Investigate. + + (Emacs was confused because a process filter entered + `recursive-edit' while Emacs was reading input. I added support + for this in the input system.) (patch-489) + +-- I smell something funny around pop_kboard's "deleted kboard" case. + Determine what are the circumstances of this case, and fix any + bug that comes to light. + + (It happens simply because single_kboard's terminal is sometimes + deleted while executing a command on it, for example the one that + kills the terminal. There was no bug here, but I rewrote the whole + single_kboard mess anyway.) (patch-489) + ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d