Mercurial > emacs
comparison src/keyboard.c @ 90787:91bf6e05918b
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 662-669)
- Update from CVS
- Fix read-only prompt problem in isearch
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 207-208)
- Merge from emacs--devo--0
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-184
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sun, 18 Mar 2007 14:11:08 +0000 |
parents | f83d17e1ace6 f602ddf5430e |
children | c0409ee15cee |
comparison
equal
deleted
inserted
replaced
90786:ca12f314faac | 90787:91bf6e05918b |
---|---|
2448 | 2448 |
2449 Lisp_Object print_help (); | 2449 Lisp_Object print_help (); |
2450 static Lisp_Object kbd_buffer_get_event (); | 2450 static Lisp_Object kbd_buffer_get_event (); |
2451 static void record_char (); | 2451 static void record_char (); |
2452 | 2452 |
2453 static Lisp_Object help_form_saved_window_configs; | |
2454 static Lisp_Object | |
2455 read_char_help_form_unwind (arg) | |
2456 { | |
2457 Lisp_Object window_config = XCAR (help_form_saved_window_configs); | |
2458 help_form_saved_window_configs = XCDR (help_form_saved_window_configs); | |
2459 if (!NILP (window_config)) | |
2460 Fset_window_configuration (window_config); | |
2461 return Qnil; | |
2462 } | |
2463 | |
2453 #ifdef MULTI_KBOARD | 2464 #ifdef MULTI_KBOARD |
2454 static jmp_buf wrong_kboard_jmpbuf; | 2465 static jmp_buf wrong_kboard_jmpbuf; |
2455 #endif | 2466 #endif |
2456 | 2467 |
2457 #define STOP_POLLING \ | 2468 #define STOP_POLLING \ |
3317 if (!NILP (Vhelp_form) && help_char_p (c)) | 3328 if (!NILP (Vhelp_form) && help_char_p (c)) |
3318 { | 3329 { |
3319 Lisp_Object tem0; | 3330 Lisp_Object tem0; |
3320 count = SPECPDL_INDEX (); | 3331 count = SPECPDL_INDEX (); |
3321 | 3332 |
3322 record_unwind_protect (Fset_window_configuration, | 3333 help_form_saved_window_configs |
3323 Fcurrent_window_configuration (Qnil)); | 3334 = Fcons (Fcurrent_window_configuration (Qnil), |
3335 help_form_saved_window_configs); | |
3336 record_unwind_protect (read_char_help_form_unwind, Qnil); | |
3324 | 3337 |
3325 tem0 = Feval (Vhelp_form); | 3338 tem0 = Feval (Vhelp_form); |
3326 if (STRINGP (tem0)) | 3339 if (STRINGP (tem0)) |
3327 internal_with_output_to_temp_buffer ("*Help*", print_help, tem0); | 3340 internal_with_output_to_temp_buffer ("*Help*", print_help, tem0); |
3328 | 3341 |
3329 cancel_echoing (); | 3342 cancel_echoing (); |
3330 do | 3343 do |
3331 c = read_char (0, 0, 0, Qnil, 0, NULL); | 3344 { |
3345 c = read_char (0, 0, 0, Qnil, 0, NULL); | |
3346 if (EVENT_HAS_PARAMETERS (c) | |
3347 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_click)) | |
3348 XSETCAR (help_form_saved_window_configs, Qnil); | |
3349 } | |
3332 while (BUFFERP (c)); | 3350 while (BUFFERP (c)); |
3333 /* Remove the help from the frame */ | 3351 /* Remove the help from the frame */ |
3334 unbind_to (count, Qnil); | 3352 unbind_to (count, Qnil); |
3335 | 3353 |
3336 redisplay (); | 3354 redisplay (); |
11332 staticpro (&menu_bar_one_keymap_changed_items); | 11350 staticpro (&menu_bar_one_keymap_changed_items); |
11333 | 11351 |
11334 menu_bar_items_vector = Qnil; | 11352 menu_bar_items_vector = Qnil; |
11335 staticpro (&menu_bar_items_vector); | 11353 staticpro (&menu_bar_items_vector); |
11336 | 11354 |
11355 help_form_saved_window_configs = Qnil; | |
11356 staticpro (&help_form_saved_window_configs); | |
11357 | |
11337 defsubr (&Scurrent_idle_time); | 11358 defsubr (&Scurrent_idle_time); |
11338 defsubr (&Sevent_convert_list); | 11359 defsubr (&Sevent_convert_list); |
11339 defsubr (&Sread_key_sequence); | 11360 defsubr (&Sread_key_sequence); |
11340 defsubr (&Sread_key_sequence_vector); | 11361 defsubr (&Sread_key_sequence_vector); |
11341 defsubr (&Srecursive_edit); | 11362 defsubr (&Srecursive_edit); |
11394 doc: /* If not -1, an object to be read as next command input event. */); | 11415 doc: /* If not -1, an object to be read as next command input event. */); |
11395 | 11416 |
11396 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events, | 11417 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events, |
11397 doc: /* List of events to be processed as input by input methods. | 11418 doc: /* List of events to be processed as input by input methods. |
11398 These events are processed before `unread-command-events' | 11419 These events are processed before `unread-command-events' |
11399 and actual keyboard input without given to `input-method-function'. */); | 11420 and actual keyboard input, but are not given to `input-method-function'. */); |
11400 Vunread_post_input_method_events = Qnil; | 11421 Vunread_post_input_method_events = Qnil; |
11401 | 11422 |
11402 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events, | 11423 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events, |
11403 doc: /* List of events to be processed as input by input methods. | 11424 doc: /* List of events to be processed as input by input methods. |
11404 These events are processed after `unread-command-events', but | 11425 These events are processed after `unread-command-events', but |