From b5bfebec1323223a0cda471546658ff1bbeaec86 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 10 Feb 2009 22:32:39 +0000 Subject: [PATCH] (send_process): Properly relocate pointer into data when using encoded data. --- src/ChangeLog | 5 +++++ src/process.c | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3db96f64fca..e6f380e2db4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-02-10 Andreas Schwab + + * process.c (send_process): Properly relocate pointer into data + when using encoded data. + 2009-02-08 ARISAWA Akihiro * coding.c (detect_coding_charset): Fix previous change. diff --git a/src/process.c b/src/process.c index 892a779a1c2..10b3b714d54 100644 --- a/src/process.c +++ b/src/process.c @@ -5745,7 +5745,9 @@ send_process (proc, buf, len, object) /* Running filters might relocate buffers or strings. Arrange to relocate BUF. */ - if (BUFFERP (object)) + if (CODING_REQUIRE_ENCODING (coding)) + offset = buf - SDATA (coding->dst_object); + else if (BUFFERP (object)) offset = BUF_PTR_BYTE_POS (XBUFFER (object), buf); else if (STRINGP (object)) offset = buf - SDATA (object); @@ -5756,7 +5758,9 @@ send_process (proc, buf, len, object) wait_reading_process_output (1, 0, 0, 0, Qnil, NULL, 0); #endif - if (BUFFERP (object)) + if (CODING_REQUIRE_ENCODING (coding)) + buf = offset + SDATA (coding->dst_object); + else if (BUFFERP (object)) buf = BUF_BYTE_ADDRESS (XBUFFER (object), offset); else if (STRINGP (object)) buf = offset + SDATA (object); -- 2.39.5