Add delayed warnings support.
* etc/NEWS: Document `delayed-warnings-list' and `delayed-warnings-hook'. * lisp/subr.el (display-delayed-warnings): New function. (delayed-warnings-hook): New variable. * src/keyboard.c (Qdelayed_warnings_hook): Define. (command_loop_1): Run `delayed-warnings-hook' if Vdelayed_warnings_list is non-nil. (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it. (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
This commit is contained in:
parent
f042970d4c
commit
638f053a0e
6 changed files with 53 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
|||
2011-04-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* NEWS: Document `delayed-warnings-list' and `delayed-warnings-hook'.
|
||||
|
||||
2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
|
||||
|
||||
* DEBUG: Document debug-on-event default behavior and utility for
|
||||
|
|
3
etc/NEWS
3
etc/NEWS
|
@ -909,6 +909,9 @@ displayed with a "spinning bar".
|
|||
** New variable `revert-buffer-in-progress-p' is true while a buffer is
|
||||
being reverted, even if the buffer has a local `revert-buffer-function'.
|
||||
|
||||
** New variables `delayed-warnings-list' and `delayed-warnings-hook' allow
|
||||
deferring warnings until the main command loop is executed.
|
||||
|
||||
|
||||
* Changes in Emacs 24.1 on non-free operating systems
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-04-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* subr.el (display-delayed-warnings): New function.
|
||||
(delayed-warnings-hook): New variable.
|
||||
|
||||
2011-04-28 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* pcomplete.el (pcomplete-completions-at-point):
|
||||
|
|
15
lisp/subr.el
15
lisp/subr.el
|
@ -1772,6 +1772,19 @@ This makes or adds to an entry on `after-load-alist'.
|
|||
FILE should be the name of a library, with no directory name."
|
||||
(eval-after-load file (read)))
|
||||
(make-obsolete 'eval-next-after-load `eval-after-load "23.2")
|
||||
|
||||
(defun display-delayed-warnings ()
|
||||
"Display delayed warnings from `delayed-warnings-list'.
|
||||
This is the default value of `delayed-warnings-hook'."
|
||||
(dolist (warning (nreverse delayed-warnings-list))
|
||||
(apply 'display-warning warning))
|
||||
(setq delayed-warnings-list nil))
|
||||
|
||||
(defvar delayed-warnings-hook '(display-delayed-warnings)
|
||||
"Normal hook run to process delayed warnings.
|
||||
Functions in this hook should access the `delayed-warnings-list'
|
||||
variable (which see) and remove from it the warnings they process.")
|
||||
|
||||
|
||||
;;;; Process stuff.
|
||||
|
||||
|
@ -2522,7 +2535,7 @@ Note: :data and :device are currently not supported on Windows."
|
|||
(concat "\"" result (substring argument start) "\"")))
|
||||
|
||||
((and (eq system-type 'windows-nt) (w32-shell-dos-semantics))
|
||||
|
||||
|
||||
;; First, quote argument so that CommandLineToArgvW will
|
||||
;; understand it. See
|
||||
;; http://msdn.microsoft.com/en-us/library/17w5ykft%28v=vs.85%29.aspx
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2011-04-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* keyboard.c (Qdelayed_warnings_hook): Define.
|
||||
(command_loop_1): Run `delayed-warnings-hook'
|
||||
if Vdelayed_warnings_list is non-nil.
|
||||
(syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
|
||||
(syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
|
||||
|
||||
2011-04-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* doprnt.c (doprnt): Don't return value smaller than the buffer
|
||||
|
|
|
@ -267,6 +267,8 @@ static Lisp_Object Qpost_command_hook;
|
|||
|
||||
static Lisp_Object Qdeferred_action_function;
|
||||
|
||||
static Lisp_Object Qdelayed_warnings_hook;
|
||||
|
||||
static Lisp_Object Qinput_method_exit_on_first_char;
|
||||
static Lisp_Object Qinput_method_use_echo_area;
|
||||
|
||||
|
@ -1356,6 +1358,10 @@ command_loop_1 (void)
|
|||
if (!NILP (echo_area_buffer[0]))
|
||||
resize_echo_area_exactly ();
|
||||
|
||||
/* If there are warnings waiting, process them. */
|
||||
if (!NILP (Vdelayed_warnings_list))
|
||||
safe_run_hooks (Qdelayed_warnings_hook);
|
||||
|
||||
if (!NILP (Vdeferred_action_list))
|
||||
safe_run_hooks (Qdeferred_action_function);
|
||||
}
|
||||
|
@ -1573,6 +1579,10 @@ command_loop_1 (void)
|
|||
if (!NILP (echo_area_buffer[0]))
|
||||
resize_echo_area_exactly ();
|
||||
|
||||
/* If there are warnings waiting, process them. */
|
||||
if (!NILP (Vdelayed_warnings_list))
|
||||
safe_run_hooks (Qdelayed_warnings_hook);
|
||||
|
||||
safe_run_hooks (Qdeferred_action_function);
|
||||
|
||||
/* If there is a prefix argument,
|
||||
|
@ -11498,6 +11508,7 @@ syms_of_keyboard (void)
|
|||
DEFSYM (Qpre_command_hook, "pre-command-hook");
|
||||
DEFSYM (Qpost_command_hook, "post-command-hook");
|
||||
DEFSYM (Qdeferred_action_function, "deferred-action-function");
|
||||
DEFSYM (Qdelayed_warnings_hook, "delayed-warnings-hook");
|
||||
DEFSYM (Qfunction_key, "function-key");
|
||||
DEFSYM (Qmouse_click, "mouse-click");
|
||||
DEFSYM (Qdrag_n_drop, "drag-n-drop");
|
||||
|
@ -12069,6 +12080,14 @@ This function is called with no arguments after each command
|
|||
whenever `deferred-action-list' is non-nil. */);
|
||||
Vdeferred_action_function = Qnil;
|
||||
|
||||
DEFVAR_LISP ("delayed-warnings-list", Vdelayed_warnings_list,
|
||||
doc: /* List of warnings to be displayed as soon as possible.
|
||||
Each element must be a list (TYPE MESSAGE [LEVEL [BUFFER-NAME]]),
|
||||
as per the args of `display-warning' (which see).
|
||||
If this variable is non-nil, `delayed-warnings-hook' will be run
|
||||
immediately after running `post-command-hook'. */);
|
||||
Vdelayed_warnings_list = Qnil;
|
||||
|
||||
DEFVAR_LISP ("suggest-key-bindings", Vsuggest_key_bindings,
|
||||
doc: /* *Non-nil means show the equivalent key-binding when M-x command has one.
|
||||
The value can be a length of time to show the message for.
|
||||
|
|
Loading…
Add table
Reference in a new issue