Mercurial > emacs
view etc/future-bug @ 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 | 23a1cea22d13 |
children | 02e2382f5e8a |
line wrap: on
line source
Date: Tue, 23 Feb 2199 21:03:50 -0600 From: Karl Fogel <kfogel@floss.cyclic.com> To: bug-gnu-emacs@prep.ai.mit.edu Subject: M-x search-backward-in-time broken... X-Windows: you'll envy the dead. In GNU Emacs 51.70.4 (i9986-unknown-linux-gnu, X toolkit) of Sat Feb 20 2199 on floss configured using `configure --with-x-toolkit=yes' The `search-backward-in-time' function appears to be broken in Emacs 51.70. Unfortunately, I can never seem to start the debugger early enough to catch the error as it happens. However I have traced the problem through source by eye, and it looks like `time-forward' can't handle negative arguments anymore. This is consistent with other symptoms: for example, `undo' (which since 51.25 has worked by passing a negative arg to `time-forward') is also broken. However, `do' still works -- it seems that `time-forward' continues to handle positive arguments just fine. No one here-and-now can figure out how to fix the problem, because the code for `time-forward' is so hairy. We're using M-x report-future-emacs-bug to request that you folks include more comments when you write it (sometime in 2198 as I recall). Thanks! -Karl Fogel <kfogel@red-bean.com> P.S. You'll be pleased to know that since (time-forward N) still works for N >= 0, we've used it to pre-emptively update configure.in. Emacs now configures and builds on every platform that will ever be made. It wasn't easy, but at least that's one problem out of the way for good. If you'd like the patch, just ask.