projects
/
chise
/
xemacs-chise.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
XEmacs 21.4.17 "Jumbo Shrimp".
[chise/xemacs-chise.git]
/
src
/
process-unix.c
diff --git
a/src/process-unix.c
b/src/process-unix.c
index
c0d1989
..
424246f
100644
(file)
--- a/
src/process-unix.c
+++ b/
src/process-unix.c
@@
-892,6
+892,7
@@
unix_create_process (Lisp_Process *p,
#endif
set_descriptor_non_blocking (inchannel);
#endif
set_descriptor_non_blocking (inchannel);
+ set_descriptor_non_blocking (outchannel);
/* Record this as an active process, with its channels.
As a result, child_setup will close Emacs's side of the pipes. */
/* Record this as an active process, with its channels.
As a result, child_setup will close Emacs's side of the pipes. */
@@
-914,6
+915,10
@@
unix_create_process (Lisp_Process *p,
int xforkin = forkin;
int xforkout = forkout;
int xforkin = forkin;
int xforkout = forkout;
+ /* Checking for quit in the child is bad because that will
+ cause I/O, and that, in turn, can confuse the X connection. */
+ begin_dont_check_for_quit();
+
/* Disconnect the current controlling terminal, pursuant to
making the pty be the controlling terminal of the process.
Also put us in our own process group. */
/* Disconnect the current controlling terminal, pursuant to
making the pty be the controlling terminal of the process.
Also put us in our own process group. */
@@
-1294,7
+1299,7
@@
unix_send_process (Lisp_Object proc, struct lstream* lstream)
chunklen = Lstream_read (lstream, chunkbuf, 512);
if (chunklen <= 0)
chunklen = Lstream_read (lstream, chunkbuf, 512);
if (chunklen <= 0)
- break; /* perhaps should abort() if < 0?
+ break; /* perhaps should ABORT() if < 0?
This should never happen. */
old_sigpipe =
(SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap);
This should never happen. */
old_sigpipe =
(SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap);
@@
-1331,6
+1336,9
@@
unix_send_process (Lisp_Object proc, struct lstream* lstream)
/* #### There is controversy over whether this might cause fd leakage */
/* my tests say no. -slb */
XLSTREAM (p->pipe_outstream)->flags &= ~LSTREAM_FL_IS_OPEN;
/* #### There is controversy over whether this might cause fd leakage */
/* my tests say no. -slb */
XLSTREAM (p->pipe_outstream)->flags &= ~LSTREAM_FL_IS_OPEN;
+#ifdef FILE_CODING
+ XLSTREAM (p->coding_outstream)->flags &= ~LSTREAM_FL_IS_OPEN;
+#endif
p->status_symbol = Qexit;
p->exit_code = 256; /* #### SIGPIPE ??? */
p->core_dumped = 0;
p->status_symbol = Qexit;
p->exit_code = 256; /* #### SIGPIPE ??? */
p->core_dumped = 0;