Mercurial > emacs
changeset 14695:c62f7ff56c40
(Fcommand_execute): New arg SPECIAL. All callers changed.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 27 Feb 1996 06:01:30 +0000 |
parents | 41de9b2640a1 |
children | d6d9e31c11f4 |
files | src/keyboard.c |
diffstat | 1 files changed, 20 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Tue Feb 27 02:33:15 1996 +0000 +++ b/src/keyboard.c Tue Feb 27 06:01:30 1996 +0000 @@ -1356,7 +1356,7 @@ nonundocount = 0; if (NILP (current_kboard->Vprefix_arg)) Fundo_boundary (); - Fcommand_execute (this_command, Qnil, Qnil); + Fcommand_execute (this_command, Qnil, Qnil, Qnil); } directly_done: ; @@ -2058,7 +2058,7 @@ int was_locked = single_kboard; last_input_char = c; - Fcommand_execute (tem, Qnil, Fvector (1, &last_input_char)); + Fcommand_execute (tem, Qnil, Fvector (1, &last_input_char), Qt); /* Resume allowing input from any kboard, if that was true before. */ if (!was_locked) @@ -2864,7 +2864,7 @@ kbd_fetch_ptr = event + 1; if (kbd_fetch_ptr == kbd_store_ptr) input_pending = 0; - Fcommand_execute (tem, Qnil, Fvector (1, &lisp_event)); + Fcommand_execute (tem, Qnil, Fvector (1, &lisp_event), Qt); if (do_display) redisplay_preserve_echo_area (); @@ -3010,7 +3010,7 @@ tem = get_keyelt (access_keymap (tem, Qtimer_event, 0, 0), 1); event = Fcons (Qtimer_event, Fcons (timer, Qnil)); - Fcommand_execute (tem, Qnil, Fvector (1, &event)); + Fcommand_execute (tem, Qnil, Fvector (1, &event), Qt); /* Resume allowing input from any kboard, if that was true before. */ if (!was_locked) @@ -6633,16 +6633,18 @@ return make_event_array (i, keybuf); } -DEFUN ("command-execute", Fcommand_execute, Scommand_execute, 1, 3, 0, +DEFUN ("command-execute", Fcommand_execute, Scommand_execute, 1, 4, 0, "Execute CMD as an editor command.\n\ CMD must be a symbol that satisfies the `commandp' predicate.\n\ Optional second arg RECORD-FLAG non-nil\n\ means unconditionally put this command in `command-history'.\n\ Otherwise, that is done only if an arg is read using the minibuffer.\n\ The argument KEYS specifies the value to use instead of (this-command-keys)\n\ -when reading the arguments; if it is nil, (this_command_key_count) is used.") - (cmd, record_flag, keys) - Lisp_Object cmd, record_flag, keys; +when reading the arguments; if it is nil, (this_command_key_count) is used.\n\ +The argument SPECIAL, if non-nil, means that this command is executing\n\ +a special event, so ignore the prefix argument and don't clear it.") + (cmd, record_flag, keys, special) + Lisp_Object cmd, record_flag, keys, special; { register Lisp_Object final; register Lisp_Object tem; @@ -6650,11 +6652,17 @@ struct backtrace backtrace; extern int debug_on_next_call; - prefixarg = current_kboard->Vprefix_arg; - current_kboard->Vprefix_arg = Qnil; - Vcurrent_prefix_arg = prefixarg; debug_on_next_call = 0; + if (NILP (special)) + { + prefixarg = current_kboard->Vprefix_arg; + Vcurrent_prefix_arg = prefixarg; + current_kboard->Vprefix_arg = Qnil; + } + else + prefixarg = Qnil; + if (SYMBOLP (cmd)) { tem = Fget (cmd, Qdisabled); @@ -6812,7 +6820,7 @@ } } - return Fcommand_execute (function, Qt, Qnil); + return Fcommand_execute (function, Qt, Qnil, Qnil); } /* Find the set of keymaps now active.