Mercurial > emacs
annotate src/cmds.c @ 3779:e9961fa24193
*solar.el (solar-setup, solar-ephemeris-time, sunrise-sunset): Change
Universal Time (UT) to Coordinated Universal Time (UTC).
(solar-time-string): Use calendar-daylight-time-offset instead of
1 hr, and use calendar-daylight-savings-switchover-time instead of
midnight. Add an optional parameter to allow forcing the use of
standard or daylight savings time. Fix code so it works in
southern hemisphere (start of dst precedes end of dst in a
calendar year) and when dst either starts or ends in a calendar
year, but not both.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Wed, 16 Jun 1993 23:12:21 +0000 |
parents | 507f64624555 |
children | 189b84c7dbc5 |
rev | line source |
---|---|
239 | 1 /* Simple built-in editing commands. |
2961 | 2 Copyright (C) 1985, 1993 Free Software Foundation, Inc. |
239 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
647 | 8 the Free Software Foundation; either version 2, or (at your option) |
239 | 9 any later version. |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
20 | |
21 #include "config.h" | |
22 #include "lisp.h" | |
23 #include "commands.h" | |
24 #include "buffer.h" | |
25 #include "syntax.h" | |
26 | |
27 Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function; | |
28 | |
2214
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
29 /* A possible value for a buffer's overwrite-mode variable. */ |
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
30 Lisp_Object Qoverwrite_mode_binary; |
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
31 |
239 | 32 |
33 DEFUN ("forward-char", Fforward_char, Sforward_char, 0, 1, "p", | |
34 "Move point right ARG characters (left if ARG negative).\n\ | |
35 On reaching end of buffer, stop and signal error.") | |
36 (n) | |
37 Lisp_Object n; | |
38 { | |
485 | 39 if (NILP (n)) |
239 | 40 XFASTINT (n) = 1; |
41 else | |
42 CHECK_NUMBER (n, 0); | |
43 | |
2777
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
44 /* This used to just set point to point + XINT (n), and then check |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
45 to see if it was within boundaries. But now that SET_PT can |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
46 potentially do a lot of stuff (calling entering and exiting |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
47 hooks, etcetera), that's not a good approach. So we validate the |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
48 proposed position, then set point. */ |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
49 { |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
50 int new_point = point + XINT (n); |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
51 |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
52 if (new_point < BEGV) |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
53 { |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
54 SET_PT (BEGV); |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
55 Fsignal (Qbeginning_of_buffer, Qnil); |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
56 } |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
57 if (new_point > ZV) |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
58 { |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
59 SET_PT (ZV); |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
60 Fsignal (Qend_of_buffer, Qnil); |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
61 } |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
62 |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
63 SET_PT (new_point); |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
64 } |
40e00789f1c1
* cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents:
2214
diff
changeset
|
65 |
239 | 66 return Qnil; |
67 } | |
68 | |
69 DEFUN ("backward-char", Fbackward_char, Sbackward_char, 0, 1, "p", | |
70 "Move point left ARG characters (right if ARG negative).\n\ | |
71 On attempt to pass beginning or end of buffer, stop and signal error.") | |
72 (n) | |
73 Lisp_Object n; | |
74 { | |
485 | 75 if (NILP (n)) |
239 | 76 XFASTINT (n) = 1; |
77 else | |
78 CHECK_NUMBER (n, 0); | |
79 | |
80 XSETINT (n, - XINT (n)); | |
81 return Fforward_char (n); | |
82 } | |
83 | |
84 DEFUN ("forward-line", Fforward_line, Sforward_line, 0, 1, "p", | |
85 "Move ARG lines forward (backward if ARG is negative).\n\ | |
86 Precisely, if point is on line I, move to the start of line I + ARG.\n\ | |
87 If there isn't room, go as far as possible (no error).\n\ | |
88 Returns the count of lines left to move. If moving forward,\n\ | |
89 that is ARG - number of lines moved; if backward, ARG + number moved.\n\ | |
90 With positive ARG, a non-empty line at the end counts as one line\n\ | |
91 successfully moved (for the return value).") | |
92 (n) | |
93 Lisp_Object n; | |
94 { | |
95 int pos2 = point; | |
96 int pos; | |
97 int count, shortage, negp; | |
98 | |
485 | 99 if (NILP (n)) |
239 | 100 count = 1; |
101 else | |
102 { | |
103 CHECK_NUMBER (n, 0); | |
104 count = XINT (n); | |
105 } | |
106 | |
107 negp = count <= 0; | |
108 pos = scan_buffer ('\n', pos2, count - negp, &shortage); | |
109 if (shortage > 0 | |
110 && (negp | |
647 | 111 || (ZV > BEGV |
112 && pos != pos2 | |
239 | 113 && FETCH_CHAR (pos - 1) != '\n'))) |
114 shortage--; | |
115 SET_PT (pos); | |
116 return make_number (negp ? - shortage : shortage); | |
117 } | |
118 | |
119 DEFUN ("beginning-of-line", Fbeginning_of_line, Sbeginning_of_line, | |
120 0, 1, "p", | |
121 "Move point to beginning of current line.\n\ | |
122 With argument ARG not nil or 1, move forward ARG - 1 lines first.\n\ | |
123 If scan reaches end of buffer, stop there without error.") | |
124 (n) | |
125 Lisp_Object n; | |
126 { | |
485 | 127 if (NILP (n)) |
239 | 128 XFASTINT (n) = 1; |
129 else | |
130 CHECK_NUMBER (n, 0); | |
131 | |
132 Fforward_line (make_number (XINT (n) - 1)); | |
133 return Qnil; | |
134 } | |
135 | |
136 DEFUN ("end-of-line", Fend_of_line, Send_of_line, | |
137 0, 1, "p", | |
138 "Move point to end of current line.\n\ | |
139 With argument ARG not nil or 1, move forward ARG - 1 lines first.\n\ | |
140 If scan reaches end of buffer, stop there without error.") | |
141 (n) | |
142 Lisp_Object n; | |
143 { | |
144 register int pos; | |
145 register int stop; | |
146 | |
485 | 147 if (NILP (n)) |
239 | 148 XFASTINT (n) = 1; |
149 else | |
150 CHECK_NUMBER (n, 0); | |
151 | |
152 if (XINT (n) != 1) | |
153 Fforward_line (make_number (XINT (n) - 1)); | |
154 | |
155 pos = point; | |
156 stop = ZV; | |
157 while (pos < stop && FETCH_CHAR (pos) != '\n') pos++; | |
158 SET_PT (pos); | |
159 | |
160 return Qnil; | |
161 } | |
162 | |
163 DEFUN ("delete-char", Fdelete_char, Sdelete_char, 1, 2, "p\nP", | |
164 "Delete the following ARG characters (previous, with negative arg).\n\ | |
165 Optional second arg KILLFLAG non-nil means kill instead (save in kill ring).\n\ | |
166 Interactively, ARG is the prefix arg, and KILLFLAG is set if\n\ | |
167 ARG was explicitly specified.") | |
168 (n, killflag) | |
169 Lisp_Object n, killflag; | |
170 { | |
171 CHECK_NUMBER (n, 0); | |
172 | |
485 | 173 if (NILP (killflag)) |
239 | 174 { |
175 if (XINT (n) < 0) | |
176 { | |
177 if (point + XINT (n) < BEGV) | |
178 Fsignal (Qbeginning_of_buffer, Qnil); | |
179 else | |
180 del_range (point + XINT (n), point); | |
181 } | |
182 else | |
183 { | |
184 if (point + XINT (n) > ZV) | |
185 Fsignal (Qend_of_buffer, Qnil); | |
186 else | |
187 del_range (point, point + XINT (n)); | |
188 } | |
189 } | |
190 else | |
191 { | |
192 call1 (Qkill_forward_chars, n); | |
193 } | |
194 return Qnil; | |
195 } | |
196 | |
197 DEFUN ("delete-backward-char", Fdelete_backward_char, Sdelete_backward_char, | |
198 1, 2, "p\nP", | |
199 "Delete the previous ARG characters (following, with negative ARG).\n\ | |
200 Optional second arg KILLFLAG non-nil means kill instead (save in kill ring).\n\ | |
201 Interactively, ARG is the prefix arg, and KILLFLAG is set if\n\ | |
202 ARG was explicitly specified.") | |
203 (n, killflag) | |
204 Lisp_Object n, killflag; | |
205 { | |
206 CHECK_NUMBER (n, 0); | |
207 return Fdelete_char (make_number (-XINT (n)), killflag); | |
208 } | |
209 | |
210 DEFUN ("self-insert-command", Fself_insert_command, Sself_insert_command, 1, 1, "p", | |
211 "Insert the character you type.\n\ | |
212 Whichever character you type to run this command is inserted.") | |
213 (arg) | |
214 Lisp_Object arg; | |
215 { | |
216 CHECK_NUMBER (arg, 0); | |
217 | |
218 /* Barf if the key that invoked this was not a character. */ | |
219 if (XTYPE (last_command_char) != Lisp_Int) | |
220 bitch_at_user (); | |
221 else | |
222 while (XINT (arg) > 0) | |
223 { | |
224 XFASTINT (arg)--; /* Ok since old and new vals both nonneg */ | |
225 internal_self_insert (XINT (last_command_char), XFASTINT (arg) != 0); | |
226 } | |
227 | |
228 return Qnil; | |
229 } | |
230 | |
231 DEFUN ("newline", Fnewline, Snewline, 0, 1, "P", | |
232 "Insert a newline. With arg, insert that many newlines.\n\ | |
233 In Auto Fill mode, if no numeric arg, break the preceding line if it's long.") | |
234 (arg1) | |
235 Lisp_Object arg1; | |
236 { | |
237 int flag; | |
238 Lisp_Object arg; | |
239 char c1 = '\n'; | |
240 | |
241 arg = Fprefix_numeric_value (arg1); | |
242 | |
485 | 243 if (!NILP (current_buffer->read_only)) |
3480
9784ebc37245
(Fnewline): Use Fbarf_if_buffer_read_only.
Richard M. Stallman <rms@gnu.org>
parents:
3223
diff
changeset
|
244 Fbarf_if_buffer_read_only (); |
239 | 245 |
1986
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
246 /* Inserting a newline at the end of a line produces better |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3480
diff
changeset
|
247 redisplay in try_window_id than inserting at the beginning of a |
1986
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
248 line, and the textual result is the same. So, if we're at |
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
249 beginning of line, pretend to be at the end of the previous line. |
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
250 |
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
251 We can't use internal_self_insert in that case since it won't do |
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
252 the insertion correctly. Luckily, internal_self_insert's special |
b1bc0b15ca7f
* cmds.c (Fnewline): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1969
diff
changeset
|
253 features all do nothing in that case. */ |
239 | 254 |
255 flag = point > BEGV && FETCH_CHAR (point - 1) == '\n'; | |
256 if (flag) | |
257 SET_PT (point - 1); | |
258 | |
259 while (XINT (arg) > 0) | |
260 { | |
261 if (flag) | |
262 insert (&c1, 1); | |
263 else | |
485 | 264 internal_self_insert ('\n', !NILP (arg1)); |
239 | 265 XFASTINT (arg)--; /* Ok since old and new vals both nonneg */ |
266 } | |
267 | |
268 if (flag) | |
269 SET_PT (point + 1); | |
270 | |
271 return Qnil; | |
272 } | |
273 | |
1022
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
274 /* Insert character C1. If NOAUTOFILL is nonzero, don't do autofill |
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
275 even if it is enabled. |
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
276 |
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
277 If this insertion is suitable for direct output (completely simple), |
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
278 return 0. A value of 1 indicates this *might* not have been simple. */ |
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
279 |
239 | 280 internal_self_insert (c1, noautofill) |
281 char c1; | |
282 int noautofill; | |
283 { | |
284 extern Lisp_Object Fexpand_abbrev (); | |
285 int hairy = 0; | |
286 Lisp_Object tem; | |
287 register enum syntaxcode synt; | |
288 register int c = c1; | |
2214
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
289 Lisp_Object overwrite = current_buffer->overwrite_mode; |
239 | 290 |
485 | 291 if (!NILP (Vbefore_change_function) || !NILP (Vafter_change_function)) |
239 | 292 hairy = 1; |
293 | |
2214
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
294 if (!NILP (overwrite) |
239 | 295 && point < ZV |
2214
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
296 && (EQ (overwrite, Qoverwrite_mode_binary) |
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
297 || (c != '\n' && FETCH_CHAR (point) != '\n')) |
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
298 && (EQ (overwrite, Qoverwrite_mode_binary) |
1948
e7b8107294b7
(syms_of_cmds): New var `overwrite-binary-mode'.
Richard M. Stallman <rms@gnu.org>
parents:
1098
diff
changeset
|
299 || FETCH_CHAR (point) != '\t' |
239 | 300 || XINT (current_buffer->tab_width) <= 0 |
2159
6a082f5ce7e6
(internal_self_insert): Check that tab_width does not
Richard M. Stallman <rms@gnu.org>
parents:
1986
diff
changeset
|
301 || XFASTINT (current_buffer->tab_width) > 20 |
239 | 302 || !((current_column () + 1) % XFASTINT (current_buffer->tab_width)))) |
303 { | |
304 del_range (point, point + 1); | |
305 hairy = 1; | |
306 } | |
485 | 307 if (!NILP (current_buffer->abbrev_mode) |
239 | 308 && SYNTAX (c) != Sword |
485 | 309 && NILP (current_buffer->read_only) |
239 | 310 && point > BEGV && SYNTAX (FETCH_CHAR (point - 1)) == Sword) |
311 { | |
1098
79f020f34683
(internal_self_insert): Assume Fexpand_abbrev expanded
Richard M. Stallman <rms@gnu.org>
parents:
1022
diff
changeset
|
312 int modiff = MODIFF; |
1022
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
313 Fexpand_abbrev (); |
f7e3bac23a06
(internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents:
647
diff
changeset
|
314 /* We can't trust the value of Fexpand_abbrev, |
1098
79f020f34683
(internal_self_insert): Assume Fexpand_abbrev expanded
Richard M. Stallman <rms@gnu.org>
parents:
1022
diff
changeset
|
315 but if Fexpand_abbrev changed the buffer, |
79f020f34683
(internal_self_insert): Assume Fexpand_abbrev expanded
Richard M. Stallman <rms@gnu.org>
parents:
1022
diff
changeset
|
316 assume it expanded something. */ |
79f020f34683
(internal_self_insert): Assume Fexpand_abbrev expanded
Richard M. Stallman <rms@gnu.org>
parents:
1022
diff
changeset
|
317 if (MODIFF != modiff) |
239 | 318 hairy = 1; |
319 } | |
320 if ((c == ' ' || c == '\n') | |
321 && !noautofill | |
485 | 322 && !NILP (current_buffer->auto_fill_function) |
239 | 323 && current_column () > XFASTINT (current_buffer->fill_column)) |
324 { | |
325 if (c1 != '\n') | |
326 insert (&c1, 1); | |
327 call0 (current_buffer->auto_fill_function); | |
328 if (c1 == '\n') | |
329 insert (&c1, 1); | |
330 hairy = 1; | |
331 } | |
332 else | |
333 insert (&c1, 1); | |
334 synt = SYNTAX (c); | |
335 if ((synt == Sclose || synt == Smath) | |
485 | 336 && !NILP (Vblink_paren_function) && INTERACTIVE) |
239 | 337 { |
338 call0 (Vblink_paren_function); | |
339 hairy = 1; | |
340 } | |
341 return hairy; | |
342 } | |
343 | |
344 /* module initialization */ | |
345 | |
346 syms_of_cmds () | |
347 { | |
348 Qkill_backward_chars = intern ("kill-backward-chars"); | |
349 staticpro (&Qkill_backward_chars); | |
350 | |
351 Qkill_forward_chars = intern ("kill-forward-chars"); | |
352 staticpro (&Qkill_forward_chars); | |
353 | |
2214
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
354 Qoverwrite_mode_binary = intern ("overwrite-mode-binary"); |
e5928bec8d5d
* cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents:
2159
diff
changeset
|
355 staticpro (&Qoverwrite_mode_binary); |
1948
e7b8107294b7
(syms_of_cmds): New var `overwrite-binary-mode'.
Richard M. Stallman <rms@gnu.org>
parents:
1098
diff
changeset
|
356 |
239 | 357 DEFVAR_LISP ("blink-paren-function", &Vblink_paren_function, |
358 "Function called, if non-nil, whenever a close parenthesis is inserted.\n\ | |
359 More precisely, a char with closeparen syntax is self-inserted."); | |
360 Vblink_paren_function = Qnil; | |
361 | |
362 defsubr (&Sforward_char); | |
363 defsubr (&Sbackward_char); | |
364 defsubr (&Sforward_line); | |
365 defsubr (&Sbeginning_of_line); | |
366 defsubr (&Send_of_line); | |
367 | |
368 defsubr (&Sdelete_char); | |
369 defsubr (&Sdelete_backward_char); | |
370 | |
371 defsubr (&Sself_insert_command); | |
372 defsubr (&Snewline); | |
373 } | |
374 | |
375 keys_of_cmds () | |
376 { | |
377 int n; | |
378 | |
379 initial_define_key (global_map, Ctl('M'), "newline"); | |
380 initial_define_key (global_map, Ctl('I'), "self-insert-command"); | |
381 for (n = 040; n < 0177; n++) | |
382 initial_define_key (global_map, n, "self-insert-command"); | |
3223
28a9541901d7
(keys_of_cmds): Predefined 0240-0376 as self-insert.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
383 for (n = 0240; n < 0377; n++) |
28a9541901d7
(keys_of_cmds): Predefined 0240-0376 as self-insert.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
384 initial_define_key (global_map, n, "self-insert-command"); |
239 | 385 |
386 initial_define_key (global_map, Ctl ('A'), "beginning-of-line"); | |
387 initial_define_key (global_map, Ctl ('B'), "backward-char"); | |
388 initial_define_key (global_map, Ctl ('D'), "delete-char"); | |
389 initial_define_key (global_map, Ctl ('E'), "end-of-line"); | |
390 initial_define_key (global_map, Ctl ('F'), "forward-char"); | |
391 initial_define_key (global_map, 0177, "delete-backward-char"); | |
392 } |