Differences From Artifact [a1d2dfcf9ddedace]:
- File
src/win32/wincon.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [418f11163a21e063]:
- File
src/win32/wincon.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
4 * Windows API header module * 4 * Windows API header module *
5 * * 5 * *
6 * Translated from MinGW Windows headers * 6 * Translated from MinGW Windows headers *
7 * * 7 * *
8 * Placed into public domain * 8 * Placed into public domain *
9 \***********************************************************************/ 9 \***********************************************************************/
10 module win32.wincon; 10 module win32.wincon;
11 pragma(lib, "kernel32.lib"); | 11 pragma(lib, "kernel32");
12 12
13 private import win32.w32api, win32.windef; 13 private import win32.w32api, win32.windef;
14 14
15 // FIXME: clean up Windows version support 15 // FIXME: clean up Windows version support
16 16
17 enum { 17 enum {
18 FOREGROUND_BLUE = 1, 18 FOREGROUND_BLUE = 1,
................................................................................................................................................................................
21 FOREGROUND_INTENSITY = 8, 21 FOREGROUND_INTENSITY = 8,
22 BACKGROUND_BLUE = 16, 22 BACKGROUND_BLUE = 16,
23 BACKGROUND_GREEN = 32, 23 BACKGROUND_GREEN = 32,
24 BACKGROUND_RED = 64, 24 BACKGROUND_RED = 64,
25 BACKGROUND_INTENSITY = 128 25 BACKGROUND_INTENSITY = 128
26 } 26 }
27 27
28 static if (_WIN32_WINNT >= 0x0501) { | 28 static if (_WIN32_WINNT >= 0x501) {
29 enum { 29 enum {
30 CONSOLE_FULLSCREEN_MODE = 1, 30 CONSOLE_FULLSCREEN_MODE = 1,
31 CONSOLE_WINDOWED_MODE = 0 31 CONSOLE_WINDOWED_MODE = 0
32 } 32 }
33 } 33 }
34 34
35 enum { 35 enum {
................................................................................................................................................................................
205 BOOL ReadConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD); 205 BOOL ReadConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
206 BOOL ReadConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD); 206 BOOL ReadConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
207 BOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD); 207 BOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD);
208 BOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, PDWORD); 208 BOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, PDWORD);
209 BOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, PDWORD); 209 BOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, PDWORD);
210 BOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT); 210 BOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
211 BOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT); 211 BOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
212 BOOL ScrollConsoleScreenBufferA(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), CO | 212 BOOL ScrollConsoleScreenBufferA(HANDLE, const(SMALL_RECT)*, const(SMALL_RECT)*,
213 BOOL ScrollConsoleScreenBufferW(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), CO | 213 BOOL ScrollConsoleScreenBufferW(HANDLE, const(SMALL_RECT)*, const(SMALL_RECT)*,
214 BOOL SetConsoleActiveScreenBuffer(HANDLE); 214 BOOL SetConsoleActiveScreenBuffer(HANDLE);
215 BOOL SetConsoleCP(UINT); 215 BOOL SetConsoleCP(UINT);
216 BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, BOOL); 216 BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, BOOL);
217 BOOL SetConsoleCursorInfo(HANDLE, CPtr!(CONSOLE_CURSOR_INFO)); | 217 BOOL SetConsoleCursorInfo(HANDLE, const(CONSOLE_CURSOR_INFO)*);
218 BOOL SetConsoleCursorPosition(HANDLE, COORD); 218 BOOL SetConsoleCursorPosition(HANDLE, COORD);
219 219
220 220
221 static if (_WIN32_WINNT >= 0x0500) { | 221 static if (_WIN32_WINNT >= 0x500) {
222 BOOL GetConsoleDisplayMode(LPDWORD); 222 BOOL GetConsoleDisplayMode(LPDWORD);
223 HWND GetConsoleWindow(); 223 HWND GetConsoleWindow();
224 } 224 }
225 225
226 static if (_WIN32_WINNT >= 0x0501) { | 226 static if (_WIN32_WINNT >= 0x501) {
227 BOOL AttachConsole(DWORD); 227 BOOL AttachConsole(DWORD);
228 BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD); 228 BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD);
229 const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1; 229 const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1;
230 } 230 }
231 231
232 BOOL SetConsoleMode(HANDLE, DWORD); 232 BOOL SetConsoleMode(HANDLE, DWORD);
233 BOOL SetConsoleOutputCP(UINT); 233 BOOL SetConsoleOutputCP(UINT);
234 BOOL SetConsoleScreenBufferSize(HANDLE, COORD); 234 BOOL SetConsoleScreenBufferSize(HANDLE, COORD);
235 BOOL SetConsoleTextAttribute(HANDLE, WORD); 235 BOOL SetConsoleTextAttribute(HANDLE, WORD);
236 BOOL SetConsoleTitleA(LPCSTR); 236 BOOL SetConsoleTitleA(LPCSTR);
237 BOOL SetConsoleTitleW(LPCWSTR); 237 BOOL SetConsoleTitleW(LPCWSTR);
238 BOOL SetConsoleWindowInfo(HANDLE, BOOL, CPtr!(SMALL_RECT)); | 238 BOOL SetConsoleWindowInfo(HANDLE, BOOL, const(SMALL_RECT)*);
239 BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID); 239 BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID);
240 BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID); 240 BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID);
241 BOOL WriteConsoleInputA(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); | 241 BOOL WriteConsoleInputA(HANDLE, const(INPUT_RECORD)*, DWORD, PDWORD);
242 BOOL WriteConsoleInputW(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); | 242 BOOL WriteConsoleInputW(HANDLE, const(INPUT_RECORD)*, DWORD, PDWORD);
243 BOOL WriteConsoleOutputA(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT); | 243 BOOL WriteConsoleOutputA(HANDLE, const(CHAR_INFO)*, COORD, COORD, PSMALL_RECT);
244 BOOL WriteConsoleOutputW(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT); | 244 BOOL WriteConsoleOutputW(HANDLE, const(CHAR_INFO)*, COORD, COORD, PSMALL_RECT);
245 BOOL WriteConsoleOutputAttribute(HANDLE, CPtr!(WORD), DWORD, COORD, PDWORD); | 245 BOOL WriteConsoleOutputAttribute(HANDLE, const(WORD)*, DWORD, COORD, PDWORD);
246 BOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, PDWORD); 246 BOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, PDWORD);
247 BOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, PDWORD); 247 BOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, PDWORD);
248 248
249 version (Unicode) { 249 version (Unicode) {
250 alias FillConsoleOutputCharacterW FillConsoleOutputCharacter; 250 alias FillConsoleOutputCharacterW FillConsoleOutputCharacter;
251 alias GetConsoleTitleW GetConsoleTitle; 251 alias GetConsoleTitleW GetConsoleTitle;
252 alias PeekConsoleInputW PeekConsoleInput; 252 alias PeekConsoleInputW PeekConsoleInput;