diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c index 41bf45734..2ea87a049 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -252,6 +252,7 @@ | |||
252 | #endif | 252 | #endif |
253 | #if ENABLE_PLATFORM_MINGW32 | 253 | #if ENABLE_PLATFORM_MINGW32 |
254 | # include <conio.h> | 254 | # include <conio.h> |
255 | # include "lazyload.h" | ||
255 | #endif | 256 | #endif |
256 | 257 | ||
257 | /* So far, all bash compat is controlled by one config option */ | 258 | /* So far, all bash compat is controlled by one config option */ |
@@ -2994,6 +2995,33 @@ setwinxp(int on) | |||
2994 | } | 2995 | } |
2995 | } | 2996 | } |
2996 | } | 2997 | } |
2998 | |||
2999 | # if ENABLE_ASH_NOCONSOLE | ||
3000 | /* | ||
3001 | * Console state is either: | ||
3002 | * 0 normal | ||
3003 | * 1 iconified | ||
3004 | * 2 unknown | ||
3005 | */ | ||
3006 | static int console_state(void) | ||
3007 | { | ||
3008 | DECLARE_PROC_ADDR(BOOL, ShowWindow, HWND, int); | ||
3009 | DECLARE_PROC_ADDR(BOOL, IsIconic, HWND); | ||
3010 | |||
3011 | if (INIT_PROC_ADDR(user32.dll, ShowWindow) && | ||
3012 | INIT_PROC_ADDR(user32.dll, IsIconic)) { | ||
3013 | return IsIconic(GetConsoleWindow()) != 0; | ||
3014 | } | ||
3015 | return 2; | ||
3016 | } | ||
3017 | |||
3018 | static void hide_console(int hide) | ||
3019 | { | ||
3020 | // Switch console state if it's known and isn't the required state | ||
3021 | if (console_state() == !hide) | ||
3022 | ShowWindow(GetConsoleWindow(), hide ? SW_MINIMIZE : SW_NORMAL); | ||
3023 | } | ||
3024 | # endif | ||
2997 | #endif | 3025 | #endif |
2998 | 3026 | ||
2999 | 3027 | ||
@@ -12616,6 +12644,9 @@ options(int *login_sh) | |||
12616 | #if ENABLE_PLATFORM_MINGW32 | 12644 | #if ENABLE_PLATFORM_MINGW32 |
12617 | dirarg = NULL; | 12645 | dirarg = NULL; |
12618 | title = NULL; | 12646 | title = NULL; |
12647 | # if ENABLE_ASH_NOCONSOLE | ||
12648 | noconsole = console_state(); | ||
12649 | # endif | ||
12619 | # if ENABLE_SUW32 | 12650 | # if ENABLE_SUW32 |
12620 | delayexit = 0; | 12651 | delayexit = 0; |
12621 | # endif | 12652 | # endif |