aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2009-08-17 21:04:05 +0000
committerChong Yidong2009-08-17 21:04:05 +0000
commite42bdf015920ea52431927ddcc3a61d204f5918e (patch)
treecad1f138473fd18e6bced9e5a6db53196f1db200 /src
parent56c195afd06a749f55cca3ec6a50212cd32dae2a (diff)
downloademacs-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/ChangeLog8
-rw-r--r--src/process.c22
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 @@
12009-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
12009-08-17 Ken Raeburn <raeburn@raeburn.org> 92009-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