comparison src/cmdloop.c @ 1703:f561c3904bb3

[xemacs-hg @ 2003-09-20 01:46:53 by youngs] 2003-09-20 Ilya N. Golubev <gin@mo.msk.ru> * simple.el (raw-append-message): Allow user to specify alternative function for displaying message. (redisplay-echo-area-function): New. (clear-message): Allow user to specify function for finishing message display. (undisplay-echo-area-function): New. 2003-09-20 Ilya N. Golubev <gin@mo.msk.ru> * xemacs/mini.texi (Minibuffer): Add customizing message display reference. * lispref/display.texi (Customizing Message Display): New, describe `redisplay-echo-area-function', `undisplay-echo-area-function', `minibuffer-echo-wait-function'. (The Echo Area): Add menu. 2003-09-20 Ilya N. Golubev <gin@mo.msk.ru> * cmdloop.c (Fcommand_loop_1): Allow specifying elisp function for waiting user input while displaying message while in minibuffer. (Vminibuffer_echo_wait_function): New, associated variable... (vars_of_cmdloop): ... initialize it.
author youngs
date Sat, 20 Sep 2003 01:47:03 +0000
parents fffe735e63ee
children 61855263cb07
comparison
equal deleted inserted replaced
1702:245980c04067 1703:f561c3904bb3
66 66
67 /* Variable defined in Lisp. */ 67 /* Variable defined in Lisp. */
68 Lisp_Object Qerrors_deactivate_region; 68 Lisp_Object Qerrors_deactivate_region;
69 69
70 Lisp_Object Qtop_level; 70 Lisp_Object Qtop_level;
71 Lisp_Object Vminibuffer_echo_wait_function;
71 72
72 static Lisp_Object command_loop_1 (Lisp_Object dummy); 73 static Lisp_Object command_loop_1 (Lisp_Object dummy);
73 EXFUN (Fcommand_loop_1, 0); 74 EXFUN (Fcommand_loop_1, 0);
74 75
75 /* There are two possible command loops -- one written entirely in 76 /* There are two possible command loops -- one written entirely in
557 if (minibuf_level > 0 && echo_area_active (selected_frame ())) 558 if (minibuf_level > 0 && echo_area_active (selected_frame ()))
558 { 559 {
559 /* Bind dont_check_for_quit to 1 so that C-g gets read in 560 /* Bind dont_check_for_quit to 1 so that C-g gets read in
560 rather than quitting back to the minibuffer. */ 561 rather than quitting back to the minibuffer. */
561 int count = begin_dont_check_for_quit (); 562 int count = begin_dont_check_for_quit ();
562 Fsit_for (make_int (2), Qnil); 563 if (!NILP (Vminibuffer_echo_wait_function))
564 call0 (Vminibuffer_echo_wait_function);
565 else
566 Fsit_for (make_int (2), Qnil);
563 clear_echo_area (selected_frame (), Qnil, 0); 567 clear_echo_area (selected_frame (), Qnil, 0);
564 Vquit_flag = Qnil; /* see begin_dont_check_for_quit() */ 568 Vquit_flag = Qnil; /* see begin_dont_check_for_quit() */
565 unbind_to (count); 569 unbind_to (count);
566 } 570 }
567 571
623 627
624 DEFVAR_LISP ("enter-window-hook", &Venter_window_hook /* 628 DEFVAR_LISP ("enter-window-hook", &Venter_window_hook /*
625 Not yet implemented. 629 Not yet implemented.
626 */ ); 630 */ );
627 Venter_window_hook = Qnil; 631 Venter_window_hook = Qnil;
632
633 DEFVAR_LISP ("minibuffer-echo-wait-function",
634 &Vminibuffer_echo_wait_function /*
635 The function called by command loop when minibuffer was active and
636 message was displayed (text appeared in \" *Echo Area*\" buffer). It
637 must wait after displaying message so that user can read it. If the
638 variable value is `nil', the equivalent of `(sit-for 2)' is run.
639 */ );
640 Vminibuffer_echo_wait_function = Qnil;
628 641
629 #ifndef LISP_COMMAND_LOOP 642 #ifndef LISP_COMMAND_LOOP
630 DEFVAR_LISP ("top-level", &Vtop_level /* 643 DEFVAR_LISP ("top-level", &Vtop_level /*
631 Form to evaluate when Emacs starts up. 644 Form to evaluate when Emacs starts up.
632 Useful to set before you dump a modified Emacs. 645 Useful to set before you dump a modified Emacs.