aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/process.c b/src/process.c
index abadabe77ea..066edbc83d6 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1279,10 +1279,19 @@ The string argument is normally a multibyte string, except:
1279 if (NILP (filter)) 1279 if (NILP (filter))
1280 filter = Qinternal_default_process_filter; 1280 filter = Qinternal_default_process_filter;
1281 1281
1282 pset_filter (p, filter);
1283
1284 if (p->infd >= 0) 1282 if (p->infd >= 0)
1285 set_process_filter_masks (p); 1283 {
1284 /* If filter WILL be t, stop reading output. */
1285 if (EQ (filter, Qt) && !EQ (p->status, Qlisten))
1286 delete_read_fd (p->infd);
1287 else if (/* If filter WAS t, then resume reading output. */
1288 EQ (p->filter, Qt)
1289 /* Network or serial process not stopped: */
1290 && !EQ (p->command, Qt))
1291 add_process_read_fd (p->infd);
1292 }
1293
1294 pset_filter (p, filter);
1286 1295
1287 if (NETCONN1_P (p) || SERIALCONN1_P (p) || PIPECONN1_P (p)) 1296 if (NETCONN1_P (p) || SERIALCONN1_P (p) || PIPECONN1_P (p))
1288 pset_childp (p, Fplist_put (p->childp, QCfilter, filter)); 1297 pset_childp (p, Fplist_put (p->childp, QCfilter, filter));