From d1e8ce8bb6fadf3d034ae437ff1c1b81be7d5209 Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Thu, 13 Feb 2020 19:00:36 +0000 Subject: [PATCH] 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). --- src/callproc.c | 5 +++-- 1 file 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, -- 2.39.2