|
188 | 188 | check for the empty buffer within the critical section; |
189 | 189 | palette improvements. |
190 | 190 |
|
191 | | - v1.82-wip, 12 February, 2018: |
192 | | - add ANSICON_WRAP environment variable for programs that expect the wrap. |
| 191 | + v1.82-wip, 12 & 13 February, 2018: |
| 192 | + add ANSICON_WRAP environment variable for programs that expect the wrap; |
| 193 | + flush and invalidate the cache on CloseHandle; |
| 194 | + make IsConsoleHandle a critical section, for multithreaded processes; |
| 195 | + use APIConsole for all console functions (needed for Windows 10). |
193 | 196 | */ |
194 | 197 |
|
195 | 198 | #include "ansicon.h" |
@@ -3648,6 +3651,7 @@ FLUSH5( ReadConsoleOutputCharacterW, LPWSTR, DWORD, COORD, LPDWORD ) |
3648 | 3651 | FLUSH5( ScrollConsoleScreenBufferA, SMALL_RECT*,SMALL_RECT*, COORD, CHAR_INFO* ) |
3649 | 3652 | FLUSH5( ScrollConsoleScreenBufferW, SMALL_RECT*,SMALL_RECT*, COORD, CHAR_INFO* ) |
3650 | 3653 | FLUSH2( SetConsoleCursorPosition, COORD ) |
| 3654 | +FLUSH2X( SetConsoleScreenBufferInfo, PCONSOLE_SCREEN_BUFFER_INFOX ) |
3651 | 3655 | FLUSH2( SetConsoleScreenBufferSize, COORD ) |
3652 | 3656 | FLUSH2( SetConsoleTextAttribute, WORD ) |
3653 | 3657 | FLUSH3( SetConsoleWindowInfo, BOOL, const SMALL_RECT* ) |
@@ -3761,34 +3765,35 @@ HookFn Hooks[] = { |
3761 | 3765 | HOOK( APILibraryLoader, FreeLibrary ), |
3762 | 3766 | HOOK( APIFile, CreateFileA ), |
3763 | 3767 | HOOK( APIFile, CreateFileW ), |
3764 | | - HOOK( APIKernel, CreateConsoleScreenBuffer ), |
| 3768 | + HOOK( APIConsole, CreateConsoleScreenBuffer ), |
3765 | 3769 | HOOK( APIHandle, CloseHandle ), |
3766 | | - HOOK( APIKernel, FillConsoleOutputAttribute ), |
3767 | | - HOOK( APIKernel, FillConsoleOutputCharacterA ), |
3768 | | - HOOK( APIKernel, FillConsoleOutputCharacterW ), |
3769 | | - HOOK( APIKernel, GetConsoleScreenBufferInfo ), |
3770 | | - HOOK( APIKernel, GetConsoleScreenBufferInfoEx ), |
| 3770 | + HOOK( APIConsole, FillConsoleOutputAttribute ), |
| 3771 | + HOOK( APIConsole, FillConsoleOutputCharacterA ), |
| 3772 | + HOOK( APIConsole, FillConsoleOutputCharacterW ), |
| 3773 | + HOOK( APIConsole, GetConsoleScreenBufferInfo ), |
| 3774 | + HOOK( APIConsole, GetConsoleScreenBufferInfoEx ), |
3771 | 3775 | HOOK( APIFile, ReadFile ), |
3772 | 3776 | HOOK( APIConsole, ReadConsoleA ), |
3773 | 3777 | HOOK( APIConsole, ReadConsoleW ), |
3774 | 3778 | HOOK( APIConsole, ReadConsoleInputA ), |
3775 | 3779 | HOOK( APIConsole, ReadConsoleInputW ), |
3776 | | - HOOK( APIKernel, ReadConsoleOutputA ), |
3777 | | - HOOK( APIKernel, ReadConsoleOutputW ), |
3778 | | - HOOK( APIKernel, ReadConsoleOutputAttribute ), |
3779 | | - HOOK( APIKernel, ReadConsoleOutputCharacterA ), |
3780 | | - HOOK( APIKernel, ReadConsoleOutputCharacterW ), |
3781 | | - HOOK( APIKernel, ScrollConsoleScreenBufferA ), |
3782 | | - HOOK( APIKernel, ScrollConsoleScreenBufferW ), |
3783 | | - HOOK( APIKernel, SetConsoleCursorPosition ), |
3784 | | - HOOK( APIKernel, SetConsoleScreenBufferSize ), |
3785 | | - HOOK( APIKernel, SetConsoleTextAttribute ), |
3786 | | - HOOK( APIKernel, SetConsoleWindowInfo ), |
3787 | | - HOOK( APIKernel, WriteConsoleOutputA ), |
3788 | | - HOOK( APIKernel, WriteConsoleOutputW ), |
3789 | | - HOOK( APIKernel, WriteConsoleOutputAttribute ), |
3790 | | - HOOK( APIKernel, WriteConsoleOutputCharacterA ), |
3791 | | - HOOK( APIKernel, WriteConsoleOutputCharacterW ), |
| 3780 | + HOOK( APIConsole, ReadConsoleOutputA ), |
| 3781 | + HOOK( APIConsole, ReadConsoleOutputW ), |
| 3782 | + HOOK( APIConsole, ReadConsoleOutputAttribute ), |
| 3783 | + HOOK( APIConsole, ReadConsoleOutputCharacterA ), |
| 3784 | + HOOK( APIConsole, ReadConsoleOutputCharacterW ), |
| 3785 | + HOOK( APIConsole, ScrollConsoleScreenBufferA ), |
| 3786 | + HOOK( APIConsole, ScrollConsoleScreenBufferW ), |
| 3787 | + HOOK( APIConsole, SetConsoleCursorPosition ), |
| 3788 | + HOOK( APIConsole, SetConsoleScreenBufferInfoEx ), |
| 3789 | + HOOK( APIConsole, SetConsoleScreenBufferSize ), |
| 3790 | + HOOK( APIConsole, SetConsoleTextAttribute ), |
| 3791 | + HOOK( APIConsole, SetConsoleWindowInfo ), |
| 3792 | + HOOK( APIConsole, WriteConsoleOutputA ), |
| 3793 | + HOOK( APIConsole, WriteConsoleOutputW ), |
| 3794 | + HOOK( APIConsole, WriteConsoleOutputAttribute ), |
| 3795 | + HOOK( APIConsole, WriteConsoleOutputCharacterA ), |
| 3796 | + HOOK( APIConsole, WriteConsoleOutputCharacterW ), |
3792 | 3797 | { NULL, NULL, NULL, NULL, NULL, NULL } |
3793 | 3798 | }; |
3794 | 3799 |
|
|
0 commit comments