node-pty 1.2.0-beta.1 → 1.2.0-beta.10

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 (264) hide show
  1. package/README.md +3 -5
  2. package/binding.gyp +76 -37
  3. package/lib/unixTerminal.js +6 -3
  4. package/lib/utils.js +1 -1
  5. package/lib/windowsPtyAgent.js +32 -95
  6. package/lib/windowsTerminal.js +2 -2
  7. package/package.json +6 -5
  8. package/prebuilds/darwin-arm64/pty.node +0 -0
  9. package/prebuilds/darwin-arm64/spawn-helper +0 -0
  10. package/prebuilds/darwin-x64/pty.node +0 -0
  11. package/prebuilds/darwin-x64/spawn-helper +0 -0
  12. package/prebuilds/linux-arm64/pty.node +0 -0
  13. package/prebuilds/linux-x64/pty.node +0 -0
  14. package/prebuilds/win32-arm64/conpty.node +0 -0
  15. package/prebuilds/win32-arm64/conpty.pdb +0 -0
  16. package/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  17. package/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  18. package/prebuilds/win32-x64/conpty.node +0 -0
  19. package/prebuilds/win32-x64/conpty.pdb +0 -0
  20. package/prebuilds/win32-x64/conpty_console_list.node +0 -0
  21. package/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  22. package/scripts/post-install.js +1 -5
  23. package/src/unix/pty.cc +111 -35
  24. package/src/win/conpty.cc +1 -2
  25. package/typings/node-pty.d.ts +13 -9
  26. package/deps/.editorconfig +0 -2
  27. package/deps/winpty/.drone.yml +0 -17
  28. package/deps/winpty/.gitattributes +0 -19
  29. package/deps/winpty/LICENSE +0 -21
  30. package/deps/winpty/Makefile +0 -166
  31. package/deps/winpty/README.md +0 -151
  32. package/deps/winpty/RELEASES.md +0 -280
  33. package/deps/winpty/VERSION.txt +0 -1
  34. package/deps/winpty/configure +0 -167
  35. package/deps/winpty/misc/BufferResizeTests.cc +0 -90
  36. package/deps/winpty/misc/ChangeScreenBuffer.cc +0 -53
  37. package/deps/winpty/misc/ClearConsole.cc +0 -72
  38. package/deps/winpty/misc/ConinMode.cc +0 -117
  39. package/deps/winpty/misc/ConinMode.ps1 +0 -116
  40. package/deps/winpty/misc/ConoutMode.cc +0 -113
  41. package/deps/winpty/misc/DebugClient.py +0 -42
  42. package/deps/winpty/misc/DebugServer.py +0 -63
  43. package/deps/winpty/misc/DumpLines.py +0 -5
  44. package/deps/winpty/misc/EnableExtendedFlags.txt +0 -46
  45. package/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +0 -528
  46. package/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +0 -633
  47. package/deps/winpty/misc/Font-Report-June2016/CP932.txt +0 -630
  48. package/deps/winpty/misc/Font-Report-June2016/CP936.txt +0 -630
  49. package/deps/winpty/misc/Font-Report-June2016/CP949.txt +0 -630
  50. package/deps/winpty/misc/Font-Report-June2016/CP950.txt +0 -630
  51. package/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +0 -16
  52. package/deps/winpty/misc/Font-Report-June2016/Results.txt +0 -4
  53. package/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +0 -144
  54. package/deps/winpty/misc/FontSurvey.cc +0 -100
  55. package/deps/winpty/misc/FormatChar.h +0 -21
  56. package/deps/winpty/misc/FreezePerfTest.cc +0 -62
  57. package/deps/winpty/misc/GetCh.cc +0 -20
  58. package/deps/winpty/misc/GetConsolePos.cc +0 -41
  59. package/deps/winpty/misc/GetFont.cc +0 -261
  60. package/deps/winpty/misc/IdentifyConsoleWindow.ps1 +0 -51
  61. package/deps/winpty/misc/IsNewConsole.cc +0 -87
  62. package/deps/winpty/misc/MouseInputNotes.txt +0 -90
  63. package/deps/winpty/misc/MoveConsoleWindow.cc +0 -34
  64. package/deps/winpty/misc/Notes.txt +0 -219
  65. package/deps/winpty/misc/OSVersion.cc +0 -27
  66. package/deps/winpty/misc/ScreenBufferFreezeInactive.cc +0 -101
  67. package/deps/winpty/misc/ScreenBufferTest.cc +0 -671
  68. package/deps/winpty/misc/ScreenBufferTest2.cc +0 -151
  69. package/deps/winpty/misc/SelectAllTest.cc +0 -45
  70. package/deps/winpty/misc/SetBufferSize.cc +0 -32
  71. package/deps/winpty/misc/SetCursorPos.cc +0 -10
  72. package/deps/winpty/misc/SetFont.cc +0 -145
  73. package/deps/winpty/misc/SetWindowRect.cc +0 -36
  74. package/deps/winpty/misc/ShowArgv.cc +0 -12
  75. package/deps/winpty/misc/ShowConsoleInput.cc +0 -40
  76. package/deps/winpty/misc/Spew.py +0 -5
  77. package/deps/winpty/misc/TestUtil.cc +0 -172
  78. package/deps/winpty/misc/UnicodeDoubleWidthTest.cc +0 -102
  79. package/deps/winpty/misc/UnicodeWideTest1.cc +0 -246
  80. package/deps/winpty/misc/UnicodeWideTest2.cc +0 -130
  81. package/deps/winpty/misc/UnixEcho.cc +0 -89
  82. package/deps/winpty/misc/Utf16Echo.cc +0 -46
  83. package/deps/winpty/misc/VeryLargeRead.cc +0 -122
  84. package/deps/winpty/misc/VkEscapeTest.cc +0 -56
  85. package/deps/winpty/misc/Win10ResizeWhileFrozen.cc +0 -52
  86. package/deps/winpty/misc/Win10WrapTest1.cc +0 -57
  87. package/deps/winpty/misc/Win10WrapTest2.cc +0 -30
  88. package/deps/winpty/misc/Win32Echo1.cc +0 -26
  89. package/deps/winpty/misc/Win32Echo2.cc +0 -19
  90. package/deps/winpty/misc/Win32Test1.cc +0 -46
  91. package/deps/winpty/misc/Win32Test2.cc +0 -70
  92. package/deps/winpty/misc/Win32Test3.cc +0 -78
  93. package/deps/winpty/misc/Win32Write1.cc +0 -44
  94. package/deps/winpty/misc/WindowsBugCrashReader.cc +0 -27
  95. package/deps/winpty/misc/WriteConsole.cc +0 -106
  96. package/deps/winpty/misc/build32.sh +0 -9
  97. package/deps/winpty/misc/build64.sh +0 -9
  98. package/deps/winpty/misc/color-test.sh +0 -212
  99. package/deps/winpty/misc/font-notes.txt +0 -300
  100. package/deps/winpty/misc/winbug-15048.cc +0 -201
  101. package/deps/winpty/ship/build-pty4j-libpty.bat +0 -36
  102. package/deps/winpty/ship/common_ship.py +0 -53
  103. package/deps/winpty/ship/make_msvc_package.py +0 -165
  104. package/deps/winpty/ship/ship.py +0 -108
  105. package/deps/winpty/src/agent/Agent.cc +0 -613
  106. package/deps/winpty/src/agent/Agent.h +0 -103
  107. package/deps/winpty/src/agent/AgentCreateDesktop.cc +0 -84
  108. package/deps/winpty/src/agent/AgentCreateDesktop.h +0 -28
  109. package/deps/winpty/src/agent/ConsoleFont.cc +0 -632
  110. package/deps/winpty/src/agent/ConsoleFont.h +0 -28
  111. package/deps/winpty/src/agent/ConsoleInput.cc +0 -852
  112. package/deps/winpty/src/agent/ConsoleInput.h +0 -109
  113. package/deps/winpty/src/agent/ConsoleInputReencoding.cc +0 -121
  114. package/deps/winpty/src/agent/ConsoleInputReencoding.h +0 -36
  115. package/deps/winpty/src/agent/ConsoleLine.cc +0 -152
  116. package/deps/winpty/src/agent/ConsoleLine.h +0 -41
  117. package/deps/winpty/src/agent/Coord.h +0 -87
  118. package/deps/winpty/src/agent/DebugShowInput.cc +0 -239
  119. package/deps/winpty/src/agent/DebugShowInput.h +0 -32
  120. package/deps/winpty/src/agent/DefaultInputMap.cc +0 -422
  121. package/deps/winpty/src/agent/DefaultInputMap.h +0 -28
  122. package/deps/winpty/src/agent/DsrSender.h +0 -30
  123. package/deps/winpty/src/agent/EventLoop.cc +0 -99
  124. package/deps/winpty/src/agent/EventLoop.h +0 -47
  125. package/deps/winpty/src/agent/InputMap.cc +0 -246
  126. package/deps/winpty/src/agent/InputMap.h +0 -114
  127. package/deps/winpty/src/agent/LargeConsoleRead.cc +0 -71
  128. package/deps/winpty/src/agent/LargeConsoleRead.h +0 -68
  129. package/deps/winpty/src/agent/NamedPipe.cc +0 -378
  130. package/deps/winpty/src/agent/NamedPipe.h +0 -125
  131. package/deps/winpty/src/agent/Scraper.cc +0 -699
  132. package/deps/winpty/src/agent/Scraper.h +0 -103
  133. package/deps/winpty/src/agent/SimplePool.h +0 -75
  134. package/deps/winpty/src/agent/SmallRect.h +0 -143
  135. package/deps/winpty/src/agent/Terminal.cc +0 -535
  136. package/deps/winpty/src/agent/Terminal.h +0 -69
  137. package/deps/winpty/src/agent/UnicodeEncoding.h +0 -157
  138. package/deps/winpty/src/agent/UnicodeEncodingTest.cc +0 -189
  139. package/deps/winpty/src/agent/Win32Console.cc +0 -107
  140. package/deps/winpty/src/agent/Win32Console.h +0 -67
  141. package/deps/winpty/src/agent/Win32ConsoleBuffer.cc +0 -193
  142. package/deps/winpty/src/agent/Win32ConsoleBuffer.h +0 -99
  143. package/deps/winpty/src/agent/main.cc +0 -114
  144. package/deps/winpty/src/agent/subdir.mk +0 -61
  145. package/deps/winpty/src/configurations.gypi +0 -60
  146. package/deps/winpty/src/debugserver/DebugServer.cc +0 -117
  147. package/deps/winpty/src/debugserver/subdir.mk +0 -41
  148. package/deps/winpty/src/include/winpty.h +0 -242
  149. package/deps/winpty/src/include/winpty_constants.h +0 -131
  150. package/deps/winpty/src/libwinpty/AgentLocation.cc +0 -75
  151. package/deps/winpty/src/libwinpty/AgentLocation.h +0 -28
  152. package/deps/winpty/src/libwinpty/LibWinptyException.h +0 -54
  153. package/deps/winpty/src/libwinpty/WinptyInternal.h +0 -72
  154. package/deps/winpty/src/libwinpty/subdir.mk +0 -46
  155. package/deps/winpty/src/libwinpty/winpty.cc +0 -970
  156. package/deps/winpty/src/shared/AgentMsg.h +0 -38
  157. package/deps/winpty/src/shared/BackgroundDesktop.cc +0 -122
  158. package/deps/winpty/src/shared/BackgroundDesktop.h +0 -73
  159. package/deps/winpty/src/shared/Buffer.cc +0 -103
  160. package/deps/winpty/src/shared/Buffer.h +0 -102
  161. package/deps/winpty/src/shared/DebugClient.cc +0 -187
  162. package/deps/winpty/src/shared/DebugClient.h +0 -38
  163. package/deps/winpty/src/shared/GenRandom.cc +0 -138
  164. package/deps/winpty/src/shared/GenRandom.h +0 -55
  165. package/deps/winpty/src/shared/GetCommitHash.bat +0 -13
  166. package/deps/winpty/src/shared/Mutex.h +0 -54
  167. package/deps/winpty/src/shared/OsModule.h +0 -63
  168. package/deps/winpty/src/shared/OwnedHandle.cc +0 -36
  169. package/deps/winpty/src/shared/OwnedHandle.h +0 -45
  170. package/deps/winpty/src/shared/PrecompiledHeader.h +0 -43
  171. package/deps/winpty/src/shared/StringBuilder.h +0 -227
  172. package/deps/winpty/src/shared/StringBuilderTest.cc +0 -114
  173. package/deps/winpty/src/shared/StringUtil.cc +0 -55
  174. package/deps/winpty/src/shared/StringUtil.h +0 -80
  175. package/deps/winpty/src/shared/TimeMeasurement.h +0 -63
  176. package/deps/winpty/src/shared/UnixCtrlChars.h +0 -45
  177. package/deps/winpty/src/shared/UpdateGenVersion.bat +0 -20
  178. package/deps/winpty/src/shared/WindowsSecurity.cc +0 -460
  179. package/deps/winpty/src/shared/WindowsSecurity.h +0 -104
  180. package/deps/winpty/src/shared/WindowsVersion.cc +0 -252
  181. package/deps/winpty/src/shared/WindowsVersion.h +0 -29
  182. package/deps/winpty/src/shared/WinptyAssert.cc +0 -55
  183. package/deps/winpty/src/shared/WinptyAssert.h +0 -64
  184. package/deps/winpty/src/shared/WinptyException.cc +0 -57
  185. package/deps/winpty/src/shared/WinptyException.h +0 -43
  186. package/deps/winpty/src/shared/WinptyVersion.cc +0 -42
  187. package/deps/winpty/src/shared/WinptyVersion.h +0 -27
  188. package/deps/winpty/src/shared/winpty_snprintf.h +0 -99
  189. package/deps/winpty/src/subdir.mk +0 -5
  190. package/deps/winpty/src/tests/subdir.mk +0 -28
  191. package/deps/winpty/src/tests/trivial_test.cc +0 -158
  192. package/deps/winpty/src/unix-adapter/InputHandler.cc +0 -114
  193. package/deps/winpty/src/unix-adapter/InputHandler.h +0 -56
  194. package/deps/winpty/src/unix-adapter/OutputHandler.cc +0 -80
  195. package/deps/winpty/src/unix-adapter/OutputHandler.h +0 -53
  196. package/deps/winpty/src/unix-adapter/Util.cc +0 -86
  197. package/deps/winpty/src/unix-adapter/Util.h +0 -31
  198. package/deps/winpty/src/unix-adapter/WakeupFd.cc +0 -70
  199. package/deps/winpty/src/unix-adapter/WakeupFd.h +0 -42
  200. package/deps/winpty/src/unix-adapter/main.cc +0 -729
  201. package/deps/winpty/src/unix-adapter/subdir.mk +0 -41
  202. package/deps/winpty/src/winpty.gyp +0 -234
  203. package/deps/winpty/vcbuild.bat +0 -83
  204. package/lib/conpty_console_list_agent.js.map +0 -1
  205. package/lib/eventEmitter2.js.map +0 -1
  206. package/lib/eventEmitter2.test.js +0 -30
  207. package/lib/eventEmitter2.test.js.map +0 -1
  208. package/lib/index.js.map +0 -1
  209. package/lib/interfaces.js.map +0 -1
  210. package/lib/shared/conout.js.map +0 -1
  211. package/lib/terminal.js.map +0 -1
  212. package/lib/terminal.test.js +0 -139
  213. package/lib/terminal.test.js.map +0 -1
  214. package/lib/testUtils.test.js +0 -28
  215. package/lib/testUtils.test.js.map +0 -1
  216. package/lib/types.js.map +0 -1
  217. package/lib/unixTerminal.js.map +0 -1
  218. package/lib/unixTerminal.test.js +0 -351
  219. package/lib/unixTerminal.test.js.map +0 -1
  220. package/lib/utils.js.map +0 -1
  221. package/lib/windowsConoutConnection.js.map +0 -1
  222. package/lib/windowsPtyAgent.js.map +0 -1
  223. package/lib/windowsPtyAgent.test.js +0 -90
  224. package/lib/windowsPtyAgent.test.js.map +0 -1
  225. package/lib/windowsTerminal.js.map +0 -1
  226. package/lib/windowsTerminal.test.js +0 -219
  227. package/lib/windowsTerminal.test.js.map +0 -1
  228. package/lib/worker/conoutSocketWorker.js.map +0 -1
  229. package/prebuilds/win32-arm64/pty.node +0 -0
  230. package/prebuilds/win32-arm64/pty.pdb +0 -0
  231. package/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  232. package/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  233. package/prebuilds/win32-arm64/winpty.dll +0 -0
  234. package/prebuilds/win32-arm64/winpty.pdb +0 -0
  235. package/prebuilds/win32-x64/pty.node +0 -0
  236. package/prebuilds/win32-x64/pty.pdb +0 -0
  237. package/prebuilds/win32-x64/winpty-agent.exe +0 -0
  238. package/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  239. package/prebuilds/win32-x64/winpty.dll +0 -0
  240. package/prebuilds/win32-x64/winpty.pdb +0 -0
  241. package/scripts/gen-compile-commands.js +0 -8
  242. package/scripts/increment-version.js +0 -54
  243. package/src/conpty_console_list_agent.ts +0 -15
  244. package/src/eventEmitter2.test.ts +0 -30
  245. package/src/eventEmitter2.ts +0 -48
  246. package/src/index.ts +0 -52
  247. package/src/interfaces.ts +0 -130
  248. package/src/native.d.ts +0 -54
  249. package/src/shared/conout.ts +0 -15
  250. package/src/terminal.test.ts +0 -119
  251. package/src/terminal.ts +0 -211
  252. package/src/testUtils.test.ts +0 -23
  253. package/src/tsconfig.json +0 -22
  254. package/src/types.ts +0 -15
  255. package/src/unixTerminal.test.ts +0 -367
  256. package/src/unixTerminal.ts +0 -388
  257. package/src/utils.ts +0 -29
  258. package/src/win/winpty.cc +0 -333
  259. package/src/windowsConoutConnection.ts +0 -82
  260. package/src/windowsPtyAgent.test.ts +0 -94
  261. package/src/windowsPtyAgent.ts +0 -321
  262. package/src/windowsTerminal.test.ts +0 -229
  263. package/src/windowsTerminal.ts +0 -203
  264. package/src/worker/conoutSocketWorker.ts +0 -22
@@ -1,193 +0,0 @@
1
- // Copyright (c) 2011-2016 Ryan Prichard
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to
5
- // deal in the Software without restriction, including without limitation the
6
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- // sell copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- // IN THE SOFTWARE.
20
-
21
- #include "Win32ConsoleBuffer.h"
22
-
23
- #include <windows.h>
24
-
25
- #include "../shared/DebugClient.h"
26
- #include "../shared/StringBuilder.h"
27
- #include "../shared/WinptyAssert.h"
28
-
29
- std::unique_ptr<Win32ConsoleBuffer> Win32ConsoleBuffer::openStdout() {
30
- return std::unique_ptr<Win32ConsoleBuffer>(
31
- new Win32ConsoleBuffer(GetStdHandle(STD_OUTPUT_HANDLE), false));
32
- }
33
-
34
- std::unique_ptr<Win32ConsoleBuffer> Win32ConsoleBuffer::openConout() {
35
- const HANDLE conout = CreateFileW(L"CONOUT$",
36
- GENERIC_READ | GENERIC_WRITE,
37
- FILE_SHARE_READ | FILE_SHARE_WRITE,
38
- NULL, OPEN_EXISTING, 0, NULL);
39
- ASSERT(conout != INVALID_HANDLE_VALUE);
40
- return std::unique_ptr<Win32ConsoleBuffer>(
41
- new Win32ConsoleBuffer(conout, true));
42
- }
43
-
44
- std::unique_ptr<Win32ConsoleBuffer> Win32ConsoleBuffer::createErrorBuffer() {
45
- SECURITY_ATTRIBUTES sa = {};
46
- sa.nLength = sizeof(sa);
47
- sa.bInheritHandle = TRUE;
48
- const HANDLE conout =
49
- CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE,
50
- FILE_SHARE_READ | FILE_SHARE_WRITE,
51
- &sa,
52
- CONSOLE_TEXTMODE_BUFFER,
53
- nullptr);
54
- ASSERT(conout != INVALID_HANDLE_VALUE);
55
- return std::unique_ptr<Win32ConsoleBuffer>(
56
- new Win32ConsoleBuffer(conout, true));
57
- }
58
-
59
- HANDLE Win32ConsoleBuffer::conout() {
60
- return m_conout;
61
- }
62
-
63
- void Win32ConsoleBuffer::clearLines(
64
- int row,
65
- int count,
66
- const ConsoleScreenBufferInfo &info) {
67
- // TODO: error handling
68
- const int width = info.bufferSize().X;
69
- DWORD actual = 0;
70
- if (!FillConsoleOutputCharacterW(
71
- m_conout, L' ', width * count, Coord(0, row),
72
- &actual) || static_cast<int>(actual) != width * count) {
73
- trace("FillConsoleOutputCharacterW failed");
74
- }
75
- if (!FillConsoleOutputAttribute(
76
- m_conout, kDefaultAttributes, width * count, Coord(0, row),
77
- &actual) || static_cast<int>(actual) != width * count) {
78
- trace("FillConsoleOutputAttribute failed");
79
- }
80
- }
81
-
82
- void Win32ConsoleBuffer::clearAllLines(const ConsoleScreenBufferInfo &info) {
83
- clearLines(0, info.bufferSize().Y, info);
84
- }
85
-
86
- ConsoleScreenBufferInfo Win32ConsoleBuffer::bufferInfo() {
87
- // TODO: error handling
88
- ConsoleScreenBufferInfo info;
89
- if (!GetConsoleScreenBufferInfo(m_conout, &info)) {
90
- trace("GetConsoleScreenBufferInfo failed");
91
- }
92
- return info;
93
- }
94
-
95
- Coord Win32ConsoleBuffer::bufferSize() {
96
- return bufferInfo().bufferSize();
97
- }
98
-
99
- SmallRect Win32ConsoleBuffer::windowRect() {
100
- return bufferInfo().windowRect();
101
- }
102
-
103
- bool Win32ConsoleBuffer::resizeBufferRange(const Coord &initialSize,
104
- Coord &finalSize) {
105
- if (SetConsoleScreenBufferSize(m_conout, initialSize)) {
106
- finalSize = initialSize;
107
- return true;
108
- }
109
- // The font might be too small to accommodate a very narrow console window.
110
- // In that case, rather than simply give up, it's better to try wider
111
- // buffer sizes until the call succeeds.
112
- Coord size = initialSize;
113
- while (size.X < 20) {
114
- size.X++;
115
- if (SetConsoleScreenBufferSize(m_conout, size)) {
116
- finalSize = size;
117
- trace("SetConsoleScreenBufferSize: initial size (%d,%d) failed, "
118
- "but wider size (%d,%d) succeeded",
119
- initialSize.X, initialSize.Y,
120
- finalSize.X, finalSize.Y);
121
- return true;
122
- }
123
- }
124
- trace("SetConsoleScreenBufferSize failed: "
125
- "tried (%d,%d) through (%d,%d)",
126
- initialSize.X, initialSize.Y,
127
- size.X, size.Y);
128
- return false;
129
- }
130
-
131
- void Win32ConsoleBuffer::resizeBuffer(const Coord &size) {
132
- // TODO: error handling
133
- if (!SetConsoleScreenBufferSize(m_conout, size)) {
134
- trace("SetConsoleScreenBufferSize failed: size=(%d,%d)",
135
- size.X, size.Y);
136
- }
137
- }
138
-
139
- void Win32ConsoleBuffer::moveWindow(const SmallRect &rect) {
140
- // TODO: error handling
141
- if (!SetConsoleWindowInfo(m_conout, TRUE, &rect)) {
142
- trace("SetConsoleWindowInfo failed");
143
- }
144
- }
145
-
146
- Coord Win32ConsoleBuffer::cursorPosition() {
147
- return bufferInfo().dwCursorPosition;
148
- }
149
-
150
- void Win32ConsoleBuffer::setCursorPosition(const Coord &coord) {
151
- // TODO: error handling
152
- if (!SetConsoleCursorPosition(m_conout, coord)) {
153
- trace("SetConsoleCursorPosition failed");
154
- }
155
- }
156
-
157
- void Win32ConsoleBuffer::read(const SmallRect &rect, CHAR_INFO *data) {
158
- // TODO: error handling
159
- SmallRect tmp(rect);
160
- if (!ReadConsoleOutputW(m_conout, data, rect.size(), Coord(), &tmp) &&
161
- isTracingEnabled()) {
162
- StringBuilder sb(256);
163
- auto outStruct = [&](const SMALL_RECT &sr) {
164
- sb << "{L=" << sr.Left << ",T=" << sr.Top
165
- << ",R=" << sr.Right << ",B=" << sr.Bottom << '}';
166
- };
167
- sb << "Win32ConsoleBuffer::read: ReadConsoleOutput failed: readRegion=";
168
- outStruct(rect);
169
- CONSOLE_SCREEN_BUFFER_INFO info = {};
170
- if (GetConsoleScreenBufferInfo(m_conout, &info)) {
171
- sb << ", dwSize=(" << info.dwSize.X << ',' << info.dwSize.Y
172
- << "), srWindow=";
173
- outStruct(info.srWindow);
174
- } else {
175
- sb << ", GetConsoleScreenBufferInfo also failed";
176
- }
177
- trace("%s", sb.c_str());
178
- }
179
- }
180
-
181
- void Win32ConsoleBuffer::write(const SmallRect &rect, const CHAR_INFO *data) {
182
- // TODO: error handling
183
- SmallRect tmp(rect);
184
- if (!WriteConsoleOutputW(m_conout, data, rect.size(), Coord(), &tmp)) {
185
- trace("WriteConsoleOutput failed");
186
- }
187
- }
188
-
189
- void Win32ConsoleBuffer::setTextAttribute(WORD attributes) {
190
- if (!SetConsoleTextAttribute(m_conout, attributes)) {
191
- trace("SetConsoleTextAttribute failed");
192
- }
193
- }
@@ -1,99 +0,0 @@
1
- // Copyright (c) 2011-2016 Ryan Prichard
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to
5
- // deal in the Software without restriction, including without limitation the
6
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- // sell copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- // IN THE SOFTWARE.
20
-
21
- #ifndef AGENT_WIN32_CONSOLE_BUFFER_H
22
- #define AGENT_WIN32_CONSOLE_BUFFER_H
23
-
24
- #include <windows.h>
25
-
26
- #include <string.h>
27
-
28
- #include <memory>
29
-
30
- #include "Coord.h"
31
- #include "SmallRect.h"
32
-
33
- class ConsoleScreenBufferInfo : public CONSOLE_SCREEN_BUFFER_INFO {
34
- public:
35
- ConsoleScreenBufferInfo()
36
- {
37
- memset(this, 0, sizeof(*this));
38
- }
39
-
40
- Coord bufferSize() const { return dwSize; }
41
- SmallRect windowRect() const { return srWindow; }
42
- Coord cursorPosition() const { return dwCursorPosition; }
43
- };
44
-
45
- class Win32ConsoleBuffer {
46
- private:
47
- Win32ConsoleBuffer(HANDLE conout, bool owned) :
48
- m_conout(conout), m_owned(owned)
49
- {
50
- }
51
-
52
- public:
53
- static const int kDefaultAttributes = 7;
54
-
55
- ~Win32ConsoleBuffer() {
56
- if (m_owned) {
57
- CloseHandle(m_conout);
58
- }
59
- }
60
-
61
- static std::unique_ptr<Win32ConsoleBuffer> openStdout();
62
- static std::unique_ptr<Win32ConsoleBuffer> openConout();
63
- static std::unique_ptr<Win32ConsoleBuffer> createErrorBuffer();
64
-
65
- Win32ConsoleBuffer(const Win32ConsoleBuffer &other) = delete;
66
- Win32ConsoleBuffer &operator=(const Win32ConsoleBuffer &other) = delete;
67
-
68
- HANDLE conout();
69
- void clearLines(int row, int count, const ConsoleScreenBufferInfo &info);
70
- void clearAllLines(const ConsoleScreenBufferInfo &info);
71
-
72
- // Buffer and window sizes.
73
- ConsoleScreenBufferInfo bufferInfo();
74
- Coord bufferSize();
75
- SmallRect windowRect();
76
- void resizeBuffer(const Coord &size);
77
- bool resizeBufferRange(const Coord &initialSize, Coord &finalSize);
78
- bool resizeBufferRange(const Coord &initialSize) {
79
- Coord dummy;
80
- return resizeBufferRange(initialSize, dummy);
81
- }
82
- void moveWindow(const SmallRect &rect);
83
-
84
- // Cursor.
85
- Coord cursorPosition();
86
- void setCursorPosition(const Coord &point);
87
-
88
- // Screen content.
89
- void read(const SmallRect &rect, CHAR_INFO *data);
90
- void write(const SmallRect &rect, const CHAR_INFO *data);
91
-
92
- void setTextAttribute(WORD attributes);
93
-
94
- private:
95
- HANDLE m_conout = nullptr;
96
- bool m_owned = false;
97
- };
98
-
99
- #endif // AGENT_WIN32_CONSOLE_BUFFER_H
@@ -1,114 +0,0 @@
1
- // Copyright (c) 2011-2015 Ryan Prichard
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to
5
- // deal in the Software without restriction, including without limitation the
6
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- // sell copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- // IN THE SOFTWARE.
20
-
21
- #include <stdio.h>
22
- #include <stdlib.h>
23
- #include <string.h>
24
- #include <wchar.h>
25
-
26
- #include "../shared/StringUtil.h"
27
- #include "../shared/WindowsVersion.h"
28
- #include "../shared/WinptyAssert.h"
29
- #include "../shared/WinptyVersion.h"
30
-
31
- #include "Agent.h"
32
- #include "AgentCreateDesktop.h"
33
- #include "DebugShowInput.h"
34
-
35
- const char USAGE[] =
36
- "Usage: %ls controlPipeName flags mouseMode cols rows\n"
37
- "Usage: %ls controlPipeName --create-desktop\n"
38
- "\n"
39
- "Ordinarily, this program is launched by winpty.dll and is not directly\n"
40
- "useful to winpty users. However, it also has options intended for\n"
41
- "debugging winpty.\n"
42
- "\n"
43
- "Usage: %ls [options]\n"
44
- "\n"
45
- "Options:\n"
46
- " --show-input [--with-mouse] [--escape-input]\n"
47
- " Dump INPUT_RECORDs from the console input buffer\n"
48
- " --with-mouse: Include MOUSE_INPUT_RECORDs in the dump\n"
49
- " output\n"
50
- " --escape-input: Direct the new Windows 10 console to use\n"
51
- " escape sequences for input\n"
52
- " --version Print the winpty version\n";
53
-
54
- static uint64_t winpty_atoi64(const char *str) {
55
- return strtoll(str, NULL, 10);
56
- }
57
-
58
- int main() {
59
- dumpWindowsVersion();
60
- dumpVersionToTrace();
61
-
62
- // Technically, we should free the CommandLineToArgvW return value using
63
- // a single call to LocalFree, but the call will never actually happen in
64
- // the normal case.
65
- int argc = 0;
66
- wchar_t *cmdline = GetCommandLineW();
67
- ASSERT(cmdline != nullptr && "GetCommandLineW returned NULL");
68
- wchar_t **argv = CommandLineToArgvW(cmdline, &argc);
69
- ASSERT(argv != nullptr && "CommandLineToArgvW returned NULL");
70
-
71
- if (argc == 2 && !wcscmp(argv[1], L"--version")) {
72
- dumpVersionToStdout();
73
- return 0;
74
- }
75
-
76
- if (argc >= 2 && !wcscmp(argv[1], L"--show-input")) {
77
- bool withMouse = false;
78
- bool escapeInput = false;
79
- for (int i = 2; i < argc; ++i) {
80
- if (!wcscmp(argv[i], L"--with-mouse")) {
81
- withMouse = true;
82
- } else if (!wcscmp(argv[i], L"--escape-input")) {
83
- escapeInput = true;
84
- } else {
85
- fprintf(stderr, "Unrecognized --show-input option: %ls\n",
86
- argv[i]);
87
- return 1;
88
- }
89
- }
90
- debugShowInput(withMouse, escapeInput);
91
- return 0;
92
- }
93
-
94
- if (argc == 3 && !wcscmp(argv[2], L"--create-desktop")) {
95
- handleCreateDesktop(argv[1]);
96
- return 0;
97
- }
98
-
99
- if (argc != 6) {
100
- fprintf(stderr, USAGE, argv[0], argv[0], argv[0]);
101
- return 1;
102
- }
103
-
104
- Agent agent(argv[1],
105
- winpty_atoi64(utf8FromWide(argv[2]).c_str()),
106
- atoi(utf8FromWide(argv[3]).c_str()),
107
- atoi(utf8FromWide(argv[4]).c_str()),
108
- atoi(utf8FromWide(argv[5]).c_str()));
109
- agent.run();
110
-
111
- // The Agent destructor shouldn't return, but if it does, exit
112
- // unsuccessfully.
113
- return 1;
114
- }
@@ -1,61 +0,0 @@
1
- # Copyright (c) 2011-2015 Ryan Prichard
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to
5
- # deal in the Software without restriction, including without limitation the
6
- # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- # sell copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- # IN THE SOFTWARE.
20
-
21
- ALL_TARGETS += build/winpty-agent.exe
22
-
23
- $(eval $(call def_mingw_target,agent,-DWINPTY_AGENT_ASSERT))
24
-
25
- AGENT_OBJECTS = \
26
- build/agent/agent/Agent.o \
27
- build/agent/agent/AgentCreateDesktop.o \
28
- build/agent/agent/ConsoleFont.o \
29
- build/agent/agent/ConsoleInput.o \
30
- build/agent/agent/ConsoleInputReencoding.o \
31
- build/agent/agent/ConsoleLine.o \
32
- build/agent/agent/DebugShowInput.o \
33
- build/agent/agent/DefaultInputMap.o \
34
- build/agent/agent/EventLoop.o \
35
- build/agent/agent/InputMap.o \
36
- build/agent/agent/LargeConsoleRead.o \
37
- build/agent/agent/NamedPipe.o \
38
- build/agent/agent/Scraper.o \
39
- build/agent/agent/Terminal.o \
40
- build/agent/agent/Win32Console.o \
41
- build/agent/agent/Win32ConsoleBuffer.o \
42
- build/agent/agent/main.o \
43
- build/agent/shared/BackgroundDesktop.o \
44
- build/agent/shared/Buffer.o \
45
- build/agent/shared/DebugClient.o \
46
- build/agent/shared/GenRandom.o \
47
- build/agent/shared/OwnedHandle.o \
48
- build/agent/shared/StringUtil.o \
49
- build/agent/shared/WindowsSecurity.o \
50
- build/agent/shared/WindowsVersion.o \
51
- build/agent/shared/WinptyAssert.o \
52
- build/agent/shared/WinptyException.o \
53
- build/agent/shared/WinptyVersion.o
54
-
55
- build/agent/shared/WinptyVersion.o : build/gen/GenVersion.h
56
-
57
- build/winpty-agent.exe : $(AGENT_OBJECTS)
58
- $(info Linking $@)
59
- @$(MINGW_CXX) $(MINGW_LDFLAGS) -o $@ $^
60
-
61
- -include $(AGENT_OBJECTS:.o=.d)
@@ -1,60 +0,0 @@
1
- # By default gyp/msbuild build for 32-bit Windows. This gyp include file
2
- # defines configurations for both 32-bit and 64-bit Windows. To use it, run:
3
- #
4
- # C:\...\winpty\src>gyp -I configurations.gypi
5
- #
6
- # This command generates Visual Studio project files with a Release
7
- # configuration and two Platforms--Win32 and x64. Both can be built:
8
- #
9
- # C:\...\winpty\src>msbuild winpty.sln /p:Platform=Win32
10
- # C:\...\winpty\src>msbuild winpty.sln /p:Platform=x64
11
- #
12
- # The output is placed in:
13
- #
14
- # C:\...\winpty\src\Release\Win32
15
- # C:\...\winpty\src\Release\x64
16
- #
17
- # Windows XP note: By default, the project files will use the default "toolset"
18
- # for the given MSVC version. For MSVC 2013 and MSVC 2015, the default toolset
19
- # generates binaries that do not run on Windows XP. To target Windows XP,
20
- # select the XP-specific toolset by passing
21
- # -D WINPTY_MSBUILD_TOOLSET={v120_xp,v140_xp} to gyp (v120_xp == MSVC 2013,
22
- # v140_xp == MSVC 2015). Unfortunately, it isn't possible to have a single
23
- # project file with configurations for both XP and post-XP. This seems to be a
24
- # limitation of the MSVC project file format.
25
- #
26
- # This file is not included by default, because I suspect it would interfere
27
- # with node-gyp, which has a different system for building 32-vs-64-bit
28
- # binaries. It uses a common.gypi, and the project files it generates can only
29
- # build a single architecture, the output paths are not differentiated by
30
- # architecture.
31
-
32
- {
33
- 'variables': {
34
- 'WINPTY_MSBUILD_TOOLSET%': '',
35
- },
36
- 'target_defaults': {
37
- 'default_configuration': 'Release_Win32',
38
- 'configurations': {
39
- 'Release_Win32': {
40
- 'msvs_configuration_platform': 'Win32',
41
- },
42
- 'Release_x64': {
43
- 'msvs_configuration_platform': 'x64',
44
- },
45
- },
46
- 'msvs_configuration_attributes': {
47
- 'OutputDirectory': '$(SolutionDir)$(ConfigurationName)\\$(Platform)',
48
- 'IntermediateDirectory': '$(ConfigurationName)\\$(Platform)\\obj\\$(ProjectName)',
49
- },
50
- 'msvs_settings': {
51
- 'VCLinkerTool': {
52
- 'SubSystem': '1', # /SUBSYSTEM:CONSOLE
53
- },
54
- 'VCCLCompilerTool': {
55
- 'RuntimeLibrary': '0', # MultiThreaded (/MT)
56
- },
57
- },
58
- 'msbuild_toolset' : '<(WINPTY_MSBUILD_TOOLSET)',
59
- }
60
- }
@@ -1,117 +0,0 @@
1
- // Copyright (c) 2015 Ryan Prichard
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to
5
- // deal in the Software without restriction, including without limitation the
6
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- // sell copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- // IN THE SOFTWARE.
20
-
21
- #include <cstdio>
22
- #include <cstdlib>
23
-
24
- #include <windows.h>
25
-
26
- #include "../shared/WindowsSecurity.h"
27
- #include "../shared/WinptyException.h"
28
-
29
- const wchar_t *kPipeName = L"\\\\.\\pipe\\DebugServer";
30
-
31
- // A message may not be larger than this size.
32
- const int MSG_SIZE = 4096;
33
-
34
- static void usage(const char *program, int code) {
35
- printf("Usage: %s [--everyone]\n"
36
- "\n"
37
- "Creates the named pipe %ls and reads messages. Prints each\n"
38
- "message to stdout. By default, only the current user can send messages.\n"
39
- "Pass --everyone to let anyone send a message.\n"
40
- "\n"
41
- "Use the WINPTY_DEBUG environment variable to enable winpty trace output.\n"
42
- "(e.g. WINPTY_DEBUG=trace for the default trace output.) Set WINPTYDBG=1\n"
43
- "to enable trace with older winpty versions.\n",
44
- program, kPipeName);
45
- exit(code);
46
- }
47
-
48
- int main(int argc, char *argv[]) {
49
- bool everyone = false;
50
- for (int i = 1; i < argc; ++i) {
51
- std::string arg = argv[i];
52
- if (arg == "--everyone") {
53
- everyone = true;
54
- } else if (arg == "-h" || arg == "--help") {
55
- usage(argv[0], 0);
56
- } else {
57
- usage(argv[0], 1);
58
- }
59
- }
60
-
61
- SecurityDescriptor sd;
62
- PSECURITY_ATTRIBUTES psa = nullptr;
63
- SECURITY_ATTRIBUTES sa = {};
64
- if (everyone) {
65
- try {
66
- sd = createPipeSecurityDescriptorOwnerFullControlEveryoneWrite();
67
- } catch (const WinptyException &e) {
68
- fprintf(stderr,
69
- "error creating security descriptor: %ls\n", e.what());
70
- exit(1);
71
- }
72
- sa.nLength = sizeof(sa);
73
- sa.lpSecurityDescriptor = sd.get();
74
- psa = &sa;
75
- }
76
-
77
- HANDLE serverPipe = CreateNamedPipeW(
78
- kPipeName,
79
- /*dwOpenMode=*/PIPE_ACCESS_DUPLEX | FILE_FLAG_FIRST_PIPE_INSTANCE,
80
- /*dwPipeMode=*/PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE |
81
- rejectRemoteClientsPipeFlag(),
82
- /*nMaxInstances=*/1,
83
- /*nOutBufferSize=*/MSG_SIZE,
84
- /*nInBufferSize=*/MSG_SIZE,
85
- /*nDefaultTimeOut=*/10 * 1000,
86
- psa);
87
-
88
- if (serverPipe == INVALID_HANDLE_VALUE) {
89
- fprintf(stderr, "error: could not create %ls pipe: error %u\n",
90
- kPipeName, static_cast<unsigned>(GetLastError()));
91
- exit(1);
92
- }
93
-
94
- char msgBuffer[MSG_SIZE + 1];
95
-
96
- while (true) {
97
- if (!ConnectNamedPipe(serverPipe, nullptr)) {
98
- fprintf(stderr, "error: ConnectNamedPipe failed\n");
99
- fflush(stderr);
100
- exit(1);
101
- }
102
- DWORD bytesRead = 0;
103
- if (!ReadFile(serverPipe, msgBuffer, MSG_SIZE, &bytesRead, nullptr)) {
104
- fprintf(stderr, "error: ReadFile on pipe failed\n");
105
- fflush(stderr);
106
- DisconnectNamedPipe(serverPipe);
107
- continue;
108
- }
109
- msgBuffer[bytesRead] = '\n';
110
- fwrite(msgBuffer, 1, bytesRead + 1, stdout);
111
- fflush(stdout);
112
-
113
- DWORD bytesWritten = 0;
114
- WriteFile(serverPipe, "OK", 2, &bytesWritten, nullptr);
115
- DisconnectNamedPipe(serverPipe);
116
- }
117
- }
@@ -1,41 +0,0 @@
1
- # Copyright (c) 2015 Ryan Prichard
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to
5
- # deal in the Software without restriction, including without limitation the
6
- # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- # sell copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- # IN THE SOFTWARE.
20
-
21
- ALL_TARGETS += build/winpty-debugserver.exe
22
-
23
- $(eval $(call def_mingw_target,debugserver,))
24
-
25
- DEBUGSERVER_OBJECTS = \
26
- build/debugserver/debugserver/DebugServer.o \
27
- build/debugserver/shared/DebugClient.o \
28
- build/debugserver/shared/OwnedHandle.o \
29
- build/debugserver/shared/StringUtil.o \
30
- build/debugserver/shared/WindowsSecurity.o \
31
- build/debugserver/shared/WindowsVersion.o \
32
- build/debugserver/shared/WinptyAssert.o \
33
- build/debugserver/shared/WinptyException.o
34
-
35
- build/debugserver/shared/WindowsVersion.o : build/gen/GenVersion.h
36
-
37
- build/winpty-debugserver.exe : $(DEBUGSERVER_OBJECTS)
38
- $(info Linking $@)
39
- @$(MINGW_CXX) $(MINGW_LDFLAGS) -o $@ $^
40
-
41
- -include $(DEBUGSERVER_OBJECTS:.o=.d)