diff options
Diffstat (limited to 'src/process.c')
| -rw-r--r-- | src/process.c | 15 |
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)); |