From: Andreas Schwab Date: Tue, 10 Feb 2009 22:32:39 +0000 (+0000) Subject: (send_process): Properly relocate pointer into data X-Git-Tag: emacs-pretest-23.0.91~303 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b5bfebec1323223a0cda471546658ff1bbeaec86;p=emacs.git (send_process): Properly relocate pointer into data when using encoded data. --- 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);