diff options
author | Jim Blandy <jimb@redhat.com> | 1993-03-16 18:18:05 +0000 |
---|---|---|
committer | Jim Blandy <jimb@redhat.com> | 1993-03-16 18:18:05 +0000 |
commit | 33db68dc9d6e2a5eaca48785a84bd4a1ce399a0a (patch) | |
tree | 8cc7c91464646ab22267cb1c62f52ba836ce3e79 /src/cmds.c | |
parent | 01478010c154c93e376f81adc17be869654961e2 (diff) | |
download | emacs-33db68dc9d6e2a5eaca48785a84bd4a1ce399a0a.tar.gz |
* cmds.c (overwrite_binary_mode): Deleted; this implements the
wrong feature.
(Qoverwrite_mode_binary): New variable.
(internal_self_insert): If current_buffer->overwrite_mode is
`overwrite-mode-binary', do as overwrite_binary_mode used to.
(syms_of_cmds): Remove defvar of overwrite_binary_mode; initialize
Qoverwrite_mode_binary.
* buffer.c (syms_of_buffer): Doc fix for overwrite_mode.
* buffer.h (struct buffer): Doc fix.
Diffstat (limited to 'src/cmds.c')
-rw-r--r-- | src/cmds.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/cmds.c b/src/cmds.c index 9dfd2b48a8f..e81d7c61e59 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -26,7 +26,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_function; -int overwrite_binary_mode; +/* A possible value for a buffer's overwrite-mode variable. */ +Lisp_Object Qoverwrite_mode_binary; + DEFUN ("forward-char", Fforward_char, Sforward_char, 0, 1, "p", "Move point right ARG characters (left if ARG negative).\n\ @@ -273,14 +275,16 @@ internal_self_insert (c1, noautofill) Lisp_Object tem; register enum syntaxcode synt; register int c = c1; + Lisp_Object overwrite = current_buffer->overwrite_mode; if (!NILP (Vbefore_change_function) || !NILP (Vafter_change_function)) hairy = 1; - if (!NILP (current_buffer->overwrite_mode) + if (!NILP (overwrite) && point < ZV - && (overwrite_binary_mode || (c != '\n' && FETCH_CHAR (point) != '\n')) - && (overwrite_binary_mode + && (EQ (overwrite, Qoverwrite_mode_binary) + || (c != '\n' && FETCH_CHAR (point) != '\n')) + && (EQ (overwrite, Qoverwrite_mode_binary) || FETCH_CHAR (point) != '\t' || XINT (current_buffer->tab_width) <= 0 || XFASTINT (current_buffer->tab_width) > 20 @@ -336,11 +340,8 @@ syms_of_cmds () Qkill_forward_chars = intern ("kill-forward-chars"); staticpro (&Qkill_forward_chars); - DEFVAR_BOOL ("overwrite-binary-mode", &overwrite_binary_mode, - "*Non-nil means overwrite mode treats tab and newline normally.\n\ -Ordinarily, overwriting preserves a tab until its whole width is overwritten\n\ -and never replaces a newline."); - overwrite_binary_mode = 1; + Qoverwrite_mode_binary = intern ("overwrite-mode-binary"); + staticpro (&Qoverwrite_mode_binary); DEFVAR_LISP ("blink-paren-function", &Vblink_paren_function, "Function called, if non-nil, whenever a close parenthesis is inserted.\n\ |