diff options
author | Ron Yorston <rmy@pobox.com> | 2020-01-07 09:49:32 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2020-01-07 09:49:32 +0000 |
commit | d15f2823f3431165f45f2ed6eadcf62a931cdcf5 (patch) | |
tree | aff1da9de27a2b9abb1d58bcb181f7160daf797a | |
parent | fe5a564b429e8472c68f931cc9b53815b889bb1f (diff) | |
download | busybox-w32-d15f2823f3431165f45f2ed6eadcf62a931cdcf5.tar.gz busybox-w32-d15f2823f3431165f45f2ed6eadcf62a931cdcf5.tar.bz2 busybox-w32-d15f2823f3431165f45f2ed6eadcf62a931cdcf5.zip |
winansi: restore correct attributes after ls
As reported in GitHub issue #178 the last colour set by the ls command
is retained in the console.
This is due to the previous commit reinitialising the stored attributes
more frequently than it should. Attriubutes should only be initialised
once.
-rw-r--r-- | win32/winansi.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/win32/winansi.c b/win32/winansi.c index f45970747..0d8cf662a 100644 --- a/win32/winansi.c +++ b/win32/winansi.c | |||
@@ -32,9 +32,15 @@ static HANDLE get_console(void) | |||
32 | 32 | ||
33 | static void init(void) | 33 | static void init(void) |
34 | { | 34 | { |
35 | HANDLE console = get_console(); | 35 | static int initialised = FALSE; |
36 | HANDLE console; | ||
36 | CONSOLE_SCREEN_BUFFER_INFO sbi; | 37 | CONSOLE_SCREEN_BUFFER_INFO sbi; |
37 | 38 | ||
39 | if (initialised) | ||
40 | return; | ||
41 | initialised = TRUE; | ||
42 | |||
43 | console = get_console(); | ||
38 | if (GetConsoleScreenBufferInfo(console, &sbi)) { | 44 | if (GetConsoleScreenBufferInfo(console, &sbi)) { |
39 | attr = plain_attr = sbi.wAttributes; | 45 | attr = plain_attr = sbi.wAttributes; |
40 | negative = 0; | 46 | negative = 0; |