@jingyi0605/codingns 0.8.0 → 0.8.1
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.
- package/dist/public/assets/{AdaptiveButlerPage-BsgVNRAa.js → AdaptiveButlerPage-b7s6F_sd.js} +1 -1
- package/dist/public/assets/{App-tPcbyRdS.js → App-B0q8uDA-.js} +3 -3
- package/dist/public/assets/{BootstrapPage--MDOigQi.js → BootstrapPage-jFfl7KNK.js} +1 -1
- package/dist/public/assets/{ConversationPage-BBss5ED8.js → ConversationPage-sj_rn4q0.js} +1 -1
- package/dist/public/assets/{DesktopDetachPreviewPage-CB8DoqwU.js → DesktopDetachPreviewPage-C5c88SOX.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-GtIx5m8K.js → DesktopWindowPage-BdKUZrKG.js} +1 -1
- package/dist/public/assets/{FileContextPanel-BcM7AIT4.js → FileContextPanel-lM5mBcfn.js} +1 -1
- package/dist/public/assets/{GitSidebar-CMtkaxuI.js → GitSidebar-CmXAhyjo.js} +1 -1
- package/dist/public/assets/{MobileCreateSessionSheet-CrFY41_8.js → MobileCreateSessionSheet-CceV0-AH.js} +1 -1
- package/dist/public/assets/{MobileTopHeaderFrame-DGVOzXyg.js → MobileTopHeaderFrame-_I0t7cC_.js} +1 -1
- package/dist/public/assets/{MobileWorkspaceSwitcherHeader-DLkACTnQ.js → MobileWorkspaceSwitcherHeader-DhaM9fgx.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-0MPPjxtQ.js → RelayConnectEntryPage-CMtDWyGS.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-vgOhwus4.js → ServerSettingsModal-Rkgn3jft.js} +1 -1
- package/dist/public/assets/{SessionIndexPage-KK626Ra9.js → SessionIndexPage-BOumP3ij.js} +1 -1
- package/dist/public/assets/{SettingsPage-B3edBJIo.js → SettingsPage-vx_c-00-.js} +1 -1
- package/dist/public/assets/{TerminalManagerPanel-BxlhZp8c.js → TerminalManagerPanel-D9JHCS6d.js} +1 -1
- package/dist/public/assets/{TerminalPage-B6Rdhylx.js → TerminalPage-CBIKHI33.js} +1 -1
- package/dist/public/assets/{TerminalRuntimeFallbackModal-BVLfrpSa.js → TerminalRuntimeFallbackModal-W5NjqFEz.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-N_gwwUjD.js → ToolFilesPage-DWtpaN_7.js} +1 -1
- package/dist/public/assets/{ToolGitPage-DOcuuWM1.js → ToolGitPage-MpGXsw4_.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-D-FfJ7Re.js → ToolProcessesPage-B1jHQKhZ.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-CHfPxd20.js → ToolsHomePage-CJrn8ZFl.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CTTnfovY.js → WorkbenchLandingPage-CJQ1V5U-.js} +1 -1
- package/dist/public/assets/{WorkbenchLayout-CbpJg0g1.js → WorkbenchLayout-D48i71PU.js} +3 -3
- package/dist/public/assets/{WorkbenchModal-Bt_1fYmM.js → WorkbenchModal-BYNuMIoV.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-CGKjy4J-.js +1 -0
- package/dist/public/assets/{WorkspaceDebugDetailPage-s7yuDIxR.js → WorkspaceDebugDetailPage-DCAYgays.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-Cf-gVpqK.js → WorkspaceDetailPage-D5v-nUIi.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-COf6I8sT.js → WorkspaceHomePage-I5G1p5SR.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-DGdKvYzx.js → client-runtime-manager-CdJP7nUp.js} +1 -1
- package/dist/public/assets/{file-tree-icon-BeHqeru9.js → file-tree-icon-BFwaPxKs.js} +6 -6
- package/dist/public/assets/{index-CuzMc7q2.js → index-CjewzOUG.js} +3 -3
- package/dist/public/assets/{index-CcaQt50x.css → index-VVxfF0s5.css} +1 -1
- package/dist/public/assets/{login-direct-candidate-resolver-DEP_xCmR.js → login-direct-candidate-resolver-C-mo698r.js} +1 -1
- package/dist/public/assets/{model-switch-api-c6kcbBGm.js → model-switch-api-Br0ivfe5.js} +1 -1
- package/dist/public/assets/{preferences-service-CV6Ih0BG.js → preferences-service-CnaTvZq2.js} +1 -1
- package/dist/public/assets/{realtime-client-CRCx5xBt.js → realtime-client-BlQRqVmm.js} +1 -1
- package/dist/public/assets/{relay-entry-C751A-Sm.js → relay-entry-D7OgZZN-.js} +1 -1
- package/dist/public/assets/{terminal-runtime-meta-CRAVR-8G.js → terminal-runtime-meta-BCtAYB0E.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-D6YtNS0r.js → useRegisteredDebugTemplates-CXmxu69X.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/main.js +2 -0
- package/dist/server/main.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +1 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js +1 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +1 -0
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +1 -0
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/browser-runtime/browser-runtime-controller.d.ts +2 -1
- package/dist/server/modules/browser-runtime/browser-runtime-controller.js +1 -0
- package/dist/server/modules/browser-runtime/browser-runtime-controller.js.map +1 -1
- package/dist/server/modules/browser-runtime/browser-runtime-service.d.ts +4 -1
- package/dist/server/modules/browser-runtime/browser-runtime-service.js +40 -0
- package/dist/server/modules/browser-runtime/browser-runtime-service.js.map +1 -1
- package/dist/server/modules/browser-runtime/browser-task-payload.d.ts +2 -0
- package/dist/server/modules/browser-runtime/browser-task-payload.js.map +1 -1
- package/dist/server/modules/git/git-command-helper-process.js +0 -18
- package/dist/server/modules/git/git-command-helper-process.js.map +1 -1
- package/dist/server/modules/git/git-command-runner.js +0 -18
- package/dist/server/modules/git/git-command-runner.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.js +46 -3
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +1 -0
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +11 -2
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
- package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/SKILL.md +2 -2
- package/dist/server/shared/http/error-handler.js +53 -19
- package/dist/server/shared/http/error-handler.js.map +1 -1
- package/dist/server/shared/utils/install-console-timestamp-prefix.d.ts +1 -0
- package/dist/server/shared/utils/install-console-timestamp-prefix.js +28 -0
- package/dist/server/shared/utils/install-console-timestamp-prefix.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +42 -0
- package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +346 -0
- package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js +80 -0
- package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/index.d.ts +18 -0
- package/node_modules/@codingns/session-sync-core/dist/index.js +19 -0
- package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.d.ts +18 -0
- package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js +659 -0
- package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/kimi-shared.d.ts +11 -0
- package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js +72 -0
- package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +67 -0
- package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +752 -0
- package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +48 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +1184 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.d.ts +11 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +105 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +84 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +2436 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +47 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +1480 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +33 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +684 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.d.ts +9 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js +17 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js +8 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +48 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +373 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +61 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +1191 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +27 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +415 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/registry.d.ts +7 -0
- package/node_modules/@codingns/session-sync-core/dist/registry.js +22 -0
- package/node_modules/@codingns/session-sync-core/dist/registry.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +24 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +329 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +30 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +939 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +16 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +70 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +2571 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.d.ts +21 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +561 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.d.ts +38 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js +911 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +15 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +16 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +38 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +970 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +21 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +168 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +152 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/types.js +2 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/types.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/services.d.ts +28 -0
- package/node_modules/@codingns/session-sync-core/dist/services.js +148 -0
- package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +6 -0
- package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +9 -0
- package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/types.d.ts +198 -0
- package/node_modules/@codingns/session-sync-core/dist/types.js +2 -0
- package/node_modules/@codingns/session-sync-core/dist/types.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/package.json +33 -0
- package/package.json +6 -4
- package/vendor/node-pty-fork/LICENSE +69 -0
- package/vendor/node-pty-fork/README.md +91 -0
- package/vendor/node-pty-fork/binding.gyp +117 -0
- package/vendor/node-pty-fork/deps/.editorconfig +2 -0
- package/vendor/node-pty-fork/deps/winpty/.drone.yml +17 -0
- package/vendor/node-pty-fork/deps/winpty/.gitattributes +19 -0
- package/vendor/node-pty-fork/deps/winpty/LICENSE +21 -0
- package/vendor/node-pty-fork/deps/winpty/Makefile +166 -0
- package/vendor/node-pty-fork/deps/winpty/README.md +151 -0
- package/vendor/node-pty-fork/deps/winpty/RELEASES.md +280 -0
- package/vendor/node-pty-fork/deps/winpty/VERSION.txt +1 -0
- package/vendor/node-pty-fork/deps/winpty/configure +167 -0
- package/vendor/node-pty-fork/deps/winpty/misc/BufferResizeTests.cc +90 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ClearConsole.cc +72 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.cc +117 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.ps1 +116 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ConoutMode.cc +113 -0
- package/vendor/node-pty-fork/deps/winpty/misc/DebugClient.py +42 -0
- package/vendor/node-pty-fork/deps/winpty/misc/DebugServer.py +63 -0
- package/vendor/node-pty-fork/deps/winpty/misc/DumpLines.py +5 -0
- package/vendor/node-pty-fork/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
- package/vendor/node-pty-fork/deps/winpty/misc/FontSurvey.cc +100 -0
- package/vendor/node-pty-fork/deps/winpty/misc/FormatChar.h +21 -0
- package/vendor/node-pty-fork/deps/winpty/misc/FreezePerfTest.cc +62 -0
- package/vendor/node-pty-fork/deps/winpty/misc/GetCh.cc +20 -0
- package/vendor/node-pty-fork/deps/winpty/misc/GetConsolePos.cc +41 -0
- package/vendor/node-pty-fork/deps/winpty/misc/GetFont.cc +261 -0
- package/vendor/node-pty-fork/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
- package/vendor/node-pty-fork/deps/winpty/misc/IsNewConsole.cc +87 -0
- package/vendor/node-pty-fork/deps/winpty/misc/MouseInputNotes.txt +90 -0
- package/vendor/node-pty-fork/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Notes.txt +219 -0
- package/vendor/node-pty-fork/deps/winpty/misc/OSVersion.cc +27 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest.cc +671 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
- package/vendor/node-pty-fork/deps/winpty/misc/SelectAllTest.cc +45 -0
- package/vendor/node-pty-fork/deps/winpty/misc/SetBufferSize.cc +32 -0
- package/vendor/node-pty-fork/deps/winpty/misc/SetCursorPos.cc +10 -0
- package/vendor/node-pty-fork/deps/winpty/misc/SetFont.cc +145 -0
- package/vendor/node-pty-fork/deps/winpty/misc/SetWindowRect.cc +36 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ShowArgv.cc +12 -0
- package/vendor/node-pty-fork/deps/winpty/misc/ShowConsoleInput.cc +40 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Spew.py +5 -0
- package/vendor/node-pty-fork/deps/winpty/misc/TestUtil.cc +172 -0
- package/vendor/node-pty-fork/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
- package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
- package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
- package/vendor/node-pty-fork/deps/winpty/misc/UnixEcho.cc +89 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Utf16Echo.cc +46 -0
- package/vendor/node-pty-fork/deps/winpty/misc/VeryLargeRead.cc +122 -0
- package/vendor/node-pty-fork/deps/winpty/misc/VkEscapeTest.cc +56 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest1.cc +57 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest2.cc +30 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo1.cc +26 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo2.cc +19 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win32Test1.cc +46 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win32Test2.cc +70 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win32Test3.cc +78 -0
- package/vendor/node-pty-fork/deps/winpty/misc/Win32Write1.cc +44 -0
- package/vendor/node-pty-fork/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
- package/vendor/node-pty-fork/deps/winpty/misc/WriteConsole.cc +106 -0
- package/vendor/node-pty-fork/deps/winpty/misc/build32.sh +9 -0
- package/vendor/node-pty-fork/deps/winpty/misc/build64.sh +9 -0
- package/vendor/node-pty-fork/deps/winpty/misc/color-test.sh +212 -0
- package/vendor/node-pty-fork/deps/winpty/misc/font-notes.txt +300 -0
- package/vendor/node-pty-fork/deps/winpty/misc/winbug-15048.cc +201 -0
- package/vendor/node-pty-fork/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
- package/vendor/node-pty-fork/deps/winpty/ship/common_ship.py +53 -0
- package/vendor/node-pty-fork/deps/winpty/ship/make_msvc_package.py +165 -0
- package/vendor/node-pty-fork/deps/winpty/ship/ship.py +108 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.cc +605 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.h +103 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.cc +632 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.h +28 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.cc +852 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.h +109 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.cc +152 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.h +41 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Coord.h +87 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.cc +239 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.h +32 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.h +28 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/DsrSender.h +30 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.cc +99 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.h +47 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.cc +246 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.h +114 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.cc +378 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.h +125 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.cc +699 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.h +103 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/SimplePool.h +75 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/SmallRect.h +143 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.cc +535 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.h +69 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.cc +107 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.h +67 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/main.cc +114 -0
- package/vendor/node-pty-fork/deps/winpty/src/agent/subdir.mk +61 -0
- package/vendor/node-pty-fork/deps/winpty/src/configurations.gypi +60 -0
- package/vendor/node-pty-fork/deps/winpty/src/debugserver/DebugServer.cc +117 -0
- package/vendor/node-pty-fork/deps/winpty/src/debugserver/subdir.mk +41 -0
- package/vendor/node-pty-fork/deps/winpty/src/include/winpty.h +242 -0
- package/vendor/node-pty-fork/deps/winpty/src/include/winpty_constants.h +131 -0
- package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
- package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
- package/vendor/node-pty-fork/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
- package/vendor/node-pty-fork/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
- package/vendor/node-pty-fork/deps/winpty/src/libwinpty/subdir.mk +46 -0
- package/vendor/node-pty-fork/deps/winpty/src/libwinpty/winpty.cc +970 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/AgentMsg.h +38 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.cc +103 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.h +102 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.cc +187 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.h +38 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.cc +138 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.h +55 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/GetCommitHash.bat +13 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/Mutex.h +54 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/OsModule.h +63 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.cc +36 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.h +45 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilder.h +227 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.cc +55 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.h +80 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/TimeMeasurement.h +63 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.h +104 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.cc +252 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.h +29 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.cc +55 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.h +64 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.cc +57 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.h +43 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.cc +42 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.h +27 -0
- package/vendor/node-pty-fork/deps/winpty/src/shared/winpty_snprintf.h +99 -0
- package/vendor/node-pty-fork/deps/winpty/src/subdir.mk +5 -0
- package/vendor/node-pty-fork/deps/winpty/src/tests/subdir.mk +28 -0
- package/vendor/node-pty-fork/deps/winpty/src/tests/trivial_test.cc +158 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.cc +86 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.h +31 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/main.cc +729 -0
- package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/subdir.mk +41 -0
- package/vendor/node-pty-fork/deps/winpty/src/winpty.gyp +206 -0
- package/vendor/node-pty-fork/deps/winpty/vcbuild.bat +83 -0
- package/vendor/node-pty-fork/lib/conpty_console_list_agent.js +20 -0
- package/vendor/node-pty-fork/lib/conpty_console_list_agent.js.map +1 -0
- package/vendor/node-pty-fork/lib/eventEmitter2.js +47 -0
- package/vendor/node-pty-fork/lib/eventEmitter2.js.map +1 -0
- package/vendor/node-pty-fork/lib/eventEmitter2.test.js +30 -0
- package/vendor/node-pty-fork/lib/eventEmitter2.test.js.map +1 -0
- package/vendor/node-pty-fork/lib/index.js +51 -0
- package/vendor/node-pty-fork/lib/index.js.map +1 -0
- package/vendor/node-pty-fork/lib/interfaces.js +7 -0
- package/vendor/node-pty-fork/lib/interfaces.js.map +1 -0
- package/vendor/node-pty-fork/lib/shared/conout.js +11 -0
- package/vendor/node-pty-fork/lib/shared/conout.js.map +1 -0
- package/vendor/node-pty-fork/lib/terminal.js +190 -0
- package/vendor/node-pty-fork/lib/terminal.js.map +1 -0
- package/vendor/node-pty-fork/lib/terminal.test.js +139 -0
- package/vendor/node-pty-fork/lib/terminal.test.js.map +1 -0
- package/vendor/node-pty-fork/lib/testUtils.test.js +28 -0
- package/vendor/node-pty-fork/lib/testUtils.test.js.map +1 -0
- package/vendor/node-pty-fork/lib/types.js +7 -0
- package/vendor/node-pty-fork/lib/types.js.map +1 -0
- package/vendor/node-pty-fork/lib/unixTerminal.js +304 -0
- package/vendor/node-pty-fork/lib/unixTerminal.js.map +1 -0
- package/vendor/node-pty-fork/lib/unixTerminal.test.js +330 -0
- package/vendor/node-pty-fork/lib/unixTerminal.test.js.map +1 -0
- package/vendor/node-pty-fork/lib/utils.js +17 -0
- package/vendor/node-pty-fork/lib/utils.js.map +1 -0
- package/vendor/node-pty-fork/lib/windowsConoutConnection.js +122 -0
- package/vendor/node-pty-fork/lib/windowsConoutConnection.js.map +1 -0
- package/vendor/node-pty-fork/lib/windowsPtyAgent.js +324 -0
- package/vendor/node-pty-fork/lib/windowsPtyAgent.js.map +1 -0
- package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js +90 -0
- package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js.map +1 -0
- package/vendor/node-pty-fork/lib/windowsTerminal.js +201 -0
- package/vendor/node-pty-fork/lib/windowsTerminal.js.map +1 -0
- package/vendor/node-pty-fork/lib/windowsTerminal.test.js +203 -0
- package/vendor/node-pty-fork/lib/windowsTerminal.test.js.map +1 -0
- package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js +22 -0
- package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js.map +1 -0
- package/vendor/node-pty-fork/package.json +35 -0
- package/vendor/node-pty-fork/scripts/apply-patches.mjs +341 -0
- package/vendor/node-pty-fork/scripts/fetch-upstream.mjs +41 -0
- package/vendor/node-pty-fork/scripts/install-smoke.cjs +59 -0
- package/vendor/node-pty-fork/scripts/smoke-load.cjs +10 -0
- package/vendor/node-pty-fork/scripts/sync-upstream.mjs +29 -0
- package/vendor/node-pty-fork/scripts/verify-runtime.cjs +54 -0
- package/vendor/node-pty-fork/scripts/verify-runtime.test.cjs +22 -0
- package/vendor/node-pty-fork/scripts/verify-tarball.cjs +80 -0
- package/vendor/node-pty-fork/src/conpty_console_list_agent.ts +19 -0
- package/vendor/node-pty-fork/src/eventEmitter2.test.ts +30 -0
- package/vendor/node-pty-fork/src/eventEmitter2.ts +48 -0
- package/vendor/node-pty-fork/src/index.ts +51 -0
- package/vendor/node-pty-fork/src/interfaces.ts +129 -0
- package/vendor/node-pty-fork/src/native.d.ts +56 -0
- package/vendor/node-pty-fork/src/shared/conout.ts +15 -0
- package/vendor/node-pty-fork/src/terminal.test.ts +119 -0
- package/vendor/node-pty-fork/src/terminal.ts +211 -0
- package/vendor/node-pty-fork/src/testUtils.test.ts +23 -0
- package/vendor/node-pty-fork/src/tsconfig.json +22 -0
- package/vendor/node-pty-fork/src/types.ts +15 -0
- package/vendor/node-pty-fork/src/unix/pty.cc +826 -0
- package/vendor/node-pty-fork/src/unix/spawn-helper.cc +23 -0
- package/vendor/node-pty-fork/src/unixTerminal.test.ts +335 -0
- package/vendor/node-pty-fork/src/unixTerminal.ts +320 -0
- package/vendor/node-pty-fork/src/utils.ts +9 -0
- package/vendor/node-pty-fork/src/win/conpty.cc +500 -0
- package/vendor/node-pty-fork/src/win/conpty_console_list.cc +43 -0
- package/vendor/node-pty-fork/src/win/path_util.cc +73 -0
- package/vendor/node-pty-fork/src/win/path_util.h +22 -0
- package/vendor/node-pty-fork/src/win/winpty.cc +322 -0
- package/vendor/node-pty-fork/src/windowsConoutConnection.ts +79 -0
- package/vendor/node-pty-fork/src/windowsPtyAgent.test.ts +94 -0
- package/vendor/node-pty-fork/src/windowsPtyAgent.ts +323 -0
- package/vendor/node-pty-fork/src/windowsTerminal.test.ts +214 -0
- package/vendor/node-pty-fork/src/windowsTerminal.ts +208 -0
- package/vendor/node-pty-fork/src/worker/conoutSocketWorker.ts +22 -0
- package/vendor/node-pty-fork/typings/node-pty.d.ts +203 -0
- package/dist/public/assets/WorkbenchShellRoute-DyaMnPfS.js +0 -1
- package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
- package/dist/server/modules/channels/wechat-claw-client.js +0 -245
- package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
//
|
|
2
|
+
// 2015-09-25
|
|
3
|
+
// I measured these limits on the size of a single ReadConsoleOutputW call.
|
|
4
|
+
// The limit seems to more-or-less disppear with Windows 8, which is the first
|
|
5
|
+
// OS to stop using ALPCs for console I/O. My guess is that the new I/O
|
|
6
|
+
// method does not use the 64KiB shared memory buffer that the ALPC method
|
|
7
|
+
// uses.
|
|
8
|
+
//
|
|
9
|
+
// I'm guessing the remaining difference between Windows 8/8.1 and Windows 10
|
|
10
|
+
// might be related to the 32-vs-64-bitness.
|
|
11
|
+
//
|
|
12
|
+
// Client OSs
|
|
13
|
+
//
|
|
14
|
+
// Windows XP 32-bit VM ==> up to 13304 characters
|
|
15
|
+
// - 13304x1 works, but 13305x1 fails instantly
|
|
16
|
+
// Windows 7 32-bit VM ==> between 16-17 thousand characters
|
|
17
|
+
// - 16000x1 works, 17000x1 fails instantly
|
|
18
|
+
// - 163x100 *crashes* conhost.exe but leaves VeryLargeRead.exe running
|
|
19
|
+
// Windows 8 32-bit VM ==> between 240-250 million characters
|
|
20
|
+
// - 10000x24000 works, but 10000x25000 does not
|
|
21
|
+
// Windows 8.1 32-bit VM ==> between 240-250 million characters
|
|
22
|
+
// - 10000x24000 works, but 10000x25000 does not
|
|
23
|
+
// Windows 10 64-bit VM ==> no limit (tested to 576 million characters)
|
|
24
|
+
// - 24000x24000 works
|
|
25
|
+
// - `ver` reports [Version 10.0.10240], conhost.exe and ConhostV1.dll are
|
|
26
|
+
// 10.0.10240.16384 for file and product version. ConhostV2.dll is
|
|
27
|
+
// 10.0.10240.16391 for file and product version.
|
|
28
|
+
//
|
|
29
|
+
// Server OSs
|
|
30
|
+
//
|
|
31
|
+
// Windows Server 2008 64-bit VM ==> 14300-14400 characters
|
|
32
|
+
// - 14300x1 works, 14400x1 fails instantly
|
|
33
|
+
// - This OS does not have conhost.exe.
|
|
34
|
+
// - `ver` reports [Version 6.0.6002]
|
|
35
|
+
// Windows Server 2008 R2 64-bit VM ==> 15600-15700 characters
|
|
36
|
+
// - 15600x1 works, 15700x1 fails instantly
|
|
37
|
+
// - This OS has conhost.exe, and procexp.exe reveals console ALPC ports in
|
|
38
|
+
// use in conhost.exe.
|
|
39
|
+
// - `ver` reports [Version 6.1.7601], conhost.exe is 6.1.7601.23153 for file
|
|
40
|
+
// and product version.
|
|
41
|
+
// Windows Server 2012 64-bit VM ==> at least 100 million characters
|
|
42
|
+
// - 10000x10000 works (VM had only 1GiB of RAM, so I skipped larger tests)
|
|
43
|
+
// - This OS has Windows 8's task manager and procexp.exe reveals the same
|
|
44
|
+
// lack of ALPC ports and the same \Device\ConDrv\* files as Windows 8.
|
|
45
|
+
// - `ver` reports [Version 6.2.9200], conhost.exe is 6.2.9200.16579 for file
|
|
46
|
+
// and product version.
|
|
47
|
+
//
|
|
48
|
+
// To summarize:
|
|
49
|
+
//
|
|
50
|
+
// client-OS server-OS notes
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// XP Server 2008 CSRSS, small reads
|
|
53
|
+
// 7 Server 2008 R2 ALPC-to-conhost, small reads
|
|
54
|
+
// 8, 8.1 Server 2012 new I/O interface, large reads allowed
|
|
55
|
+
// 10 <no server OS yet> enhanced console w/rewrapping
|
|
56
|
+
//
|
|
57
|
+
// (Presumably, Win2K, Vista, and Win2K3 behave the same as XP. conhost.exe
|
|
58
|
+
// was announced as a Win7 feature.)
|
|
59
|
+
//
|
|
60
|
+
|
|
61
|
+
#include <windows.h>
|
|
62
|
+
#include <assert.h>
|
|
63
|
+
#include <vector>
|
|
64
|
+
|
|
65
|
+
#include "TestUtil.cc"
|
|
66
|
+
|
|
67
|
+
int main(int argc, char *argv[]) {
|
|
68
|
+
long long width = 9000;
|
|
69
|
+
long long height = 9000;
|
|
70
|
+
|
|
71
|
+
assert(argc >= 1);
|
|
72
|
+
if (argc == 4) {
|
|
73
|
+
width = atoi(argv[2]);
|
|
74
|
+
height = atoi(argv[3]);
|
|
75
|
+
} else {
|
|
76
|
+
if (argc == 3) {
|
|
77
|
+
width = atoi(argv[1]);
|
|
78
|
+
height = atoi(argv[2]);
|
|
79
|
+
}
|
|
80
|
+
wchar_t args[1024];
|
|
81
|
+
swprintf(args, 1024, L"CHILD %lld %lld", width, height);
|
|
82
|
+
startChildProcess(args);
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const HANDLE conout = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
87
|
+
|
|
88
|
+
setWindowPos(0, 0, 1, 1);
|
|
89
|
+
setBufferSize(width, height);
|
|
90
|
+
setWindowPos(0, 0, std::min(80LL, width), std::min(50LL, height));
|
|
91
|
+
|
|
92
|
+
setCursorPos(0, 0);
|
|
93
|
+
printf("A");
|
|
94
|
+
fflush(stdout);
|
|
95
|
+
setCursorPos(width - 2, height - 1);
|
|
96
|
+
printf("B");
|
|
97
|
+
fflush(stdout);
|
|
98
|
+
|
|
99
|
+
trace("sizeof(CHAR_INFO) = %d", (int)sizeof(CHAR_INFO));
|
|
100
|
+
|
|
101
|
+
trace("Allocating buffer...");
|
|
102
|
+
CHAR_INFO *buffer = new CHAR_INFO[width * height];
|
|
103
|
+
assert(buffer != NULL);
|
|
104
|
+
memset(&buffer[0], 0, sizeof(CHAR_INFO));
|
|
105
|
+
memset(&buffer[width * height - 2], 0, sizeof(CHAR_INFO));
|
|
106
|
+
|
|
107
|
+
COORD bufSize = { width, height };
|
|
108
|
+
COORD bufCoord = { 0, 0 };
|
|
109
|
+
SMALL_RECT readRegion = { 0, 0, width - 1, height - 1 };
|
|
110
|
+
trace("ReadConsoleOutputW: calling...");
|
|
111
|
+
BOOL success = ReadConsoleOutputW(conout, buffer, bufSize, bufCoord, &readRegion);
|
|
112
|
+
trace("ReadConsoleOutputW: success=%d", success);
|
|
113
|
+
|
|
114
|
+
assert(buffer[0].Char.UnicodeChar == L'A');
|
|
115
|
+
assert(buffer[width * height - 2].Char.UnicodeChar == L'B');
|
|
116
|
+
trace("Top-left and bottom-right characters read successfully!");
|
|
117
|
+
|
|
118
|
+
Sleep(30000);
|
|
119
|
+
|
|
120
|
+
delete [] buffer;
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Sending VK_PAUSE to the console window almost works as a mechanism for
|
|
3
|
+
* pausing it, but it doesn't because the console could turn off the
|
|
4
|
+
* ENABLE_LINE_INPUT console mode flag.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#define _WIN32_WINNT 0x0501
|
|
8
|
+
#include <stdio.h>
|
|
9
|
+
#include <stdlib.h>
|
|
10
|
+
#include <windows.h>
|
|
11
|
+
|
|
12
|
+
CALLBACK DWORD pausingThread(LPVOID dummy)
|
|
13
|
+
{
|
|
14
|
+
if (1) {
|
|
15
|
+
Sleep(1000);
|
|
16
|
+
HWND hwnd = GetConsoleWindow();
|
|
17
|
+
SendMessage(hwnd, WM_KEYDOWN, VK_PAUSE, 1);
|
|
18
|
+
Sleep(1000);
|
|
19
|
+
SendMessage(hwnd, WM_KEYDOWN, VK_ESCAPE, 1);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (0) {
|
|
23
|
+
INPUT_RECORD ir;
|
|
24
|
+
memset(&ir, 0, sizeof(ir));
|
|
25
|
+
ir.EventType = KEY_EVENT;
|
|
26
|
+
ir.Event.KeyEvent.bKeyDown = TRUE;
|
|
27
|
+
ir.Event.KeyEvent.wVirtualKeyCode = VK_PAUSE;
|
|
28
|
+
ir.Event.KeyEvent.wRepeatCount = 1;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
int main()
|
|
35
|
+
{
|
|
36
|
+
HANDLE hin = GetStdHandle(STD_INPUT_HANDLE);
|
|
37
|
+
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
38
|
+
COORD c = { 0, 0 };
|
|
39
|
+
|
|
40
|
+
DWORD mode;
|
|
41
|
+
GetConsoleMode(hin, &mode);
|
|
42
|
+
SetConsoleMode(hin, mode &
|
|
43
|
+
~(ENABLE_LINE_INPUT));
|
|
44
|
+
|
|
45
|
+
CreateThread(NULL, 0,
|
|
46
|
+
pausingThread, NULL,
|
|
47
|
+
0, NULL);
|
|
48
|
+
|
|
49
|
+
int i = 0;
|
|
50
|
+
while (true) {
|
|
51
|
+
Sleep(100);
|
|
52
|
+
printf("%d\n", ++i);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Demonstrates a conhost hang that occurs when widening the console buffer
|
|
3
|
+
* while selection is in progress. The problem affects the new Windows 10
|
|
4
|
+
* console, not the "legacy" console mode that Windows 10 also includes.
|
|
5
|
+
*
|
|
6
|
+
* First tested with:
|
|
7
|
+
* - Windows 10.0.10240
|
|
8
|
+
* - conhost.exe version 10.0.10240.16384
|
|
9
|
+
* - ConhostV1.dll version 10.0.10240.16384
|
|
10
|
+
* - ConhostV2.dll version 10.0.10240.16391
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
#include <windows.h>
|
|
14
|
+
#include <stdio.h>
|
|
15
|
+
#include <stdlib.h>
|
|
16
|
+
#include <wchar.h>
|
|
17
|
+
|
|
18
|
+
#include "TestUtil.cc"
|
|
19
|
+
|
|
20
|
+
const int SC_CONSOLE_MARK = 0xFFF2;
|
|
21
|
+
const int SC_CONSOLE_SELECT_ALL = 0xFFF5;
|
|
22
|
+
|
|
23
|
+
int main(int argc, char *argv[]) {
|
|
24
|
+
if (argc == 1) {
|
|
25
|
+
startChildProcess(L"CHILD");
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
setWindowPos(0, 0, 1, 1);
|
|
30
|
+
setBufferSize(80, 25);
|
|
31
|
+
setWindowPos(0, 0, 80, 25);
|
|
32
|
+
|
|
33
|
+
countDown(5);
|
|
34
|
+
|
|
35
|
+
SendMessage(GetConsoleWindow(), WM_SYSCOMMAND, SC_CONSOLE_SELECT_ALL, 0);
|
|
36
|
+
Sleep(2000);
|
|
37
|
+
|
|
38
|
+
// This API call does not return. In the console window, the "Select All"
|
|
39
|
+
// operation appears to end. The console window becomes non-responsive,
|
|
40
|
+
// and the conhost.exe process must be killed from the Task Manager.
|
|
41
|
+
// (Killing this test program or closing the console window is not
|
|
42
|
+
// sufficient.)
|
|
43
|
+
//
|
|
44
|
+
// The same hang occurs whether line resizing is off or on. It happens
|
|
45
|
+
// with both "Mark" and "Select All". Calling setBufferSize with the
|
|
46
|
+
// existing buffer size does not hang, but calling it with only a changed
|
|
47
|
+
// buffer height *does* hang. Calling setWindowPos does not hang.
|
|
48
|
+
setBufferSize(120, 25);
|
|
49
|
+
|
|
50
|
+
printf("Done...\n");
|
|
51
|
+
Sleep(2000);
|
|
52
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Demonstrates some wrapping behaviors of the new Windows 10 console.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
#include <windows.h>
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
#include <stdlib.h>
|
|
8
|
+
|
|
9
|
+
#include "TestUtil.cc"
|
|
10
|
+
|
|
11
|
+
int main(int argc, char *argv[]) {
|
|
12
|
+
if (argc == 1) {
|
|
13
|
+
startChildProcess(L"CHILD");
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
setWindowPos(0, 0, 1, 1);
|
|
18
|
+
setBufferSize(40, 20);
|
|
19
|
+
setWindowPos(0, 0, 40, 20);
|
|
20
|
+
|
|
21
|
+
system("cls");
|
|
22
|
+
|
|
23
|
+
repeatChar(39, 'A'); repeatChar(1, ' ');
|
|
24
|
+
repeatChar(39, 'B'); repeatChar(1, ' ');
|
|
25
|
+
printf("\n");
|
|
26
|
+
|
|
27
|
+
repeatChar(39, 'C'); repeatChar(1, ' ');
|
|
28
|
+
repeatChar(39, 'D'); repeatChar(1, ' ');
|
|
29
|
+
printf("\n");
|
|
30
|
+
|
|
31
|
+
repeatChar(40, 'E');
|
|
32
|
+
repeatChar(40, 'F');
|
|
33
|
+
printf("\n");
|
|
34
|
+
|
|
35
|
+
repeatChar(39, 'G'); repeatChar(1, ' ');
|
|
36
|
+
repeatChar(39, 'H'); repeatChar(1, ' ');
|
|
37
|
+
printf("\n");
|
|
38
|
+
|
|
39
|
+
Sleep(2000);
|
|
40
|
+
|
|
41
|
+
setChar(39, 0, '*', 0x24);
|
|
42
|
+
setChar(39, 1, '*', 0x24);
|
|
43
|
+
|
|
44
|
+
setChar(39, 3, ' ', 0x24);
|
|
45
|
+
setChar(39, 4, ' ', 0x24);
|
|
46
|
+
|
|
47
|
+
setChar(38, 6, ' ', 0x24);
|
|
48
|
+
setChar(38, 7, ' ', 0x24);
|
|
49
|
+
|
|
50
|
+
Sleep(2000);
|
|
51
|
+
setWindowPos(0, 0, 35, 20);
|
|
52
|
+
setBufferSize(35, 20);
|
|
53
|
+
trace("DONE");
|
|
54
|
+
|
|
55
|
+
printf("Sleeping forever...\n");
|
|
56
|
+
while(true) { Sleep(1000); }
|
|
57
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#include <windows.h>
|
|
2
|
+
|
|
3
|
+
#include "TestUtil.cc"
|
|
4
|
+
|
|
5
|
+
int main(int argc, char *argv[]) {
|
|
6
|
+
if (argc == 1) {
|
|
7
|
+
startChildProcess(L"CHILD");
|
|
8
|
+
return 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const int WIDTH = 25;
|
|
12
|
+
|
|
13
|
+
setWindowPos(0, 0, 1, 1);
|
|
14
|
+
setBufferSize(WIDTH, 40);
|
|
15
|
+
setWindowPos(0, 0, WIDTH, 20);
|
|
16
|
+
|
|
17
|
+
system("cls");
|
|
18
|
+
|
|
19
|
+
for (int i = 0; i < 100; ++i) {
|
|
20
|
+
printf("FOO(%d)\n", i);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
repeatChar(5, '\n');
|
|
24
|
+
repeatChar(WIDTH * 5, '.');
|
|
25
|
+
repeatChar(10, '\n');
|
|
26
|
+
setWindowPos(0, 20, WIDTH, 20);
|
|
27
|
+
writeBox(0, 5, 1, 10, '|');
|
|
28
|
+
|
|
29
|
+
Sleep(120000);
|
|
30
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A Win32 program that reads raw console input with ReadFile and echos
|
|
3
|
+
* it to stdout.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
#include <conio.h>
|
|
8
|
+
#include <windows.h>
|
|
9
|
+
|
|
10
|
+
int main()
|
|
11
|
+
{
|
|
12
|
+
int count = 0;
|
|
13
|
+
HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
|
|
14
|
+
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
15
|
+
SetConsoleMode(hStdIn, 0);
|
|
16
|
+
|
|
17
|
+
while (true) {
|
|
18
|
+
DWORD actual;
|
|
19
|
+
char ch;
|
|
20
|
+
ReadFile(hStdIn, &ch, 1, &actual, NULL);
|
|
21
|
+
printf("%02x ", ch);
|
|
22
|
+
if (++count == 50)
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A Win32 program that reads raw console input with getch and echos
|
|
3
|
+
* it to stdout.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
#include <conio.h>
|
|
8
|
+
|
|
9
|
+
int main()
|
|
10
|
+
{
|
|
11
|
+
int count = 0;
|
|
12
|
+
while (true) {
|
|
13
|
+
int ch = getch();
|
|
14
|
+
printf("%02x ", ch);
|
|
15
|
+
if (++count == 50)
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#define _WIN32_WINNT 0x0501
|
|
2
|
+
#include "../src/shared/DebugClient.cc"
|
|
3
|
+
#include <windows.h>
|
|
4
|
+
#include <stdio.h>
|
|
5
|
+
|
|
6
|
+
const int SC_CONSOLE_MARK = 0xFFF2;
|
|
7
|
+
|
|
8
|
+
CALLBACK DWORD writerThread(void*)
|
|
9
|
+
{
|
|
10
|
+
while (true) {
|
|
11
|
+
Sleep(1000);
|
|
12
|
+
trace("writing");
|
|
13
|
+
printf("X\n");
|
|
14
|
+
trace("written");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
int main()
|
|
19
|
+
{
|
|
20
|
+
CreateThread(NULL, 0, writerThread, NULL, 0, NULL);
|
|
21
|
+
trace("marking console");
|
|
22
|
+
HWND hwnd = GetConsoleWindow();
|
|
23
|
+
PostMessage(hwnd, WM_SYSCOMMAND, SC_CONSOLE_MARK, 0);
|
|
24
|
+
|
|
25
|
+
Sleep(2000);
|
|
26
|
+
|
|
27
|
+
trace("reading output");
|
|
28
|
+
CHAR_INFO buf[1];
|
|
29
|
+
COORD bufSize = { 1, 1 };
|
|
30
|
+
COORD zeroCoord = { 0, 0 };
|
|
31
|
+
SMALL_RECT readRect = { 0, 0, 0, 0 };
|
|
32
|
+
ReadConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE),
|
|
33
|
+
buf,
|
|
34
|
+
bufSize,
|
|
35
|
+
zeroCoord,
|
|
36
|
+
&readRect);
|
|
37
|
+
trace("done reading output");
|
|
38
|
+
|
|
39
|
+
Sleep(2000);
|
|
40
|
+
|
|
41
|
+
PostMessage(hwnd, WM_CHAR, 27, 0x00010001);
|
|
42
|
+
|
|
43
|
+
Sleep(1100);
|
|
44
|
+
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This test demonstrates that putting a console into selection mode does not
|
|
3
|
+
* block the low-level console APIs, even though it blocks WriteFile.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#define _WIN32_WINNT 0x0501
|
|
7
|
+
#include "../src/shared/DebugClient.cc"
|
|
8
|
+
#include <windows.h>
|
|
9
|
+
#include <stdio.h>
|
|
10
|
+
|
|
11
|
+
const int SC_CONSOLE_MARK = 0xFFF2;
|
|
12
|
+
|
|
13
|
+
CALLBACK DWORD writerThread(void*)
|
|
14
|
+
{
|
|
15
|
+
CHAR_INFO xChar, fillChar;
|
|
16
|
+
memset(&xChar, 0, sizeof(xChar));
|
|
17
|
+
xChar.Char.AsciiChar = 'X';
|
|
18
|
+
xChar.Attributes = 7;
|
|
19
|
+
memset(&fillChar, 0, sizeof(fillChar));
|
|
20
|
+
fillChar.Char.AsciiChar = ' ';
|
|
21
|
+
fillChar.Attributes = 7;
|
|
22
|
+
COORD oneCoord = { 1, 1 };
|
|
23
|
+
COORD zeroCoord = { 0, 0 };
|
|
24
|
+
|
|
25
|
+
while (true) {
|
|
26
|
+
SMALL_RECT writeRegion = { 5, 5, 5, 5 };
|
|
27
|
+
WriteConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE),
|
|
28
|
+
&xChar, oneCoord,
|
|
29
|
+
zeroCoord,
|
|
30
|
+
&writeRegion);
|
|
31
|
+
Sleep(500);
|
|
32
|
+
SMALL_RECT scrollRect = { 1, 1, 20, 20 };
|
|
33
|
+
COORD destCoord = { 0, 0 };
|
|
34
|
+
ScrollConsoleScreenBuffer(GetStdHandle(STD_OUTPUT_HANDLE),
|
|
35
|
+
&scrollRect,
|
|
36
|
+
NULL,
|
|
37
|
+
destCoord,
|
|
38
|
+
&fillChar);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
int main()
|
|
43
|
+
{
|
|
44
|
+
CreateThread(NULL, 0, writerThread, NULL, 0, NULL);
|
|
45
|
+
trace("marking console");
|
|
46
|
+
HWND hwnd = GetConsoleWindow();
|
|
47
|
+
PostMessage(hwnd, WM_SYSCOMMAND, SC_CONSOLE_MARK, 0);
|
|
48
|
+
|
|
49
|
+
Sleep(2000);
|
|
50
|
+
|
|
51
|
+
trace("reading output");
|
|
52
|
+
CHAR_INFO buf[1];
|
|
53
|
+
COORD bufSize = { 1, 1 };
|
|
54
|
+
COORD zeroCoord = { 0, 0 };
|
|
55
|
+
SMALL_RECT readRect = { 0, 0, 0, 0 };
|
|
56
|
+
ReadConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE),
|
|
57
|
+
buf,
|
|
58
|
+
bufSize,
|
|
59
|
+
zeroCoord,
|
|
60
|
+
&readRect);
|
|
61
|
+
trace("done reading output");
|
|
62
|
+
|
|
63
|
+
Sleep(2000);
|
|
64
|
+
|
|
65
|
+
PostMessage(hwnd, WM_CHAR, 27, 0x00010001);
|
|
66
|
+
|
|
67
|
+
Sleep(1100);
|
|
68
|
+
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Creates a window station and starts a process under it. The new process
|
|
3
|
+
* also gets a new console.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include <windows.h>
|
|
7
|
+
#include <string.h>
|
|
8
|
+
#include <stdio.h>
|
|
9
|
+
|
|
10
|
+
int main()
|
|
11
|
+
{
|
|
12
|
+
BOOL success;
|
|
13
|
+
|
|
14
|
+
SECURITY_ATTRIBUTES sa;
|
|
15
|
+
memset(&sa, 0, sizeof(sa));
|
|
16
|
+
sa.bInheritHandle = TRUE;
|
|
17
|
+
|
|
18
|
+
HWINSTA originalStation = GetProcessWindowStation();
|
|
19
|
+
printf("originalStation == 0x%x\n", originalStation);
|
|
20
|
+
HWINSTA station = CreateWindowStation(NULL,
|
|
21
|
+
0,
|
|
22
|
+
WINSTA_ALL_ACCESS,
|
|
23
|
+
&sa);
|
|
24
|
+
printf("station == 0x%x\n", station);
|
|
25
|
+
if (!SetProcessWindowStation(station))
|
|
26
|
+
printf("SetWindowStation failed!\n");
|
|
27
|
+
HDESK desktop = CreateDesktop("Default", NULL, NULL,
|
|
28
|
+
/*dwFlags=*/0, GENERIC_ALL,
|
|
29
|
+
&sa);
|
|
30
|
+
printf("desktop = 0x%x\n", desktop);
|
|
31
|
+
|
|
32
|
+
char stationName[256];
|
|
33
|
+
stationName[0] = '\0';
|
|
34
|
+
success = GetUserObjectInformation(station, UOI_NAME,
|
|
35
|
+
stationName, sizeof(stationName),
|
|
36
|
+
NULL);
|
|
37
|
+
printf("stationName = [%s]\n", stationName);
|
|
38
|
+
|
|
39
|
+
char startupDesktop[256];
|
|
40
|
+
sprintf(startupDesktop, "%s\\Default", stationName);
|
|
41
|
+
|
|
42
|
+
STARTUPINFO sui;
|
|
43
|
+
PROCESS_INFORMATION pi;
|
|
44
|
+
memset(&sui, 0, sizeof(sui));
|
|
45
|
+
memset(&pi, 0, sizeof(pi));
|
|
46
|
+
sui.cb = sizeof(STARTUPINFO);
|
|
47
|
+
sui.lpDesktop = startupDesktop;
|
|
48
|
+
|
|
49
|
+
// Start a cmd subprocess, and have it start its own cmd subprocess.
|
|
50
|
+
// Both subprocesses will connect to the same non-interactive window
|
|
51
|
+
// station.
|
|
52
|
+
|
|
53
|
+
const char program[] = "c:\\windows\\system32\\cmd.exe";
|
|
54
|
+
char cmdline[256];
|
|
55
|
+
sprintf(cmdline, "%s /c cmd", program);
|
|
56
|
+
success = CreateProcess(program,
|
|
57
|
+
cmdline,
|
|
58
|
+
NULL,
|
|
59
|
+
NULL,
|
|
60
|
+
/*bInheritHandles=*/FALSE,
|
|
61
|
+
/*dwCreationFlags=*/CREATE_NEW_CONSOLE,
|
|
62
|
+
NULL, NULL,
|
|
63
|
+
&sui,
|
|
64
|
+
&pi);
|
|
65
|
+
|
|
66
|
+
printf("pid == %d\n", pi.dwProcessId);
|
|
67
|
+
|
|
68
|
+
// This sleep is necessary. We must give the child enough time to
|
|
69
|
+
// connect to the specified window station.
|
|
70
|
+
Sleep(5000);
|
|
71
|
+
|
|
72
|
+
SetProcessWindowStation(originalStation);
|
|
73
|
+
CloseWindowStation(station);
|
|
74
|
+
CloseDesktop(desktop);
|
|
75
|
+
Sleep(5000);
|
|
76
|
+
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A Win32 program that scrolls and writes to the console using the ioctl-like
|
|
3
|
+
* interface.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
#include <windows.h>
|
|
8
|
+
|
|
9
|
+
int main()
|
|
10
|
+
{
|
|
11
|
+
HANDLE conout = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
12
|
+
|
|
13
|
+
for (int i = 0; i < 80; ++i) {
|
|
14
|
+
|
|
15
|
+
CONSOLE_SCREEN_BUFFER_INFO info;
|
|
16
|
+
GetConsoleScreenBufferInfo(conout, &info);
|
|
17
|
+
|
|
18
|
+
SMALL_RECT src = { 0, 1, info.dwSize.X - 1, info.dwSize.Y - 1 };
|
|
19
|
+
COORD destOrigin = { 0, 0 };
|
|
20
|
+
CHAR_INFO fillCharInfo = { 0 };
|
|
21
|
+
fillCharInfo.Char.AsciiChar = ' ';
|
|
22
|
+
fillCharInfo.Attributes = 7;
|
|
23
|
+
ScrollConsoleScreenBuffer(conout,
|
|
24
|
+
&src,
|
|
25
|
+
NULL,
|
|
26
|
+
destOrigin,
|
|
27
|
+
&fillCharInfo);
|
|
28
|
+
|
|
29
|
+
CHAR_INFO buffer = { 0 };
|
|
30
|
+
buffer.Char.AsciiChar = 'X';
|
|
31
|
+
buffer.Attributes = 7;
|
|
32
|
+
COORD bufferSize = { 1, 1 };
|
|
33
|
+
COORD bufferCoord = { 0, 0 };
|
|
34
|
+
SMALL_RECT writeRegion = { 0, 0, 0, 0 };
|
|
35
|
+
writeRegion.Left = writeRegion.Right = i;
|
|
36
|
+
writeRegion.Top = writeRegion.Bottom = 5;
|
|
37
|
+
WriteConsoleOutput(conout,
|
|
38
|
+
&buffer, bufferSize, bufferCoord,
|
|
39
|
+
&writeRegion);
|
|
40
|
+
|
|
41
|
+
Sleep(250);
|
|
42
|
+
}
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// I noticed this on the ConEmu web site:
|
|
2
|
+
//
|
|
3
|
+
// https://social.msdn.microsoft.com/Forums/en-US/40c8e395-cca9-45c8-b9b8-2fbe6782ac2b/readconsoleoutput-cause-access-violation-writing-location-exception
|
|
4
|
+
// https://conemu.github.io/en/MicrosoftBugs.html
|
|
5
|
+
//
|
|
6
|
+
// In Windows 7, 8, and 8.1, a ReadConsoleOutputW with an out-of-bounds read
|
|
7
|
+
// region crashes the application. I have reproduced the problem on Windows 8
|
|
8
|
+
// and 8.1, but not on Windows 7.
|
|
9
|
+
//
|
|
10
|
+
|
|
11
|
+
#include <windows.h>
|
|
12
|
+
|
|
13
|
+
#include "TestUtil.cc"
|
|
14
|
+
|
|
15
|
+
int main() {
|
|
16
|
+
setWindowPos(0, 0, 1, 1);
|
|
17
|
+
setBufferSize(80, 25);
|
|
18
|
+
setWindowPos(0, 0, 80, 25);
|
|
19
|
+
|
|
20
|
+
const HANDLE conout = openConout();
|
|
21
|
+
static CHAR_INFO lineBuf[80];
|
|
22
|
+
SMALL_RECT readRegion = { 0, 999, 79, 999 };
|
|
23
|
+
const BOOL ret = ReadConsoleOutputW(conout, lineBuf, {80, 1}, {0, 0}, &readRegion);
|
|
24
|
+
ASSERT(!ret && "ReadConsoleOutputW should have failed");
|
|
25
|
+
|
|
26
|
+
return 0;
|
|
27
|
+
}
|