Mercurial > emacs
changeset 34352:642fb6c53a10
(read_process_output): Make sure the process marker's
position is valid when the process buffer is changed in
after-change functions. W3 does that.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Thu, 07 Dec 2000 15:50:30 +0000 |
parents | fedc41b477f0 |
children | e477bbc45459 |
files | src/process.c |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/process.c Thu Dec 07 15:23:07 2000 +0000 +++ b/src/process.c Thu Dec 07 15:50:30 2000 +0000 @@ -3055,6 +3055,7 @@ int before, before_byte; int opoint_byte; Lisp_Object text; + struct buffer *b; odeactivate = Vdeactivate_mark; @@ -3120,7 +3121,14 @@ signal_after_change (before, 0, PT - before); update_compositions (before, PT, CHECK_BORDER); - set_marker_both (p->mark, p->buffer, PT, PT_BYTE); + /* Make sure the process marker's position is valid when the + process buffer is changed in the signal_after_change above. + W3 is known to do that. */ + if (BUFFERP (p->buffer) + && (b = XBUFFER (p->buffer), b != current_buffer)) + set_marker_both (p->mark, p->buffer, BUF_PT (b), BUF_PT_BYTE (b)); + else + set_marker_both (p->mark, p->buffer, PT, PT_BYTE); update_mode_lines++;