Commit 50a30cce authored by Paul Eggert's avatar Paul Eggert

Fix w32 bug with call-process-region.

* callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
to Fcall_process when the input is empty.  This simplifies the
code a bit.  It makes no difference on POSIXish platforms but
apparently it fixes a bug on w32.

Fixes: debbugs:14885
parent 41d48a42
2013-07-16 Paul Eggert <eggert@cs.ucla.edu>
Fix bug where Emacs tries to close a file twice (Bug#14839).
Fix w32 bug with call-process-region (Bug#14885).
* callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
to Fcall_process when the input is empty. This simplifies the
code a bit. It makes no difference on POSIXish platforms but
apparently it fixes a bug on w32.
Fix bug where insert-file-contents closes a file twice. (Bug#14839).
* fileio.c (close_file_unwind): Don't close if FD is negative;
this can happen when unwinding a zapped file descriptor.
(Finsert_file_contents): Unwind-protect the fd before the point marker,
......
......@@ -1093,7 +1093,7 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r
(ptrdiff_t nargs, Lisp_Object *args)
{
struct gcpro gcpro1;
Lisp_Object filename_string;
Lisp_Object infile;
ptrdiff_t count = SPECPDL_INDEX ();
Lisp_Object start = args[0];
Lisp_Object end = args[1];
......@@ -1111,10 +1111,8 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r
empty_input = XINT (start) == XINT (end);
}
filename_string = (empty_input
? build_string (NULL_DEVICE)
: create_temp_file (nargs, args));
GCPRO1 (filename_string);
infile = empty_input ? Qnil : create_temp_file (nargs, args);
GCPRO1 (infile);
if (nargs > 3 && !NILP (args[3]))
Fdelete_region (start, end);
......@@ -1129,7 +1127,7 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r
args[0] = args[2];
nargs = 2;
}
args[1] = filename_string;
args[1] = infile;
RETURN_UNGCPRO (unbind_to (count, Fcall_process (nargs, args)));
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment