diff options
Diffstat (limited to 'shell')
| -rw-r--r-- | shell/ash.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c index 441da4d85..b06ed18f4 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
| @@ -10268,7 +10268,15 @@ evalcommand(union node *cmd, int flags) | |||
| 10268 | */ | 10268 | */ |
| 10269 | /* find_command() encodes applet_no as (-2 - applet_no) */ | 10269 | /* find_command() encodes applet_no as (-2 - applet_no) */ |
| 10270 | int applet_no = (- cmdentry.u.index - 2); | 10270 | int applet_no = (- cmdentry.u.index - 2); |
| 10271 | if (applet_no >= 0 && APPLET_IS_NOFORK(applet_no)) { | 10271 | if (applet_no >= 0 && APPLET_IS_NOFORK(applet_no) |
| 10272 | #if ENABLE_PLATFORM_MINGW32 | ||
| 10273 | /* | ||
| 10274 | * Fork long-running nofork applets (e.g. yes) in interactive | ||
| 10275 | * sessions. Otherwise ctrl-c won't let the user kill them. | ||
| 10276 | */ | ||
| 10277 | && !(iflag && long_running_applet(applet_no)) | ||
| 10278 | #endif | ||
| 10279 | ) { | ||
| 10272 | listsetvar(varlist.list, VEXPORT|VSTACK); | 10280 | listsetvar(varlist.list, VEXPORT|VSTACK); |
| 10273 | /* run <applet>_main() */ | 10281 | /* run <applet>_main() */ |
| 10274 | status = run_nofork_applet(applet_no, argv); | 10282 | status = run_nofork_applet(applet_no, argv); |
