From: Stefan Monnier Date: Tue, 8 Sep 2015 13:06:49 +0000 (-0400) Subject: * src/process.c (status_notify): Avoid global redisplay (bug#11822) X-Git-Tag: emacs-25.0.90~1224^2~194 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=645c8597e7f9fbc90ffe227d2be8ce383b0777ae;p=emacs.git * src/process.c (status_notify): Avoid global redisplay (bug#11822) * src/process.c (status_notify): Only set the update_mode_line on the relevant buffers rather than setting it globally. --- diff --git a/src/process.c b/src/process.c index f4613be28ed..26f26c30240 100644 --- a/src/process.c +++ b/src/process.c @@ -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; } diff --git a/src/process.h b/src/process.h index e889055dc23..24bad45a24b 100644 --- a/src/process.h +++ b/src/process.h @@ -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. */