137 Commits
Author SHA1 Message Date
mirkobrombin 124a14bd06 feat: add the OEM code pages 437 and 850 2026-10-28 16:56:01 +00:00
mirkobrombin dd792f82b8 fix: ask a process's windows to close when taskkill has no /F 2026-10-28 16:27:35 +00:00
mirkobrombin 9a4eaa040e test: import a .reg file with escapes, a split line and deletions 2026-10-28 16:27:30 +00:00
mirkobrombin 84a58b75f2 chore: merge main into the command-line tools 2026-10-28 16:32:10 +00:00
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
Ray Bennett bb3844ff88 feat: answer SHGetStockIconInfo with the system icons (#29)
Qt's QMessageBox and QFileDialog ask shell32 for the warning,
information, error and question icons, and the program ends when the
call is missing. The stock icons now map to the matching IDI_ system
icon, loaded at the large or small size with SHGSI_ICON, and the
structure reports the icon's index and user32.dll as its file. The
structure is laid out for the caller's width (0x220 bytes for 64-bit
programs, 0x218 for 32-bit ones), and one of another size is refused
with E_INVALIDARG.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the implementation from the documented SHSTOCKICONINFO
 layout and SIID_/SHGSI_ values, and the 32- and 64-bit
 stock_icon_client fixture. Prompt: a Qt program exits when it shows a message box.
2026-10-28 16:50:22 +01:00
Ray Bennett b66a9074fb fix: name a process started by hand by its program in the process snapshot (#35)
CreateToolhelp32Snapshot named another runtime process by the last argument on its host command line. For
`raven --run-process ... cmd.exe -- /c dir`, that is `dir`, so tasklist and process lookups by name missed it.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Took the first argument that is not an option as the program, and extended the snapshot test to start a child that checks its parent's name, for both widths.
2026-10-28 16:50:18 +01:00
Raymond Bennett 39e1ca33f0 feat: add the command-line tools a prompt has beside cmd
find, findstr, more, sort, where, xcopy, attrib, timeout, choice, whoami, hostname, tasklist, taskkill and reg, one program
each for both widths, copied into System32 and SysWOW64.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the fourteen tools and their shared runtime from Microsoft's public command reference, and the batch-file test.
2026-10-27 23:19:39 -04:00
Raymond Bennett ccca5c5b4e feat: give the command processor its parser, built-ins and line editor
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote cmd's parser, IF, FOR, CALL and SETLOCAL, the built-in commands, the prompt's line editor and the batch-file test from Microsoft's public cmd documentation.
2026-10-27 23:19:39 -04:00
Raymond Bennett ef953e9325 feat: start console programs on the terminal and give every prefix a cmd.exe
A console program started from a terminal gets it as its console without --stdio=inherit. CreateProcess runs .bat and .cmd
files through cmd /c, as Windows does. The console code pages start as UTF-8, since Raven has no table for code page 437.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the subsystem check, the batch-file launch, a first command processor from Microsoft's public cmd documentation and its test.
2026-10-27 23:19:39 -04:00
Raymond Bennett 097e087da7 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-27 23:19:31 -04:00
Raymond Bennett d3720c4de7 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.
2026-10-27 23:19:31 -04:00
Raymond Bennett 6e917ded1b 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.
2026-10-27 23:19:30 -04:00
mirkobrombin 1ce0c0324c feat: add Direct3D 10.1 device creation over d3d10core 2026-10-27 17:21:52 +00:00
mirkobrombin 777228a3d6 fix: add the interactive logon groups to the token and correct well-known SID types 2026-10-27 16:52:36 +00:00
mirkobrombin 8316f8fa0f fix: read %s as a wide string in wide printf with the legacy specifier option 2026-10-27 16:04:02 +00:00
mirkobrombin 66b943bca0 feat: add the C runtime entry points Office imports 2026-10-27 15:57:46 +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 5d7fd5b471 feat: add CreateFile2, host symbolic links and inheritable file handles 2026-10-27 13:42:09 +00:00
mirkobrombin 17717e397e fix: build the bcrypt and schannel tables outside their locks 2026-10-27 13:05:42 +00:00
mirkobrombin 6dc4e2a318 feat: add MSXML 6 and XmlLite to the installer components
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Added the MSXML 6 classes and XmlLite to the ReactOS component build, a libxml2 regexp patch and the tests.
2026-10-27 12:07:27 +00:00
mirkobrombin b679d1417c feat: add the Restart Manager
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the Restart Manager session functions and their test from the documentation.
2026-10-27 11:07:27 +00:00
mirkobrombin 56d33ace7e feat: add timer queues and thread pool timers
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote timer queues, private pools and GetThreadIOPendingFlag with their tests.
2026-10-27 10:53:49 +00:00
mirkobrombin cea6ca7a7a feat: resolve delay-loaded system libraries to the runtime's components
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Made the loader follow delay imports when choosing components, with a delay-load test.
2026-10-27 10:32:01 +00:00
mirkobrombin fdad9c4bd4 feat: answer local RPC authentication through the Windows logon packages 2026-10-27 10:19:21 +00:00
mirkobrombin afae655b0e feat: report integrity levels and owner descriptors for elevated and limited processes 2026-10-27 10:13:42 +00:00
mirkobrombin 9749c5bf4a feat: add WaitOnAddress for 32-bit programs
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the 32-bit address waits and their test.
2026-10-27 10:10:03 +00:00
mirkobrombin a85d869c82 feat: add the NetworkListManager class
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the NetworkListManager component and its test from the public headers.
2026-10-27 09:33:57 +00:00
mirkobrombin f88f629c58 feat: add the PackageManager class
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the PackageManager component and its test from the public Windows Runtime headers.
2026-10-27 09:22:27 +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 1f428eeee3 feat: report IPv4 adapters in GetAdaptersInfo and the user's region code
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote GetAdaptersInfo and GetUserDefaultGeoName from their documentation, with tests.
2026-10-27 08:38:05 +00:00
mirkobrombin 13e1a2e9cf feat: add the XML reader of the Web Services API
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the webservices XML reader component and its test from the public headers.
2026-10-27 08:24:49 +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 2df3ae0720 fix: let child windows draw their own borders in WM_NCPAINT 2026-10-27 05:44:20 +00:00
mirkobrombin 592900d2d8 feat: answer the dark mode functions uxtheme publishes by number 2026-10-27 05:44:20 +00:00
mirkobrombin e543a09c9a feat: draw the dark variants of visual styles programs ask for 2026-10-27 04:27:35 +00:00
mirkobrombin 870ca1a029 feat: draw a dark window frame when DWM is asked for one 2026-10-27 04:10:44 +00:00
mirkobrombin 994f19d58d feat: offer AES-GMAC and the secp256k1 curve through CNG 2026-10-27 03:32:33 +00:00
mirkobrombin 28c3c8814d fix: let transparent rich edit labels show their parent's background 2026-10-27 03:18:03 +00:00
mirkobrombin 1da5be6bbb feat: open the window menu from the caption 2026-10-27 02:08:53 +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 3bfea32812 feat: fold strings and describe the volume of an open file 2026-10-26 14:17:44 +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 609a4ae4c4 feat: receive socket messages and wait on socket events 2026-10-26 14:17:43 +00:00
mirkobrombin 2df1eed4b4 feat: secure connections through Schannel 2026-10-26 14:17:43 +00:00
mirkobrombin 4259bc0a56 feat: show the cursor programs choose on the host pointer 2026-10-26 06:11:52 +00:00
mirkobrombin 72ec37d544 perf: answer decided waits inside served calls 2026-10-26 00:17:53 +00:00