aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/mingw32_defconfig1
-rw-r--r--configs/mingw64_defconfig1
-rw-r--r--shell/ash.c24
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
1036CONFIG_ASH_BUILTIN_TEST=y 1036CONFIG_ASH_BUILTIN_TEST=y
1037CONFIG_ASH_HELP=y 1037CONFIG_ASH_HELP=y
1038CONFIG_ASH_CMDCMD=y 1038CONFIG_ASH_CMDCMD=y
1039CONFIG_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
1036CONFIG_ASH_BUILTIN_TEST=y 1036CONFIG_ASH_BUILTIN_TEST=y
1037CONFIG_ASH_HELP=y 1037CONFIG_ASH_HELP=y
1038CONFIG_ASH_CMDCMD=y 1038CONFIG_ASH_CMDCMD=y
1039CONFIG_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