Mercurial > emacs
annotate lisp/emulation/pc-select.el @ 110410:f2e111723c3a
Merge changes made in Gnus trunk.
Reimplement nnimap, and do tweaks to the rest of the code to support that.
* gnus-int.el (gnus-finish-retrieve-group-infos)
(gnus-retrieve-group-data-early): New functions.
* gnus-range.el (gnus-range-nconcat): New function.
* gnus-start.el (gnus-get-unread-articles): Support early retrieval of
data.
(gnus-read-active-for-groups): Support finishing the early retrieval of
data.
* gnus-sum.el (gnus-summary-move-article): Pass the move-to group name
if the move is internal, so that nnimap can do fast internal moves.
* gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for
nnimap usage.
* nnimap.el: Rewritten.
* nnmail.el (nnmail-inhibit-default-split-group): New internal variable
to allow the mail splitting to not return a default group. This is
useful for nnimap, which will leave unmatched mail in the inbox.
* utf7.el (utf7-encode): Autoload.
Implement shell connection.
* nnimap.el (nnimap-open-shell-stream): New function.
(nnimap-open-connection): Use it.
Get the number of lines by using BODYSTRUCTURE.
(nnimap-transform-headers): Get the number of lines in each message.
(nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the
number of lines.
Not all servers return UIDNEXT. Work past this problem.
Remove junk from end of file.
Fix typo in "bogus" section.
Make capabilties be case-insensitive.
Require cl when compiling.
Don't bug out if the LIST command doesn't have any parameters.
2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change)
* nnimap.el (nnimap-get-groups): Don't bug out if the LIST command
doesn't have any parameters.
(mm-text-html-renderer): Document gnus-article-html.
2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix)
* mm-decode.el (mm-text-html-renderer): Document gnus-article-html.
* dgnushack.el: Define netrc-credentials.
If the user doesn't have a /etc/services, supply some sensible port defaults.
Have `unseen-or-unread' select an unread unseen article first.
(nntp-open-server): Return whether the open was successful or not.
Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ).
Save result so that it doesn't say "failed" all the time.
Add ~/.authinfo to the default, since that's probably most useful for users.
Don't use the "finish" method when we're reading from the agent.
Add some more nnimap-relevant agent stuff to nnagent.el.
* nnimap.el (nnimap-with-process-buffer): Removed.
Revert one line that was changed by mistake in the last checkin.
(nnimap-open-connection): Don't error out when we can't make a connection
nnimap-related changes to avoid bugging out if we can't contact a server.
* gnus-start.el (gnus-get-unread-articles): Don't try to scan groups
from methods that are denied.
* nnimap.el (nnimap-possibly-change-group): Return nil if we can't log
in.
(nnimap-finish-retrieve-group-infos): Make sure we're not waiting for
nothing.
* gnus-sum.el (gnus-select-newsgroup): Indent.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sat, 18 Sep 2010 10:02:19 +0000 |
parents | df8e0cd18128 |
children | 7c4da622f181 |
rev | line source |
---|---|
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
1 ;;; pc-select.el --- emulate mark, cut, copy and paste from Motif |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
2 ;;; (or MAC GUI or MS-windoze (bah)) look-and-feel |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
3 ;;; including key bindings. |
13233 | 4 |
64701
34bd8e434dd7
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64085
diff
changeset
|
5 ;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, |
106815 | 6 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
13233 | 7 |
8 ;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE> | |
109280
cc75fd2ab734
Fix typos in some Keywords comments.
Glenn Morris <rgm@gnu.org>
parents:
106815
diff
changeset
|
9 ;; Keywords: convenience emulations |
13233 | 10 ;; Created: 26 Sep 1995 |
11 | |
12 ;; This file is part of GNU Emacs. | |
13 | |
94658
eb7b2376cae5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
14 ;; GNU Emacs is free software: you can redistribute it and/or modify |
13233 | 15 ;; it under the terms of the GNU General Public License as published by |
94658
eb7b2376cae5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
16 ;; the Free Software Foundation, either version 3 of the License, or |
eb7b2376cae5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
17 ;; (at your option) any later version. |
13233 | 18 |
19 ;; GNU Emacs is distributed in the hope that it will be useful, | |
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
22 ;; GNU General Public License for more details. | |
23 | |
24 ;; You should have received a copy of the GNU General Public License | |
94658
eb7b2376cae5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
25 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
13233 | 26 |
27 ;;; Commentary: | |
14169 | 28 |
13233 | 29 ;; This package emulates the mark, copy, cut and paste look-and-feel of motif |
30 ;; programs (which is the same as the MAC gui and (sorry for that) MS-Windows). | |
31 ;; It modifies the keybindings of the cursor keys and the next, prior, | |
32 ;; home and end keys. They will modify mark-active. | |
96376
c3309dba6542
American English spelling fix.
Glenn Morris <rgm@gnu.org>
parents:
94658
diff
changeset
|
33 ;; You can still get the old behavior of cursor moving with the |
13233 | 34 ;; control sequences C-f, C-b, etc. |
35 ;; This package uses transient-mark-mode and | |
36 ;; delete-selection-mode. | |
37 ;; | |
30792 | 38 ;; In addition to that all key-bindings from the pc-mode are |
13233 | 39 ;; done here too (as suggested by RMS). |
40 ;; | |
41 ;; As I found out after I finished the first version, s-region.el tries | |
42 ;; to do the same.... But my code is a little more complete and using | |
43 ;; delete-selection-mode is very important for the look-and-feel. | |
44 ;; Pete Forman <pete.forman@airgun.wg.waii.com> provided some motif | |
45 ;; compliant keybindings which I added. I had to modify them a little | |
46 ;; to add the -mark and -nomark functionality of cursor moving. | |
47 ;; | |
48 ;; Credits: | |
49 ;; Many thanks to all who made comments. | |
50 ;; Thanks to RMS and Ralf Muschall <prm@rz.uni-jena.de> for criticism. | |
51 ;; Kevin Cutts <cutts@ukraine.corp.mot.com> added the beginning-of-buffer | |
52 ;; and end-of-buffer functions which I modified a little. | |
53 ;; David Biesack <sasdjb@unx.sas.com> suggested some more cleanup. | |
54 ;; Thanks to Pete Forman <pete.forman@airgun.wg.waii.com> | |
55 ;; for additional motif keybindings. | |
14382 | 56 ;; Thanks to jvromans@squirrel.nl (Johan Vromans) for a bug report |
57 ;; concerning setting of this-command. | |
19289 | 58 ;; Dan Nicolaescu <done@ece.arizona.ro> suggested suppressing the |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
59 ;; scroll-up/scroll-down error. |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
60 ;; Eli Barzilay (eli@cs.bgu.ac.il) suggested the sexps functions and |
30792 | 61 ;; keybindings. |
13233 | 62 ;; |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
63 ;; Ok, some details about the idea of PC Selection mode: |
13233 | 64 ;; |
65 ;; o The standard keys for moving around (right, left, up, down, home, end, | |
66 ;; prior, next, called "move-keys" from now on) will always de-activate | |
67 ;; the mark. | |
68 ;; o If you press "Shift" together with the "move-keys", the region | |
69 ;; you pass along is activated | |
70 ;; o You have the copy, cut and paste functions (as in many other programs) | |
71 ;; which will operate on the active region | |
72 ;; It was not possible to bind them to C-v, C-x and C-c for obvious | |
73 ;; emacs reasons. | |
96376
c3309dba6542
American English spelling fix.
Glenn Morris <rgm@gnu.org>
parents:
94658
diff
changeset
|
74 ;; They will be bound according to the "old" behavior to S-delete (cut), |
13233 | 75 ;; S-insert (paste) and C-insert (copy). These keys do the same in many |
76 ;; other programs. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
77 ;; |
13233 | 78 |
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37334
diff
changeset
|
79 ;;; Code: |
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37334
diff
changeset
|
80 |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
81 ;; Customization: |
19289 | 82 (defgroup pc-select nil |
83 "Emulate pc bindings." | |
84 :prefix "pc-select" | |
107378
904ccd8f2acb
Reorganize Custom groups.
Chong Yidong <cyd@stupidchicken.com>
parents:
106815
diff
changeset
|
85 :group 'emulations) |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
86 |
19289 | 87 (defcustom pc-select-override-scroll-error t |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
88 "*Non-nil means don't generate error on scrolling past edge of buffer. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
89 This variable applies in PC Selection mode only. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
90 The scroll commands normally generate an error if you try to scroll |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
91 past the top or bottom of the buffer. This is annoying when selecting |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
92 text with these commands. If you set this variable to non-nil, these |
19289 | 93 errors are suppressed." |
94 :type 'boolean | |
95 :group 'pc-select) | |
107854
6ebc01c309bf
Add variable scroll-error-top-bottom.
Juri Linkov <juri@jurta.org>
parents:
107378
diff
changeset
|
96 (define-obsolete-variable-alias 'pc-select-override-scroll-error |
6ebc01c309bf
Add variable scroll-error-top-bottom.
Juri Linkov <juri@jurta.org>
parents:
107378
diff
changeset
|
97 'scroll-error-top-bottom |
6ebc01c309bf
Add variable scroll-error-top-bottom.
Juri Linkov <juri@jurta.org>
parents:
107378
diff
changeset
|
98 "24.1") |
13233 | 99 |
19289 | 100 (defcustom pc-select-selection-keys-only nil |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
101 "*Non-nil means only bind the basic selection keys when started. |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
102 Other keys that emulate pc-behavior will be untouched. |
63266
0a2deeba6710
(pc-select-selection-keys-only, pc-selection-mode): Fix spellings in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
62440
diff
changeset
|
103 This gives mostly Emacs-like behavior with only the selection keys enabled." |
19289 | 104 :type 'boolean |
105 :group 'pc-select) | |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
106 |
19289 | 107 (defcustom pc-select-meta-moves-sexps nil |
108 "*Non-nil means move sexp-wise with Meta key, otherwise move word-wise." | |
109 :type 'boolean | |
110 :group 'pc-select) | |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
111 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
112 (defcustom pc-selection-mode-hook nil |
109712
de86f640dbaa
* emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
109280
diff
changeset
|
113 "The hook to run when PC Selection mode is toggled." |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
114 :type 'hook |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
115 :group 'pc-select) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
116 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
117 (defvar pc-select-saved-settings-alist nil |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
118 "The values of the variables before PC Selection mode was toggled on. |
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
119 When PC Selection mode is toggled on, it sets quite a few variables |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
120 for its own purposes. This alist holds the original values of the |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
121 variables PC Selection mode had set, so that these variables can be |
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
122 restored to their original values when PC Selection mode is toggled off.") |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
123 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
124 (defvar pc-select-map nil |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
125 "The keymap used as the global map when PC Selection mode is on." ) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
126 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
127 (defvar pc-select-saved-global-map nil |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
128 "The global map that was in effect when PC Selection mode was toggled on.") |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
129 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
130 (defvar pc-select-key-bindings-alist nil |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
131 "This alist holds all the key bindings PC Selection mode sets.") |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
132 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
133 (defvar pc-select-default-key-bindings nil |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
134 "These key bindings always get set by PC Selection mode.") |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
135 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
136 (unless pc-select-default-key-bindings |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
137 (let ((lst |
86155
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
138 ;; This is to avoid confusion with the delete-selection-mode. |
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
139 ;; On simple displays you can't see that a region is active and |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
140 ;; will be deleted on the next keypress IMHO especially for |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
141 ;; copy-region-as-kill this is confusing. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
142 ;; The same goes for exchange-point-and-mark |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
143 '(("\M-w" . copy-region-as-kill-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
144 ("\C-x\C-x" . exchange-point-and-mark-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
145 ([S-right] . forward-char-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
146 ([right] . forward-char-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
147 ([C-S-right] . forward-word-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
148 ([C-right] . forward-word-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
149 ([S-left] . backward-char-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
150 ([left] . backward-char-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
151 ([C-S-left] . backward-word-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
152 ([C-left] . backward-word-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
153 ([S-down] . next-line-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
154 ([down] . next-line-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
155 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
156 ([S-end] . end-of-line-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
157 ([end] . end-of-line-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
158 ([S-C-end] . end-of-buffer-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
159 ([C-end] . end-of-buffer-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
160 ([S-M-end] . end-of-buffer-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
161 ([M-end] . end-of-buffer-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
162 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
163 ([S-next] . scroll-up-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
164 ([next] . scroll-up-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
165 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
166 ([S-up] . previous-line-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
167 ([up] . previous-line-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
168 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
169 ([S-home] . beginning-of-line-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
170 ([home] . beginning-of-line-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
171 ([S-C-home] . beginning-of-buffer-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
172 ([C-home] . beginning-of-buffer-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
173 ([S-M-home] . beginning-of-buffer-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
174 ([M-home] . beginning-of-buffer-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
175 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
176 ([M-S-down] . forward-line-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
177 ([M-down] . forward-line-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
178 ([M-S-up] . backward-line-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
179 ([M-up] . backward-line-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
180 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
181 ([S-prior] . scroll-down-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
182 ([prior] . scroll-down-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
183 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
184 ;; Next four lines are from Pete Forman. |
86155
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
185 ([C-down] . forward-paragraph-nomark) ; KNextPara cDn |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
186 ([C-up] . backward-paragraph-nomark) ; KPrevPara cUp |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
187 ([S-C-down] . forward-paragraph-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
188 ([S-C-up] . backward-paragraph-mark)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43985
diff
changeset
|
189 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
190 (setq pc-select-default-key-bindings lst))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
191 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
192 (defvar pc-select-extra-key-bindings nil |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
193 "Key bindings to set only if `pc-select-selection-keys-only' is nil.") |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
194 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
195 ;; The following keybindings are for standard ISO keyboards |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
196 ;; as they are used with IBM compatible PCs, IBM RS/6000, |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
197 ;; MACs, many X-Stations and probably more |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
198 (unless pc-select-extra-key-bindings |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
199 (let ((lst |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
200 '(([S-insert] . yank) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
201 ([C-insert] . copy-region-as-kill) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
202 ([S-delete] . kill-region) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
203 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
204 ;; The following bindings are useful on Sun Type 3 keyboards |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
205 ;; They implement the Get-Delete-Put (copy-cut-paste) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
206 ;; functions from sunview on the L6, L8 and L10 keys |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
207 ;; Sam Steingold <sds@gnu.org> says that f16 is copy and f18 is paste. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
208 ([f16] . copy-region-as-kill) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
209 ([f18] . yank) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
210 ([f20] . kill-region) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
211 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
212 ;; The following bindings are from Pete Forman. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
213 ([f6] . other-window) ; KNextPane F6 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
214 ([C-delete] . kill-line) ; KEraseEndLine cDel |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
215 ("\M-\d" . undo) ; KUndo aBS |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
216 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
217 ;; The following binding is taken from pc-mode.el |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
218 ;; as suggested by RMS. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
219 ;; I only used the one that is not covered above. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
220 ([C-M-delete] . kill-sexp) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
221 ;; Next line proposed by Eli Barzilay |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
222 ([C-escape] . electric-buffer-list)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43985
diff
changeset
|
223 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
224 (setq pc-select-extra-key-bindings lst))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
225 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
226 (defvar pc-select-meta-moves-sexps-key-bindings |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
227 '((([M-S-right] . forward-sexp-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
228 ([M-right] . forward-sexp-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
229 ([M-S-left] . backward-sexp-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
230 ([M-left] . backward-sexp-nomark)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
231 (([M-S-right] . forward-word-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
232 ([M-right] . forward-word-nomark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
233 ([M-S-left] . backward-word-mark) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
234 ([M-left] . backward-word-nomark))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
235 "The list of key bindings controlled by `pc-select-meta-moves-sexp'. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
236 The bindings in the car of this list get installed if |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
237 `pc-select-meta-moves-sexp' is t, the bindings in the cadr of this |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
238 list get installed otherwise.") |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
239 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
240 ;; This is for tty. We don't turn on normal-erase-is-backspace, |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
241 ;; but bind keys as pc-selection-mode did before |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
242 ;; normal-erase-is-backspace was invented, to keep us back |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
243 ;; compatible. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
244 (defvar pc-select-tty-key-bindings |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
245 '(([delete] . delete-char) ; KDelete Del |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
246 ([C-backspace] . backward-kill-word)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
247 "The list of key bindings controlled by `pc-select-selection-keys-only'. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
248 These key bindings get installed when running in a tty, but only if |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
249 `pc-select-selection-keys-only' is nil.") |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
250 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
251 (defvar pc-select-old-M-delete-binding nil |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
252 "Holds the old mapping of [M-delete] in the `function-key-map'. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
253 This variable holds the value associated with [M-delete] in the |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
254 `function-key-map' before PC Selection mode had changed that |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
255 association.") |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
256 |
13233 | 257 ;;;; |
258 ;; misc | |
259 ;;;; | |
260 | |
261 (provide 'pc-select) | |
262 | |
263 (defun copy-region-as-kill-nomark (beg end) | |
109712
de86f640dbaa
* emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
109280
diff
changeset
|
264 "Save the region as if killed, but don't kill it; deactivate mark. |
13233 | 265 If `interprogram-cut-function' is non-nil, also save the text for a window |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
266 system cut and paste. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
267 |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
268 Deactivating mark is to avoid confusion with `delete-selection-mode' |
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
269 and `transient-mark-mode'." |
13233 | 270 (interactive "r") |
271 (copy-region-as-kill beg end) | |
272 (setq mark-active nil) | |
273 (message "Region saved")) | |
274 | |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
275 (defun exchange-point-and-mark-nomark () |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
276 "Like `exchange-point-and-mark' but without activating the mark." |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
277 (interactive) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
278 (exchange-point-and-mark) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
279 (setq mark-active nil)) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
280 |
13233 | 281 ;;;; |
282 ;; non-interactive | |
283 ;;;; | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
284 (defun pc-select-ensure-mark () |
13233 | 285 ;; make sure mark is active |
286 ;; test if it is active, if it isn't, set it and activate it | |
86155
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
287 (or mark-active (set-mark-command nil)) |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
288 ;; Remember who activated the mark. |
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
289 (setq mark-active 'pc-select)) |
86155
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
290 |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
291 (defun pc-select-maybe-deactivate-mark () |
86155
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
292 ;; maybe switch off mark (only if *we* switched it on) |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
293 (when (eq mark-active 'pc-select) |
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
294 (deactivate-mark))) |
13233 | 295 |
296 ;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
297 ;;;;; forward and mark | |
298 ;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
299 | |
300 (defun forward-char-mark (&optional arg) | |
301 "Ensure mark is active; move point right ARG characters (left if ARG negative). | |
302 On reaching end of buffer, stop and signal error." | |
303 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
304 (pc-select-ensure-mark) |
13233 | 305 (forward-char arg)) |
306 | |
307 (defun forward-word-mark (&optional arg) | |
308 "Ensure mark is active; move point right ARG words (backward if ARG is negative). | |
309 Normally returns t. | |
310 If an edge of the buffer is reached, point is left there | |
311 and nil is returned." | |
312 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
313 (pc-select-ensure-mark) |
13233 | 314 (forward-word arg)) |
315 | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
316 (defun forward-line-mark (&optional arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
317 "Ensure mark is active; move cursor vertically down ARG lines." |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
318 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
319 (pc-select-ensure-mark) |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
320 (forward-line arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
321 (setq this-command 'forward-line) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
322 ) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
323 |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
324 (defun forward-sexp-mark (&optional arg) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
325 "Ensure mark is active; move forward across one balanced expression (sexp). |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
326 With argument, do it that many times. Negative arg -N means |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
327 move backward across N balanced expressions." |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
328 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
329 (pc-select-ensure-mark) |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
330 (forward-sexp arg)) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
331 |
13233 | 332 (defun forward-paragraph-mark (&optional arg) |
333 "Ensure mark is active; move forward to end of paragraph. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
334 With arg N, do it N times; negative arg -N means move backward N paragraphs. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
335 |
13233 | 336 A line which `paragraph-start' matches either separates paragraphs |
14382 | 337 \(if `paragraph-separate' matches it also) or is the first line of a paragraph. |
13233 | 338 A paragraph end is the beginning of a line which is not part of the paragraph |
339 to which the end of the previous line belongs, or the end of the buffer." | |
340 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
341 (pc-select-ensure-mark) |
13233 | 342 (forward-paragraph arg)) |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
343 |
13233 | 344 (defun next-line-mark (&optional arg) |
345 "Ensure mark is active; move cursor vertically down ARG lines. | |
346 If there is no character in the target line exactly under the current column, | |
347 the cursor is positioned after the character in that line which spans this | |
348 column, or at the end of the line if it is not long enough. | |
349 If there is no line in the buffer after this one, behavior depends on the | |
350 value of `next-line-add-newlines'. If non-nil, it inserts a newline character | |
351 to create a line, and moves the cursor to that line. Otherwise it moves the | |
352 cursor to the end of the buffer \(if already at the end of the buffer, an error | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
353 is signaled). |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
354 |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
355 The command \\[set-goal-column] can be used to create |
13233 | 356 a semipermanent goal column to which this command always moves. |
357 Then it does not try to move vertically. This goal column is stored | |
358 in `goal-column', which is nil when there is none." | |
359 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
360 (pc-select-ensure-mark) |
85686
a55a536ce0db
* emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78218
diff
changeset
|
361 (with-no-warnings (next-line arg)) |
14382 | 362 (setq this-command 'next-line)) |
13233 | 363 |
364 (defun end-of-line-mark (&optional arg) | |
365 "Ensure mark is active; move point to end of current line. | |
366 With argument ARG not nil or 1, move forward ARG - 1 lines first. | |
367 If scan reaches end of buffer, stop there without error." | |
368 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
369 (pc-select-ensure-mark) |
14382 | 370 (end-of-line arg) |
371 (setq this-command 'end-of-line)) | |
13233 | 372 |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
373 (defun backward-line-mark (&optional arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
374 "Ensure mark is active; move cursor vertically up ARG lines." |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
375 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
376 (pc-select-ensure-mark) |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
377 (if (null arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
378 (setq arg 1)) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
379 (forward-line (- arg)) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
380 (setq this-command 'forward-line) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
381 ) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
382 |
13233 | 383 (defun scroll-down-mark (&optional arg) |
384 "Ensure mark is active; scroll down ARG lines; or near full screen if no ARG. | |
385 A near full screen is `next-screen-context-lines' less than a full screen. | |
386 Negative ARG means scroll upward. | |
104969
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
387 When calling from a program, supply a number as argument or nil. |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
388 Attempting to scroll past the edge of buffer does not raise an |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
389 error, unless `pc-select-override-scroll-error' is nil." |
30792 | 390 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
391 (pc-select-ensure-mark) |
15931
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
392 (cond (pc-select-override-scroll-error |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
393 (condition-case nil (scroll-down arg) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
394 (beginning-of-buffer (goto-char (point-min))))) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
395 (t (scroll-down arg)))) |
13233 | 396 |
397 (defun end-of-buffer-mark (&optional arg) | |
398 "Ensure mark is active; move point to the end of the buffer. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
399 With arg N, put point N/10 of the way from the end. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
400 |
13233 | 401 If the buffer is narrowed, this command uses the beginning and size |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
402 of the accessible part of the buffer. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
403 |
13233 | 404 Don't use this command in Lisp programs! |
405 \(goto-char \(point-max)) is faster and avoids clobbering the mark." | |
406 (interactive "P") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
407 (pc-select-ensure-mark) |
13233 | 408 (let ((size (- (point-max) (point-min)))) |
409 (goto-char (if arg | |
410 (- (point-max) | |
411 (if (> size 10000) | |
412 ;; Avoid overflow for large buffer sizes! | |
413 (* (prefix-numeric-value arg) | |
414 (/ size 10)) | |
415 (/ (* size (prefix-numeric-value arg)) 10))) | |
416 (point-max)))) | |
417 ;; If we went to a place in the middle of the buffer, | |
418 ;; adjust it to the beginning of a line. | |
419 (if arg (forward-line 1) | |
420 ;; If the end of the buffer is not already on the screen, | |
421 ;; then scroll specially to put it near, but not at, the bottom. | |
422 (if (let ((old-point (point))) | |
423 (save-excursion | |
424 (goto-char (window-start)) | |
425 (vertical-motion (window-height)) | |
426 (< (point) old-point))) | |
427 (progn | |
428 (overlay-recenter (point)) | |
429 (recenter -3))))) | |
430 | |
431 ;;;;;;;;; | |
432 ;;;;; no mark | |
433 ;;;;;;;;; | |
434 | |
435 (defun forward-char-nomark (&optional arg) | |
436 "Deactivate mark; move point right ARG characters \(left if ARG negative). | |
437 On reaching end of buffer, stop and signal error." | |
438 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
439 (pc-select-maybe-deactivate-mark) |
13233 | 440 (forward-char arg)) |
441 | |
442 (defun forward-word-nomark (&optional arg) | |
443 "Deactivate mark; move point right ARG words \(backward if ARG is negative). | |
444 Normally returns t. | |
445 If an edge of the buffer is reached, point is left there | |
446 and nil is returned." | |
447 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
448 (pc-select-maybe-deactivate-mark) |
13233 | 449 (forward-word arg)) |
450 | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
451 (defun forward-line-nomark (&optional arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
452 "Deactivate mark; move cursor vertically down ARG lines." |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
453 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
454 (pc-select-maybe-deactivate-mark) |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
455 (forward-line arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
456 (setq this-command 'forward-line) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
457 ) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
458 |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
459 (defun forward-sexp-nomark (&optional arg) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
460 "Deactivate mark; move forward across one balanced expression (sexp). |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
461 With argument, do it that many times. Negative arg -N means |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
462 move backward across N balanced expressions." |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
463 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
464 (pc-select-maybe-deactivate-mark) |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
465 (forward-sexp arg)) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
466 |
13233 | 467 (defun forward-paragraph-nomark (&optional arg) |
468 "Deactivate mark; move forward to end of paragraph. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
469 With arg N, do it N times; negative arg -N means move backward N paragraphs. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
470 |
13233 | 471 A line which `paragraph-start' matches either separates paragraphs |
14382 | 472 \(if `paragraph-separate' matches it also) or is the first line of a paragraph. |
13233 | 473 A paragraph end is the beginning of a line which is not part of the paragraph |
474 to which the end of the previous line belongs, or the end of the buffer." | |
475 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
476 (pc-select-maybe-deactivate-mark) |
13233 | 477 (forward-paragraph arg)) |
478 | |
479 (defun next-line-nomark (&optional arg) | |
480 "Deactivate mark; move cursor vertically down ARG lines. | |
481 If there is no character in the target line exactly under the current column, | |
482 the cursor is positioned after the character in that line which spans this | |
483 column, or at the end of the line if it is not long enough. | |
484 If there is no line in the buffer after this one, behavior depends on the | |
485 value of `next-line-add-newlines'. If non-nil, it inserts a newline character | |
486 to create a line, and moves the cursor to that line. Otherwise it moves the | |
487 cursor to the end of the buffer (if already at the end of the buffer, an error | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
488 is signaled). |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
489 |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
490 The command \\[set-goal-column] can be used to create |
13233 | 491 a semipermanent goal column to which this command always moves. |
492 Then it does not try to move vertically. This goal column is stored | |
493 in `goal-column', which is nil when there is none." | |
494 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
495 (pc-select-maybe-deactivate-mark) |
85686
a55a536ce0db
* emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78218
diff
changeset
|
496 (with-no-warnings (next-line arg)) |
14382 | 497 (setq this-command 'next-line)) |
13233 | 498 |
499 (defun end-of-line-nomark (&optional arg) | |
500 "Deactivate mark; move point to end of current line. | |
501 With argument ARG not nil or 1, move forward ARG - 1 lines first. | |
502 If scan reaches end of buffer, stop there without error." | |
503 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
504 (pc-select-maybe-deactivate-mark) |
14382 | 505 (end-of-line arg) |
506 (setq this-command 'end-of-line)) | |
13233 | 507 |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
508 (defun backward-line-nomark (&optional arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
509 "Deactivate mark; move cursor vertically up ARG lines." |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
510 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
511 (pc-select-maybe-deactivate-mark) |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
512 (if (null arg) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
513 (setq arg 1)) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
514 (forward-line (- arg)) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
515 (setq this-command 'forward-line) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
516 ) |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
517 |
13233 | 518 (defun scroll-down-nomark (&optional arg) |
519 "Deactivate mark; scroll down ARG lines; or near full screen if no ARG. | |
520 A near full screen is `next-screen-context-lines' less than a full screen. | |
521 Negative ARG means scroll upward. | |
104969
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
522 When calling from a program, supply a number as argument or nil. |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
523 Attempting to scroll past the edge of buffer does not raise an |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
524 error, unless `pc-select-override-scroll-error' is nil." |
13233 | 525 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
526 (pc-select-maybe-deactivate-mark) |
15931
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
527 (cond (pc-select-override-scroll-error |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
528 (condition-case nil (scroll-down arg) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
529 (beginning-of-buffer (goto-char (point-min))))) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
530 (t (scroll-down arg)))) |
13233 | 531 |
532 (defun end-of-buffer-nomark (&optional arg) | |
533 "Deactivate mark; move point to the end of the buffer. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
534 With arg N, put point N/10 of the way from the end. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
535 |
13233 | 536 If the buffer is narrowed, this command uses the beginning and size |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
537 of the accessible part of the buffer. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
538 |
13233 | 539 Don't use this command in Lisp programs! |
14382 | 540 \(goto-char (point-max)) is faster and avoids clobbering the mark." |
13233 | 541 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
542 (pc-select-maybe-deactivate-mark) |
13233 | 543 (let ((size (- (point-max) (point-min)))) |
544 (goto-char (if arg | |
545 (- (point-max) | |
546 (if (> size 10000) | |
547 ;; Avoid overflow for large buffer sizes! | |
548 (* (prefix-numeric-value arg) | |
549 (/ size 10)) | |
550 (/ (* size (prefix-numeric-value arg)) 10))) | |
551 (point-max)))) | |
552 ;; If we went to a place in the middle of the buffer, | |
553 ;; adjust it to the beginning of a line. | |
554 (if arg (forward-line 1) | |
555 ;; If the end of the buffer is not already on the screen, | |
556 ;; then scroll specially to put it near, but not at, the bottom. | |
557 (if (let ((old-point (point))) | |
558 (save-excursion | |
559 (goto-char (window-start)) | |
560 (vertical-motion (window-height)) | |
561 (< (point) old-point))) | |
562 (progn | |
563 (overlay-recenter (point)) | |
564 (recenter -3))))) | |
565 | |
566 | |
567 ;;;;;;;;;;;;;;;;;;;; | |
568 ;;;;;; backwards and mark | |
569 ;;;;;;;;;;;;;;;;;;;; | |
570 | |
571 (defun backward-char-mark (&optional arg) | |
109712
de86f640dbaa
* emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
109280
diff
changeset
|
572 "Ensure mark is active; move point left ARG characters (right if ARG negative). |
13233 | 573 On attempt to pass beginning or end of buffer, stop and signal error." |
574 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
575 (pc-select-ensure-mark) |
13233 | 576 (backward-char arg)) |
577 | |
578 (defun backward-word-mark (&optional arg) | |
579 "Ensure mark is active; move backward until encountering the end of a word. | |
580 With argument, do this that many times." | |
581 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
582 (pc-select-ensure-mark) |
13233 | 583 (backward-word arg)) |
584 | |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
585 (defun backward-sexp-mark (&optional arg) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
586 "Ensure mark is active; move backward across one balanced expression (sexp). |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
587 With argument, do it that many times. Negative arg -N means |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
588 move forward across N balanced expressions." |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
589 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
590 (pc-select-ensure-mark) |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
591 (backward-sexp arg)) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
592 |
13233 | 593 (defun backward-paragraph-mark (&optional arg) |
594 "Ensure mark is active; move backward to start of paragraph. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
595 With arg N, do it N times; negative arg -N means move forward N paragraphs. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
596 |
13233 | 597 A paragraph start is the beginning of a line which is a |
598 `first-line-of-paragraph' or which is ordinary text and follows a | |
599 paragraph-separating line; except: if the first real line of a | |
600 paragraph is preceded by a blank line, the paragraph starts at that | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
601 blank line. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
602 |
13233 | 603 See `forward-paragraph' for more information." |
604 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
605 (pc-select-ensure-mark) |
13233 | 606 (backward-paragraph arg)) |
607 | |
608 (defun previous-line-mark (&optional arg) | |
609 "Ensure mark is active; move cursor vertically up ARG lines. | |
610 If there is no character in the target line exactly over the current column, | |
611 the cursor is positioned after the character in that line which spans this | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
612 column, or at the end of the line if it is not long enough. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
613 |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
614 The command \\[set-goal-column] can be used to create |
13233 | 615 a semipermanent goal column to which this command always moves. |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
616 Then it does not try to move vertically. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
617 |
13233 | 618 If you are thinking of using this in a Lisp program, consider using |
619 `forward-line' with a negative argument instead. It is usually easier | |
620 to use and more reliable (no dependence on goal column, etc.)." | |
621 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
622 (pc-select-ensure-mark) |
85686
a55a536ce0db
* emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78218
diff
changeset
|
623 (with-no-warnings (previous-line arg)) |
14382 | 624 (setq this-command 'previous-line)) |
13233 | 625 |
626 (defun beginning-of-line-mark (&optional arg) | |
627 "Ensure mark is active; move point to beginning of current line. | |
628 With argument ARG not nil or 1, move forward ARG - 1 lines first. | |
629 If scan reaches end of buffer, stop there without error." | |
630 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
631 (pc-select-ensure-mark) |
13233 | 632 (beginning-of-line arg)) |
633 | |
634 | |
635 (defun scroll-up-mark (&optional arg) | |
109712
de86f640dbaa
* emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
109280
diff
changeset
|
636 "Ensure mark is active; scroll upward ARG lines; or near full screen if no ARG. |
13233 | 637 A near full screen is `next-screen-context-lines' less than a full screen. |
638 Negative ARG means scroll downward. | |
104969
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
639 When calling from a program, supply a number as argument or nil. |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
640 Attempting to scroll past the edge of buffer does not raise an |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
641 error, unless `pc-select-override-scroll-error' is nil." |
13233 | 642 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
643 (pc-select-ensure-mark) |
15931
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
644 (cond (pc-select-override-scroll-error |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
645 (condition-case nil (scroll-up arg) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
646 (end-of-buffer (goto-char (point-max))))) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
647 (t (scroll-up arg)))) |
13233 | 648 |
649 (defun beginning-of-buffer-mark (&optional arg) | |
650 "Ensure mark is active; move point to the beginning of the buffer. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
651 With arg N, put point N/10 of the way from the beginning. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
652 |
13233 | 653 If the buffer is narrowed, this command uses the beginning and size |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
654 of the accessible part of the buffer. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
655 |
13233 | 656 Don't use this command in Lisp programs! |
109712
de86f640dbaa
* emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
109280
diff
changeset
|
657 \(goto-char (point-min)) is faster and avoids clobbering the mark." |
13233 | 658 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
659 (pc-select-ensure-mark) |
13233 | 660 (let ((size (- (point-max) (point-min)))) |
661 (goto-char (if arg | |
662 (+ (point-min) | |
663 (if (> size 10000) | |
664 ;; Avoid overflow for large buffer sizes! | |
665 (* (prefix-numeric-value arg) | |
666 (/ size 10)) | |
667 (/ (+ 10 (* size (prefix-numeric-value arg))) 10))) | |
668 (point-min)))) | |
669 (if arg (forward-line 1))) | |
670 | |
671 ;;;;;;;; | |
672 ;;; no mark | |
673 ;;;;;;;; | |
674 | |
675 (defun backward-char-nomark (&optional arg) | |
676 "Deactivate mark; move point left ARG characters (right if ARG negative). | |
677 On attempt to pass beginning or end of buffer, stop and signal error." | |
678 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
679 (pc-select-maybe-deactivate-mark) |
13233 | 680 (backward-char arg)) |
681 | |
682 (defun backward-word-nomark (&optional arg) | |
683 "Deactivate mark; move backward until encountering the end of a word. | |
684 With argument, do this that many times." | |
685 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
686 (pc-select-maybe-deactivate-mark) |
13233 | 687 (backward-word arg)) |
688 | |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
689 (defun backward-sexp-nomark (&optional arg) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
690 "Deactivate mark; move backward across one balanced expression (sexp). |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
691 With argument, do it that many times. Negative arg -N means |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
692 move forward across N balanced expressions." |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
693 (interactive "p") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
694 (pc-select-maybe-deactivate-mark) |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
695 (backward-sexp arg)) |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
696 |
13233 | 697 (defun backward-paragraph-nomark (&optional arg) |
698 "Deactivate mark; move backward to start of paragraph. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
699 With arg N, do it N times; negative arg -N means move forward N paragraphs. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
700 |
13233 | 701 A paragraph start is the beginning of a line which is a |
702 `first-line-of-paragraph' or which is ordinary text and follows a | |
703 paragraph-separating line; except: if the first real line of a | |
704 paragraph is preceded by a blank line, the paragraph starts at that | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
705 blank line. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
706 |
13233 | 707 See `forward-paragraph' for more information." |
708 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
709 (pc-select-maybe-deactivate-mark) |
13233 | 710 (backward-paragraph arg)) |
711 | |
712 (defun previous-line-nomark (&optional arg) | |
713 "Deactivate mark; move cursor vertically up ARG lines. | |
714 If there is no character in the target line exactly over the current column, | |
715 the cursor is positioned after the character in that line which spans this | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
716 column, or at the end of the line if it is not long enough. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
717 |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
718 The command \\[set-goal-column] can be used to create |
13233 | 719 a semipermanent goal column to which this command always moves. |
720 Then it does not try to move vertically." | |
721 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
722 (pc-select-maybe-deactivate-mark) |
85686
a55a536ce0db
* emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78218
diff
changeset
|
723 (with-no-warnings (previous-line arg)) |
14382 | 724 (setq this-command 'previous-line)) |
13233 | 725 |
726 (defun beginning-of-line-nomark (&optional arg) | |
727 "Deactivate mark; move point to beginning of current line. | |
728 With argument ARG not nil or 1, move forward ARG - 1 lines first. | |
729 If scan reaches end of buffer, stop there without error." | |
730 (interactive "p") | |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
731 (pc-select-maybe-deactivate-mark) |
13233 | 732 (beginning-of-line arg)) |
733 | |
734 (defun scroll-up-nomark (&optional arg) | |
735 "Deactivate mark; scroll upward ARG lines; or near full screen if no ARG. | |
736 A near full screen is `next-screen-context-lines' less than a full screen. | |
737 Negative ARG means scroll downward. | |
104969
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
738 When calling from a program, supply a number as argument or nil. |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
739 Attempting to scroll past the edge of buffer does not raise an |
1f376790249c
* emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
740 error, unless `pc-select-override-scroll-error' is nil." |
13233 | 741 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
742 (pc-select-maybe-deactivate-mark) |
15931
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
743 (cond (pc-select-override-scroll-error |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
744 (condition-case nil (scroll-up arg) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
745 (end-of-buffer (goto-char (point-max))))) |
c729af982039
(ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
15907
diff
changeset
|
746 (t (scroll-up arg)))) |
13233 | 747 |
748 (defun beginning-of-buffer-nomark (&optional arg) | |
749 "Deactivate mark; move point to the beginning of the buffer. | |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
750 With arg N, put point N/10 of the way from the beginning. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
751 |
13233 | 752 If the buffer is narrowed, this command uses the beginning and size |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
753 of the accessible part of the buffer. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
754 |
13233 | 755 Don't use this command in Lisp programs! |
14382 | 756 \(goto-char (point-min)) is faster and avoids clobbering the mark." |
13233 | 757 (interactive "P") |
86157
a54bf760b43d
(pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86155
diff
changeset
|
758 (pc-select-maybe-deactivate-mark) |
13233 | 759 (let ((size (- (point-max) (point-min)))) |
760 (goto-char (if arg | |
761 (+ (point-min) | |
762 (if (> size 10000) | |
763 ;; Avoid overflow for large buffer sizes! | |
764 (* (prefix-numeric-value arg) | |
765 (/ size 10)) | |
766 (/ (+ 10 (* size (prefix-numeric-value arg))) 10))) | |
767 (point-min)))) | |
768 (if arg (forward-line 1))) | |
769 | |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
770 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
771 (defun pc-select-define-keys (alist keymap) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
772 "Make KEYMAP have the key bindings specified in ALIST." |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
773 (let ((lst alist)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
774 (while lst |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
775 (define-key keymap (caar lst) (cdar lst)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
776 (setq lst (cdr lst))))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
777 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
778 (defun pc-select-restore-keys (alist keymap saved-map) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
779 "Use ALIST to restore key bindings from SAVED-MAP into KEYMAP. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
780 Go through all the key bindings in ALIST, and, for each key |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
781 binding, if KEYMAP and ALIST still agree on the key binding, |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
782 restore the previous value of that key binding from SAVED-MAP." |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
783 (let ((lst alist)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
784 (while lst |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
785 (when (equal (lookup-key keymap (caar lst)) (cdar lst)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
786 (define-key keymap (caar lst) (lookup-key saved-map (caar lst)))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
787 (setq lst (cdr lst))))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
788 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
789 (defmacro pc-select-add-to-alist (alist var val) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
790 "Ensure that ALIST contains the cons cell (VAR . VAL). |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
791 If a cons cell whose car is VAR is already on the ALIST, update the |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43985
diff
changeset
|
792 cdr of that cell with VAL. Otherwise, make a new cons cell |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
793 \(VAR . VAL), and prepend it onto ALIST." |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
794 (let ((elt (make-symbol "elt"))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
795 `(let ((,elt (assq ',var ,alist))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
796 (if ,elt |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
797 (setcdr ,elt ,val) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
798 (setq ,alist (cons (cons ',var ,val) ,alist)))))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
799 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
800 (defmacro pc-select-save-and-set-var (var newval) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
801 "Set VAR to NEWVAL; save the old value. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
802 The old value is saved on the `pc-select-saved-settings-alist'." |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
803 `(when (boundp ',var) |
43025
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
804 (pc-select-add-to-alist pc-select-saved-settings-alist ,var ,var) |
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
805 (setq ,var ,newval))) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
806 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
807 (defmacro pc-select-save-and-set-mode (mode &optional arg mode-var) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
808 "Call the function MODE; save the old value of the variable MODE. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
809 MODE is presumed to be a function which turns on a minor mode. First, |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
810 save the value of the variable MODE on `pc-select-saved-settings-alist'. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
811 Then, if ARG is specified, call MODE with ARG, otherwise call it with |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
812 nil as an argument. If MODE-VAR is specified, save the value of the |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
813 variable MODE-VAR (instead of the value of the variable MODE) on |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
814 `pc-select-saved-settings-alist'." |
43025
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
815 (unless mode-var (setq mode-var mode)) |
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
816 `(when (fboundp ',mode) |
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
817 (pc-select-add-to-alist pc-select-saved-settings-alist |
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
818 ,mode-var ,mode-var) |
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
819 (,mode ,arg))) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
820 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
821 (defmacro pc-select-restore-var (var) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43985
diff
changeset
|
822 "Restore the previous value of the variable VAR. |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
823 Look up VAR's previous value in `pc-select-saved-settings-alist', and, |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
824 if the value is found, set VAR to that value." |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
825 (let ((elt (make-symbol "elt"))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
826 `(let ((,elt (assq ',var pc-select-saved-settings-alist))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
827 (unless (null ,elt) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
828 (setq ,var (cdr ,elt)))))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
829 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
830 (defmacro pc-select-restore-mode (mode) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
831 "Restore the previous state (either on or off) of the minor mode MODE. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
832 Look up the value of the variable MODE on `pc-select-saved-settings-alist'. |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
833 If the value is non-nil, call the function MODE with an argument of |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
834 1, otherwise call it with an argument of -1." |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
835 (let ((elt (make-symbol "elt"))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
836 `(when (fboundp ',mode) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
837 (let ((,elt (assq ',mode pc-select-saved-settings-alist))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
838 (unless (null ,elt) |
43025
32f6fb5c961f
(pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents:
42980
diff
changeset
|
839 (,mode (if (cdr ,elt) 1 -1))))))) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
840 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
841 |
13234
e3b1df16f4b4
(pc-selection-mode): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
13233
diff
changeset
|
842 ;;;###autoload |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
843 (define-minor-mode pc-selection-mode |
109712
de86f640dbaa
* emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
109280
diff
changeset
|
844 "Change mark behavior to emulate Motif, Mac or MS-Windows cut and paste style. |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
845 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
846 This mode enables Delete Selection mode and Transient Mark mode. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
847 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
848 The arrow keys (and others) are bound to new functions |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
849 which modify the status of the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
850 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
851 The ordinary arrow keys disable the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
852 The shift-arrow keys move, leaving the mark behind. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
853 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
854 C-LEFT and C-RIGHT move back or forward one word, disabling the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
855 S-C-LEFT and S-C-RIGHT move back or forward one word, leaving the mark behind. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
856 |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
857 M-LEFT and M-RIGHT move back or forward one word or sexp, disabling the mark. |
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
858 S-M-LEFT and S-M-RIGHT move back or forward one word or sexp, leaving the mark |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
859 behind. To control whether these keys move word-wise or sexp-wise set the |
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
860 variable `pc-select-meta-moves-sexps' after loading pc-select.el but before |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
861 turning PC Selection mode on. |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
862 |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
863 C-DOWN and C-UP move back or forward a paragraph, disabling the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
864 S-C-DOWN and S-C-UP move back or forward a paragraph, leaving the mark behind. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
865 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
866 HOME moves to beginning of line, disabling the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
867 S-HOME moves to beginning of line, leaving the mark behind. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
868 With Ctrl or Meta, these keys move to beginning of buffer instead. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
869 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
870 END moves to end of line, disabling the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
871 S-END moves to end of line, leaving the mark behind. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
872 With Ctrl or Meta, these keys move to end of buffer instead. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
873 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
874 PRIOR or PAGE-UP scrolls and disables the mark. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
875 S-PRIOR or S-PAGE-UP scrolls and leaves the mark behind. |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
876 |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
877 S-DELETE kills the region (`kill-region'). |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
878 S-INSERT yanks text from the kill ring (`yank'). |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
879 C-INSERT copies the region into the kill ring (`copy-region-as-kill'). |
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
880 |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
881 In addition, certain other PC bindings are imitated (to avoid this, set |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
882 the variable `pc-select-selection-keys-only' to t after loading pc-select.el |
56083
d62a2b6e582e
Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
883 but before calling PC Selection mode): |
15907
c25492075289
Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
884 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
885 F6 other-window |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
886 DELETE delete-char |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
887 C-DELETE kill-line |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
888 M-DELETE kill-word |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
889 C-M-DELETE kill-sexp |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
890 C-BACKSPACE backward-kill-word |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
891 M-BACKSPACE undo" |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
892 ;; FIXME: bring pc-bindings-mode here ? |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
893 nil nil nil |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
894 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
895 :group 'pc-select |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
896 :global t |
13233 | 897 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
898 (if pc-selection-mode |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
899 (if (null pc-select-key-bindings-alist) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
900 (progn |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
901 (setq pc-select-saved-global-map (copy-keymap (current-global-map))) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
902 (setq pc-select-key-bindings-alist |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
903 (append pc-select-default-key-bindings |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
904 (if pc-select-selection-keys-only |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
905 nil |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
906 pc-select-extra-key-bindings) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
907 (if pc-select-meta-moves-sexps |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
908 (car pc-select-meta-moves-sexps-key-bindings) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
909 (cadr pc-select-meta-moves-sexps-key-bindings)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
910 (if (or pc-select-selection-keys-only |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
911 (eq window-system 'x) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
912 (memq system-name '(ms-dos windows-nt))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
913 nil |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
914 pc-select-tty-key-bindings))) |
13233 | 915 |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
916 (pc-select-define-keys pc-select-key-bindings-alist |
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
917 (current-global-map)) |
13233 | 918 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
919 (unless (or pc-select-selection-keys-only |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
920 (eq window-system 'x) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
921 (memq system-name '(ms-dos windows-nt))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
922 ;; it is not clear that we need the following line |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
923 ;; I hope it doesn't do too much harm to leave it in, though... |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
924 (setq pc-select-old-M-delete-binding |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
925 (lookup-key function-key-map [M-delete])) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
926 (define-key function-key-map [M-delete] [?\M-d])) |
13233 | 927 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
928 (when (and (not pc-select-selection-keys-only) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
929 (or (eq window-system 'x) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
930 (memq system-name '(ms-dos windows-nt))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
931 (fboundp 'normal-erase-is-backspace-mode)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
932 (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1 |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
933 normal-erase-is-backspace)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
934 ;; the original author also had this above: |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
935 ;; (setq-default normal-erase-is-backspace t) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
936 ;; However, the documentation for the variable says that |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
937 ;; "setting it with setq has no effect", so I'm removing it. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43985
diff
changeset
|
938 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
939 (pc-select-save-and-set-var highlight-nonselected-windows nil) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
940 (pc-select-save-and-set-var transient-mark-mode t) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
941 (pc-select-save-and-set-var mark-even-if-inactive t) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
942 (pc-select-save-and-set-mode delete-selection-mode 1)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
943 ;;else |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
944 ;; If the user turned on pc-selection-mode a second time |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
945 ;; do not clobber the values of the variables that were |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
946 ;; saved from before pc-selection mode was activated -- |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
947 ;; just make sure the values are the way we like them. |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
948 (pc-select-define-keys pc-select-key-bindings-alist |
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
949 (current-global-map)) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
950 (unless (or pc-select-selection-keys-only |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
951 (eq window-system 'x) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
952 (memq system-name '(ms-dos windows-nt))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
953 ;; it is not clear that we need the following line |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
954 ;; I hope it doesn't do too much harm to leave it in, though... |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
955 (define-key function-key-map [M-delete] [?\M-d])) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
956 (when (and (not pc-select-selection-keys-only) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
957 (or (eq window-system 'x) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
958 (memq system-name '(ms-dos windows-nt))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
959 (fboundp 'normal-erase-is-backspace-mode)) |
41299
77b08a460f84
Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
960 (normal-erase-is-backspace-mode 1)) |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
961 (setq highlight-nonselected-windows nil) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
962 (setq transient-mark-mode t) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
963 (setq mark-even-if-inactive t) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
964 (delete-selection-mode 1)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
965 ;;else |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
966 (when pc-select-key-bindings-alist |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
967 (when (and (not pc-select-selection-keys-only) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
968 (or (eq window-system 'x) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
969 (memq system-name '(ms-dos windows-nt)))) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
970 (pc-select-restore-mode normal-erase-is-backspace-mode)) |
13233 | 971 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
972 (pc-select-restore-keys |
43985
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
973 pc-select-key-bindings-alist (current-global-map) |
2fab49a69d94
(pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents:
43025
diff
changeset
|
974 pc-select-saved-global-map) |
18216
75f7eec6d388
(pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents:
17915
diff
changeset
|
975 |
42980
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
976 (pc-select-restore-var highlight-nonselected-windows) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
977 (pc-select-restore-var transient-mark-mode) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
978 (pc-select-restore-var mark-even-if-inactive) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
979 (pc-select-restore-mode delete-selection-mode) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
980 (and pc-select-old-M-delete-binding |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
981 (define-key function-key-map [M-delete] |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
982 pc-select-old-M-delete-binding)) |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
983 (setq pc-select-key-bindings-alist nil |
6134751ae11f
(pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents:
41299
diff
changeset
|
984 pc-select-saved-settings-alist nil)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43985
diff
changeset
|
985 |
86155
39b88001b04b
(pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85686
diff
changeset
|
986 ;; arch-tag: 10697b70-ae07-4f3e-ad23-7814a3f418c2 |
13233 | 987 ;;; pc-select.el ends here |