diff options
| author | Chong Yidong | 2009-08-17 21:04:05 +0000 |
|---|---|---|
| committer | Chong Yidong | 2009-08-17 21:04:05 +0000 |
| commit | e42bdf015920ea52431927ddcc3a61d204f5918e (patch) | |
| tree | cad1f138473fd18e6bced9e5a6db53196f1db200 /src | |
| parent | 56c195afd06a749f55cca3ec6a50212cd32dae2a (diff) | |
| download | emacs-e42bdf015920ea52431927ddcc3a61d204f5918e.tar.gz emacs-e42bdf015920ea52431927ddcc3a61d204f5918e.zip | |
* process.c (status_notify): Don't perform redisplay.
(Fdelete_process, list_processes_1, process_send_signal):
Expliticly perform redisplay.
(wait_reading_process_output): Always check process status, but
don't perform redisplay unless DO_DISPLAY is non-zero (Bug#2930).
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/process.c | 22 |
2 files changed, 21 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9358387d116..c969ba113cb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2009-08-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * process.c (status_notify): Don't perform redisplay. | ||
| 4 | (Fdelete_process, list_processes_1, process_send_signal): | ||
| 5 | Expliticly perform redisplay. | ||
| 6 | (wait_reading_process_output): Always check process status, but | ||
| 7 | don't perform redisplay unless DO_DISPLAY is non-zero (Bug#2930). | ||
| 8 | |||
| 1 | 2009-08-17 Ken Raeburn <raeburn@raeburn.org> | 9 | 2009-08-17 Ken Raeburn <raeburn@raeburn.org> |
| 2 | 10 | ||
| 3 | * lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the | 11 | * lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the |
diff --git a/src/process.c b/src/process.c index 56a8d189f99..86cc5b0c4b4 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -786,6 +786,7 @@ nil, indicating the current buffer's process. */) | |||
| 786 | p->status = Fcons (Qexit, Fcons (make_number (0), Qnil)); | 786 | p->status = Fcons (Qexit, Fcons (make_number (0), Qnil)); |
| 787 | p->tick = ++process_tick; | 787 | p->tick = ++process_tick; |
| 788 | status_notify (p); | 788 | status_notify (p); |
| 789 | redisplay_preserve_echo_area (13); | ||
| 789 | } | 790 | } |
| 790 | else if (p->infd >= 0) | 791 | else if (p->infd >= 0) |
| 791 | { | 792 | { |
| @@ -817,6 +818,7 @@ nil, indicating the current buffer's process. */) | |||
| 817 | = Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil)); | 818 | = Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil)); |
| 818 | p->tick = ++process_tick; | 819 | p->tick = ++process_tick; |
| 819 | status_notify (p); | 820 | status_notify (p); |
| 821 | redisplay_preserve_echo_area (13); | ||
| 820 | } | 822 | } |
| 821 | } | 823 | } |
| 822 | remove_process (process); | 824 | remove_process (process); |
| @@ -1543,7 +1545,10 @@ list_processes_1 (query_only) | |||
| 1543 | } | 1545 | } |
| 1544 | } | 1546 | } |
| 1545 | if (exited) | 1547 | if (exited) |
| 1546 | status_notify (NULL); | 1548 | { |
| 1549 | status_notify (NULL); | ||
| 1550 | redisplay_preserve_echo_area (13); | ||
| 1551 | } | ||
| 1547 | return Qnil; | 1552 | return Qnil; |
| 1548 | } | 1553 | } |
| 1549 | 1554 | ||
| @@ -4756,11 +4761,8 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display, | |||
| 4756 | /* If status of something has changed, and no input is | 4761 | /* If status of something has changed, and no input is |
| 4757 | available, notify the user of the change right away. After | 4762 | available, notify the user of the change right away. After |
| 4758 | this explicit check, we'll let the SIGCHLD handler zap | 4763 | this explicit check, we'll let the SIGCHLD handler zap |
| 4759 | timeout to get our attention. When Emacs is run | 4764 | timeout to get our attention. */ |
| 4760 | interactively, only do this with a nonzero DO_DISPLAY | 4765 | if (update_tick != process_tick) |
| 4761 | argument, because status_notify triggers redisplay. */ | ||
| 4762 | if (update_tick != process_tick | ||
| 4763 | && (do_display || noninteractive)) | ||
| 4764 | { | 4766 | { |
| 4765 | SELECT_TYPE Atemp; | 4767 | SELECT_TYPE Atemp; |
| 4766 | #ifdef NON_BLOCKING_CONNECT | 4768 | #ifdef NON_BLOCKING_CONNECT |
| @@ -4786,6 +4788,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display, | |||
| 4786 | the loop, since timeout has already been zeroed out. */ | 4788 | the loop, since timeout has already been zeroed out. */ |
| 4787 | clear_waiting_for_input (); | 4789 | clear_waiting_for_input (); |
| 4788 | status_notify (NULL); | 4790 | status_notify (NULL); |
| 4791 | if (do_display) redisplay_preserve_echo_area (13); | ||
| 4789 | } | 4792 | } |
| 4790 | } | 4793 | } |
| 4791 | 4794 | ||
| @@ -6201,7 +6204,10 @@ process_send_signal (process, signo, current_group, nomsg) | |||
| 6201 | p->status = Qrun; | 6204 | p->status = Qrun; |
| 6202 | p->tick = ++process_tick; | 6205 | p->tick = ++process_tick; |
| 6203 | if (!nomsg) | 6206 | if (!nomsg) |
| 6204 | status_notify (NULL); | 6207 | { |
| 6208 | status_notify (NULL); | ||
| 6209 | redisplay_preserve_echo_area (13); | ||
| 6210 | } | ||
| 6205 | break; | 6211 | break; |
| 6206 | #endif /* ! defined (SIGCONT) */ | 6212 | #endif /* ! defined (SIGCONT) */ |
| 6207 | case SIGINT: | 6213 | case SIGINT: |
| @@ -7015,8 +7021,6 @@ status_notify (deleting_process) | |||
| 7015 | } /* end for */ | 7021 | } /* end for */ |
| 7016 | 7022 | ||
| 7017 | update_mode_lines++; /* in case buffers use %s in mode-line-format */ | 7023 | update_mode_lines++; /* in case buffers use %s in mode-line-format */ |
| 7018 | redisplay_preserve_echo_area (13); | ||
| 7019 | |||
| 7020 | UNGCPRO; | 7024 | UNGCPRO; |
| 7021 | } | 7025 | } |
| 7022 | 7026 | ||