Commit 4c9797cb authored by Stefan Monnier's avatar Stefan Monnier
Browse files

* src/keyboard.c (command_loop_1): If command is nil, call `undefined'.

* lisp/subr.el (undefined): Add missing behavior from the C code for
unbound keys.
parent dcd163ac
2013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (undefined): Add missing behavior from the C code for
unbound keys.
* rect.el: Use lexical-binding. Add new rectangular region support.
(rectangle-mark): New command.
(rectangle--region): New var.
......
......@@ -586,7 +586,15 @@ saving keyboard macros (see `edmacro-mode')."
(defun undefined ()
"Beep to tell the user this binding is undefined."
(interactive)
(ding))
(ding)
(message "%s is undefined" (key-description (this-single-command-keys)))
(setq defining-kbd-macro nil)
(force-mode-line-update)
;; If this is a down-mouse event, don't reset prefix-arg;
;; pass it to the command run by the up event.
(setq prefix-arg
(when (memq 'down (event-modifiers last-command-event))
current-prefix-arg)))
;; Prevent the \{...} documentation construct
;; from mentioning keys that run this command.
......
2013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
* keyboard.c (command_loop_1): If command is nil, call `undefined'.
2013-10-29 Paul Eggert <eggert@cs.ucla.edu>
* insdel.c: Fix minor problems found by static checking.
......
......@@ -1510,27 +1510,8 @@ command_loop_1 (void)
already_adjusted = 0;
if (NILP (Vthis_command))
{
/* nil means key is undefined. */
Lisp_Object keys = Fvector (i, keybuf);
keys = Fkey_description (keys, Qnil);
bitch_at_user ();
message_with_string ("%s is undefined", keys, 0);
kset_defining_kbd_macro (current_kboard, Qnil);
update_mode_lines = 1;
/* If this is a down-mouse event, don't reset prefix-arg;
pass it to the command run by the up event. */
if (EVENT_HAS_PARAMETERS (last_command_event))
{
Lisp_Object breakdown
= parse_modifiers (EVENT_HEAD (last_command_event));
int modifiers = XINT (XCAR (XCDR (breakdown)));
if (!(modifiers & down_modifier))
kset_prefix_arg (current_kboard, Qnil);
}
else
kset_prefix_arg (current_kboard, Qnil);
}
/* nil means key is undefined. */
call0 (Qundefined);
else
{
/* Here for a command that isn't executed directly. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment