Overhaul and simplify single_kboard API. Allow calls to `recursive-edit' in process...
authorKaroly Lorentey <lorentey@elte.hu>
Tue, 3 Jan 2006 01:50:46 +0000 (01:50 +0000)
committerKaroly Lorentey <lorentey@elte.hu>
Tue, 3 Jan 2006 01:50:46 +0000 (01:50 +0000)
commitb3e6f69c10973ff7b040ced07a3a084960619681
tree27d84923989971dd576d9d38f111f99c9b2cf2ce
parent0103b7c9f971e43ea4420a3f41704d85ad8f06ee
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
README.multi-tty
lisp/server.el
src/callint.c
src/fns.c
src/frame.c
src/keyboard.c
src/keyboard.h
src/lread.c
src/minibuf.c
src/termchar.h
src/xdisp.c