aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 9c56699d7e4..c756ae7cb92 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -488,6 +488,8 @@ Lisp_Object Fthis_command_keys ();
488Lisp_Object Qextended_command_history; 488Lisp_Object Qextended_command_history;
489EMACS_TIME timer_check (); 489EMACS_TIME timer_check ();
490 490
491extern Lisp_Object Vhistory_length;
492
491extern char *x_get_keysym_name (); 493extern char *x_get_keysym_name ();
492 494
493static void record_menu_key (); 495static void record_menu_key ();
@@ -7474,13 +7476,24 @@ a special event, so ignore the prefix argument and don't clear it.")
7474 other sorts of commands, call-interactively takes care of 7476 other sorts of commands, call-interactively takes care of
7475 this. */ 7477 this. */
7476 if (!NILP (record_flag)) 7478 if (!NILP (record_flag))
7477 Vcommand_history 7479 {
7478 = Fcons (Fcons (Qexecute_kbd_macro, 7480 Vcommand_history
7479 Fcons (final, Fcons (prefixarg, Qnil))), 7481 = Fcons (Fcons (Qexecute_kbd_macro,
7480 Vcommand_history); 7482 Fcons (final, Fcons (prefixarg, Qnil))),
7483 Vcommand_history);
7484
7485 /* Don't keep command history around forever. */
7486 if (NUMBERP (Vhistory_length) && XINT (Vhistory_length) > 0)
7487 {
7488 tem = Fnthcdr (Vhistory_length, Vcommand_history);
7489 if (CONSP (tem))
7490 XCONS (tem)->cdr = Qnil;
7491 }
7492 }
7481 7493
7482 return Fexecute_kbd_macro (final, prefixarg); 7494 return Fexecute_kbd_macro (final, prefixarg);
7483 } 7495 }
7496
7484 if (CONSP (final) || SUBRP (final) || COMPILEDP (final)) 7497 if (CONSP (final) || SUBRP (final) || COMPILEDP (final))
7485 { 7498 {
7486 backtrace.next = backtrace_list; 7499 backtrace.next = backtrace_list;