Commit Graph
76 Commits
Author SHA1 Message Date
Ray Bennett 4699a741c1 feat: give console programs the terminal as their console (#31)
* feat: give console programs the terminal as their console

A standard handle that is a terminal, and CONIN$, CONOUT$ and CON, now act as a console: modes map to terminal settings,
reads and writes convert between UTF-16 and the terminal's UTF-8, terminal input becomes key events, and Ctrl+C runs the
control handlers. Files and pipes still fail the console functions, as on Windows.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the console functions over the terminal, their pty test and the guest test program from the public console API documentation.

* test: let the console client run by hand, saying which step failed

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Made the exact size and cursor checks optional and gave each step an instruction and a failure number.

* feat: follow the console cursor through the output instead of asking the terminal

Programs that redraw their command line read and move the cursor on every key; asking the terminal each time was slow, and
wrong on terminals that never answer. The terminal is now asked only when the position may be stale.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the cursor tracker, WriteConsoleOutputCharacter, ScrollConsoleScreenBuffer, the resize events and their tests.
2026-10-28 17:11:25 +01:00
mirkobrombin b387f9f6f2 feat: serve App-V package files from their virtual file system folders 2026-10-27 16:10:47 +00:00
mirkobrombin 7ebf58957c feat: add RegSetKeyValue and the key and value information classes of the native registry API 2026-10-27 14:46:45 +00:00
mirkobrombin c895d8e91c feat: add PathCchCanonicalize and the command line argument helpers 2026-10-27 14:32:31 +00:00
mirkobrombin 7a8f280f1f feat: add Windows Runtime strings and app package queries
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Fixed the string header layout and wrote the activation factory registry, device family and package queries from the public headers.
2026-10-27 09:20:47 +00:00
mirkobrombin 06553d4e9b feat: add the AccPropServices class, COM global streams and CoInitializeSecurity
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the AccPropServices component, the global stream and CoInitializeSecurity handlers and their tests from the public headers and documentation.
2026-10-27 08:46:04 +00:00
mirkobrombin 6ae62f2dbe feat: give 32-bit programs the task allocator through CoGetMalloc
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the IMalloc object for 32-bit programs.
2026-10-27 08:09:12 +00:00
mirkobrombin 212559e5df feat: add a WinHTTP client over the WinINet engine with kept-alive connections
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the WinHTTP layer over the existing WinINet client, connection reuse, header queries and the test against a local server.
2026-10-27 08:06:59 +00:00
mirkobrombin d709d8dc74 feat: add Punycode domain names and the locale name table 2026-10-27 08:01:30 +00:00
mirkobrombin 48636a234b feat: show theme names in the API trace 2026-10-27 03:59:26 +00:00
mirkobrombin 5378f9b89b feat: fetch over HTTP and HTTPS with WinINet 2026-10-27 02:55:04 +00:00
mirkobrombin d4adc44e8d feat: give an SSH client's dialogs double clicks, split buttons and drop-down lists 2026-10-27 01:17:41 +00:00
mirkobrombin 44a593867c feat: run an SSH client's terminal and file transfer windows 2026-10-26 23:13:38 +00:00
mirkobrombin bcae123e00 feat: keep the runtime's libraries as files in the system directories
Closes #22
2026-10-26 14:17:44 +00:00
mirkobrombin 915726b147 docs: explain how to build the components installers need
Closes #18
2026-10-26 14:17:43 +00:00
mirkobrombin 609a4ae4c4 feat: receive socket messages and wait on socket events 2026-10-26 14:17:43 +00:00
mirkobrombin 5ca60c6e94 feat: add an experimental X11 desktop backend
Refs #10

Assisted-by: Claude Code:claude-opus-5.5
AI-Scope: wrote the XCB presentation, Vulkan and EGL surface support, the --desktop=x11 option and the Xvfb tests from the issue #10 plan
2026-10-25 16:17:49 +00:00
mirkobrombin 1fc462a544 fix: preserve handles and security tokens across processes 2026-10-25 08:52:34 +01:00
mirkobrombin 61927c1cc8 fix: handle shared waits and semaphore wakeups 2026-10-25 06:09:55 +01:00
mirkobrombin acddd36586 fix: wait for matching window messages without busy polling
Assisted-by: Codex:GPT-6
AI-Scope: Implement blocking message waits and cover message filters and wakeups.
2026-10-25 04:38:33 +01:00
mirkobrombin 14d44fb628 feat: add a native OpenGL bridge 2026-10-25 01:39:15 +02:00
mirkobrombin 2e076d674f feat: add process enumeration and ETW controller APIs 2026-10-25 00:01:22 +02:00
mirkobrombin 5cb1d1b313 fix: reserve TLS slot zero for executable storage 2026-10-24 16:24:28 +00:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
mirkobrombin f9f3a67f1c fix: serve the Windows calls that Inno Setup, 7-Zip and VLC make 2026-10-23 21:27:15 +00:00
Mirko Brombin c17a04a8a6 fix: publish the shell functions installers take by number and report WOW64 through IsOS 2026-10-17 13:01:45 +00:00
Mirko Brombin 657815ab15 chore: trace registry names and compared strings of 32-bit programs 2026-10-16 16:48:16 +00:00
Mirko Brombin 93acf0d441 feat: load libraries only mapped, as data or through their own manifest, and read plain files through the LZ functions 2026-10-03 10:21:49 +00:00
Mirko Brombin f4509d0c1f feat: implement the Windows APIs that .NET programs and their installers call 2026-09-23 00:12:56 +00:00
Mirko Brombin a7372ea452 feat: add print debugger output and component traces when asked, with the arguments of failing reads 2026-09-22 02:53:35 +00:00
Mirko Brombin f6fb246628 feat: read whole strings in lstrlenW, lstrcpyW and the shlwapi search functions 2026-09-22 02:53:35 +00:00
Mirko Brombin 1a2ffde613 feat: answer waveform device queries with no capture device, and none at all for 32-bit programs 2026-09-21 23:52:38 +00:00
Mirko Brombin 6a91fac5a6 feat: name the file of any loaded library in 32-bit GetModuleFileNameA 2026-09-21 23:48:03 +00:00
Mirko Brombin 0d482c302e feat: add the ANSI profile, SHFileOperationA and OpenFile calls installers use, with case-blind INI paths 2026-09-21 23:48:03 +00:00
Mirko Brombin a9fe7807dc feat: build the ReactOS setup helpers and setup API as components that INF installers run through 2026-09-21 23:47:16 +00:00
Mirko Brombin 540aa97138 feat: dispatch the exceptions of 32-bit programs along their frames, with the C++ exceptions of msvcrt 2026-09-21 16:09:02 +00:00
Mirko Brombin 12a85bc9d2 feat: add wake 32-bit message waits for window messages 2026-09-21 15:02:08 +00:00
Mirko Brombin fc7b77af91 feat: run messages sent to another thread's window on that thread in 32-bit programs 2026-09-21 14:17:07 +00:00
Mirko Brombin a0b800e98b feat: read and write RIFF files and memory through the multimedia file functions 2026-09-21 14:17:07 +00:00
Mirko Brombin cbb6ceae39 feat: add apply the visual style and runtime options the prefix registry records when a process starts 2026-09-21 11:15:42 +00:00
Mirko Brombin bb9cf43cf1 feat: create and activate side-by-side contexts from manifests and give programs the common controls 6 classes their manifests ask for 2026-09-21 10:33:51 +00:00
Mirko Brombin 2cc0e0ce88 feat: trace whole paths and the URL and path calls of 32-bit programs 2026-09-21 09:15:03 +00:00
Mirko Brombin 9316d3d67a feat: look libraries named by a system directory path up by name and load the runtime's components dynamically in 32-bit programs 2026-09-21 07:15:16 +00:00
Mirko Brombin 5d6213c688 feat: add hand thread handles to other processes, serve handle requests in 32-bit processes, read 32-bit wait arrays at their width and queue work items 2026-09-21 06:06:44 +00:00
Mirko Brombin 3fc2448977 feat: build the Windows Installer, cabinet, side-by-side and structured storage components from ReactOS and serve them to programs 2026-09-21 06:00:50 +02:00
Mirko Brombin b264bbd6c6 feat: find shared libraries in the system directory, keep the system's own libraries the runtime's, and redirect System32 for 32-bit programs 2026-09-21 05:13:14 +02:00
Mirko Brombin bc97c80eed feat: add sleep on the reactor's descriptors and a wake event when idle, and poll other processes' frames only for windows they draw into 2026-09-20 20:45:03 +02:00
Mirko Brombin eda064950b feat: add place 32-bit allocations in free low gaps and serve completion-routine file I/O, PathCch calls and dependencies beside a library loaded by path 2026-09-20 07:03:09 +00:00
Mirko Brombin 5a6297633c feat: show Steam's sign-in window with cross-process window surfaces, web fonts, elevation and service configuration 2026-09-03 18:36:13 +02:00
Mirko Brombin 26fbeabc78 feat: run Steam's web UI with cross-process handles, per-thread message queues, socket events and process identity 2026-09-03 16:48:12 +02:00