From 645c8597e7f9fbc90ffe227d2be8ce383b0777ae Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 8 Sep 2015 09:06:49 -0400 Subject: [PATCH] * 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. --- src/process.c | 4 +++- src/process.h | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) 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. */ -- 2.39.2