]> git.eshelyaron.com Git - emacs.git/commitdiff
* process.c (status_notify): Don't perform redisplay.
authorChong Yidong <cyd@stupidchicken.com>
Mon, 17 Aug 2009 21:04:05 +0000 (21:04 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 17 Aug 2009 21:04:05 +0000 (21:04 +0000)
(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).

src/ChangeLog
src/process.c

index 9358387d1165570d35f59929df9a63d827bbe3e3..c969ba113cb3b39a81f834aa8fe095d0d152f24f 100644 (file)
@@ -1,3 +1,11 @@
+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>
 
        * lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the
index 56a8d189f9971f7da77c6993fda0500c61109c56..86cc5b0c4b473d61b0fc67989f41899c67625215 100644 (file)
@@ -786,6 +786,7 @@ nil, indicating the current buffer's process.  */)
       p->status = Fcons (Qexit, Fcons (make_number (0), Qnil));
       p->tick = ++process_tick;
       status_notify (p);
+      redisplay_preserve_echo_area (13);
     }
   else if (p->infd >= 0)
     {
@@ -817,6 +818,7 @@ nil, indicating the current buffer's process.  */)
            = Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil));
          p->tick = ++process_tick;
          status_notify (p);
+         redisplay_preserve_echo_area (13);
        }
     }
   remove_process (process);
@@ -1543,7 +1545,10 @@ list_processes_1 (query_only)
        }
     }
   if (exited)
-    status_notify (NULL);
+    {
+      status_notify (NULL);
+      redisplay_preserve_echo_area (13);
+    }
   return Qnil;
 }
 
@@ -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
         available, notify the user of the change right away.  After
         this explicit check, we'll let the SIGCHLD handler zap
-        timeout to get our attention.  When Emacs is run
-        interactively, only do this with a nonzero DO_DISPLAY
-        argument, because status_notify triggers redisplay.  */
-      if (update_tick != process_tick
-         && (do_display || noninteractive))
+        timeout to get our attention.  */
+      if (update_tick != process_tick)
        {
          SELECT_TYPE Atemp;
 #ifdef NON_BLOCKING_CONNECT
@@ -4786,6 +4788,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
                 the loop, since timeout has already been zeroed out.  */
              clear_waiting_for_input ();
              status_notify (NULL);
+             if (do_display) redisplay_preserve_echo_area (13);
            }
        }
 
@@ -6201,7 +6204,10 @@ process_send_signal (process, signo, current_group, nomsg)
       p->status = Qrun;
       p->tick = ++process_tick;
       if (!nomsg)
-       status_notify (NULL);
+       {
+         status_notify (NULL);
+         redisplay_preserve_echo_area (13);
+       }
       break;
 #endif /* ! defined (SIGCONT) */
     case SIGINT:
@@ -7015,8 +7021,6 @@ status_notify (deleting_process)
     } /* end for */
 
   update_mode_lines++;  /* in case buffers use %s in mode-line-format */
-  redisplay_preserve_echo_area (13);
-
   UNGCPRO;
 }