Mercurial > emacs
diff src/process.c @ 101932:06f397da7b55
(send_process): Properly relocate pointer into data
when using encoded data.
| author | Andreas Schwab <schwab@suse.de> |
|---|---|
| date | Tue, 10 Feb 2009 22:32:39 +0000 |
| parents | bd66da73ef9f |
| children | 0f4ba7f17aa0 |
line wrap: on
line diff
--- a/src/process.c Tue Feb 10 10:26:53 2009 +0000 +++ b/src/process.c Tue Feb 10 22:32:39 2009 +0000 @@ -5745,7 +5745,9 @@ /* 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 @@ 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);
