diff options
| author | Karoly Lorentey | 2006-10-14 17:36:28 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2006-10-14 17:36:28 +0000 |
| commit | 12b6af5c7ed2cfdb9783312bf890cf1e6c80c67a (patch) | |
| tree | 1775f9fd1c92defd8b61304a08ec00da95bc4539 /src/process.c | |
| parent | 3f87f67ee215ffeecbd2f53bd7f342cdf03f47df (diff) | |
| parent | f763da8d0808af7c80d72bc586bf4fcf50b37ddd (diff) | |
| download | emacs-12b6af5c7ed2cfdb9783312bf890cf1e6c80c67a.tar.gz emacs-12b6af5c7ed2cfdb9783312bf890cf1e6c80c67a.zip | |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-413
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-414
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-415
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-416
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-417
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-418
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-419
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-420
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-421
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-422
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-423
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-424
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-425
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-426
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-427
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-428
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-429
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-430
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-431
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-432
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-433
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-434
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-435
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-436
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-437
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-438
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-439
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-440
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-441
lisp/url/url-methods.el: Fix format error when http_proxy is empty string
* emacs@sv.gnu.org/emacs--devo--0--patch-442
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-443
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-444
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-445
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-446
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-447
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-448
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-449
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-450
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-451
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-452
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-453
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-454
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-455
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-456
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-457
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-458
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-459
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-460
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-461
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-462
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-463
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-464
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-465
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-466
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-467
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-468
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-469
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-470
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-471
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-472
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-473
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-128
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-129
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-130
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-131
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-132
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-133
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-134
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-135
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-136
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-137
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-138
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-139
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-140
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-141
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-142
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-143
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-144
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-145
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-146
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-147
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-148
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-149
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-582
Diffstat (limited to 'src/process.c')
| -rw-r--r-- | src/process.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/process.c b/src/process.c index f8ae50e8652..9062e6c3d6e 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -318,6 +318,12 @@ static int read_process_output P_ ((Lisp_Object, int)); | |||
| 318 | #define POLL_FOR_INPUT | 318 | #define POLL_FOR_INPUT |
| 319 | #endif | 319 | #endif |
| 320 | 320 | ||
| 321 | static Lisp_Object get_process (); | ||
| 322 | static void exec_sentinel (); | ||
| 323 | |||
| 324 | extern EMACS_TIME timer_check (); | ||
| 325 | extern int timers_run; | ||
| 326 | |||
| 321 | /* Mask of bits indicating the descriptors that we wait for input on. */ | 327 | /* Mask of bits indicating the descriptors that we wait for input on. */ |
| 322 | 328 | ||
| 323 | static SELECT_TYPE input_wait_mask; | 329 | static SELECT_TYPE input_wait_mask; |
| @@ -386,15 +392,13 @@ struct sockaddr_and_len { | |||
| 386 | #define DATAGRAM_CONN_P(proc) (0) | 392 | #define DATAGRAM_CONN_P(proc) (0) |
| 387 | #endif | 393 | #endif |
| 388 | 394 | ||
| 389 | static Lisp_Object get_process (); | ||
| 390 | static void exec_sentinel (); | ||
| 391 | |||
| 392 | extern EMACS_TIME timer_check (); | ||
| 393 | extern int timers_run; | ||
| 394 | |||
| 395 | /* Maximum number of bytes to send to a pty without an eof. */ | 395 | /* Maximum number of bytes to send to a pty without an eof. */ |
| 396 | static int pty_max_bytes; | 396 | static int pty_max_bytes; |
| 397 | 397 | ||
| 398 | /* Nonzero means don't run process sentinels. This is used | ||
| 399 | when exiting. */ | ||
| 400 | int inhibit_sentinels; | ||
| 401 | |||
| 398 | #ifdef HAVE_PTYS | 402 | #ifdef HAVE_PTYS |
| 399 | #ifdef HAVE_PTY_H | 403 | #ifdef HAVE_PTY_H |
| 400 | #include <pty.h> | 404 | #include <pty.h> |
| @@ -1310,6 +1314,7 @@ list_processes_1 (query_only) | |||
| 1310 | register struct Lisp_Process *p; | 1314 | register struct Lisp_Process *p; |
| 1311 | char tembuf[300]; | 1315 | char tembuf[300]; |
| 1312 | int w_proc, w_buffer, w_tty; | 1316 | int w_proc, w_buffer, w_tty; |
| 1317 | int exited = 0; | ||
| 1313 | Lisp_Object i_status, i_buffer, i_tty, i_command; | 1318 | Lisp_Object i_status, i_buffer, i_tty, i_command; |
| 1314 | 1319 | ||
| 1315 | w_proc = 4; /* Proc */ | 1320 | w_proc = 4; /* Proc */ |
| @@ -1436,8 +1441,8 @@ list_processes_1 (query_only) | |||
| 1436 | } | 1441 | } |
| 1437 | } | 1442 | } |
| 1438 | 1443 | ||
| 1439 | if (EQ (symbol, Qsignal) || EQ (symbol, Qexit)) | 1444 | if (EQ (symbol, Qsignal) || EQ (symbol, Qexit) || EQ (symbol, Qclosed)) |
| 1440 | remove_process (proc); | 1445 | exited++; |
| 1441 | 1446 | ||
| 1442 | Findent_to (i_buffer, minspace); | 1447 | Findent_to (i_buffer, minspace); |
| 1443 | if (NILP (p->buffer)) | 1448 | if (NILP (p->buffer)) |
| @@ -1501,6 +1506,8 @@ list_processes_1 (query_only) | |||
| 1501 | insert_string ("\n"); | 1506 | insert_string ("\n"); |
| 1502 | } | 1507 | } |
| 1503 | } | 1508 | } |
| 1509 | if (exited) | ||
| 1510 | status_notify (NULL); | ||
| 1504 | return Qnil; | 1511 | return Qnil; |
| 1505 | } | 1512 | } |
| 1506 | 1513 | ||
| @@ -6564,6 +6571,9 @@ exec_sentinel (proc, reason) | |||
| 6564 | int outer_running_asynch_code = running_asynch_code; | 6571 | int outer_running_asynch_code = running_asynch_code; |
| 6565 | int waiting = waiting_for_user_input_p; | 6572 | int waiting = waiting_for_user_input_p; |
| 6566 | 6573 | ||
| 6574 | if (inhibit_sentinels) | ||
| 6575 | return; | ||
| 6576 | |||
| 6567 | /* No need to gcpro these, because all we do with them later | 6577 | /* No need to gcpro these, because all we do with them later |
| 6568 | is test them for EQness, and none of them should be a string. */ | 6578 | is test them for EQness, and none of them should be a string. */ |
| 6569 | odeactivate = Vdeactivate_mark; | 6579 | odeactivate = Vdeactivate_mark; |
| @@ -6885,6 +6895,8 @@ init_process () | |||
| 6885 | { | 6895 | { |
| 6886 | register int i; | 6896 | register int i; |
| 6887 | 6897 | ||
| 6898 | inhibit_sentinels = 0; | ||
| 6899 | |||
| 6888 | #ifdef SIGCHLD | 6900 | #ifdef SIGCHLD |
| 6889 | #ifndef CANNOT_DUMP | 6901 | #ifndef CANNOT_DUMP |
| 6890 | if (! noninteractive || initialized) | 6902 | if (! noninteractive || initialized) |