aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1993-02-24 08:59:25 +0000
committerRichard M. Stallman1993-02-24 08:59:25 +0000
commite686c647fd1cc7a66bae3621d8faccef4b48497f (patch)
tree9ac65038b887c5cb5071a2d549087e7ffa794638
parente45352887855decfe3361b4d75c23715d79f4f2d (diff)
downloademacs-e686c647fd1cc7a66bae3621d8faccef4b48497f.tar.gz
emacs-e686c647fd1cc7a66bae3621d8faccef4b48497f.zip
(syms_of_cmds): New var `overwrite-binary-mode'.
(internal_self_insert): Handle that var.
-rw-r--r--src/cmds.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/cmds.c b/src/cmds.c
index c8e9bfd76ec..b927047e1c0 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -26,6 +26,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
26 26
27Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function; 27Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function;
28 28
29int overwrite_binary_mode;
29 30
30DEFUN ("forward-char", Fforward_char, Sforward_char, 0, 1, "p", 31DEFUN ("forward-char", Fforward_char, Sforward_char, 0, 1, "p",
31 "Move point right ARG characters (left if ARG negative).\n\ 32 "Move point right ARG characters (left if ARG negative).\n\
@@ -277,8 +278,9 @@ internal_self_insert (c1, noautofill)
277 278
278 if (!NILP (current_buffer->overwrite_mode) 279 if (!NILP (current_buffer->overwrite_mode)
279 && point < ZV 280 && point < ZV
280 && c != '\n' && FETCH_CHAR (point) != '\n' 281 && (overwrite_binary_mode || (c != '\n' && FETCH_CHAR (point) != '\n'))
281 && (FETCH_CHAR (point) != '\t' 282 && (overwrite_binary_mode
283 || FETCH_CHAR (point) != '\t'
282 || XINT (current_buffer->tab_width) <= 0 284 || XINT (current_buffer->tab_width) <= 0
283 || !((current_column () + 1) % XFASTINT (current_buffer->tab_width)))) 285 || !((current_column () + 1) % XFASTINT (current_buffer->tab_width))))
284 { 286 {
@@ -332,6 +334,12 @@ syms_of_cmds ()
332 Qkill_forward_chars = intern ("kill-forward-chars"); 334 Qkill_forward_chars = intern ("kill-forward-chars");
333 staticpro (&Qkill_forward_chars); 335 staticpro (&Qkill_forward_chars);
334 336
337 DEFVAR_BOOL ("overwrite-binary-mode", &overwrite_binary_mode,
338 "*Non-nil means overwrite mode treats tab and newline normally.\n\
339Ordinarily, overwriting preserves a tab until its whole width is overwritten\n\
340and never replaces a newline.");
341 overwrite_tabs_mode = 1;
342
335 DEFVAR_LISP ("blink-paren-function", &Vblink_paren_function, 343 DEFVAR_LISP ("blink-paren-function", &Vblink_paren_function,
336 "Function called, if non-nil, whenever a close parenthesis is inserted.\n\ 344 "Function called, if non-nil, whenever a close parenthesis is inserted.\n\
337More precisely, a char with closeparen syntax is self-inserted."); 345More precisely, a char with closeparen syntax is self-inserted.");