aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2015-09-08 09:06:49 -0400
committerStefan Monnier2015-09-08 09:06:49 -0400
commit645c8597e7f9fbc90ffe227d2be8ce383b0777ae (patch)
tree4843b695cbddee0a78c97ab1c8e5debe4ff06eb6
parent10e7f7de910ca816799062f33b830f7598801f0e (diff)
downloademacs-645c8597e7f9fbc90ffe227d2be8ce383b0777ae.tar.gz
emacs-645c8597e7f9fbc90ffe227d2be8ce383b0777ae.zip
* 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.
-rw-r--r--src/process.c4
-rw-r--r--src/process.h20
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,
6694 p->update_tick = p->tick; 6694 p->update_tick = p->tick;
6695 /* Now output the message suitably. */ 6695 /* Now output the message suitably. */
6696 exec_sentinel (proc, msg); 6696 exec_sentinel (proc, msg);
6697 if (BUFFERP (p->buffer))
6698 /* In case it uses %s in mode-line-format. */
6699 bset_update_mode_line (XBUFFER (p->buffer));
6697 } 6700 }
6698 } /* end for */ 6701 } /* end for */
6699 6702
6700 update_mode_lines = 24; /* In case buffers use %s in mode-line-format. */
6701 return got_some_output; 6703 return got_some_output;
6702} 6704}
6703 6705
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
43 /* Name of subprocess terminal. */ 43 /* Name of subprocess terminal. */
44 Lisp_Object tty_name; 44 Lisp_Object tty_name;
45 45
46 /* Name of this process */ 46 /* Name of this process. */
47 Lisp_Object name; 47 Lisp_Object name;
48 48
49 /* List of command arguments that this process was run with. 49 /* List of command arguments that this process was run with.
50 Is set to t for a stopped network process; nil otherwise. */ 50 Is set to t for a stopped network process; nil otherwise. */
51 Lisp_Object command; 51 Lisp_Object command;
52 52
53 /* (funcall FILTER PROC STRING) (if FILTER is non-nil) 53 /* (funcall FILTER PROC STRING) (if FILTER is non-nil)
54 to dispose of a bunch of chars from the process all at once */ 54 to dispose of a bunch of chars from the process all at once. */
55 Lisp_Object filter; 55 Lisp_Object filter;
56 56
57 /* (funcall SENTINEL PROCESS) when process state changes */ 57 /* (funcall SENTINEL PROCESS) when process state changes. */
58 Lisp_Object sentinel; 58 Lisp_Object sentinel;
59 59
60 /* (funcall LOG SERVER CLIENT MESSAGE) when a server process 60 /* (funcall LOG SERVER CLIENT MESSAGE) when a server process
61 accepts a connection from a client. */ 61 accepts a connection from a client. */
62 Lisp_Object log; 62 Lisp_Object log;
63 63
64 /* Buffer that output is going to */ 64 /* Buffer that output is going to. */
65 Lisp_Object buffer; 65 Lisp_Object buffer;
66 66
67 /* t if this is a real child process. For a network or serial 67 /* t if this is a real child process. For a network or serial
@@ -73,10 +73,10 @@ struct Lisp_Process
73 /* Plist for programs to keep per-process state information, parameters, etc. */ 73 /* Plist for programs to keep per-process state information, parameters, etc. */
74 Lisp_Object plist; 74 Lisp_Object plist;
75 75
76 /* Symbol indicating the type of process: real, network, serial */ 76 /* Symbol indicating the type of process: real, network, serial. */
77 Lisp_Object type; 77 Lisp_Object type;
78 78
79 /* Marker set to end of last buffer-inserted output from this process */ 79 /* Marker set to end of last buffer-inserted output from this process. */
80 Lisp_Object mark; 80 Lisp_Object mark;
81 81
82 /* Symbol indicating status of process. 82 /* Symbol indicating status of process.
@@ -98,7 +98,7 @@ struct Lisp_Process
98 /* Working buffer for encoding. */ 98 /* Working buffer for encoding. */
99 Lisp_Object encoding_buf; 99 Lisp_Object encoding_buf;
100 100
101 /* Queue for storing waiting writes */ 101 /* Queue for storing waiting writes. */
102 Lisp_Object write_queue; 102 Lisp_Object write_queue;
103 103
104#ifdef HAVE_GNUTLS 104#ifdef HAVE_GNUTLS
@@ -116,9 +116,9 @@ struct Lisp_Process
116 A value 0 is used for pseudo-processes such as network or serial 116 A value 0 is used for pseudo-processes such as network or serial
117 connections. */ 117 connections. */
118 pid_t pid; 118 pid_t pid;
119 /* Descriptor by which we read from this process */ 119 /* Descriptor by which we read from this process. */
120 int infd; 120 int infd;
121 /* Descriptor by which we write to this process */ 121 /* Descriptor by which we write to this process. */
122 int outfd; 122 int outfd;
123 /* Descriptors that were created for this process and that need 123 /* Descriptors that were created for this process and that need
124 closing. Unused entries are negative. */ 124 closing. Unused entries are negative. */