• Karoly Lorentey's avatar
    Fix crash after y-or-n-p prompt triggered by emacsclient. (Reported by Han... · 256c9c3a
    Karoly Lorentey authored
    Fix crash after y-or-n-p prompt triggered by emacsclient. (Reported by Han Boetes, analysis by Kalle Olavi Niemitalo.)
    
    * src/keyboard.c (temporarily_switch_to_single_kboard)
      (record_single_kboard_state, restore_kboard_configuration):  New functions.
      (timer_check): Use record_single_kboard_state instead of
      naive single_kboard state management.
    
    * src/fns.c: Include termhooks.h.
      (Fy_or_n_p): Use temporarily_switch_to_single_kboard to prevent crashes
      caused by bogus longjmps in read_char.
    
    * src/callint.c (Fcall_interactively): Use
      temporarily_switch_to_single_kboard instead of single_kboard_state.
      Make sure it is correctly unwinded.
    
    * src/keyboard.c (recursive_edit_unwind): Remove single_kboard stuff.
      (Frecursive_edit): Use temporarily_switch_to_single_kboard for
      single_kboard state management.
    
    * src/minibuf.c (read_minibuf): Use temporarily_switch_to_single_kboard
      instead of simply calling single_kboard_state.
    
    * src/keyboard.c (push_device_kboard): Remove function.
      (push_kboard): New function.
      (push_frame_kboard): Use it.
      (pop_frame_kboard): Rename to pop_kboard.
    
    * src/xdisp.c (display_mode_line, Fformat_mode_line): Update uses.
    
    * src/data.c: Include termhooks.h.
      (Fterminal_local_value, Fset_terminal_local_value): Update.
    
    * src/Makefile.in (data.o, fns.o): Add termhooks.h dependency.
    
    * src/keyboard.h (push_device_kboard, pop_frame_kboard): Remove declarations.
      (push_kboard, pop_kboard, temporarily_switch_to_single_kboard)
      (record_single_kboard_state): New declarations.
    
    
    git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-414
    256c9c3a
fns.c 157 KB