node-pty 1.2.0-beta.6 → 1.2.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +3 -5
  2. package/binding.gyp +20 -38
  3. package/lib/windowsPtyAgent.js +32 -95
  4. package/lib/windowsTerminal.js +1 -1
  5. package/package.json +6 -5
  6. package/prebuilds/darwin-arm64/pty.node +0 -0
  7. package/prebuilds/darwin-arm64/spawn-helper +0 -0
  8. package/prebuilds/darwin-x64/pty.node +0 -0
  9. package/prebuilds/darwin-x64/spawn-helper +0 -0
  10. package/prebuilds/win32-arm64/conpty.node +0 -0
  11. package/prebuilds/win32-arm64/conpty.pdb +0 -0
  12. package/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  13. package/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  14. package/prebuilds/win32-x64/conpty.node +0 -0
  15. package/prebuilds/win32-x64/conpty.pdb +0 -0
  16. package/prebuilds/win32-x64/conpty_console_list.node +0 -0
  17. package/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  18. package/scripts/post-install.js +1 -5
  19. package/src/win/conpty.cc +1 -2
  20. package/typings/node-pty.d.ts +9 -8
  21. package/deps/.editorconfig +0 -2
  22. package/deps/winpty/.drone.yml +0 -17
  23. package/deps/winpty/.gitattributes +0 -19
  24. package/deps/winpty/LICENSE +0 -21
  25. package/deps/winpty/Makefile +0 -166
  26. package/deps/winpty/README.md +0 -151
  27. package/deps/winpty/RELEASES.md +0 -280
  28. package/deps/winpty/VERSION.txt +0 -1
  29. package/deps/winpty/configure +0 -167
  30. package/deps/winpty/misc/BufferResizeTests.cc +0 -90
  31. package/deps/winpty/misc/ChangeScreenBuffer.cc +0 -53
  32. package/deps/winpty/misc/ClearConsole.cc +0 -72
  33. package/deps/winpty/misc/ConinMode.cc +0 -117
  34. package/deps/winpty/misc/ConinMode.ps1 +0 -116
  35. package/deps/winpty/misc/ConoutMode.cc +0 -113
  36. package/deps/winpty/misc/DebugClient.py +0 -42
  37. package/deps/winpty/misc/DebugServer.py +0 -63
  38. package/deps/winpty/misc/DumpLines.py +0 -5
  39. package/deps/winpty/misc/EnableExtendedFlags.txt +0 -46
  40. package/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +0 -528
  41. package/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +0 -633
  42. package/deps/winpty/misc/Font-Report-June2016/CP932.txt +0 -630
  43. package/deps/winpty/misc/Font-Report-June2016/CP936.txt +0 -630
  44. package/deps/winpty/misc/Font-Report-June2016/CP949.txt +0 -630
  45. package/deps/winpty/misc/Font-Report-June2016/CP950.txt +0 -630
  46. package/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +0 -16
  47. package/deps/winpty/misc/Font-Report-June2016/Results.txt +0 -4
  48. package/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +0 -144
  49. package/deps/winpty/misc/FontSurvey.cc +0 -100
  50. package/deps/winpty/misc/FormatChar.h +0 -21
  51. package/deps/winpty/misc/FreezePerfTest.cc +0 -62
  52. package/deps/winpty/misc/GetCh.cc +0 -20
  53. package/deps/winpty/misc/GetConsolePos.cc +0 -41
  54. package/deps/winpty/misc/GetFont.cc +0 -261
  55. package/deps/winpty/misc/IdentifyConsoleWindow.ps1 +0 -51
  56. package/deps/winpty/misc/IsNewConsole.cc +0 -87
  57. package/deps/winpty/misc/MouseInputNotes.txt +0 -90
  58. package/deps/winpty/misc/MoveConsoleWindow.cc +0 -34
  59. package/deps/winpty/misc/Notes.txt +0 -219
  60. package/deps/winpty/misc/OSVersion.cc +0 -27
  61. package/deps/winpty/misc/ScreenBufferFreezeInactive.cc +0 -101
  62. package/deps/winpty/misc/ScreenBufferTest.cc +0 -671
  63. package/deps/winpty/misc/ScreenBufferTest2.cc +0 -151
  64. package/deps/winpty/misc/SelectAllTest.cc +0 -45
  65. package/deps/winpty/misc/SetBufferSize.cc +0 -32
  66. package/deps/winpty/misc/SetCursorPos.cc +0 -10
  67. package/deps/winpty/misc/SetFont.cc +0 -145
  68. package/deps/winpty/misc/SetWindowRect.cc +0 -36
  69. package/deps/winpty/misc/ShowArgv.cc +0 -12
  70. package/deps/winpty/misc/ShowConsoleInput.cc +0 -40
  71. package/deps/winpty/misc/Spew.py +0 -5
  72. package/deps/winpty/misc/TestUtil.cc +0 -172
  73. package/deps/winpty/misc/UnicodeDoubleWidthTest.cc +0 -102
  74. package/deps/winpty/misc/UnicodeWideTest1.cc +0 -246
  75. package/deps/winpty/misc/UnicodeWideTest2.cc +0 -130
  76. package/deps/winpty/misc/UnixEcho.cc +0 -89
  77. package/deps/winpty/misc/Utf16Echo.cc +0 -46
  78. package/deps/winpty/misc/VeryLargeRead.cc +0 -122
  79. package/deps/winpty/misc/VkEscapeTest.cc +0 -56
  80. package/deps/winpty/misc/Win10ResizeWhileFrozen.cc +0 -52
  81. package/deps/winpty/misc/Win10WrapTest1.cc +0 -57
  82. package/deps/winpty/misc/Win10WrapTest2.cc +0 -30
  83. package/deps/winpty/misc/Win32Echo1.cc +0 -26
  84. package/deps/winpty/misc/Win32Echo2.cc +0 -19
  85. package/deps/winpty/misc/Win32Test1.cc +0 -46
  86. package/deps/winpty/misc/Win32Test2.cc +0 -70
  87. package/deps/winpty/misc/Win32Test3.cc +0 -78
  88. package/deps/winpty/misc/Win32Write1.cc +0 -44
  89. package/deps/winpty/misc/WindowsBugCrashReader.cc +0 -27
  90. package/deps/winpty/misc/WriteConsole.cc +0 -106
  91. package/deps/winpty/misc/build32.sh +0 -9
  92. package/deps/winpty/misc/build64.sh +0 -9
  93. package/deps/winpty/misc/color-test.sh +0 -212
  94. package/deps/winpty/misc/font-notes.txt +0 -300
  95. package/deps/winpty/misc/winbug-15048.cc +0 -201
  96. package/deps/winpty/ship/build-pty4j-libpty.bat +0 -36
  97. package/deps/winpty/ship/common_ship.py +0 -53
  98. package/deps/winpty/ship/make_msvc_package.py +0 -165
  99. package/deps/winpty/ship/ship.py +0 -108
  100. package/deps/winpty/src/agent/Agent.cc +0 -613
  101. package/deps/winpty/src/agent/Agent.h +0 -103
  102. package/deps/winpty/src/agent/AgentCreateDesktop.cc +0 -84
  103. package/deps/winpty/src/agent/AgentCreateDesktop.h +0 -28
  104. package/deps/winpty/src/agent/ConsoleFont.cc +0 -632
  105. package/deps/winpty/src/agent/ConsoleFont.h +0 -28
  106. package/deps/winpty/src/agent/ConsoleInput.cc +0 -852
  107. package/deps/winpty/src/agent/ConsoleInput.h +0 -109
  108. package/deps/winpty/src/agent/ConsoleInputReencoding.cc +0 -121
  109. package/deps/winpty/src/agent/ConsoleInputReencoding.h +0 -36
  110. package/deps/winpty/src/agent/ConsoleLine.cc +0 -152
  111. package/deps/winpty/src/agent/ConsoleLine.h +0 -41
  112. package/deps/winpty/src/agent/Coord.h +0 -87
  113. package/deps/winpty/src/agent/DebugShowInput.cc +0 -239
  114. package/deps/winpty/src/agent/DebugShowInput.h +0 -32
  115. package/deps/winpty/src/agent/DefaultInputMap.cc +0 -422
  116. package/deps/winpty/src/agent/DefaultInputMap.h +0 -28
  117. package/deps/winpty/src/agent/DsrSender.h +0 -30
  118. package/deps/winpty/src/agent/EventLoop.cc +0 -99
  119. package/deps/winpty/src/agent/EventLoop.h +0 -47
  120. package/deps/winpty/src/agent/InputMap.cc +0 -246
  121. package/deps/winpty/src/agent/InputMap.h +0 -114
  122. package/deps/winpty/src/agent/LargeConsoleRead.cc +0 -71
  123. package/deps/winpty/src/agent/LargeConsoleRead.h +0 -68
  124. package/deps/winpty/src/agent/NamedPipe.cc +0 -378
  125. package/deps/winpty/src/agent/NamedPipe.h +0 -125
  126. package/deps/winpty/src/agent/Scraper.cc +0 -699
  127. package/deps/winpty/src/agent/Scraper.h +0 -103
  128. package/deps/winpty/src/agent/SimplePool.h +0 -75
  129. package/deps/winpty/src/agent/SmallRect.h +0 -143
  130. package/deps/winpty/src/agent/Terminal.cc +0 -535
  131. package/deps/winpty/src/agent/Terminal.h +0 -69
  132. package/deps/winpty/src/agent/UnicodeEncoding.h +0 -157
  133. package/deps/winpty/src/agent/UnicodeEncodingTest.cc +0 -189
  134. package/deps/winpty/src/agent/Win32Console.cc +0 -107
  135. package/deps/winpty/src/agent/Win32Console.h +0 -67
  136. package/deps/winpty/src/agent/Win32ConsoleBuffer.cc +0 -193
  137. package/deps/winpty/src/agent/Win32ConsoleBuffer.h +0 -99
  138. package/deps/winpty/src/agent/main.cc +0 -114
  139. package/deps/winpty/src/agent/subdir.mk +0 -61
  140. package/deps/winpty/src/configurations.gypi +0 -60
  141. package/deps/winpty/src/debugserver/DebugServer.cc +0 -117
  142. package/deps/winpty/src/debugserver/subdir.mk +0 -41
  143. package/deps/winpty/src/include/winpty.h +0 -242
  144. package/deps/winpty/src/include/winpty_constants.h +0 -131
  145. package/deps/winpty/src/libwinpty/AgentLocation.cc +0 -75
  146. package/deps/winpty/src/libwinpty/AgentLocation.h +0 -28
  147. package/deps/winpty/src/libwinpty/LibWinptyException.h +0 -54
  148. package/deps/winpty/src/libwinpty/WinptyInternal.h +0 -72
  149. package/deps/winpty/src/libwinpty/subdir.mk +0 -46
  150. package/deps/winpty/src/libwinpty/winpty.cc +0 -970
  151. package/deps/winpty/src/shared/AgentMsg.h +0 -38
  152. package/deps/winpty/src/shared/BackgroundDesktop.cc +0 -122
  153. package/deps/winpty/src/shared/BackgroundDesktop.h +0 -73
  154. package/deps/winpty/src/shared/Buffer.cc +0 -103
  155. package/deps/winpty/src/shared/Buffer.h +0 -102
  156. package/deps/winpty/src/shared/DebugClient.cc +0 -187
  157. package/deps/winpty/src/shared/DebugClient.h +0 -38
  158. package/deps/winpty/src/shared/GenRandom.cc +0 -138
  159. package/deps/winpty/src/shared/GenRandom.h +0 -55
  160. package/deps/winpty/src/shared/GetCommitHash.bat +0 -13
  161. package/deps/winpty/src/shared/Mutex.h +0 -54
  162. package/deps/winpty/src/shared/OsModule.h +0 -63
  163. package/deps/winpty/src/shared/OwnedHandle.cc +0 -36
  164. package/deps/winpty/src/shared/OwnedHandle.h +0 -45
  165. package/deps/winpty/src/shared/PrecompiledHeader.h +0 -43
  166. package/deps/winpty/src/shared/StringBuilder.h +0 -227
  167. package/deps/winpty/src/shared/StringBuilderTest.cc +0 -114
  168. package/deps/winpty/src/shared/StringUtil.cc +0 -55
  169. package/deps/winpty/src/shared/StringUtil.h +0 -80
  170. package/deps/winpty/src/shared/TimeMeasurement.h +0 -63
  171. package/deps/winpty/src/shared/UnixCtrlChars.h +0 -45
  172. package/deps/winpty/src/shared/UpdateGenVersion.bat +0 -20
  173. package/deps/winpty/src/shared/WindowsSecurity.cc +0 -460
  174. package/deps/winpty/src/shared/WindowsSecurity.h +0 -104
  175. package/deps/winpty/src/shared/WindowsVersion.cc +0 -252
  176. package/deps/winpty/src/shared/WindowsVersion.h +0 -29
  177. package/deps/winpty/src/shared/WinptyAssert.cc +0 -55
  178. package/deps/winpty/src/shared/WinptyAssert.h +0 -64
  179. package/deps/winpty/src/shared/WinptyException.cc +0 -57
  180. package/deps/winpty/src/shared/WinptyException.h +0 -43
  181. package/deps/winpty/src/shared/WinptyVersion.cc +0 -42
  182. package/deps/winpty/src/shared/WinptyVersion.h +0 -27
  183. package/deps/winpty/src/shared/winpty_snprintf.h +0 -99
  184. package/deps/winpty/src/subdir.mk +0 -5
  185. package/deps/winpty/src/tests/subdir.mk +0 -28
  186. package/deps/winpty/src/tests/trivial_test.cc +0 -158
  187. package/deps/winpty/src/unix-adapter/InputHandler.cc +0 -114
  188. package/deps/winpty/src/unix-adapter/InputHandler.h +0 -56
  189. package/deps/winpty/src/unix-adapter/OutputHandler.cc +0 -80
  190. package/deps/winpty/src/unix-adapter/OutputHandler.h +0 -53
  191. package/deps/winpty/src/unix-adapter/Util.cc +0 -86
  192. package/deps/winpty/src/unix-adapter/Util.h +0 -31
  193. package/deps/winpty/src/unix-adapter/WakeupFd.cc +0 -70
  194. package/deps/winpty/src/unix-adapter/WakeupFd.h +0 -42
  195. package/deps/winpty/src/unix-adapter/main.cc +0 -729
  196. package/deps/winpty/src/unix-adapter/subdir.mk +0 -41
  197. package/deps/winpty/src/winpty.gyp +0 -236
  198. package/deps/winpty/vcbuild.bat +0 -83
  199. package/lib/conpty_console_list_agent.js.map +0 -1
  200. package/lib/eventEmitter2.js.map +0 -1
  201. package/lib/eventEmitter2.test.js +0 -30
  202. package/lib/eventEmitter2.test.js.map +0 -1
  203. package/lib/index.js.map +0 -1
  204. package/lib/interfaces.js.map +0 -1
  205. package/lib/shared/conout.js.map +0 -1
  206. package/lib/terminal.js.map +0 -1
  207. package/lib/terminal.test.js +0 -139
  208. package/lib/terminal.test.js.map +0 -1
  209. package/lib/testUtils.test.js +0 -28
  210. package/lib/testUtils.test.js.map +0 -1
  211. package/lib/types.js.map +0 -1
  212. package/lib/unixTerminal.js.map +0 -1
  213. package/lib/unixTerminal.test.js +0 -381
  214. package/lib/unixTerminal.test.js.map +0 -1
  215. package/lib/utils.js.map +0 -1
  216. package/lib/windowsConoutConnection.js.map +0 -1
  217. package/lib/windowsPtyAgent.js.map +0 -1
  218. package/lib/windowsPtyAgent.test.js +0 -90
  219. package/lib/windowsPtyAgent.test.js.map +0 -1
  220. package/lib/windowsTerminal.js.map +0 -1
  221. package/lib/windowsTerminal.test.js +0 -219
  222. package/lib/windowsTerminal.test.js.map +0 -1
  223. package/lib/worker/conoutSocketWorker.js.map +0 -1
  224. package/prebuilds/win32-arm64/pty.node +0 -0
  225. package/prebuilds/win32-arm64/pty.pdb +0 -0
  226. package/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  227. package/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  228. package/prebuilds/win32-arm64/winpty.dll +0 -0
  229. package/prebuilds/win32-arm64/winpty.pdb +0 -0
  230. package/prebuilds/win32-x64/pty.node +0 -0
  231. package/prebuilds/win32-x64/pty.pdb +0 -0
  232. package/prebuilds/win32-x64/winpty-agent.exe +0 -0
  233. package/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  234. package/prebuilds/win32-x64/winpty.dll +0 -0
  235. package/prebuilds/win32-x64/winpty.pdb +0 -0
  236. package/scripts/gen-compile-commands.js +0 -8
  237. package/scripts/increment-version.js +0 -54
  238. package/scripts/linux/checksums.txt +0 -2
  239. package/scripts/linux/install-sysroot.js +0 -158
  240. package/scripts/linux/verify-glibc-requirements.sh +0 -36
  241. package/src/conpty_console_list_agent.ts +0 -15
  242. package/src/eventEmitter2.test.ts +0 -30
  243. package/src/eventEmitter2.ts +0 -48
  244. package/src/index.ts +0 -52
  245. package/src/interfaces.ts +0 -130
  246. package/src/native.d.ts +0 -54
  247. package/src/shared/conout.ts +0 -15
  248. package/src/terminal.test.ts +0 -119
  249. package/src/terminal.ts +0 -211
  250. package/src/testUtils.test.ts +0 -23
  251. package/src/tsconfig.json +0 -22
  252. package/src/types.ts +0 -15
  253. package/src/unixTerminal.test.ts +0 -398
  254. package/src/unixTerminal.ts +0 -388
  255. package/src/utils.ts +0 -29
  256. package/src/win/winpty.cc +0 -333
  257. package/src/windowsConoutConnection.ts +0 -82
  258. package/src/windowsPtyAgent.test.ts +0 -94
  259. package/src/windowsPtyAgent.ts +0 -321
  260. package/src/windowsTerminal.test.ts +0 -229
  261. package/src/windowsTerminal.ts +0 -203
  262. package/src/worker/conoutSocketWorker.ts +0 -22
@@ -1,151 +0,0 @@
1
- #include <windows.h>
2
-
3
- #include "TestUtil.cc"
4
-
5
- const char *g_prefix = "";
6
-
7
- static void dumpHandles() {
8
- trace("%sSTDIN=0x%I64x STDOUT=0x%I64x STDERR=0x%I64x",
9
- g_prefix,
10
- (long long)GetStdHandle(STD_INPUT_HANDLE),
11
- (long long)GetStdHandle(STD_OUTPUT_HANDLE),
12
- (long long)GetStdHandle(STD_ERROR_HANDLE));
13
- }
14
-
15
- static HANDLE createBuffer() {
16
-
17
- // If sa isn't provided, the handle defaults to not-inheritable.
18
- SECURITY_ATTRIBUTES sa = {0};
19
- sa.nLength = sizeof(sa);
20
- sa.bInheritHandle = TRUE;
21
-
22
- trace("%sCreating a new buffer...", g_prefix);
23
- HANDLE conout = CreateConsoleScreenBuffer(
24
- GENERIC_READ | GENERIC_WRITE,
25
- FILE_SHARE_READ | FILE_SHARE_WRITE,
26
- &sa,
27
- CONSOLE_TEXTMODE_BUFFER, NULL);
28
-
29
- trace("%sCreating a new buffer... 0x%I64x", g_prefix, (long long)conout);
30
- return conout;
31
- }
32
-
33
- static const char *successOrFail(BOOL ret) {
34
- return ret ? "ok" : "FAILED";
35
- }
36
-
37
- static void setConsoleActiveScreenBuffer(HANDLE conout) {
38
- trace("%sSetConsoleActiveScreenBuffer(0x%I64x) called...",
39
- g_prefix, (long long)conout);
40
- trace("%sSetConsoleActiveScreenBuffer(0x%I64x) called... %s",
41
- g_prefix, (long long)conout,
42
- successOrFail(SetConsoleActiveScreenBuffer(conout)));
43
- }
44
-
45
- static void writeTest(HANDLE conout, const char *msg) {
46
- char writeData[256];
47
- sprintf(writeData, "%s%s\n", g_prefix, msg);
48
-
49
- trace("%sWriting to 0x%I64x: '%s'...",
50
- g_prefix, (long long)conout, msg);
51
- DWORD actual = 0;
52
- BOOL ret = WriteConsoleA(conout, writeData, strlen(writeData), &actual, NULL);
53
- trace("%sWriting to 0x%I64x: '%s'... %s",
54
- g_prefix, (long long)conout, msg,
55
- successOrFail(ret && actual == strlen(writeData)));
56
- }
57
-
58
- static HANDLE startChildInSameConsole(const wchar_t *args, BOOL
59
- bInheritHandles=FALSE) {
60
- wchar_t program[1024];
61
- wchar_t cmdline[1024];
62
- GetModuleFileNameW(NULL, program, 1024);
63
- swprintf(cmdline, L"\"%ls\" %ls", program, args);
64
-
65
- STARTUPINFOW sui;
66
- PROCESS_INFORMATION pi;
67
- memset(&sui, 0, sizeof(sui));
68
- memset(&pi, 0, sizeof(pi));
69
- sui.cb = sizeof(sui);
70
-
71
- CreateProcessW(program, cmdline,
72
- NULL, NULL,
73
- /*bInheritHandles=*/bInheritHandles,
74
- /*dwCreationFlags=*/0,
75
- NULL, NULL,
76
- &sui, &pi);
77
-
78
- return pi.hProcess;
79
- }
80
-
81
- static HANDLE dup(HANDLE h, HANDLE targetProcess) {
82
- HANDLE h2 = INVALID_HANDLE_VALUE;
83
- BOOL ret = DuplicateHandle(
84
- GetCurrentProcess(), h,
85
- targetProcess, &h2,
86
- 0, TRUE, DUPLICATE_SAME_ACCESS);
87
- trace("dup(0x%I64x) to process 0x%I64x... %s, 0x%I64x",
88
- (long long)h,
89
- (long long)targetProcess,
90
- successOrFail(ret),
91
- (long long)h2);
92
- return h2;
93
- }
94
-
95
- int main(int argc, char *argv[]) {
96
- if (argc == 1) {
97
- startChildProcess(L"parent");
98
- return 0;
99
- }
100
-
101
- if (!strcmp(argv[1], "parent")) {
102
- g_prefix = "parent: ";
103
- dumpHandles();
104
- HANDLE hChild = startChildInSameConsole(L"child");
105
-
106
- // Windows 10.
107
- HANDLE orig1 = GetStdHandle(STD_OUTPUT_HANDLE);
108
- HANDLE new1 = createBuffer();
109
-
110
- Sleep(2000);
111
- setConsoleActiveScreenBuffer(new1);
112
-
113
- // Handle duplication results to child process in same console:
114
- // - Windows XP: fails
115
- // - Windows 7 Ultimate SP1 32-bit: fails
116
- // - Windows Server 2008 R2 Datacenter SP1 64-bit: fails
117
- // - Windows 8 Enterprise 32-bit: succeeds
118
- // - Windows 10: succeeds
119
- HANDLE orig2 = dup(orig1, GetCurrentProcess());
120
- HANDLE new2 = dup(new1, GetCurrentProcess());
121
-
122
- dup(orig1, hChild);
123
- dup(new1, hChild);
124
-
125
- // The writes to orig1/orig2 are invisible. The writes to new1/new2
126
- // are visible.
127
- writeTest(orig1, "write to orig1");
128
- writeTest(orig2, "write to orig2");
129
- writeTest(new1, "write to new1");
130
- writeTest(new2, "write to new2");
131
-
132
- Sleep(120000);
133
- return 0;
134
- }
135
-
136
- if (!strcmp(argv[1], "child")) {
137
- g_prefix = "child: ";
138
- dumpHandles();
139
- Sleep(4000);
140
- for (unsigned int i = 0x1; i <= 0xB0; ++i) {
141
- char msg[256];
142
- sprintf(msg, "Write to handle 0x%x", i);
143
- HANDLE h = reinterpret_cast<HANDLE>(i);
144
- writeTest(h, msg);
145
- }
146
- Sleep(120000);
147
- return 0;
148
- }
149
-
150
- return 0;
151
- }
@@ -1,45 +0,0 @@
1
- #define _WIN32_WINNT 0x0501
2
- #include <stdio.h>
3
- #include <windows.h>
4
-
5
- #include "../src/shared/DebugClient.cc"
6
-
7
- const int SC_CONSOLE_MARK = 0xFFF2;
8
- const int SC_CONSOLE_SELECT_ALL = 0xFFF5;
9
-
10
- CALLBACK DWORD pausingThread(LPVOID dummy)
11
- {
12
- HWND hwnd = GetConsoleWindow();
13
- while (true) {
14
- SendMessage(hwnd, WM_SYSCOMMAND, SC_CONSOLE_SELECT_ALL, 0);
15
- Sleep(1000);
16
- SendMessage(hwnd, WM_CHAR, 27, 0x00010001);
17
- Sleep(1000);
18
- }
19
- }
20
-
21
- int main()
22
- {
23
- HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
24
- CONSOLE_SCREEN_BUFFER_INFO info;
25
-
26
- GetConsoleScreenBufferInfo(out, &info);
27
- COORD initial = info.dwCursorPosition;
28
-
29
- CreateThread(NULL, 0,
30
- pausingThread, NULL,
31
- 0, NULL);
32
-
33
- for (int i = 0; i < 30; ++i) {
34
- Sleep(100);
35
- GetConsoleScreenBufferInfo(out, &info);
36
- if (memcmp(&info.dwCursorPosition, &initial, sizeof(COORD)) != 0) {
37
- trace("cursor moved to [%d,%d]",
38
- info.dwCursorPosition.X,
39
- info.dwCursorPosition.Y);
40
- } else {
41
- trace("cursor in expected position");
42
- }
43
- }
44
- return 0;
45
- }
@@ -1,32 +0,0 @@
1
- #include <windows.h>
2
-
3
- #include <stdio.h>
4
- #include <stdlib.h>
5
-
6
- #include "TestUtil.cc"
7
-
8
- int main(int argc, char *argv[]) {
9
- if (argc != 3) {
10
- printf("Usage: %s x y width height\n", argv[0]);
11
- return 1;
12
- }
13
-
14
- const HANDLE conout = CreateFileW(L"CONOUT$",
15
- GENERIC_READ | GENERIC_WRITE,
16
- FILE_SHARE_READ | FILE_SHARE_WRITE,
17
- NULL, OPEN_EXISTING, 0, NULL);
18
- ASSERT(conout != INVALID_HANDLE_VALUE);
19
-
20
- COORD size = {
21
- (short)atoi(argv[1]),
22
- (short)atoi(argv[2]),
23
- };
24
-
25
- BOOL ret = SetConsoleScreenBufferSize(conout, size);
26
- const unsigned lastError = GetLastError();
27
- const char *const retStr = ret ? "OK" : "failed";
28
- trace("SetConsoleScreenBufferSize ret: %s (LastError=0x%x)", retStr, lastError);
29
- printf("SetConsoleScreenBufferSize ret: %s (LastError=0x%x)\n", retStr, lastError);
30
-
31
- return 0;
32
- }
@@ -1,10 +0,0 @@
1
- #include <windows.h>
2
-
3
- #include "TestUtil.cc"
4
-
5
- int main(int argc, char *argv[]) {
6
- int col = atoi(argv[1]);
7
- int row = atoi(argv[2]);
8
- setCursorPos(col, row);
9
- return 0;
10
- }
@@ -1,145 +0,0 @@
1
- #include <windows.h>
2
- #include <locale.h>
3
- #include <stdio.h>
4
- #include <stdlib.h>
5
- #include <string>
6
-
7
- #include "TestUtil.cc"
8
-
9
- #define COUNT_OF(array) (sizeof(array) / sizeof((array)[0]))
10
-
11
- // See https://en.wikipedia.org/wiki/List_of_CJK_fonts
12
- const wchar_t kMSGothic[] = { 0xff2d, 0xff33, 0x0020, 0x30b4, 0x30b7, 0x30c3, 0x30af, 0 }; // Japanese
13
- const wchar_t kNSimSun[] = { 0x65b0, 0x5b8b, 0x4f53, 0 }; // Simplified Chinese
14
- const wchar_t kMingLight[] = { 0x7d30, 0x660e, 0x9ad4, 0 }; // Traditional Chinese
15
- const wchar_t kGulimChe[] = { 0xad74, 0xb9bc, 0xccb4, 0 }; // Korean
16
-
17
- int main() {
18
- setlocale(LC_ALL, "");
19
- wchar_t *cmdline = GetCommandLineW();
20
- int argc = 0;
21
- wchar_t **argv = CommandLineToArgvW(cmdline, &argc);
22
- const HANDLE conout = openConout();
23
-
24
- if (argc == 1) {
25
- cprintf(L"Usage:\n");
26
- cprintf(L" SetFont <index>\n");
27
- cprintf(L" SetFont options\n");
28
- cprintf(L"\n");
29
- cprintf(L"Options for SetCurrentConsoleFontEx:\n");
30
- cprintf(L" -idx INDEX\n");
31
- cprintf(L" -w WIDTH\n");
32
- cprintf(L" -h HEIGHT\n");
33
- cprintf(L" -family (0xNN|NN)\n");
34
- cprintf(L" -weight (normal|bold|NNN)\n");
35
- cprintf(L" -face FACENAME\n");
36
- cprintf(L" -face-{gothic|simsun|minglight|gulimche) [JP,CN-sim,CN-tra,KR]\n");
37
- cprintf(L" -tt\n");
38
- cprintf(L" -vec\n");
39
- cprintf(L" -vp\n");
40
- cprintf(L" -dev\n");
41
- cprintf(L" -roman\n");
42
- cprintf(L" -swiss\n");
43
- cprintf(L" -modern\n");
44
- cprintf(L" -script\n");
45
- cprintf(L" -decorative\n");
46
- return 0;
47
- }
48
-
49
- if (isdigit(argv[1][0])) {
50
- int index = _wtoi(argv[1]);
51
- HMODULE kernel32 = LoadLibraryW(L"kernel32.dll");
52
- FARPROC proc = GetProcAddress(kernel32, "SetConsoleFont");
53
- if (proc == NULL) {
54
- cprintf(L"Couldn't get address of SetConsoleFont\n");
55
- } else {
56
- BOOL ret = reinterpret_cast<BOOL WINAPI(*)(HANDLE, DWORD)>(proc)(
57
- conout, index);
58
- cprintf(L"SetFont returned %d\n", ret);
59
- }
60
- return 0;
61
- }
62
-
63
- CONSOLE_FONT_INFOEX fontex = {0};
64
- fontex.cbSize = sizeof(fontex);
65
-
66
- for (int i = 1; i < argc; ++i) {
67
- std::wstring arg = argv[i];
68
- if (i + 1 < argc) {
69
- std::wstring next = argv[i + 1];
70
- if (arg == L"-idx") {
71
- fontex.nFont = _wtoi(next.c_str());
72
- ++i; continue;
73
- } else if (arg == L"-w") {
74
- fontex.dwFontSize.X = _wtoi(next.c_str());
75
- ++i; continue;
76
- } else if (arg == L"-h") {
77
- fontex.dwFontSize.Y = _wtoi(next.c_str());
78
- ++i; continue;
79
- } else if (arg == L"-weight") {
80
- if (next == L"normal") {
81
- fontex.FontWeight = 400;
82
- } else if (next == L"bold") {
83
- fontex.FontWeight = 700;
84
- } else {
85
- fontex.FontWeight = _wtoi(next.c_str());
86
- }
87
- ++i; continue;
88
- } else if (arg == L"-face") {
89
- wcsncpy(fontex.FaceName, next.c_str(), COUNT_OF(fontex.FaceName));
90
- ++i; continue;
91
- } else if (arg == L"-family") {
92
- fontex.FontFamily = strtol(narrowString(next).c_str(), nullptr, 0);
93
- ++i; continue;
94
- }
95
- }
96
- if (arg == L"-tt") {
97
- fontex.FontFamily |= TMPF_TRUETYPE;
98
- } else if (arg == L"-vec") {
99
- fontex.FontFamily |= TMPF_VECTOR;
100
- } else if (arg == L"-vp") {
101
- // Setting the TMPF_FIXED_PITCH bit actually indicates variable
102
- // pitch.
103
- fontex.FontFamily |= TMPF_FIXED_PITCH;
104
- } else if (arg == L"-dev") {
105
- fontex.FontFamily |= TMPF_DEVICE;
106
- } else if (arg == L"-roman") {
107
- fontex.FontFamily = (fontex.FontFamily & ~0xF0) | FF_ROMAN;
108
- } else if (arg == L"-swiss") {
109
- fontex.FontFamily = (fontex.FontFamily & ~0xF0) | FF_SWISS;
110
- } else if (arg == L"-modern") {
111
- fontex.FontFamily = (fontex.FontFamily & ~0xF0) | FF_MODERN;
112
- } else if (arg == L"-script") {
113
- fontex.FontFamily = (fontex.FontFamily & ~0xF0) | FF_SCRIPT;
114
- } else if (arg == L"-decorative") {
115
- fontex.FontFamily = (fontex.FontFamily & ~0xF0) | FF_DECORATIVE;
116
- } else if (arg == L"-face-gothic") {
117
- wcsncpy(fontex.FaceName, kMSGothic, COUNT_OF(fontex.FaceName));
118
- } else if (arg == L"-face-simsun") {
119
- wcsncpy(fontex.FaceName, kNSimSun, COUNT_OF(fontex.FaceName));
120
- } else if (arg == L"-face-minglight") {
121
- wcsncpy(fontex.FaceName, kMingLight, COUNT_OF(fontex.FaceName));
122
- } else if (arg == L"-face-gulimche") {
123
- wcsncpy(fontex.FaceName, kGulimChe, COUNT_OF(fontex.FaceName));
124
- } else {
125
- cprintf(L"Unrecognized argument: %ls\n", arg.c_str());
126
- exit(1);
127
- }
128
- }
129
-
130
- cprintf(L"Setting to: nFont=%u dwFontSize=(%d,%d) "
131
- L"FontFamily=0x%x FontWeight=%u "
132
- L"FaceName=\"%ls\"\n",
133
- static_cast<unsigned>(fontex.nFont),
134
- fontex.dwFontSize.X, fontex.dwFontSize.Y,
135
- fontex.FontFamily, fontex.FontWeight,
136
- fontex.FaceName);
137
-
138
- BOOL ret = SetCurrentConsoleFontEx(
139
- conout,
140
- FALSE,
141
- &fontex);
142
- cprintf(L"SetCurrentConsoleFontEx returned %d\n", ret);
143
-
144
- return 0;
145
- }
@@ -1,36 +0,0 @@
1
- #include <windows.h>
2
-
3
- #include <stdio.h>
4
- #include <stdlib.h>
5
-
6
- #include "TestUtil.cc"
7
-
8
- int main(int argc, char *argv[]) {
9
- if (argc != 5) {
10
- printf("Usage: %s x y width height\n", argv[0]);
11
- return 1;
12
- }
13
-
14
- const HANDLE conout = CreateFileW(L"CONOUT$",
15
- GENERIC_READ | GENERIC_WRITE,
16
- FILE_SHARE_READ | FILE_SHARE_WRITE,
17
- NULL, OPEN_EXISTING, 0, NULL);
18
- ASSERT(conout != INVALID_HANDLE_VALUE);
19
-
20
- SMALL_RECT sr = {
21
- (short)atoi(argv[1]),
22
- (short)atoi(argv[2]),
23
- (short)(atoi(argv[1]) + atoi(argv[3]) - 1),
24
- (short)(atoi(argv[2]) + atoi(argv[4]) - 1),
25
- };
26
-
27
- trace("Calling SetConsoleWindowInfo with {L=%d,T=%d,R=%d,B=%d}",
28
- sr.Left, sr.Top, sr.Right, sr.Bottom);
29
- BOOL ret = SetConsoleWindowInfo(conout, TRUE, &sr);
30
- const unsigned lastError = GetLastError();
31
- const char *const retStr = ret ? "OK" : "failed";
32
- trace("SetConsoleWindowInfo ret: %s (LastError=0x%x)", retStr, lastError);
33
- printf("SetConsoleWindowInfo ret: %s (LastError=0x%x)\n", retStr, lastError);
34
-
35
- return 0;
36
- }
@@ -1,12 +0,0 @@
1
- // This test program is useful for studying commandline<->argv conversion.
2
-
3
- #include <stdio.h>
4
- #include <windows.h>
5
-
6
- int main(int argc, char **argv)
7
- {
8
- printf("cmdline = [%s]\n", GetCommandLine());
9
- for (int i = 0; i < argc; ++i)
10
- printf("[%s]\n", argv[i]);
11
- return 0;
12
- }
@@ -1,40 +0,0 @@
1
- #include <windows.h>
2
- #include <stdio.h>
3
- #include <ctype.h>
4
-
5
- int main(int argc, char *argv[])
6
- {
7
- static int escCount = 0;
8
-
9
- HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
10
- while (true) {
11
- DWORD count;
12
- INPUT_RECORD ir;
13
- if (!ReadConsoleInput(hStdin, &ir, 1, &count)) {
14
- printf("ReadConsoleInput failed\n");
15
- return 1;
16
- }
17
-
18
- if (true) {
19
- DWORD mode;
20
- GetConsoleMode(hStdin, &mode);
21
- SetConsoleMode(hStdin, mode & ~ENABLE_PROCESSED_INPUT);
22
- }
23
-
24
- if (ir.EventType == KEY_EVENT) {
25
- const KEY_EVENT_RECORD &ker = ir.Event.KeyEvent;
26
- printf("%s", ker.bKeyDown ? "dn" : "up");
27
- printf(" ch=");
28
- if (isprint(ker.uChar.AsciiChar))
29
- printf("'%c'", ker.uChar.AsciiChar);
30
- printf("%d", ker.uChar.AsciiChar);
31
- printf(" vk=%#x", ker.wVirtualKeyCode);
32
- printf(" scan=%#x", ker.wVirtualScanCode);
33
- printf(" state=%#x", (int)ker.dwControlKeyState);
34
- printf(" repeat=%d", ker.wRepeatCount);
35
- printf("\n");
36
- if (ker.uChar.AsciiChar == 27 && ++escCount == 6)
37
- break;
38
- }
39
- }
40
- }
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env python
2
- i = 0;
3
- while True:
4
- i += 1
5
- print(i)
@@ -1,172 +0,0 @@
1
- // This file is included into test programs using #include
2
-
3
- #include <windows.h>
4
- #include <assert.h>
5
- #include <stdio.h>
6
- #include <string.h>
7
- #include <wchar.h>
8
- #include <vector>
9
- #include <string>
10
-
11
- #include "../src/shared/DebugClient.h"
12
- #include "../src/shared/TimeMeasurement.h"
13
-
14
- #include "../src/shared/DebugClient.cc"
15
- #include "../src/shared/WinptyAssert.cc"
16
- #include "../src/shared/WinptyException.cc"
17
-
18
- // Launch this test program again, in a new console that we will destroy.
19
- static void startChildProcess(const wchar_t *args) {
20
- wchar_t program[1024];
21
- wchar_t cmdline[1024];
22
- GetModuleFileNameW(NULL, program, 1024);
23
- swprintf(cmdline, L"\"%ls\" %ls", program, args);
24
-
25
- STARTUPINFOW sui;
26
- PROCESS_INFORMATION pi;
27
- memset(&sui, 0, sizeof(sui));
28
- memset(&pi, 0, sizeof(pi));
29
- sui.cb = sizeof(sui);
30
-
31
- CreateProcessW(program, cmdline,
32
- NULL, NULL,
33
- /*bInheritHandles=*/FALSE,
34
- /*dwCreationFlags=*/CREATE_NEW_CONSOLE,
35
- NULL, NULL,
36
- &sui, &pi);
37
- }
38
-
39
- static void setBufferSize(HANDLE conout, int x, int y) {
40
- COORD size = { static_cast<SHORT>(x), static_cast<SHORT>(y) };
41
- BOOL success = SetConsoleScreenBufferSize(conout, size);
42
- trace("setBufferSize: (%d,%d), result=%d", x, y, success);
43
- }
44
-
45
- static void setWindowPos(HANDLE conout, int x, int y, int w, int h) {
46
- SMALL_RECT r = {
47
- static_cast<SHORT>(x), static_cast<SHORT>(y),
48
- static_cast<SHORT>(x + w - 1),
49
- static_cast<SHORT>(y + h - 1)
50
- };
51
- BOOL success = SetConsoleWindowInfo(conout, /*bAbsolute=*/TRUE, &r);
52
- trace("setWindowPos: (%d,%d,%d,%d), result=%d", x, y, w, h, success);
53
- }
54
-
55
- static void setCursorPos(HANDLE conout, int x, int y) {
56
- COORD coord = { static_cast<SHORT>(x), static_cast<SHORT>(y) };
57
- SetConsoleCursorPosition(conout, coord);
58
- }
59
-
60
- static void setBufferSize(int x, int y) {
61
- setBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), x, y);
62
- }
63
-
64
- static void setWindowPos(int x, int y, int w, int h) {
65
- setWindowPos(GetStdHandle(STD_OUTPUT_HANDLE), x, y, w, h);
66
- }
67
-
68
- static void setCursorPos(int x, int y) {
69
- setCursorPos(GetStdHandle(STD_OUTPUT_HANDLE), x, y);
70
- }
71
-
72
- static void countDown(int sec) {
73
- for (int i = sec; i > 0; --i) {
74
- printf("%d.. ", i);
75
- fflush(stdout);
76
- Sleep(1000);
77
- }
78
- printf("\n");
79
- }
80
-
81
- static void writeBox(int x, int y, int w, int h, char ch, int attributes=7) {
82
- CHAR_INFO info = { 0 };
83
- info.Char.AsciiChar = ch;
84
- info.Attributes = attributes;
85
- std::vector<CHAR_INFO> buf(w * h, info);
86
- HANDLE conout = GetStdHandle(STD_OUTPUT_HANDLE);
87
- COORD bufSize = { static_cast<SHORT>(w), static_cast<SHORT>(h) };
88
- COORD bufCoord = { 0, 0 };
89
- SMALL_RECT writeRegion = {
90
- static_cast<SHORT>(x),
91
- static_cast<SHORT>(y),
92
- static_cast<SHORT>(x + w - 1),
93
- static_cast<SHORT>(y + h - 1)
94
- };
95
- WriteConsoleOutputA(conout, buf.data(), bufSize, bufCoord, &writeRegion);
96
- }
97
-
98
- static void setChar(int x, int y, char ch, int attributes=7) {
99
- writeBox(x, y, 1, 1, ch, attributes);
100
- }
101
-
102
- static void fillChar(int x, int y, int repeat, char ch) {
103
- COORD coord = { static_cast<SHORT>(x), static_cast<SHORT>(y) };
104
- DWORD actual = 0;
105
- FillConsoleOutputCharacterA(
106
- GetStdHandle(STD_OUTPUT_HANDLE),
107
- ch, repeat, coord, &actual);
108
- }
109
-
110
- static void repeatChar(int count, char ch) {
111
- for (int i = 0; i < count; ++i) {
112
- putchar(ch);
113
- }
114
- fflush(stdout);
115
- }
116
-
117
- // I don't know why, but wprintf fails to print this face name,
118
- // "MS ゴシック" (aka MS Gothic). It helps to use wprintf instead of printf, and
119
- // it helps to call `setlocale(LC_ALL, "")`, but the Japanese symbols are
120
- // ultimately converted to `?` symbols, even though MS Gothic is able to
121
- // display its own name, and the current code page is 932 (Shift-JIS).
122
- static void cvfprintf(HANDLE conout, const wchar_t *fmt, va_list ap) {
123
- wchar_t buffer[256];
124
- vswprintf(buffer, 256 - 1, fmt, ap);
125
- buffer[255] = L'\0';
126
- DWORD actual = 0;
127
- if (!WriteConsoleW(conout, buffer, wcslen(buffer), &actual, NULL)) {
128
- wprintf(L"WriteConsoleW call failed!\n");
129
- }
130
- }
131
-
132
- static void cfprintf(HANDLE conout, const wchar_t *fmt, ...) {
133
- va_list ap;
134
- va_start(ap, fmt);
135
- cvfprintf(conout, fmt, ap);
136
- va_end(ap);
137
- }
138
-
139
- static void cprintf(const wchar_t *fmt, ...) {
140
- va_list ap;
141
- va_start(ap, fmt);
142
- cvfprintf(GetStdHandle(STD_OUTPUT_HANDLE), fmt, ap);
143
- va_end(ap);
144
- }
145
-
146
- static std::string narrowString(const std::wstring &input)
147
- {
148
- int mblen = WideCharToMultiByte(
149
- CP_UTF8, 0,
150
- input.data(), input.size(),
151
- NULL, 0, NULL, NULL);
152
- if (mblen <= 0) {
153
- return std::string();
154
- }
155
- std::vector<char> tmp(mblen);
156
- int mblen2 = WideCharToMultiByte(
157
- CP_UTF8, 0,
158
- input.data(), input.size(),
159
- tmp.data(), tmp.size(),
160
- NULL, NULL);
161
- assert(mblen2 == mblen);
162
- return std::string(tmp.data(), tmp.size());
163
- }
164
-
165
- HANDLE openConout() {
166
- const HANDLE conout = CreateFileW(L"CONOUT$",
167
- GENERIC_READ | GENERIC_WRITE,
168
- FILE_SHARE_READ | FILE_SHARE_WRITE,
169
- NULL, OPEN_EXISTING, 0, NULL);
170
- ASSERT(conout != INVALID_HANDLE_VALUE);
171
- return conout;
172
- }