mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-10 13:40:36 -08:00
* 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.
This commit is contained in:
parent
80169ab539
commit
6bbb0d4aaa
3 changed files with 16 additions and 10 deletions
|
|
@ -1610,6 +1610,10 @@ Automatically becomes buffer-local when set in any fashion.");
|
|||
|
||||
DEFVAR_PER_BUFFER ("overwrite-mode", ¤t_buffer->overwrite_mode, Qnil,
|
||||
"Non-nil if self-insertion should replace existing text.\n\
|
||||
If non-nil and not `overwrite-mode-binary', self-insertion still\n\
|
||||
inserts at the end of a line, and inserts when point is before a tab,\n\
|
||||
unless that tab is displaying as only one space.\n\
|
||||
If `overwrite-mode-binary', self-insertion replaces newlines and tabs too.\n\
|
||||
Automatically becomes buffer-local when set in any fashion.");
|
||||
|
||||
DEFVAR_PER_BUFFER ("buffer-display-table", ¤t_buffer->display_table,
|
||||
|
|
|
|||
|
|
@ -256,7 +256,8 @@ struct buffer
|
|||
#endif
|
||||
/* Alist of (FUNCTION . STRING) for each minor mode enabled in buffer. */
|
||||
Lisp_Object minor_modes;
|
||||
/* t if "self-insertion" should overwrite */
|
||||
/* t if "self-insertion" should overwrite; `binary' if it should also
|
||||
overwrite newlines and tabs - for editing executables and the like. */
|
||||
Lisp_Object overwrite_mode;
|
||||
/* non-nil means abbrev mode is on. Expand abbrevs automatically. */
|
||||
Lisp_Object abbrev_mode;
|
||||
|
|
|
|||
19
src/cmds.c
19
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\
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue