aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiles Bader1996-07-06 20:02:39 +0000
committerMiles Bader1996-07-06 20:02:39 +0000
commit6f89d28ab449805db76410c551f1b945e5f03c94 (patch)
tree377a8992b2ea2caa3725403d82fe3c52e18f20e8 /src
parentf3e9aa2d38949cb99027e0400eaaf07dba3607f6 (diff)
downloademacs-6f89d28ab449805db76410c551f1b945e5f03c94.tar.gz
emacs-6f89d28ab449805db76410c551f1b945e5f03c94.zip
(Fcall_process) [MSDOS]:
Initialize fd[0]; unlink `tempfile' in case of errors. Make the `tempfile' parameter passed to `report_file_error' be a Lisp string. (Fcall_process): When fd_error is negative, don't close fd[0] if it's same as filefd. If stderr is redirected to NULL_DEVICE, make `report_file_error' print the name of device. Make the arguments a cons cell.
Diffstat (limited to 'src')
-rw-r--r--src/callproc.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/callproc.c b/src/callproc.c
index 58d8e8714f7..dc0c945925c 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -350,10 +350,12 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
350 if (outfilefd < 0) 350 if (outfilefd < 0)
351 { 351 {
352 close (filefd); 352 close (filefd);
353 report_file_error ("Opening process output file", Fcons (tempfile, Qnil)); 353 report_file_error ("Opening process output file",
354 Fcons (build_string (tempfile), Qnil));
354 } 355 }
356 fd[0] = filefd;
355 fd[1] = outfilefd; 357 fd[1] = outfilefd;
356#endif 358#endif /* MSDOS */
357 359
358 if (INTEGERP (buffer)) 360 if (INTEGERP (buffer))
359 fd[1] = open (NULL_DEVICE, O_WRONLY), fd[0] = -1; 361 fd[1] = open (NULL_DEVICE, O_WRONLY), fd[0] = -1;
@@ -404,10 +406,17 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
404 if (fd_error < 0) 406 if (fd_error < 0)
405 { 407 {
406 close (filefd); 408 close (filefd);
407 close (fd[0]); 409 if (fd[0] != filefd)
410 close (fd[0]);
408 if (fd1 >= 0) 411 if (fd1 >= 0)
409 close (fd1); 412 close (fd1);
410 report_file_error ("Cannot open", error_file); 413#ifdef MSDOS
414 unlink (tempfile);
415#endif
416 report_file_error ("Cannot redirect stderr",
417 Fcons ((NILP (error_file)
418 ? build_string (NULL_DEVICE) : error_file),
419 Qnil));
411 } 420 }
412#ifdef MSDOS /* MW, July 1993 */ 421#ifdef MSDOS /* MW, July 1993 */
413 /* ??? Someone who knows MSDOG needs to check whether this properly 422 /* ??? Someone who knows MSDOG needs to check whether this properly