diff options
| author | Martin Rudalics | 2007-08-29 09:01:48 +0000 |
|---|---|---|
| committer | Martin Rudalics | 2007-08-29 09:01:48 +0000 |
| commit | d0d3a31145231a520300d9360b74dcac60aa3930 (patch) | |
| tree | 7c1efafdb71e171f2039e8751ce5bd36ec325478 /src | |
| parent | d2ff5d5051fa8f3a741ba897680cd6246a3e5280 (diff) | |
| download | emacs-d0d3a31145231a520300d9360b74dcac60aa3930.tar.gz emacs-d0d3a31145231a520300d9360b74dcac60aa3930.zip | |
(syms_of_keyboard): Set up new Lisp variable
last-repeatable-command.
(init_kboard): Initialize Vlast_repeatable_command.
(command_loop_1): Set it to real_this_command unless that was
bound to an input event.
(mark_kboards): Mark it.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 11 | ||||
| -rw-r--r-- | src/keyboard.c | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 68383a34cdd..de94c9fb0a1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2007-08-29 Martin Rudalics <rudalics@gmx.at> | ||
| 2 | |||
| 3 | * keyboard.h (struct kboard): New elt Vlast_repeatable_command. | ||
| 4 | |||
| 5 | * keyboard.c (syms_of_keyboard): Set up new Lisp variable | ||
| 6 | last-repeatable-command. | ||
| 7 | (init_kboard): Initialize Vlast_repeatable_command. | ||
| 8 | (command_loop_1): Set it to real_this_command unless that was | ||
| 9 | bound to an input event. | ||
| 10 | (mark_kboards): Mark it. | ||
| 11 | |||
| 1 | 2007-08-28 Juanma Barranquero <lekktu@gmail.com> | 12 | 2007-08-28 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 13 | ||
| 3 | * image.c (syms_of_image) <image-library-alist, cross-disabled-images>: | 14 | * image.c (syms_of_image) <image-library-alist, cross-disabled-images>: |
diff --git a/src/keyboard.c b/src/keyboard.c index 171f2da7217..ea26e620892 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1536,6 +1536,8 @@ command_loop_1 () | |||
| 1536 | /* Do this after running Vpost_command_hook, for consistency. */ | 1536 | /* Do this after running Vpost_command_hook, for consistency. */ |
| 1537 | current_kboard->Vlast_command = Vthis_command; | 1537 | current_kboard->Vlast_command = Vthis_command; |
| 1538 | current_kboard->Vreal_last_command = real_this_command; | 1538 | current_kboard->Vreal_last_command = real_this_command; |
| 1539 | if (!CONSP (last_command_char)) | ||
| 1540 | current_kboard->Vlast_repeatable_command = real_this_command; | ||
| 1539 | 1541 | ||
| 1540 | while (1) | 1542 | while (1) |
| 1541 | { | 1543 | { |
| @@ -1916,6 +1918,8 @@ command_loop_1 () | |||
| 1916 | { | 1918 | { |
| 1917 | current_kboard->Vlast_command = Vthis_command; | 1919 | current_kboard->Vlast_command = Vthis_command; |
| 1918 | current_kboard->Vreal_last_command = real_this_command; | 1920 | current_kboard->Vreal_last_command = real_this_command; |
| 1921 | if (!CONSP (last_command_char)) | ||
| 1922 | current_kboard->Vlast_repeatable_command = real_this_command; | ||
| 1919 | cancel_echoing (); | 1923 | cancel_echoing (); |
| 1920 | this_command_key_count = 0; | 1924 | this_command_key_count = 0; |
| 1921 | this_command_key_count_reset = 0; | 1925 | this_command_key_count_reset = 0; |
| @@ -10970,6 +10974,7 @@ init_kboard (kb) | |||
| 10970 | kb->Voverriding_terminal_local_map = Qnil; | 10974 | kb->Voverriding_terminal_local_map = Qnil; |
| 10971 | kb->Vlast_command = Qnil; | 10975 | kb->Vlast_command = Qnil; |
| 10972 | kb->Vreal_last_command = Qnil; | 10976 | kb->Vreal_last_command = Qnil; |
| 10977 | kb->Vlast_repeatable_command = Qnil; | ||
| 10973 | kb->Vprefix_arg = Qnil; | 10978 | kb->Vprefix_arg = Qnil; |
| 10974 | kb->Vlast_prefix_arg = Qnil; | 10979 | kb->Vlast_prefix_arg = Qnil; |
| 10975 | kb->kbd_queue = Qnil; | 10980 | kb->kbd_queue = Qnil; |
| @@ -11457,6 +11462,11 @@ was a kill command. */); | |||
| 11457 | DEFVAR_KBOARD ("real-last-command", Vreal_last_command, | 11462 | DEFVAR_KBOARD ("real-last-command", Vreal_last_command, |
| 11458 | doc: /* Same as `last-command', but never altered by Lisp code. */); | 11463 | doc: /* Same as `last-command', but never altered by Lisp code. */); |
| 11459 | 11464 | ||
| 11465 | DEFVAR_KBOARD ("last-repeatable-command", Vlast_repeatable_command, | ||
| 11466 | doc: /* Last command that may be repeated. | ||
| 11467 | The last command executed that was not bound to an input event. | ||
| 11468 | This is the command `repeat' will try to repeat. */); | ||
| 11469 | |||
| 11460 | DEFVAR_LISP ("this-command", &Vthis_command, | 11470 | DEFVAR_LISP ("this-command", &Vthis_command, |
| 11461 | doc: /* The command now being executed. | 11471 | doc: /* The command now being executed. |
| 11462 | The command can set this variable; whatever is put here | 11472 | The command can set this variable; whatever is put here |
| @@ -11855,6 +11865,7 @@ mark_kboards () | |||
| 11855 | mark_object (kb->Voverriding_terminal_local_map); | 11865 | mark_object (kb->Voverriding_terminal_local_map); |
| 11856 | mark_object (kb->Vlast_command); | 11866 | mark_object (kb->Vlast_command); |
| 11857 | mark_object (kb->Vreal_last_command); | 11867 | mark_object (kb->Vreal_last_command); |
| 11868 | mark_object (kb->Vlast_repeatable_command); | ||
| 11858 | mark_object (kb->Vprefix_arg); | 11869 | mark_object (kb->Vprefix_arg); |
| 11859 | mark_object (kb->Vlast_prefix_arg); | 11870 | mark_object (kb->Vlast_prefix_arg); |
| 11860 | mark_object (kb->kbd_queue); | 11871 | mark_object (kb->kbd_queue); |