annotate src/cmds.c @ 25427:dde5fcbfa2af

(Info-tagify): Don't insert more than one newline before the tag table. (Info-tagify): Start by widening. Match node headers that don't list the file name, and more kinds of page separations. Strip properties during tagification. Use start of node header line as tag's position. Fix the "done" message. (Info-validate): Save and restore match data around narrowing down.
author Richard M. Stallman <rms@gnu.org>
date Sun, 29 Aug 1999 19:19:00 +0000
parents c7247eabc834
children 82ebdf9967da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Simple built-in editing commands.
20708
ed9ed828415e Update copyright year.
Richard M. Stallman <rms@gnu.org>
parents: 20701
diff changeset
2 Copyright (C) 1985, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
647
529171c8b71c entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14065
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14065
diff changeset
19 Boston, MA 02111-1307, USA. */
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
4696
1fc792473491 Include <config.h> instead of "config.h".
Roland McGrath <roland@gnu.org>
parents: 4561
diff changeset
22 #include <config.h>
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 #include "lisp.h"
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 #include "commands.h"
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 #include "buffer.h"
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
26 #include "charset.h"
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 #include "syntax.h"
8755
a6be4973b11f Include window.h.
Richard M. Stallman <rms@gnu.org>
parents: 8649
diff changeset
28 #include "window.h"
12163
4a83c7459b52 (internal_self_insert): Make last_command be kboard-local.
Karl Heuer <kwzh@gnu.org>
parents: 11235
diff changeset
29 #include "keyboard.h"
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21254
diff changeset
30 #include "dispextern.h"
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33
2214
e5928bec8d5d * cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents: 2159
diff changeset
34 /* 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
35 Lisp_Object Qoverwrite_mode_binary;
e5928bec8d5d * cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents: 2159
diff changeset
36
10729
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
37 /* Non-nil means put this face on the next self-inserting character. */
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
38 Lisp_Object Vself_insert_face;
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
39
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
40 /* This is the command that set up Vself_insert_face. */
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
41 Lisp_Object Vself_insert_face_command;
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
42
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
43 extern Lisp_Object Qface;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
45 DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0,
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
46 "Return buffer position N characters after (before if N negative) point.")
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
47 (n)
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
48 Lisp_Object n;
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
49 {
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
50 CHECK_NUMBER (n, 0);
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
51
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
52 return make_number (PT + XINT (n));
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
53 }
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
54
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 DEFUN ("forward-char", Fforward_char, Sforward_char, 0, 1, "p",
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
56 "Move point right N characters (left if N is negative).\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 On reaching end of buffer, stop and signal error.")
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
58 (n)
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
59 Lisp_Object n;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 {
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
61 if (NILP (n))
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
62 XSETFASTINT (n, 1);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 else
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
64 CHECK_NUMBER (n, 0);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
66 /* This used to just set point to point + XINT (n), and then check
2777
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
67 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
68 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
69 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
70 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
71 {
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
72 int new_point = PT + XINT (n);
2777
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
73
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
74 if (new_point < BEGV)
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
75 {
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
76 SET_PT (BEGV);
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
77 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
78 }
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
79 if (new_point > ZV)
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
80 {
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
81 SET_PT (ZV);
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
82 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
83 }
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
84
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
85 SET_PT (new_point);
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
86 }
40e00789f1c1 * cmds.c (Fforward_char): Check proposed new position, and then
Jim Blandy <jimb@redhat.com>
parents: 2214
diff changeset
87
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 return Qnil;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 DEFUN ("backward-char", Fbackward_char, Sbackward_char, 0, 1, "p",
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
92 "Move point left N characters (right if N is negative).\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93 On attempt to pass beginning or end of buffer, stop and signal error.")
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
94 (n)
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
95 Lisp_Object n;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 {
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
97 if (NILP (n))
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
98 XSETFASTINT (n, 1);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 else
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
100 CHECK_NUMBER (n, 0);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
102 XSETINT (n, - XINT (n));
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
103 return Fforward_char (n);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 DEFUN ("forward-line", Fforward_line, Sforward_line, 0, 1, "p",
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
107 "Move N lines forward (backward if N is negative).\n\
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
108 Precisely, if point is on line I, move to the start of line I + N.\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 If there isn't room, go as far as possible (no error).\n\
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110 Returns the count of lines left to move. If moving forward,\n\
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
111 that is N - number of lines moved; if backward, N + number moved.\n\
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
112 With positive N, a non-empty line at the end counts as one line\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113 successfully moved (for the return value).")
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 (n)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 Lisp_Object n;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 {
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
117 int opoint = PT, opoint_byte = PT_BYTE;
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
118 int pos, pos_byte;
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
119 int count, shortage;
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
120 int temp;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 239
diff changeset
122 if (NILP (n))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 count = 1;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 else
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 CHECK_NUMBER (n, 0);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 count = XINT (n);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
129
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
130 if (count <= 0)
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
131 shortage = scan_newline (PT, PT_BYTE, BEGV, BEGV_BYTE, count - 1, 1);
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
132 else
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
133 shortage = scan_newline (PT, PT_BYTE, ZV, ZV_BYTE, count, 1);
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
134
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
135 /* Since scan_newline does TEMP_SET_PT_BOTH,
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
136 and we want to set PT "for real",
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
137 go back to the old point and then come back here. */
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
138 pos = PT;
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
139 pos_byte = PT_BYTE;
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
140 TEMP_SET_PT_BOTH (opoint, opoint_byte);
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
141 SET_PT_BOTH (pos, pos_byte);
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
142
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 if (shortage > 0
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
144 && (count <= 0
647
529171c8b71c entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
145 || (ZV > BEGV
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
146 && PT != opoint
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
147 && (FETCH_BYTE (PT_BYTE - 1) != '\n'))))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148 shortage--;
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
149
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
150 return make_number (count <= 0 ? - shortage : shortage);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 DEFUN ("beginning-of-line", Fbeginning_of_line, Sbeginning_of_line,
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154 0, 1, "p",
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
155 "Move point to beginning of current line.\n\
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
156 With argument N not nil or 1, move forward N - 1 lines first.\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
157 If scan reaches end of buffer, stop there without error.")
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158 (n)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
159 Lisp_Object n;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 {
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 239
diff changeset
161 if (NILP (n))
9300
84822d6ed3be (Fforward_char, Fbackward_char, Fbeginning_of_line, Fend_of_line): Don't use
Karl Heuer <kwzh@gnu.org>
parents: 9135
diff changeset
162 XSETFASTINT (n, 1);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163 else
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 CHECK_NUMBER (n, 0);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165
25015
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
166 {
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
167 int pos = XFASTINT (Fline_beginning_position (n));
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
168 if (INTEGERP (current_buffer->minibuffer_prompt_length)
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
169 && pos < XFASTINT (current_buffer->minibuffer_prompt_length))
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
170 pos = XFASTINT (current_buffer->minibuffer_prompt_length);
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
171 SET_PT (pos);
7730c6f39ef5 (Fbeginning_of_line) [PROMPT_IN_BUFFER]: Set point to
Gerd Moellmann <gerd@gnu.org>
parents: 24423
diff changeset
172 }
25351
c7247eabc834 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
Gerd Moellmann <gerd@gnu.org>
parents: 25015
diff changeset
173
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174 return Qnil;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 DEFUN ("end-of-line", Fend_of_line, Send_of_line,
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 0, 1, "p",
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 "Move point to end of current line.\n\
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
180 With argument N not nil or 1, move forward N - 1 lines first.\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 If scan reaches end of buffer, stop there without error.")
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 (n)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183 Lisp_Object n;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 register int pos;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 register int stop;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 239
diff changeset
188 if (NILP (n))
9300
84822d6ed3be (Fforward_char, Fbackward_char, Fbeginning_of_line, Fend_of_line): Don't use
Karl Heuer <kwzh@gnu.org>
parents: 9135
diff changeset
189 XSETFASTINT (n, 1);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 else
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 CHECK_NUMBER (n, 0);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192
16657
f31cab608aa9 (Fend_of_line, Fbeginning_of_line):
Richard M. Stallman <rms@gnu.org>
parents: 16039
diff changeset
193 SET_PT (XINT (Fline_end_position (n)));
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
195 return Qnil;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
196 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
197
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
198 DEFUN ("delete-char", Fdelete_char, Sdelete_char, 1, 2, "p\nP",
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
199 "Delete the following N characters (previous if N is negative).\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
200 Optional second arg KILLFLAG non-nil means kill instead (save in kill ring).\n\
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
201 Interactively, N is the prefix arg, and KILLFLAG is set if\n\
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
202 N was explicitly specified.")
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
203 (n, killflag)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
204 Lisp_Object n, killflag;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
205 {
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
206 int pos;
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
207
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
208 CHECK_NUMBER (n, 0);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
210 pos = PT + XINT (n);
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 239
diff changeset
211 if (NILP (killflag))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213 if (XINT (n) < 0)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
214 {
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
215 if (pos < BEGV)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
216 Fsignal (Qbeginning_of_buffer, Qnil);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
217 else
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
218 del_range (pos, PT);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
219 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
220 else
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
221 {
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
222 if (pos > ZV)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223 Fsignal (Qend_of_buffer, Qnil);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
224 else
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
225 del_range (PT, pos);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
226 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 else
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230 call1 (Qkill_forward_chars, n);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
232 return Qnil;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
234
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235 DEFUN ("delete-backward-char", Fdelete_backward_char, Sdelete_backward_char,
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236 1, 2, "p\nP",
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
237 "Delete the previous N characters (following if N is negative).\n\
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
238 Optional second arg KILLFLAG non-nil means kill instead (save in kill ring).\n\
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
239 Interactively, N is the prefix arg, and KILLFLAG is set if\n\
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
240 N was explicitly specified.")
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
241 (n, killflag)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
242 Lisp_Object n, killflag;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
243 {
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
244 Lisp_Object value;
15875
5ffb83189a1b (Fdelete_backward_char): Fix off-by-one error.
Karl Heuer <kwzh@gnu.org>
parents: 15262
diff changeset
245 int deleted_special = 0;
20958
806727604be8 (Fdelete_backward_char): Count both bytes and chars.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
246 int pos, pos_byte, i;
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
247
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248 CHECK_NUMBER (n, 0);
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
249
15875
5ffb83189a1b (Fdelete_backward_char): Fix off-by-one error.
Karl Heuer <kwzh@gnu.org>
parents: 15262
diff changeset
250 /* See if we are about to delete a tab or newline backwards. */
20958
806727604be8 (Fdelete_backward_char): Count both bytes and chars.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
251 pos = PT;
806727604be8 (Fdelete_backward_char): Count both bytes and chars.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
252 pos_byte = PT_BYTE;
806727604be8 (Fdelete_backward_char): Count both bytes and chars.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
253 for (i = 0; i < XINT (n) && pos_byte > BEGV_BYTE; i++)
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
254 {
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
255 int c;
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
256
20958
806727604be8 (Fdelete_backward_char): Count both bytes and chars.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
257 DEC_BOTH (pos, pos_byte);
806727604be8 (Fdelete_backward_char): Count both bytes and chars.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
258 c = FETCH_BYTE (pos_byte);
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
259 if (c == '\t' || c == '\n')
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
260 {
15875
5ffb83189a1b (Fdelete_backward_char): Fix off-by-one error.
Karl Heuer <kwzh@gnu.org>
parents: 15262
diff changeset
261 deleted_special = 1;
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
262 break;
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
263 }
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
264 }
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
265
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
266 /* In overwrite mode, back over columns while clearing them out,
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
267 unless at end of line. */
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
268 if (XINT (n) > 0
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
269 && ! NILP (current_buffer->overwrite_mode)
15875
5ffb83189a1b (Fdelete_backward_char): Fix off-by-one error.
Karl Heuer <kwzh@gnu.org>
parents: 15262
diff changeset
270 && ! deleted_special
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
271 && ! (PT == ZV || FETCH_BYTE (PT_BYTE) == '\n'))
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
272 {
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
273 int column = current_column ();
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
274
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
275 value = Fdelete_char (make_number (-XINT (n)), killflag);
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
276 i = column - current_column ();
18748
6897bd6a1c8d (Fdelete_backward_char): Convert Finsert_char argument to
Richard M. Stallman <rms@gnu.org>
parents: 18239
diff changeset
277 Finsert_char (make_number (' '), make_number (i), Qnil);
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
278 /* Whitespace chars are ASCII chars, so we can simply subtract. */
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
279 SET_PT_BOTH (PT - i, PT_BYTE - i);
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
280 }
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
281 else
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
282 value = Fdelete_char (make_number (-XINT (n)), killflag);
14436
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
283
b56083146a42 (Fdelete_backward_char): In overwrite mode,
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
284 return value;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287 DEFUN ("self-insert-command", Fself_insert_command, Sself_insert_command, 1, 1, "p",
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 "Insert the character you type.\n\
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
289 Whichever character you type to run this command is inserted.")
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
290 (n)
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
291 Lisp_Object n;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292 {
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
293 int character = XINT (last_command_char);
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
294
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
295 CHECK_NUMBER (n, 0);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297 /* Barf if the key that invoked this was not a character. */
9135
551c9e4fa12a (Fself_insert_command): Use type test macros.
Karl Heuer <kwzh@gnu.org>
parents: 8755
diff changeset
298 if (!INTEGERP (last_command_char))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 bitch_at_user ();
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
300 else if (XINT (n) >= 2 && NILP (current_buffer->overwrite_mode))
12869
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
301 {
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
302 int modified_char = character;
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
303 /* Add the offset to the character, for Finsert_char.
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
304 We pass internal_self_insert the unmodified character
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
305 because it itself does this offsetting. */
20701
59ffd6ac16ec (internal_self_insert, Fself_insert_command):
Richard M. Stallman <rms@gnu.org>
parents: 20615
diff changeset
306 if (! NILP (current_buffer->enable_multibyte_characters))
59ffd6ac16ec (internal_self_insert, Fself_insert_command):
Richard M. Stallman <rms@gnu.org>
parents: 20615
diff changeset
307 modified_char = unibyte_char_to_multibyte (modified_char);
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
308
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
309 XSETFASTINT (n, XFASTINT (n) - 2);
12869
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
310 /* The first one might want to expand an abbrev. */
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
311 internal_self_insert (character, 1);
12869
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
312 /* The bulk of the copies of this char can be inserted simply.
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
313 We don't have to handle a user-specified face specially
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
314 because it will get inherited from the first char inserted. */
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
315 Finsert_char (make_number (modified_char), n, Qt);
12869
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
316 /* The last one might want to auto-fill. */
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
317 internal_self_insert (character, 0);
12869
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
318 }
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319 else
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
320 while (XINT (n) > 0)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
321 {
9332
1ff5359ac932 (Fself_insert_command, Fnewline): Don't use XFASTINT as an lvalue.
Karl Heuer <kwzh@gnu.org>
parents: 9300
diff changeset
322 /* Ok since old and new vals both nonneg */
14065
60600bcfe5f1 (Fforward_line, Fbeginning_of_line, Fend_of_line, Fdelete_char,
Erik Naggum <erik@naggum.no>
parents: 13825
diff changeset
323 XSETFASTINT (n, XFASTINT (n) - 1);
17849
a6442e20f768 (nonascii_insert_offset): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 17376
diff changeset
324 internal_self_insert (character, XFASTINT (n) != 0);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
325 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
326
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 return Qnil;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
330 /* Insert character C. If NOAUTOFILL is nonzero, don't do autofill
1022
f7e3bac23a06 (internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents: 647
diff changeset
331 even if it is enabled.
f7e3bac23a06 (internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents: 647
diff changeset
332
f7e3bac23a06 (internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents: 647
diff changeset
333 If this insertion is suitable for direct output (completely simple),
8088
a831980bb12e (internal_self_insert): Now can return 2.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
334 return 0. A value of 1 indicates this *might* not have been simple.
a831980bb12e (internal_self_insert): Now can return 2.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
335 A value of 2 means this did things that call for an undo boundary. */
1022
f7e3bac23a06 (internal_self_insert): Ignore value of Fexpand_abbrev;
Richard M. Stallman <rms@gnu.org>
parents: 647
diff changeset
336
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21254
diff changeset
337 int
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
338 internal_self_insert (c, noautofill)
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
339 int c;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 int noautofill;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342 extern Lisp_Object Fexpand_abbrev ();
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
343 int hairy = 0;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344 Lisp_Object tem;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
345 register enum syntaxcode synt;
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
346 Lisp_Object overwrite, string;
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
347 /* Length of multi-byte form of C. */
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
348 int len;
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
349 /* Working buffer and pointer for multi-byte form of C. */
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
350 unsigned char workbuf[4], *str;
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
351 int chars_to_delete = 0;
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
352 int spaces_to_insert = 0;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
353
6496
e1967b6d9a5c (internal_self_insert): Use assignment, not initialization.
Karl Heuer <kwzh@gnu.org>
parents: 5754
diff changeset
354 overwrite = current_buffer->overwrite_mode;
6788
4c912c5779f5 (internal_self_insert): Test Vafter_change_functions,
Richard M. Stallman <rms@gnu.org>
parents: 6496
diff changeset
355 if (!NILP (Vbefore_change_function) || !NILP (Vafter_change_function)
4c912c5779f5 (internal_self_insert): Test Vafter_change_functions,
Richard M. Stallman <rms@gnu.org>
parents: 6496
diff changeset
356 || !NILP (Vbefore_change_functions) || !NILP (Vafter_change_functions))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357 hairy = 1;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
359 /* At first, get multi-byte form of C in STR. */
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
360 if (!NILP (current_buffer->enable_multibyte_characters))
21032
3bf522f06501 (internal_self_insert): Avoid checking enable-multibyte-characters
Kenichi Handa <handa@m17n.org>
parents: 20958
diff changeset
361 {
3bf522f06501 (internal_self_insert): Avoid checking enable-multibyte-characters
Kenichi Handa <handa@m17n.org>
parents: 20958
diff changeset
362 c = unibyte_char_to_multibyte (c);
3bf522f06501 (internal_self_insert): Avoid checking enable-multibyte-characters
Kenichi Handa <handa@m17n.org>
parents: 20958
diff changeset
363 len = CHAR_STRING (c, workbuf, str);
23765
1944b3595afd (internal_self_insert): If C has modifier bits, insert
Kenichi Handa <handa@m17n.org>
parents: 23487
diff changeset
364 if (len == 1)
1944b3595afd (internal_self_insert): If C has modifier bits, insert
Kenichi Handa <handa@m17n.org>
parents: 23487
diff changeset
365 /* If C has modifier bits, this makes C an appropriate
1944b3595afd (internal_self_insert): If C has modifier bits, insert
Kenichi Handa <handa@m17n.org>
parents: 23487
diff changeset
366 one-byte char. */
1944b3595afd (internal_self_insert): If C has modifier bits, insert
Kenichi Handa <handa@m17n.org>
parents: 23487
diff changeset
367 c = *str;
21032
3bf522f06501 (internal_self_insert): Avoid checking enable-multibyte-characters
Kenichi Handa <handa@m17n.org>
parents: 20958
diff changeset
368 }
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
369 else
22926
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
370 {
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
371 workbuf[0] = (SINGLE_BYTE_CHAR_P (c)
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
372 ? c
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
373 : multibyte_char_to_unibyte (c, Qnil));
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
374 str = workbuf;
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
375 len = 1;
436499b7a769 (internal_self_insert): If enable-multibyte-characters is
Kenichi Handa <handa@m17n.org>
parents: 21514
diff changeset
376 }
2214
e5928bec8d5d * cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents: 2159
diff changeset
377 if (!NILP (overwrite)
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
378 && PT < ZV)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
379 {
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
380 /* In overwrite-mode, we substitute a character at point (C2,
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
381 hereafter) by C. For that, we delete C2 in advance. But,
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
382 just substituting C2 by C may move a remaining text in the
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
383 line to the right or to the left, which is not preferable.
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
384 So we insert more spaces or delete more characters in the
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
385 following cases: if C is narrower than C2, after deleting C2,
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
386 we fill columns with spaces, if C is wider than C2, we delete
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
387 C2 and several characters following C2. */
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
388
20615
ddb1eec37783 (internal_self_insert): Simplify handling of c2;
Richard M. Stallman <rms@gnu.org>
parents: 20541
diff changeset
389 /* This is the character after point. */
ddb1eec37783 (internal_self_insert): Simplify handling of c2;
Richard M. Stallman <rms@gnu.org>
parents: 20541
diff changeset
390 int c2 = FETCH_CHAR (PT_BYTE);
ddb1eec37783 (internal_self_insert): Simplify handling of c2;
Richard M. Stallman <rms@gnu.org>
parents: 20541
diff changeset
391
ddb1eec37783 (internal_self_insert): Simplify handling of c2;
Richard M. Stallman <rms@gnu.org>
parents: 20541
diff changeset
392 /* Column the cursor should be placed at after this insertion.
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
393 The correct value should be calculated only when necessary. */
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
394 int target_clm = 0;
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
395
19658
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
396 /* Overwriting in binary-mode always replaces C2 by C.
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
397 Overwriting in textual-mode doesn't always do that.
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
398 It inserts newlines in the usual way,
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
399 and inserts any character at end of line
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
400 or before a tab if it doesn't use the whole width of the tab. */
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
401 if (EQ (overwrite, Qoverwrite_mode_binary)
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
402 || (c != '\n'
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
403 && c2 != '\n'
19658
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
404 && ! (c2 == '\t'
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
405 && XINT (current_buffer->tab_width) > 0
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
406 && XFASTINT (current_buffer->tab_width) < 20
20615
ddb1eec37783 (internal_self_insert): Simplify handling of c2;
Richard M. Stallman <rms@gnu.org>
parents: 20541
diff changeset
407 && (target_clm = (current_column ()
24423
230bace6a57a (internal_self_insert): Calculate column properly
Karl Heuer <kwzh@gnu.org>
parents: 23765
diff changeset
408 + XINT (Fchar_width (make_number (c)))),
19658
063c22255157 (internal_self_insert): Only set TARGET_CLM when C2 is tab.
Richard M. Stallman <rms@gnu.org>
parents: 18813
diff changeset
409 target_clm % XFASTINT (current_buffer->tab_width)))))
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
410 {
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
411 int pos = PT;
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
412 int pos_byte = PT_BYTE;
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
413
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
414 if (target_clm == 0)
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
415 chars_to_delete = 1;
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
416 else
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
417 {
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
418 /* The actual cursor position after the trial of moving
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
419 to column TARGET_CLM. It is greater than TARGET_CLM
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
420 if the TARGET_CLM is middle of multi-column
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
421 character. In that case, the new point is set after
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
422 that character. */
18748
6897bd6a1c8d (Fdelete_backward_char): Convert Finsert_char argument to
Richard M. Stallman <rms@gnu.org>
parents: 18239
diff changeset
423 int actual_clm
6897bd6a1c8d (Fdelete_backward_char): Convert Finsert_char argument to
Richard M. Stallman <rms@gnu.org>
parents: 18239
diff changeset
424 = XFASTINT (Fmove_to_column (make_number (target_clm), Qnil));
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
425
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
426 chars_to_delete = PT - pos;
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
427
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
428 if (actual_clm > target_clm)
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
429 {
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
430 /* We will delete too many columns. Let's fill columns
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
431 by spaces so that the remaining text won't move. */
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
432 spaces_to_insert = actual_clm - target_clm;
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
433 }
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
434 }
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
435 SET_PT_BOTH (pos, pos_byte);
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
436 hairy = 2;
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
437 }
8088
a831980bb12e (internal_self_insert): Now can return 2.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
438 hairy = 2;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
439 }
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 239
diff changeset
440 if (!NILP (current_buffer->abbrev_mode)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
441 && SYNTAX (c) != Sword
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 239
diff changeset
442 && NILP (current_buffer->read_only)
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
443 && PT > BEGV && SYNTAX (XFASTINT (Fprevious_char ())) == Sword)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
444 {
1098
79f020f34683 (internal_self_insert): Assume Fexpand_abbrev expanded
Richard M. Stallman <rms@gnu.org>
parents: 1022
diff changeset
445 int modiff = MODIFF;
16748
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
446 Lisp_Object sym;
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
447
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
448 sym = Fexpand_abbrev ();
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
449
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
450 /* If we expanded an abbrev which has only a hook,
16809
c378600f005d (internal_self_insert): Check the property
Richard M. Stallman <rms@gnu.org>
parents: 16748
diff changeset
451 and the hook has a non-nil `no-self-insert' property,
16748
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
452 return right away--don't really self-insert. */
16809
c378600f005d (internal_self_insert): Check the property
Richard M. Stallman <rms@gnu.org>
parents: 16748
diff changeset
453 if (! NILP (sym) && ! NILP (XSYMBOL (sym)->function)
c378600f005d (internal_self_insert): Check the property
Richard M. Stallman <rms@gnu.org>
parents: 16748
diff changeset
454 && SYMBOLP (XSYMBOL (sym)->function))
16748
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
455 {
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
456 Lisp_Object prop;
16809
c378600f005d (internal_self_insert): Check the property
Richard M. Stallman <rms@gnu.org>
parents: 16748
diff changeset
457 prop = Fget (XSYMBOL (sym)->function, intern ("no-self-insert"));
16748
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
458 if (! NILP (prop))
17376
aef6095be65c (internal_self_insert): Fix return value.
Karl Heuer <kwzh@gnu.org>
parents: 17026
diff changeset
459 return 1;
16748
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
460 }
64f315c0e3f4 (internal_self_insert): If the abbrev has no expansion,
Richard M. Stallman <rms@gnu.org>
parents: 16657
diff changeset
461
1098
79f020f34683 (internal_self_insert): Assume Fexpand_abbrev expanded
Richard M. Stallman <rms@gnu.org>
parents: 1022
diff changeset
462 if (MODIFF != modiff)
8088
a831980bb12e (internal_self_insert): Now can return 2.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
463 hairy = 2;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
464 }
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
465
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
466 if (chars_to_delete)
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
467 {
21254
d25a091700e5 (internal_self_insert): Use make_string_from_bytes.
Richard M. Stallman <rms@gnu.org>
parents: 21238
diff changeset
468 string = make_string_from_bytes (str, 1, len);
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
469 if (spaces_to_insert)
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
470 {
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
471 tem = Fmake_string (make_number (spaces_to_insert),
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
472 make_number (' '));
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
473 string = concat2 (tem, string);
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
474 }
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
475
23062
fec0e9653480 (internal_self_insert): Pass 1 as NOMARKERS to replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 22926
diff changeset
476 replace_range (PT, PT + chars_to_delete, string, 1, 1, 1);
21149
43ed5912d7e0 (internal_self_insert): Call Fforward_buffer to advance
Richard M. Stallman <rms@gnu.org>
parents: 21032
diff changeset
477 Fforward_char (make_number (1 + spaces_to_insert));
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
478 }
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
479 else
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
480 insert_and_inherit (str, len);
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
481
23487
6bed0cb78b71 (internal_self_insert): Check Vauto_fill_chars.
Kenichi Handa <handa@m17n.org>
parents: 23062
diff changeset
482 if ((CHAR_TABLE_P (Vauto_fill_chars)
6bed0cb78b71 (internal_self_insert): Check Vauto_fill_chars.
Kenichi Handa <handa@m17n.org>
parents: 23062
diff changeset
483 ? !NILP (CHAR_TABLE_REF (Vauto_fill_chars, c))
6bed0cb78b71 (internal_self_insert): Check Vauto_fill_chars.
Kenichi Handa <handa@m17n.org>
parents: 23062
diff changeset
484 : (c == ' ' || c == '\n'))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
485 && !noautofill
10474
caf4440e63e8 (internal_self_insert): Don't test current_column
Richard M. Stallman <rms@gnu.org>
parents: 10425
diff changeset
486 && !NILP (current_buffer->auto_fill_function))
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
487 {
15262
b455f3f77823 (internal_self_insert): Don't return 2 for auto-fill
Karl Heuer <kwzh@gnu.org>
parents: 14436
diff changeset
488 Lisp_Object tem;
b455f3f77823 (internal_self_insert): Don't return 2 for auto-fill
Karl Heuer <kwzh@gnu.org>
parents: 14436
diff changeset
489
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
490 if (c == '\n')
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
491 /* After inserting a newline, move to previous line and fill
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
492 that. Must have the newline in place already so filling and
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
493 justification, if any, know where the end is going to be. */
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
494 SET_PT_BOTH (PT - 1, PT_BYTE - 1);
15262
b455f3f77823 (internal_self_insert): Don't return 2 for auto-fill
Karl Heuer <kwzh@gnu.org>
parents: 14436
diff changeset
495 tem = call0 (current_buffer->auto_fill_function);
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
496 if (c == '\n')
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
497 SET_PT_BOTH (PT + 1, PT_BYTE + 1);
15262
b455f3f77823 (internal_self_insert): Don't return 2 for auto-fill
Karl Heuer <kwzh@gnu.org>
parents: 14436
diff changeset
498 if (!NILP (tem))
b455f3f77823 (internal_self_insert): Don't return 2 for auto-fill
Karl Heuer <kwzh@gnu.org>
parents: 14436
diff changeset
499 hairy = 2;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
500 }
10729
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
501
11024
636d0fa5a920 (internal_self_insert): Do face code only if HAVE_FACES.
Karl Heuer <kwzh@gnu.org>
parents: 10865
diff changeset
502 #ifdef HAVE_FACES
10729
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
503 /* If previous command specified a face to use, use it. */
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
504 if (!NILP (Vself_insert_face)
12163
4a83c7459b52 (internal_self_insert): Make last_command be kboard-local.
Karl Heuer <kwzh@gnu.org>
parents: 11235
diff changeset
505 && EQ (current_kboard->Vlast_command, Vself_insert_face_command))
10729
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
506 {
20541
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
507 Fput_text_property (make_number (PT - 1), make_number (PT),
0cd7f6f42138 (forward_point): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 19658
diff changeset
508 Qface, Vself_insert_face, Qnil);
10729
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
509 Vself_insert_face = Qnil;
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
510 }
11024
636d0fa5a920 (internal_self_insert): Do face code only if HAVE_FACES.
Karl Heuer <kwzh@gnu.org>
parents: 10865
diff changeset
511 #endif
18813
498c1590b4a8 (internal_self_insert): When overwriting, use replace_range.
Richard M. Stallman <rms@gnu.org>
parents: 18748
diff changeset
512
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
513 synt = SYNTAX (c);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
514 if ((synt == Sclose || synt == Smath)
12869
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
515 && !NILP (Vblink_paren_function) && INTERACTIVE
2304fcfade47 (Fself_insert_command): Optimize the case with arg > 2
Richard M. Stallman <rms@gnu.org>
parents: 12163
diff changeset
516 && !noautofill)
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
517 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
518 call0 (Vblink_paren_function);
8088
a831980bb12e (internal_self_insert): Now can return 2.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
519 hairy = 2;
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
520 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
521 return hairy;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
522 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
523
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
524 /* module initialization */
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
525
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21254
diff changeset
526 void
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
527 syms_of_cmds ()
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
528 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
529 Qkill_backward_chars = intern ("kill-backward-chars");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
530 staticpro (&Qkill_backward_chars);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
531
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
532 Qkill_forward_chars = intern ("kill-forward-chars");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
533 staticpro (&Qkill_forward_chars);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
534
2214
e5928bec8d5d * cmds.c (overwrite_binary_mode): Deleted; this implements the
Jim Blandy <jimb@redhat.com>
parents: 2159
diff changeset
535 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
536 staticpro (&Qoverwrite_mode_binary);
1948
e7b8107294b7 (syms_of_cmds): New var `overwrite-binary-mode'.
Richard M. Stallman <rms@gnu.org>
parents: 1098
diff changeset
537
10729
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
538 DEFVAR_LISP ("self-insert-face", &Vself_insert_face,
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
539 "If non-nil, set the face of the next self-inserting character to this.\n\
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
540 See also `self-insert-face-command'.");
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
541 Vself_insert_face = Qnil;
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
542
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
543 DEFVAR_LISP ("self-insert-face-command", &Vself_insert_face_command,
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
544 "This is the command that set up `self-insert-face'.\n\
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
545 If `last-command' does not equal this value, we ignore `self-insert-face'.");
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
546 Vself_insert_face_command = Qnil;
fb4f688fc2cf (Vself_insert_face, Vself_insert_face_command): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 10474
diff changeset
547
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
548 DEFVAR_LISP ("blink-paren-function", &Vblink_paren_function,
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
549 "Function called, if non-nil, whenever a close parenthesis is inserted.\n\
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
550 More precisely, a char with closeparen syntax is self-inserted.");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
551 Vblink_paren_function = Qnil;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
552
17026
4557b42ba1dc Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 16809
diff changeset
553 defsubr (&Sforward_point);
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
554 defsubr (&Sforward_char);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
555 defsubr (&Sbackward_char);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
556 defsubr (&Sforward_line);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
557 defsubr (&Sbeginning_of_line);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
558 defsubr (&Send_of_line);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
559
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
560 defsubr (&Sdelete_char);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
561 defsubr (&Sdelete_backward_char);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
562
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
563 defsubr (&Sself_insert_command);
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
564 }
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
565
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21254
diff changeset
566 void
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
567 keys_of_cmds ()
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
568 {
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
569 int n;
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
570
10425
f44f048966e8 (Vuse_hard_newlines): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 9884
diff changeset
571 initial_define_key (global_map, Ctl ('I'), "self-insert-command");
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
572 for (n = 040; n < 0177; n++)
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
573 initial_define_key (global_map, n, "self-insert-command");
5491
3965bf498738 (keys_of_cmds) [MSDOS]: Chars 0200 to 0237 self-insert.
Richard M. Stallman <rms@gnu.org>
parents: 5054
diff changeset
574 #ifdef MSDOS
3965bf498738 (keys_of_cmds) [MSDOS]: Chars 0200 to 0237 self-insert.
Richard M. Stallman <rms@gnu.org>
parents: 5054
diff changeset
575 for (n = 0200; n < 0240; n++)
3965bf498738 (keys_of_cmds) [MSDOS]: Chars 0200 to 0237 self-insert.
Richard M. Stallman <rms@gnu.org>
parents: 5054
diff changeset
576 initial_define_key (global_map, n, "self-insert-command");
3965bf498738 (keys_of_cmds) [MSDOS]: Chars 0200 to 0237 self-insert.
Richard M. Stallman <rms@gnu.org>
parents: 5054
diff changeset
577 #endif
5054
34c280d4e1af (keys_of_cmds): Make 0377 self-inserting.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
578 for (n = 0240; n < 0400; n++)
3223
28a9541901d7 (keys_of_cmds): Predefined 0240-0376 as self-insert.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
579 initial_define_key (global_map, n, "self-insert-command");
239
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
580
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
581 initial_define_key (global_map, Ctl ('A'), "beginning-of-line");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
582 initial_define_key (global_map, Ctl ('B'), "backward-char");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
583 initial_define_key (global_map, Ctl ('D'), "delete-char");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
584 initial_define_key (global_map, Ctl ('E'), "end-of-line");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
585 initial_define_key (global_map, Ctl ('F'), "forward-char");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
586 initial_define_key (global_map, 0177, "delete-backward-char");
ed9362406f5f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
587 }