diff options
-rw-r--r-- | configs/mingw32_defconfig | 1 | ||||
-rw-r--r-- | configs/mingw64_defconfig | 1 | ||||
-rw-r--r-- | shell/ash.c | 24 |
3 files changed, 22 insertions, 4 deletions
diff --git a/configs/mingw32_defconfig b/configs/mingw32_defconfig index 2d0e24891..6857cf22d 100644 --- a/configs/mingw32_defconfig +++ b/configs/mingw32_defconfig | |||
@@ -1036,6 +1036,7 @@ CONFIG_ASH_BUILTIN_PRINTF=y | |||
1036 | CONFIG_ASH_BUILTIN_TEST=y | 1036 | CONFIG_ASH_BUILTIN_TEST=y |
1037 | CONFIG_ASH_HELP=y | 1037 | CONFIG_ASH_HELP=y |
1038 | CONFIG_ASH_CMDCMD=y | 1038 | CONFIG_ASH_CMDCMD=y |
1039 | CONFIG_ASH_NOCONSOLE=y | ||
1039 | # CONFIG_ASH_MAIL is not set | 1040 | # CONFIG_ASH_MAIL is not set |
1040 | # CONFIG_CTTYHACK is not set | 1041 | # CONFIG_CTTYHACK is not set |
1041 | # CONFIG_HUSH is not set | 1042 | # CONFIG_HUSH is not set |
diff --git a/configs/mingw64_defconfig b/configs/mingw64_defconfig index 7ee4e58f9..4818556a9 100644 --- a/configs/mingw64_defconfig +++ b/configs/mingw64_defconfig | |||
@@ -1036,6 +1036,7 @@ CONFIG_ASH_BUILTIN_PRINTF=y | |||
1036 | CONFIG_ASH_BUILTIN_TEST=y | 1036 | CONFIG_ASH_BUILTIN_TEST=y |
1037 | CONFIG_ASH_HELP=y | 1037 | CONFIG_ASH_HELP=y |
1038 | CONFIG_ASH_CMDCMD=y | 1038 | CONFIG_ASH_CMDCMD=y |
1039 | CONFIG_ASH_NOCONSOLE=y | ||
1039 | # CONFIG_ASH_MAIL is not set | 1040 | # CONFIG_ASH_MAIL is not set |
1040 | # CONFIG_CTTYHACK is not set | 1041 | # CONFIG_CTTYHACK is not set |
1041 | # CONFIG_HUSH is not set | 1042 | # CONFIG_HUSH is not set |
diff --git a/shell/ash.c b/shell/ash.c index fe185f5d9..e21c4433d 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -161,6 +161,18 @@ | |||
161 | //config: help | 161 | //config: help |
162 | //config: Enable "check for new mail" function in the ash shell. | 162 | //config: Enable "check for new mail" function in the ash shell. |
163 | //config: | 163 | //config: |
164 | //config: | ||
165 | //config:config ASH_NOCONSOLE | ||
166 | //config: bool "'noconsole' option" | ||
167 | //config: default y | ||
168 | //config: depends on (ASH || SH_IS_ASH || BASH_IS_ASH) && PLATFORM_MINGW32 | ||
169 | //config: help | ||
170 | //config: Enable support for the 'noconsole' option, which attempts to | ||
171 | //config: hide the console normally associated with a command line | ||
172 | //config: application. This may be useful when running a shell script | ||
173 | //config: from a GUI application. Disable this if your platform doesn't | ||
174 | //config: support the required APIs. | ||
175 | //config: | ||
164 | //config:endif # ash options | 176 | //config:endif # ash options |
165 | 177 | ||
166 | //applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP)) | 178 | //applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP)) |
@@ -334,9 +346,11 @@ static const char *const optletters_optnames[] = { | |||
334 | ,"\0" "debug" | 346 | ,"\0" "debug" |
335 | #endif | 347 | #endif |
336 | #if ENABLE_PLATFORM_MINGW32 | 348 | #if ENABLE_PLATFORM_MINGW32 |
337 | ,"\0" "noconsole" | ||
338 | ,"X" "winxp" | 349 | ,"X" "winxp" |
339 | #endif | 350 | #endif |
351 | #if ENABLE_ASH_NOCONSOLE | ||
352 | ,"\0" "noconsole" | ||
353 | #endif | ||
340 | }; | 354 | }; |
341 | 355 | ||
342 | #define optletters(n) optletters_optnames[n][0] | 356 | #define optletters(n) optletters_optnames[n][0] |
@@ -417,8 +431,10 @@ struct globals_misc { | |||
417 | # define debug optlist[15 + ENABLE_ASH_BASH_COMPAT] | 431 | # define debug optlist[15 + ENABLE_ASH_BASH_COMPAT] |
418 | #endif | 432 | #endif |
419 | #if ENABLE_PLATFORM_MINGW32 | 433 | #if ENABLE_PLATFORM_MINGW32 |
420 | # define noconsole optlist[14 + ENABLE_ASH_BASH_COMPAT + 2*DEBUG] | 434 | # define winxp optlist[14 + ENABLE_ASH_BASH_COMPAT + 2*DEBUG] |
421 | # define winxp optlist[15 + ENABLE_ASH_BASH_COMPAT + 2*DEBUG] | 435 | #endif |
436 | #if ENABLE_ASH_NOCONSOLE | ||
437 | # define noconsole optlist[15 + ENABLE_ASH_BASH_COMPAT + 2*DEBUG] | ||
422 | #endif | 438 | #endif |
423 | 439 | ||
424 | /* trap handler commands */ | 440 | /* trap handler commands */ |
@@ -14097,7 +14113,7 @@ int ash_main(int argc UNUSED_PARAM, char **argv) | |||
14097 | trace_puts_args(argv); | 14113 | trace_puts_args(argv); |
14098 | #endif | 14114 | #endif |
14099 | 14115 | ||
14100 | #if ENABLE_PLATFORM_MINGW32 | 14116 | #if ENABLE_ASH_NOCONSOLE |
14101 | if ( noconsole ) { | 14117 | if ( noconsole ) { |
14102 | DWORD dummy; | 14118 | DWORD dummy; |
14103 | 14119 | ||