diff options
| author | Richard M. Stallman | 1993-02-24 08:59:25 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1993-02-24 08:59:25 +0000 |
| commit | e686c647fd1cc7a66bae3621d8faccef4b48497f (patch) | |
| tree | 9ac65038b887c5cb5071a2d549087e7ffa794638 | |
| parent | e45352887855decfe3361b4d75c23715d79f4f2d (diff) | |
| download | emacs-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.c | 12 |
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 | ||
| 27 | Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function; | 27 | Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function; |
| 28 | 28 | ||
| 29 | int overwrite_binary_mode; | ||
| 29 | 30 | ||
| 30 | DEFUN ("forward-char", Fforward_char, Sforward_char, 0, 1, "p", | 31 | DEFUN ("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\ | ||
| 339 | Ordinarily, overwriting preserves a tab until its whole width is overwritten\n\ | ||
| 340 | and 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\ |
| 337 | More precisely, a char with closeparen syntax is self-inserted."); | 345 | More precisely, a char with closeparen syntax is self-inserted."); |