]> code.delx.au - gnu-emacs/blobdiff - src/callproc.c
(Fcall_process): Be sure to give the current buffer
[gnu-emacs] / src / callproc.c
index bb3df43d43313b62052aa5e9db578a53f0ea2336..9fa97d862c1b91a45caf031d542f7ae7dfb3c764 100644 (file)
@@ -770,8 +770,11 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
              insert_1_both (bufptr, nread, nread, 0, 1, 0);
            else
              {                 /* We have to decode the input.  */
+               Lisp_Object buf;
+
+               XSETBUFFER (buf, current_buffer);
                decode_coding_c_string (&process_coding, bufptr, nread,
-                                       buffer);
+                                       buf);
                if (display_on_the_fly
                    && CODING_REQUIRE_DETECTION (&saved_coding)
                    && ! CODING_REQUIRE_DETECTION (&process_coding))
@@ -793,6 +796,8 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
                    continue;
                  }
                
+               TEMP_SET_PT_BOTH (PT + process_coding.produced_char,
+                                 PT_BYTE + process_coding.produced);
                nread -= process_coding.consumed;
                carryover = nread;
                if (carryover > 0)