]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/process.c (status_notify): Avoid global redisplay (bug#11822)
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 8 Sep 2015 13:06:49 +0000 (09:06 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 8 Sep 2015 13:06:49 +0000 (09:06 -0400)
* src/process.c (status_notify): Only set the update_mode_line on the
relevant buffers rather than setting it globally.

src/process.c
src/process.h

index f4613be28edf8c6edcad5b88007433933145d186..26f26c302405e9a7118811e9b22fc40076e50745 100644 (file)
@@ -6694,10 +6694,12 @@ status_notify (struct Lisp_Process *deleting_process,
          p->update_tick = p->tick;
          /* Now output the message suitably.  */
          exec_sentinel (proc, msg);
+         if (BUFFERP (p->buffer))
+           /* In case it uses %s in mode-line-format.  */
+           bset_update_mode_line (XBUFFER (p->buffer));
        }
     } /* end for */
 
-  update_mode_lines = 24;  /* In case buffers use %s in mode-line-format.  */
   return got_some_output;
 }
 
index e889055dc2388977c16e1379147f69d7c4ba7d50..24bad45a24ba8e2c9a43ced9e0c630154d67bea3 100644 (file)
@@ -43,25 +43,25 @@ struct Lisp_Process
     /* Name of subprocess terminal.  */
     Lisp_Object tty_name;
 
-    /* Name of this process */
+    /* Name of this process */
     Lisp_Object name;
 
     /* List of command arguments that this process was run with.
-       Is set to t for a stopped network process; nil otherwise. */
+       Is set to t for a stopped network process; nil otherwise.  */
     Lisp_Object command;
 
     /* (funcall FILTER PROC STRING)  (if FILTER is non-nil)
-       to dispose of a bunch of chars from the process all at once */
+       to dispose of a bunch of chars from the process all at once */
     Lisp_Object filter;
 
-    /* (funcall SENTINEL PROCESS) when process state changes */
+    /* (funcall SENTINEL PROCESS) when process state changes */
     Lisp_Object sentinel;
 
     /* (funcall LOG SERVER CLIENT MESSAGE) when a server process
        accepts a connection from a client.  */
     Lisp_Object log;
 
-    /* Buffer that output is going to */
+    /* Buffer that output is going to */
     Lisp_Object buffer;
 
     /* t if this is a real child process.  For a network or serial
@@ -73,10 +73,10 @@ struct Lisp_Process
     /* Plist for programs to keep per-process state information, parameters, etc.  */
     Lisp_Object plist;
 
-    /* Symbol indicating the type of process: real, network, serial  */
+    /* Symbol indicating the type of process: real, network, serial.  */
     Lisp_Object type;
 
-    /* Marker set to end of last buffer-inserted output from this process */
+    /* Marker set to end of last buffer-inserted output from this process */
     Lisp_Object mark;
 
     /* Symbol indicating status of process.
@@ -98,7 +98,7 @@ struct Lisp_Process
     /* Working buffer for encoding.  */
     Lisp_Object encoding_buf;
 
-    /* Queue for storing waiting writes */
+    /* Queue for storing waiting writes */
     Lisp_Object write_queue;
 
 #ifdef HAVE_GNUTLS
@@ -116,9 +116,9 @@ struct Lisp_Process
        A value 0 is used for pseudo-processes such as network or serial
        connections.  */
     pid_t pid;
-    /* Descriptor by which we read from this process */
+    /* Descriptor by which we read from this process */
     int infd;
-    /* Descriptor by which we write to this process */
+    /* Descriptor by which we write to this process */
     int outfd;
     /* Descriptors that were created for this process and that need
        closing.  Unused entries are negative.  */