Mercurial > emacs
annotate src/macros.h @ 109678:14830418f9fc
Change `select-active-region' mechanics.
Save region text prior to buffer modification.
Set window selection lazily, during `deactivate-mark' or after each
command when the region is temporarily active.
* lisp/cus-start.el: Add custom declaration for select-active-regions.
* lisp/mouse.el (mouse-drag-track): Remove hacks to deal with old
select-active-regions implementation.
(mouse-yank-at-click): Doc fix.
* lisp/simple.el (select-active-regions): Move to keyboard.c.
(deactivate-mark): Used saved-region-selection.
(select-active-region): Function removed.
(activate-mark, set-mark, push-mark-command)
(handle-shift-selection): Don't call it.
(keyboard-quit): Avoid adding the region to the window selection.
* src/insdel.c (prepare_to_modify_buffer): Save active region text to
Vsaved_region_selection.
* src/keyboard.c (Vselect_active_regions): Move from simple.el.
(Vsaved_region_selection, Qx_set_selection, QPRIMARY, Qlazy): New
vars.
(command_loop_1): Set window selection prior to deactivating the
mark.
* src/xselect.c (QPRIMARY): Move to keyboard.c.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 07 Aug 2010 15:39:04 -0400 |
parents | e16f43875a48 |
children | 417b1e4d63cd |
rev | line source |
---|---|
484 | 1 /* Definitions for keyboard macro interpretation in GNU Emacs. |
75227
e90d04cd455a
Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents:
68651
diff
changeset
|
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, |
106815 | 3 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
484 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79759
diff
changeset
|
7 GNU Emacs is free software: you can redistribute it and/or modify |
484 | 8 it under the terms of the GNU General Public License as published by |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79759
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79759
diff
changeset
|
10 (at your option) any later version. |
484 | 11 |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79759
diff
changeset
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
484 | 19 |
20 | |
15970
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
21 /* Kbd macro currently being executed (a string or vector). */ |
484 | 22 |
61981
8131d95ff037
(Vexecuting_kbd_macro): Declare instead of Vexecuting_macro.
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
23 extern Lisp_Object Vexecuting_kbd_macro; |
484 | 24 |
15970
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
25 /* Index of next character to fetch from that macro. */ |
484 | 26 |
62024
4f7e1a56469e
(executing_kbd_macro_index): Rename from executing_macro_index.
Kim F. Storm <storm@cua.dk>
parents:
61981
diff
changeset
|
27 extern EMACS_INT executing_kbd_macro_index; |
15970
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
28 |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
29 /* Number of successful iterations so far |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
30 for innermost keyboard macro. |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
31 This is not bound at each level, |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
32 so after an error, it describes the innermost interrupted macro. */ |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
33 |
62024
4f7e1a56469e
(executing_kbd_macro_index): Rename from executing_macro_index.
Kim F. Storm <storm@cua.dk>
parents:
61981
diff
changeset
|
34 extern int executing_kbd_macro_iterations; |
15970
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
35 |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
36 /* This is the macro that was executing. |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
37 This is not bound at each level, |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
38 so after an error, it describes the innermost interrupted macro. */ |
d54ae2343dff
(executing_macro_iterations, executing_macro): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
39 |
62024
4f7e1a56469e
(executing_kbd_macro_index): Rename from executing_macro_index.
Kim F. Storm <storm@cua.dk>
parents:
61981
diff
changeset
|
40 extern Lisp_Object executing_kbd_macro; |
20300
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
41 |
47349
5c37672e24c8
(end_kbd_macro): Declare extern.
Kim F. Storm <storm@cua.dk>
parents:
47308
diff
changeset
|
42 /* Finish defining the current keyboard macro. */ |
5c37672e24c8
(end_kbd_macro): Declare extern.
Kim F. Storm <storm@cua.dk>
parents:
47308
diff
changeset
|
43 |
109099 | 44 extern void end_kbd_macro (void); |
47349
5c37672e24c8
(end_kbd_macro): Declare extern.
Kim F. Storm <storm@cua.dk>
parents:
47308
diff
changeset
|
45 |
20300
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
46 /* Declare that all chars stored so far in the kbd macro being defined |
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
47 really belong to it. This is done in between editor commands. */ |
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
48 |
109099 | 49 extern void finalize_kbd_macro_chars (void); |
20300
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
50 |
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
51 /* Store a character into kbd macro being defined */ |
1030a9fcf001
Declare finalize_kbd_macro_chars and
Andreas Schwab <schwab@suse.de>
parents:
15970
diff
changeset
|
52 |
109099 | 53 extern void store_kbd_macro_char (Lisp_Object); |
52401 | 54 |
55 /* arch-tag: 8edb7088-682f-4d1f-a4d9-0fbb7284234e | |
56 (do not change this comment) */ |