# HG changeset patch # User Gerd Moellmann # Date 932593432 0 # Node ID be28816843829686447fe78159c1d36177b5bbd5 # Parent 3bb745067f0e5b38ddf5bec1f8ca3b50f4b35686 (prepare_to_modify_buffer): Set windows_or_buffers_changed, (del_range_1) [PROMPT_IN_BUFFER]: If start position is less than mini-buffer prompt width, use prompt width as start. diff -r 3bb745067f0e -r be2881684382 src/insdel.c --- a/src/insdel.c Wed Jul 21 21:43:52 1999 +0000 +++ b/src/insdel.c Wed Jul 21 21:43:52 1999 +0000 @@ -33,6 +33,7 @@ #endif #define min(x, y) ((x) < (y) ? (x) : (y)) +#define max(x, y) ((x) > (y) ? (x) : (y)) static void insert_from_string_1 P_ ((Lisp_Object, int, int, int, int, int, int)); static void insert_from_buffer_1 (); @@ -2047,6 +2048,15 @@ int from, to, prepare; { int from_byte, to_byte; + +#if !NO_PROMPT_IN_BUFFER + if (INTEGERP (current_buffer->minibuffer_prompt_length)) + { + /* Don't delete part of a mini-buffer prompt. */ + int len = XFASTINT (current_buffer->minibuffer_prompt_length); + from = max (from, len); + } +#endif /* !NO_PROMPT_IN_BUFFER */ /* Make args be valid */ if (from < BEGV) @@ -2328,6 +2338,11 @@ if (!NILP (current_buffer->read_only)) Fbarf_if_buffer_read_only (); + /* Let redisplay consider other windows than selected_window + if modifying another buffer. */ + if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer) + ++windows_or_buffers_changed; + /* Only defined if Emacs is compiled with USE_TEXT_PROPERTIES */ if (BUF_INTERVALS (current_buffer) != 0) {