diff options
author | Alan Mackenzie <acm@muc.de> | 2020-02-13 19:00:36 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2020-02-13 19:00:36 +0000 |
commit | d1e8ce8bb6fadf3d034ae437ff1c1b81be7d5209 (patch) | |
tree | 4060456055d4fe6304db1ba7b2bcc4a99f367aca | |
parent | 0304f530761bee1c217bbf8fe7839cdfe8767a51 (diff) | |
download | emacs-d1e8ce8bb6fadf3d034ae437ff1c1b81be7d5209.tar.gz |
Make after-change-functions called from call-process get the correct BEG
This fixes bug #39585.
* src/callproc.c (call_process): Supply the correct CHARPOS to
signal_after_change (twice).
-rw-r--r-- | src/callproc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/callproc.c b/src/callproc.c index 07dcc4c3ae4..8883415f3f5 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -811,7 +811,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, && ! CODING_MAY_REQUIRE_DECODING (&process_coding)) { insert_1_both (buf, nread, nread, 0, 0, 0); - signal_after_change (PT, 0, nread); + signal_after_change (PT - nread, 0, nread); } else { /* We have to decode the input. */ @@ -854,7 +854,8 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, TEMP_SET_PT_BOTH (PT + process_coding.produced_char, PT_BYTE + process_coding.produced); - signal_after_change (PT, 0, process_coding.produced_char); + signal_after_change (PT - process_coding.produced_char, + 0, process_coding.produced_char); carryover = process_coding.carryover_bytes; if (carryover > 0) memcpy (buf, process_coding.carryover, |