diff options
| author | Karoly Lorentey | 2006-01-03 01:50:46 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2006-01-03 01:50:46 +0000 |
| commit | b3e6f69c10973ff7b040ced07a3a084960619681 (patch) | |
| tree | 27d84923989971dd576d9d38f111f99c9b2cf2ce /lisp | |
| parent | 0103b7c9f971e43ea4420a3f41704d85ad8f06ee (diff) | |
| download | emacs-b3e6f69c10973ff7b040ced07a3a084960619681.tar.gz emacs-b3e6f69c10973ff7b040ced07a3a084960619681.zip | |
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
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/server.el | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lisp/server.el b/lisp/server.el index f8f3c510d07..382befd5349 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -755,9 +755,17 @@ The following commands are accepted by the client: | |||
| 755 | (with-selected-frame frame | 755 | (with-selected-frame frame |
| 756 | (switch-to-buffer (or (car buffers) | 756 | (switch-to-buffer (or (car buffers) |
| 757 | (get-buffer-create "*scratch*"))) | 757 | (get-buffer-create "*scratch*"))) |
| 758 | (display-startup-echo-area-message)) | 758 | (display-startup-echo-area-message) |
| 759 | (unless inhibit-splash-screen | 759 | (unless inhibit-splash-screen |
| 760 | (display-splash-screen))) | 760 | (condition-case err |
| 761 | ;; This looks scary because `fancy-splash-screens' | ||
| 762 | ;; will call `recursive-edit' from a process filter. | ||
| 763 | ;; However, that should be safe to do now. | ||
| 764 | (display-splash-screen) | ||
| 765 | ;; `recursive-edit' will throw an error if Emacs is | ||
| 766 | ;; already doing a recursive edit elsewhere. Catch it | ||
| 767 | ;; here so that we can finish normally. | ||
| 768 | (error nil))))) | ||
| 761 | 769 | ||
| 762 | ;; Delete the client if necessary. | 770 | ;; Delete the client if necessary. |
| 763 | (cond | 771 | (cond |