Commit e42bdf01 authored by Chong Yidong's avatar Chong Yidong

* 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).
parent 56c195af
2009-08-17 Chong Yidong <cyd@stupidchicken.com>
* 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).
2009-08-17 Ken Raeburn <raeburn@raeburn.org> 2009-08-17 Ken Raeburn <raeburn@raeburn.org>
* lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the * lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the
......
...@@ -786,6 +786,7 @@ nil, indicating the current buffer's process. */) ...@@ -786,6 +786,7 @@ nil, indicating the current buffer's process. */)
p->status = Fcons (Qexit, Fcons (make_number (0), Qnil)); p->status = Fcons (Qexit, Fcons (make_number (0), Qnil));
p->tick = ++process_tick; p->tick = ++process_tick;
status_notify (p); status_notify (p);
redisplay_preserve_echo_area (13);
} }
else if (p->infd >= 0) else if (p->infd >= 0)
{ {
...@@ -817,6 +818,7 @@ nil, indicating the current buffer's process. */) ...@@ -817,6 +818,7 @@ nil, indicating the current buffer's process. */)
= Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil)); = Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil));
p->tick = ++process_tick; p->tick = ++process_tick;
status_notify (p); status_notify (p);
redisplay_preserve_echo_area (13);
} }
} }
remove_process (process); remove_process (process);
...@@ -1543,7 +1545,10 @@ list_processes_1 (query_only) ...@@ -1543,7 +1545,10 @@ list_processes_1 (query_only)
} }
} }
if (exited) if (exited)
status_notify (NULL); {
status_notify (NULL);
redisplay_preserve_echo_area (13);
}
return Qnil; return Qnil;
} }
...@@ -4756,11 +4761,8 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display, ...@@ -4756,11 +4761,8 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
/* If status of something has changed, and no input is /* If status of something has changed, and no input is
available, notify the user of the change right away. After available, notify the user of the change right away. After
this explicit check, we'll let the SIGCHLD handler zap this explicit check, we'll let the SIGCHLD handler zap
timeout to get our attention. When Emacs is run timeout to get our attention. */
interactively, only do this with a nonzero DO_DISPLAY if (update_tick != process_tick)
argument, because status_notify triggers redisplay. */
if (update_tick != process_tick
&& (do_display || noninteractive))
{ {
SELECT_TYPE Atemp; SELECT_TYPE Atemp;
#ifdef NON_BLOCKING_CONNECT #ifdef NON_BLOCKING_CONNECT
...@@ -4786,6 +4788,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display, ...@@ -4786,6 +4788,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
the loop, since timeout has already been zeroed out. */ the loop, since timeout has already been zeroed out. */
clear_waiting_for_input (); clear_waiting_for_input ();
status_notify (NULL); status_notify (NULL);
if (do_display) redisplay_preserve_echo_area (13);
} }
} }
...@@ -6201,7 +6204,10 @@ process_send_signal (process, signo, current_group, nomsg) ...@@ -6201,7 +6204,10 @@ process_send_signal (process, signo, current_group, nomsg)
p->status = Qrun; p->status = Qrun;
p->tick = ++process_tick; p->tick = ++process_tick;
if (!nomsg) if (!nomsg)
status_notify (NULL); {
status_notify (NULL);
redisplay_preserve_echo_area (13);
}
break; break;
#endif /* ! defined (SIGCONT) */ #endif /* ! defined (SIGCONT) */
case SIGINT: case SIGINT:
...@@ -7015,8 +7021,6 @@ status_notify (deleting_process) ...@@ -7015,8 +7021,6 @@ status_notify (deleting_process)
} /* end for */ } /* end for */
update_mode_lines++; /* in case buffers use %s in mode-line-format */ update_mode_lines++; /* in case buffers use %s in mode-line-format */
redisplay_preserve_echo_area (13);
UNGCPRO; UNGCPRO;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment