Mercurial > hg > xemacs-beta
diff src/process-unix.c @ 361:7347b34c275b r21-1-10
Import from CVS: tag r21-1-10
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:58:40 +0200 |
parents | 19dcec799385 |
children | 30d2cfa1092a |
line wrap: on
line diff
--- a/src/process-unix.c Mon Aug 13 10:57:57 2007 +0200 +++ b/src/process-unix.c Mon Aug 13 10:58:40 2007 +0200 @@ -1153,6 +1153,14 @@ volatile Lisp_Object vol_proc = proc; struct Lisp_Process *volatile p = XPROCESS (proc); + /* #### JV: layering violation? + + This function knows too much about the relation between the encodingstream + (DATA_OUTSTREAM) and te actual output stream p->output_stream. + + If encoding streams properly forwarded all calls, we could simply + use DATA_OUTSTREAM everywhere. */ + if (!SETJMP (send_process_frame)) { /* use a reasonable-sized buffer (somewhere around the size of the @@ -1188,6 +1196,9 @@ that may allow the program to finish doing output and read more. */ Faccept_process_output (Qnil, make_int (1), Qnil); + /* It could have *really* finished, deleting the process */ + if (NILP(p->pipe_outstream)) + return; old_sigpipe = (SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap); Lstream_flush (XLSTREAM (p->pipe_outstream));