Thamatip Chitpong [Tue, 6 Dec 2022 12:50:12 +0000 (19:50 +0700)]
[SYSDM] System Parameters: Add close button (#4928)
Follow-up of PR #4891 (commit
f125cd1c7).
Hermès Bélusca-Maïto [Mon, 5 Dec 2022 23:48:49 +0000 (00:48 +0100)]
[KDGDB] Fix compilation following commit
de81021ba (#4930)
Use cast to be compatible with "public" structure definition.
Katayama Hirofumi MZ [Mon, 5 Dec 2022 02:29:02 +0000 (11:29 +0900)]
[BOOTDATA][INF] Add Japanese (ja-JP) translation to timezone
CORE-18706
Egor Ananyin [Sun, 4 Dec 2022 15:04:23 +0000 (18:04 +0300)]
[DESK] Fix screensaver preview after calling its settings (#4921)
Fix a bug when after closing the settings window for a screensaver,
the preview for it wouldn't restart.
- Keep waiting for messages from the settings window while it's open
- Fix leaking two handles to avoid creating zombie processes
CORE-18680
Thamatip Chitpong [Sun, 4 Dec 2022 14:12:36 +0000 (21:12 +0700)]
[MMSYS] Prevent the same sound from being added multiple times (#4898)
Check if the list already contains the sound.
Katayama Hirofumi MZ [Sun, 4 Dec 2022 13:11:46 +0000 (22:11 +0900)]
[NTGDI][FREETYPE] Follow-up of #4920 (
e316d61); Rename functions
Follow the naming policy.
- ftGdiGetRealGlyph --> IntGetRealGlyph
- ftGdiGlyphCacheGet --> IntFindGlyphCache
- ftGdiGlyphSet --> IntGetBitmapGlyphNoCache
- ftGdiGlyphCacheSet --> IntGetBitmapGlyphWithCache
- FtMatrixFromMx --> IntMatrixFromMx
CORE-11848
Katayama Hirofumi MZ [Sun, 4 Dec 2022 01:15:56 +0000 (10:15 +0900)]
[OSK] Delete WS_EX_NOACTIVATE workaround code
CORE-18528
Katayama Hirofumi MZ [Sat, 3 Dec 2022 23:58:34 +0000 (08:58 +0900)]
[NTUSER] Fix SetActiveWindow return value
Apply set-active.patch. CORE-13257
Thamatip Chitpong [Sat, 3 Dec 2022 17:06:45 +0000 (00:06 +0700)]
[SENDMAIL] Fix Send To -> Desktop (create shortcut) behavior (#4913)
Several fixes and improvements to the CDeskLinkDropHandler:
- Set default working directory for shortcuts (except folders and zip files)
- Copy existing shortcut to the desktop if the source file is a shortcut
- Prevent destination file name collision
Verified on Windows XP SP3 and Windows 7 SP1.
Thamatip Chitpong [Sat, 3 Dec 2022 15:00:22 +0000 (22:00 +0700)]
[EXPLORER] Fix Windows XP compatibility (#4923)
CORE-18694
It regressed by 0.4.15-dev-4596-g
1aa95f389772901970369afa3abfb207df6f57f6
Katayama Hirofumi MZ [Sat, 3 Dec 2022 04:03:28 +0000 (13:03 +0900)]
[NTGDI][FREETYPE] lfEscapement for TextOut (#4920)
Rotation and shearing transformation of font/text is now available. Retrial of PR #1207.
- Rename ftGdiGetTextWidth as IntGetTextDisposition and add a Y parameter.
- Apply lfEscapement values (by multiplying matrices).
- Add IntEngFillPolygon and IntEngFillBox helper functions.
CORE-11848
Timo Kreuzer [Wed, 31 Aug 2022 13:08:41 +0000 (15:08 +0200)]
[NTOS] Fix double free on allocation failure in ObCreateObject
Timo Kreuzer [Sun, 28 Aug 2022 16:18:58 +0000 (18:18 +0200)]
[SPOOLSS] Fix prototype of BuildOtherNamesFromMachineName
Timo Kreuzer [Mon, 15 Aug 2022 12:53:44 +0000 (15:53 +0300)]
[NTOS] Improve MmDeleteProcessAddressSpace
Timo Kreuzer [Sun, 14 Aug 2022 20:33:18 +0000 (23:33 +0300)]
[NTOS] Improve MmCleanProcessAddressSpace
Timo Kreuzer [Mon, 8 Aug 2022 07:40:40 +0000 (09:40 +0200)]
[WIN32K] Fix missing NULL check in IntCreateDIBitmap
Timo Kreuzer [Tue, 9 Aug 2022 13:48:48 +0000 (15:48 +0200)]
[NTOS:EX] Initialize ExpTimeRefreshLock
Timo Kreuzer [Mon, 8 Aug 2022 13:44:03 +0000 (15:44 +0200)]
[KERNEL32] Fix a bug in GetVolumeNameForRoot
Timo Kreuzer [Sun, 14 Aug 2022 20:40:39 +0000 (22:40 +0200)]
[WS2_32_APITEST] Fix uninitialized variable
Timo Kreuzer [Mon, 8 Aug 2022 07:33:02 +0000 (10:33 +0300)]
[CRT_APITEST] Restore direction flag to avoid false RTC break
With set direction flag the variables will not be initialized properly.
Timo Kreuzer [Sat, 25 Jun 2022 10:27:39 +0000 (12:27 +0200)]
[CRT] Add simplistic fallback implementation of sincos to make GCC 11 happy
Timo Kreuzer [Tue, 23 Aug 2022 14:37:14 +0000 (17:37 +0300)]
[CRT] Replace amd64 math functions/stubs with libm
Timo Kreuzer [Sun, 10 Jul 2022 13:46:04 +0000 (16:46 +0300)]
[FREELDR] Add stubs for pow and log to avoid pulling in the data from CRT (maybe fix printf functions instead?)
Timo Kreuzer [Sat, 18 Jun 2022 08:19:18 +0000 (10:19 +0200)]
[CRT] Add basic version of handle_error
Timo Kreuzer [Tue, 23 Aug 2022 21:36:33 +0000 (23:36 +0200)]
[CRT] Improve _matherr handling
Timo Kreuzer [Sun, 12 Jun 2022 18:01:53 +0000 (20:01 +0200)]
[CRT] Implement _set_statfp
Timo Kreuzer [Mon, 20 Jun 2022 15:29:01 +0000 (18:29 +0300)]
[ASMPP] Implement asm preprocessor
This converts ML style assembly to GAS compatible syntax
Timo Kreuzer [Fri, 24 Jun 2022 18:21:17 +0000 (20:21 +0200)]
[LIBM] Fix ldexp.c / ldexpf.c
Timo Kreuzer [Fri, 24 Jun 2022 18:05:47 +0000 (20:05 +0200)]
[LIBM] Add ldexp.c and ldexpf.c from aocl-libm-ose
Timo Kreuzer [Sat, 25 Jun 2022 10:00:01 +0000 (13:00 +0300)]
[LIBM] Fix up some asm files
This allows to compile them with GAS after translation
Timo Kreuzer [Sat, 18 Jun 2022 10:16:29 +0000 (12:16 +0200)]
[LIBM] Convert tables from asm to C
Timo Kreuzer [Sun, 12 Jun 2022 11:16:22 +0000 (14:16 +0300)]
[LIBM] Fix build
Timo Kreuzer [Sun, 12 Jun 2022 10:02:01 +0000 (12:02 +0200)]
[LIBM] Import win-libm from AMD
Source: https://github.com/amd/win-libm
Timo Kreuzer [Wed, 24 Aug 2022 11:10:02 +0000 (13:10 +0200)]
[XDK] Silence some GCC x64 warnings
Timo Kreuzer [Wed, 24 Aug 2022 08:42:19 +0000 (10:42 +0200)]
[CRT] Add a workaround for CORE-18255
Katayama Hirofumi MZ [Wed, 30 Nov 2022 23:54:39 +0000 (08:54 +0900)]
[NTGDI][FREETYPE] lfWidth for GetTextMetrics and GetCharWidth (#4919)
- Add lfWidth member into FONTGDI structure.
- Delete IntWidthMatrix function.
- Fix IntRequestFontSize behavior for processing lfWidth value.
- Apply lfWidth in GetTextMetrics and GetCharWidth.
- Ignore the XFORM values in GetTextMetrics and GetCharWidth.
CORE-11848
Katayama Hirofumi MZ [Tue, 29 Nov 2022 10:41:09 +0000 (19:41 +0900)]
[NTGDI][FREETYPE] Add special structure for hashing (#4916)
Add FONT_CACHE_HASHED structure and use it.
CORE-11848
Mark Jansen [Fri, 25 Nov 2022 09:45:47 +0000 (10:45 +0100)]
[RPCRT4] Sync msvc.S with WINE's inline assembly,
as suggested by Thomas
CORE-18505
Hermès Bélusca-Maïto [Mon, 28 Nov 2022 14:02:39 +0000 (15:02 +0100)]
[PSDK] Fix x64 incompatibilities in ***Box_GetItemData(). Addendum to
6572dd7f4.
Katayama Hirofumi MZ [Sun, 27 Nov 2022 22:34:58 +0000 (07:34 +0900)]
[NTGDI][FREETYPE] lfWidth for GetTextExtentPoint32 (#4912)
- Apply LOGFONT.lfWidth in TextIntGetTextExtentPoint function.
- Delete XFORM transformation in TextIntGetTextExtentPoint (to be simply ignored).
CORE-11848
Thomas Faber [Fri, 25 Nov 2022 14:57:36 +0000 (09:57 -0500)]
[LIBPNG] Update to version 1.6.39. CORE-18670
Thomas Faber [Fri, 25 Nov 2022 14:57:24 +0000 (09:57 -0500)]
[LIBPNG] Update to version 1.6.38. CORE-18670
Jose Carlos Jesus [Sun, 27 Nov 2022 15:00:46 +0000 (15:00 +0000)]
[NEWDEV][SHELL32][SYSSETUP] Improve browse driver folder dialog (#4293)
[NEWDEV] Enable OK button in "Browse For Folder" only when driver is found
Implement BrowseCallbackProc() function which sends BFFM_ENABLEOK message
to the browse dialog whether the driver is found in the selected folder.
Pass the search path to the browse dialog depending on the current index
of the drop down combobox. If the index is not set, just get window text.
Then, automatically expand the tree view to the specified path by sending
BFFM_SETSELECTION message.
Also fix a bug in SearchDriverRecursive() where a duplicate backslash
was added to the PathWithPattern string variable.
[SHELL32] Do not add Recycle Bin to the tree view items in FillTreeView()
[SYSSETUP] Add source path to the "Installation Sources" multi-string key
Each time the ProcessSetupInf() is being called, add the source path
to the "Installation Sources" registry key, if it's not added there yet.
The driver search path combobox will be then populated using its value.
Katayama Hirofumi MZ [Sun, 27 Nov 2022 03:42:25 +0000 (12:42 +0900)]
[NTGDI][FREETYPE] Follow-up of #4901 (
57702ed)
- Drop APIENTRYs for static functions.
- Use FIELD_OFFSET instead of offsetof.
- Delete unnecessary ASSERTs.
- Add annotations.
CORE-11848
Katayama Hirofumi MZ [Sun, 27 Nov 2022 02:26:44 +0000 (11:26 +0900)]
[NTGDI][FREETYPE] Font cache: Use hash (#4901)
- Modify FONT_CACHE_ENTRY structure to use hash.
- Use hash in ftGdiGlyphCacheGet and ftGdiGlyphCacheSet functions.
- Reduce function call overheads by using FONT_CACHE_ENTRY, in getting glyph.
CORE-11848
Katayama Hirofumi MZ [Sun, 27 Nov 2022 02:25:11 +0000 (11:25 +0900)]
[GDI32_APITEST] Strengthen TextTransform testcase (#4908)
- Simplify and refactor the tests.
- Add the tests for LOGFONT.lfWidth and LOGFONT.lfEscapement.
CORE-11848
Hermès Bélusca-Maïto [Fri, 25 Nov 2022 16:16:58 +0000 (17:16 +0100)]
[NDK] Fix description for PIO_APC_ROUTINE.
[RTL] Typo fix.
Hermès Bélusca-Maïto [Fri, 25 Nov 2022 15:17:10 +0000 (16:17 +0100)]
[HALX86] Update the PCI hardware IDs database.
Extracted from the pci.ids database at https://pci-ids.ucw.cz/ from 2022-11-25 03:15:01 .
Maintained by Albert Pool, Martin Mares, and other volunteers from the PCI ID Project.
Thomas Faber [Sun, 20 Nov 2022 15:45:09 +0000 (10:45 -0500)]
[LIBXML2] Update to version 2.10.3. CORE-17766
Thomas Faber [Sun, 20 Nov 2022 15:43:32 +0000 (10:43 -0500)]
[LIBXSLT] Update to version 1.1.37. CORE-17766
Thomas Faber [Sun, 20 Nov 2022 15:42:25 +0000 (10:42 -0500)]
[LIBXML2] Update to version 2.10.2. CORE-17766
Thomas Faber [Sun, 20 Nov 2022 15:33:39 +0000 (10:33 -0500)]
[LIBXML2] Update to version 2.10.1. CORE-17766
Katayama Hirofumi MZ [Fri, 25 Nov 2022 02:23:29 +0000 (11:23 +0900)]
[NTGDI][FREETYPE] Font cache: Use FT_Matrix instead of MATRIX (#4900)
- Use FT_Matrix instead of MATRIX in FONT_CACHE_ENTRY structure.
- Use FtMatrixFromMx and FT_Set_Transform instead of FtSetCoordinateTransform.
CORE-11848
Timo Kreuzer [Sat, 27 Aug 2022 14:09:41 +0000 (16:09 +0200)]
[NTOSKRNL] Print boot cycles on x64 just like on x86
Timo Kreuzer [Mon, 8 Aug 2022 07:37:16 +0000 (09:37 +0200)]
[NTOS] Fix a bug in KiPrepareUserDebugData
Timo Kreuzer [Mon, 8 Aug 2022 07:30:49 +0000 (09:30 +0200)]
[NTOS] Fix unwinding through KiThreadStartup
Timo Kreuzer [Mon, 22 Aug 2022 06:43:47 +0000 (08:43 +0200)]
[RTL] Implement RtlUnwind
Timo Kreuzer [Sun, 21 Aug 2022 15:23:51 +0000 (17:23 +0200)]
[RTL] Set unwind flags in RtlUnwindEx
Timo Kreuzer [Sat, 20 Aug 2022 19:41:10 +0000 (21:41 +0200)]
[RTL] Fixes for RtlpUnwindInternal
Timo Kreuzer [Fri, 19 Aug 2022 11:03:22 +0000 (13:03 +0200)]
[RTL] Fix RtlVirtualUnwind
Timo Kreuzer [Mon, 8 Aug 2022 07:31:08 +0000 (09:31 +0200)]
[RTL] Fix RtlpCaptureNonVolatileContextPointers
Timo Kreuzer [Mon, 8 Aug 2022 07:26:39 +0000 (09:26 +0200)]
[RTL] Implement x64 version of RtlInterlockedPushListSList
Timo Kreuzer [Wed, 31 Aug 2022 18:52:09 +0000 (20:52 +0200)]
[CRT] Implement _InterlockedCompareExchange128 intrinsic for GCC
Timo Kreuzer [Sun, 14 Aug 2022 12:41:53 +0000 (14:41 +0200)]
[HAL/x64] Fix x86BiosCall
Use an INT call stub and exit on the address after the stub instead or using iret (some BIOS code uses int / iret internally). This fixes the messed up display when trying to switch modes.
Timo Kreuzer [Sat, 27 Aug 2022 06:55:25 +0000 (08:55 +0200)]
[OLEAUT32] Implement x64 call_method in asm
This is based on the inline implementation for GCC.
Timo Kreuzer [Sun, 21 Aug 2022 15:18:15 +0000 (17:18 +0200)]
[NTOS] Fix NtContinue for x64
Timo Kreuzer [Sun, 21 Aug 2022 14:21:10 +0000 (16:21 +0200)]
[NTDLL_APITEST] Implement NtContinue test for x64
Hermès Bélusca-Maïto [Thu, 24 Nov 2022 02:22:39 +0000 (03:22 +0100)]
[PSDK][NTOS:KD64] Turns out, that even Clang in MSVC mode needs the 64-bits pointer extension hack!
Addendum to commit
de81021ba.
Otherwise, we get the following build error:
\ntoskrnl\kd64\kddata.c(532,5): error: initializer element is not a compile-time constant
PtrToUL64(RtlpBreakWithStatusInstruction),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\ntoskrnl\kd64\kddata.c(526,26): note: expanded from macro 'PtrToUL64'
#define PtrToUL64(x) ((ULPTR64)(x))
^~~~~~~~~~~~
Katayama Hirofumi MZ [Thu, 24 Nov 2022 05:18:20 +0000 (14:18 +0900)]
[NTGDI][FREETYPE] Simplify IntRequestFontSize and FONTGDI
FONTGDI.lfWidth and FONTGDI.EmHeight are not used.
Simplify code without setting these members.
CORE-11848
Katayama Hirofumi MZ [Thu, 24 Nov 2022 03:28:10 +0000 (12:28 +0900)]
[NTGDI][FREETYPE] Formatting code; Follow up #4865 (
a620c6f)
CORE-11848
Thomas Faber [Sun, 20 Nov 2022 15:17:45 +0000 (10:17 -0500)]
[LIBXML2] Update to version 2.10.0. CORE-17766
Thomas Faber [Sun, 20 Nov 2022 15:03:50 +0000 (10:03 -0500)]
[MSXML3][MSXML3_WINETEST] Partial sync to Wine to enable libxml2 update. CORE-17766
xml2: Import upstream release 2.10.0.
wine commit id
015491ab32742ace5218d37b1149c58803858214 by Alexandre Julliard <julliard@winehq.org>
Note: Upstream msxml3_test has switched away from WINE_NO_LONG_TYPES, so
I've kept the old printf format specifiers for now. Once we do a full
sync, we can get rid of __ROS_LONG64__ for this test and use them
unmodified.
Thomas Faber [Sun, 20 Nov 2022 14:49:42 +0000 (09:49 -0500)]
[LIBXSLT] Update to version 1.1.36. CORE-17766
This version was released after libxml2 2.10.0, but it removes
usage of some now-deprecated functions that would break the build.
Katayama Hirofumi MZ [Thu, 24 Nov 2022 02:51:04 +0000 (11:51 +0900)]
[NTGDI][FREETYPE] Simplify font rendering (#4865)
- Add ftGdiGetRealGlyph and ftGdiGetTextWidth helper functions.
- Optimize font rendering.
CORE-11848
Hermès Bélusca-Maïto [Thu, 24 Nov 2022 00:44:03 +0000 (01:44 +0100)]
[NTOS:KD] Rename the private acquire/release lock functions to fix GCC compilation.
If you ask why there are two sets of functions that do the same, it's
because this file (and the kdmain.c) will very soon some day be moved to
a transport dll, outside the kernel, and it will need these functions.
Hermès Bélusca-Maïto [Wed, 23 Nov 2022 22:24:59 +0000 (23:24 +0100)]
[NTOS:KD64] Implement KdLogDbgPrint() for the WinDbg !dbgprint command.
See this command's documentation:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-dbgprint
and the section "DbgPrint buffer and the debugger"
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/reading-and-filtering-debugging-messages#dbgprint-buffer-and-the-debugger
for more details.
- Loosely implement the function, based on our existing circular printout
buffers in kdio.c.
- Enable its usage in the KdpPrint() and KdpPrompt() functions.
Notice that this function will *only* capture the strings being sent **to**
the debugger, and not the strings the debugger itself produce. (This means
that we cannot use the KdPrintCircularBuffer as a replacement for our
KDBG dmesg one, for example...)
How to test:
Run ReactOS under WinDbg, and use the !dbgprint command to view the
buffer. You can also use the Memory Window, place yourself at the
address pointed by KdPrintCircularBuffer and KdPrintWritePointer, and
read its contents.
What you should observe:
Prior notice: The circular buffer in debug builds of ReactOS and Windows
is 0x8000 bytes large. In release builds, its size is down to 0x1000.
1- When you start e.g. the 2nd-stage GUI installation of ReactOS, going
past the initial "devices installation" and letting it stabilize on
the Welcome page, break into WinDbg and run the !dbgprint command. You
should notice that the end of its output is weirdly truncated, compared
to what has been actually emitted to the debug output. Comparing this
with the actual contents of the circular buffer (via Memory Window),
shows that the buffer contents is actually correct.
2- Copy all the text that has been output by the !dbgprint command and
paste it in an editor; count the number of all characters appearing +
newlines (only CR or LF), and observe that this number is "mysteriously"
equal to 16384 == 0x4000.
3- Continue running ReactOS installation for a little while, breaking back
back into WinDbg and looking at !dbgprint again. Its output seems to be
still stopping at the same place as before (but the actual buffer memory
contents shows otherwise). Continue running ROS installation, and break
into the debugger when ROS is about to restart. You should now observe
that the dbgprint buffer rolled over:
dd nt!KdPrintRolloverCount shows 1.
Carefully analysing the output of !dbgprint, however, you will notice
that it looks a bit garbage-y: the first part of the output is actually
truncated after 16384 characters, then you get a second part of the
buffer showing what ReactOS was printing while shutting down. Then
you get again what was shown at the top of the !dbgprint output.
(Of course, comparing with the actual contents of the circular buffer
in memory shows that its contents are fine...)
The reason of these strange observations, is because there is an intrinsic
bug in the !dbgprint command implementation (in kdexts.dll). Essentially,
it displays the contents of the circular buffer in two single dprintf()
calls: one for the "older" (bottom) part of the buffer:
[WritePointer, EndOfBuffer]
and one for the "newer" (upper) part of the buffer:
[CircularBuffer, WritePointer[ .
The first aspect of the bug (causing observation 3), is that those two
parts are not necessarily NULL-terminated strings (especially after
rollover), so for example, displaying the upper part of the buffer, will
potentially also display part of the buffer's bottom part.
The second aspect of the bug (explaining observations 1 and 2), is due
to the implementation of the dprintf() function (callback in dbgenv.dll).
There, it uses a fixed-sized buffer of size 0x4000 == 16384 characters.
Since the output of the circular buffer is not done by little chunks,
but by the two large parts, if any of those are larger than 0x4000 they
get truncated on display.
(This last observation is confirmed in a completely different context by
https://community.osr.com/discussion/112439/dprintf-s-max-string-length .)
Hermès Bélusca-Maïto [Wed, 23 Nov 2022 17:19:41 +0000 (18:19 +0100)]
[NTOS:KD64] Correctly initialize the KdPrint buffer data in KdDebuggerDataBlock so as to fix the WinDbg !dbgprint command.
Now, !dbgprint just shows an empty log (since we don't fill it), instead
of showing the following error:
kd> !dbgprint
Can't find DbgPrint buffer
Hermès Bélusca-Maïto [Wed, 23 Nov 2022 15:46:35 +0000 (16:46 +0100)]
[PSDK][NTOS:KD64] Rename GCC_ULONG64 to ULPTR64 to self-document the fact it stores a pointer as a 64-bit quantity.
But the underlying GCC stupidity is still there (15 years later).
However, enable it only in 32-bit GCC builds, not in 64-bits nor with MSVC.
See commit
b9cd3f2d9 (r25845) for some details.
GCC is indeed still incapable of casting 32-bit pointers up to 64-bits,
when static-initializing arrays (**outside** a function) without emitting
the error:
"error: initializer element is not constant"
(which might somehow indicate it actually tries to generate executable
code for casting the pointers, instead of doing it at compile-time).
Going down the rabbit hole, other stupidities show up:
Our PVOID64 type and the related POINTER_64 (in 32-bit archs), or the
PVOID32 and POINTER_32 (in 64-bit archs), are all silently broken in
GCC builds, because the pointer size attributes __ptr64 and __ptr32,
which are originally MSVC-specific, are defined to nothing in _mingw.h.
(And similarly for the __uptr and __sptr sign-extension attributes.)
Clang and other sane ompilers has since then implemented those (enabled
with -fms-extensions), but not GCC. The closest thing that could exist
for GCC is to do:
#define __ptr64 __attribute__((mode(DI)))
in order to get a 64-bit-sized pointer type with
typedef void* __ptr64 PVOID64;
but even this does not work, with the error:
"error: invalid pointer mode 'DI'"
Hermès Bélusca-Maïto [Wed, 23 Nov 2022 05:16:17 +0000 (06:16 +0100)]
[PSDK][NTOS:KD64] Update the KDDEBUGGER_DATA64 structure with new fields.
Information from the Windows 10 SDK and from
https://github.com/DarthTon/Blackbone/blob/master/src/BlackBoneDrv/NativeStructs.h
Hermès Bélusca-Maïto [Wed, 23 Nov 2022 05:02:13 +0000 (06:02 +0100)]
[PSDK] Clarify the FIXME comment about this mysterious warning.h (here for WDK compatibility).
Marcin Jabłoński [Tue, 22 Nov 2022 20:52:18 +0000 (21:52 +0100)]
[NTOS:KE/x64] Implement KeDisconnectInterrupt() for amd64 (#4883)
Choose the correct element of the KiUnexpectedRange array,
depending on the interrupt vector, the same way as here:
https://github.com/reactos/reactos/blob/
a2c6af0da4acbba9c254d003e9d9f4ea6e03ed63/ntoskrnl/ke/amd64/except.c#L77
And guard KeConnectInterrupt() execution with dispatcher lock.
CORE-14922
Hermès Bélusca-Maïto [Tue, 22 Nov 2022 00:49:16 +0000 (01:49 +0100)]
[NTOS:KDBG] Fix the ANSI escape sequences used to get terminal characteristics when printing with paging.
- Line-wrapping is enabled with 'ESC[?7h' (the '?' was forgotten).
Notice that the following reference also shows it wrong:
https://www.cse.psu.edu/~kxc104/class/cse472/09s/hw/hw7/vt100ansi.htm
- Terminal type is actually queried with 'ESC Z' (VT52-compatible), or
with 'ESC[c' (VT100-compatible). The antediluvian CTRL-E ('\x05')
control code gives instead a user-configurable (usually empty) string,
so it's not reliable.
Also, we don't really care about the returned result, we just need to
know that one has been sent.
Cross-checked with online documentation:
* "Digital VT100 User Guide" (EK-VT100-UG-001) (1st edition, August 1978,
reviewed November 1978).
* https://www.real-world-systems.com/docs/ANSIcode.html
* https://geoffg.net/Downloads/Terminal/TerminalEscapeCodes.pdf
* https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
* https://en.wikipedia.org/wiki/Enquiry_character
- Retrieve the size of the *controlling terminal* with escape sequences
only when it's a serial one: serial output is enabled *and* KDSERIAL
is set (i.e. user input through serial). See code for the actual logic
(the corresponding truth table is left as an exercise for the reader).
- Fix also a "Buffer" vs. "InBuffer" mismatch, that caused the whole
code to fail.
- For fallback terminal size values, use meaningful ones when SCREEN
is instead the controlling "terminal" (based on full-size BOOTVID
values).
- When echoing read characters during line-cooking, do direct output by
using KdpDprintf() instead of going through the heavy KdbpPrint() function.
This fixes some input artifacts like: 1. extra slowdowns due to
querying terminal size at each keypress, and 2. getting obnoxious
"--- Press q to abort ..." prompts in the middle of typing a long
comamnd because you are at the very bottom of the screen.
Hermès Bélusca-Maïto [Mon, 21 Nov 2022 16:48:02 +0000 (17:48 +0100)]
[NTOS:KD] Remove last remnant of KdpDetectConflicts, deprecated since 2007.
Addendum to commit
be2645ad8 (r25987).
Hermès Bélusca-Maïto [Mon, 21 Nov 2022 15:35:47 +0000 (16:35 +0100)]
[NTOS:KDBG] Deduplicate code between KdbpPrint() and KdbpPager().
Thomas Faber [Sat, 19 Nov 2022 20:10:55 +0000 (15:10 -0500)]
[LIBXML2] Update to version 2.9.14. CORE-17766
Thomas Faber [Sat, 19 Nov 2022 20:10:13 +0000 (15:10 -0500)]
[LIBXML2] Update to version 2.9.13. CORE-17766
Thomas Faber [Sat, 19 Nov 2022 20:07:16 +0000 (15:07 -0500)]
[LIBXML2] Fix forgotten config.h update. CORE-17766
Thomas Faber [Sat, 19 Nov 2022 20:08:52 +0000 (15:08 -0500)]
[LIBXSLT] Update to version 1.1.35. CORE-17766
Thomas Faber [Sat, 19 Nov 2022 19:41:58 +0000 (14:41 -0500)]
[LIBXSLT] Improve sync with upstream. CORE-17766
Makefile.am: this hasn't been updated in a while
security.c: WIN32 -> _WIN32 to keep the ROS-diff consistent with the rest
win32config.h/libxslt.h: remove unnecessary ROS-diff
xsltwin32config.h: this was missed in the 1.1.34 sync
xsltexports.h: mark a ROS-diff as such
Zebediah Figura [Sat, 20 Apr 2019 03:39:14 +0000 (22:39 -0500)]
[WINESYNC][WORDPAD] paint_ruler(): Use GetSysColorBrush()
Import wine-4.7 commit:
https://source.winehq.org/git/wine.git/commit/
dcd9376ae711d56778032f146480e1d1aaf245ef
Follow-up to 0.4.15-dev-5248-g
be014129a57.
Zebediah Figura [Sat, 20 Apr 2019 03:39:13 +0000 (22:39 -0500)]
[WINESYNC][USER32] MDI_AugmentFrameMenu(): Use GetSysColorBrush()
Import applicable part of wine-4.7 commit:
https://source.winehq.org/git/wine.git/commit/
8d251a1dd1d523bd20c30b355b79421340f53a80
Follow-up to 0.4.15-dev-5248-g
be014129a57.
Thomas Faber [Wed, 2 Nov 2022 00:10:04 +0000 (20:10 -0400)]
[NTOS:CM] Consistently use synchronous I/O for registry hives.
Our current CmpFileRead/CmpFileWrite do not wait for completion,
so will cause stack corruption if used on files opened in async
mode.
Jose Carlos Jesus [Sun, 20 Nov 2022 20:20:11 +0000 (20:20 +0000)]
[TRANSLATION] Improve Portuguese (pt-PT) translation (#4886)
- [APPWIZ] Improve pt-PT translation
- [INPUT] Update pt-PT translation
- [INTL] Fix typos in pt-PT translation
- [LICCPA] Improve pt-PT translation
- [SYSDM] Update and improve pt-PT translation
- [NTOBJSHEX] Update pt-PT translation
- [ZIPFLDR] Update and improve pt-PT translation
Jose Carlos Jesus [Sun, 20 Nov 2022 18:10:11 +0000 (18:10 +0000)]
[SHELL32] Prevent a second call to Drive Properties dialog (#4888)
CDefaultContextMenu::DoProperties provides a fallback call
to the property sheet testing the return value of the _DoCallback method,
which is ultimately the return value of SH_ShowDriveProperties().
SH_ShowDriveProperties() sometimes returns an HRESULT, however it is marked
as returning a BOOL. Then, DrivesContextMenuCallback() always handles this
result as an HRESULT.
Fix SH_ShowDriveProperties() to always return a BOOL as it is intended,
and in DrivesContextMenuCallback() handle the result accordingly.
CORE-18537
Jose Carlos Jesus [Sun, 20 Nov 2022 17:22:30 +0000 (17:22 +0000)]
[TASKMGR] Prevent context menu on idle process (#4889)
In Win2K3, there is no context menu on the System Idle Process.
CORE-18640
Thamatip Chitpong [Sat, 19 Nov 2022 17:08:04 +0000 (00:08 +0700)]
[SYSDM] System Parameters: Close dialog on ESC (#4891)
CORE-18610
Katayama Hirofumi MZ [Fri, 18 Nov 2022 23:42:20 +0000 (08:42 +0900)]
[REGEDIT] F4, Alt+D, Tab, and Shift+Tab (#4885)
CORE-12323
Hermès Bélusca-Maïto [Fri, 18 Nov 2022 17:08:21 +0000 (18:08 +0100)]
[NTOS:KD] Handle work-buffer allocation failure in KdpDebugLogInit. It can be ignored in KdpScreenInit.
Hermès Bélusca-Maïto [Fri, 18 Nov 2022 16:44:29 +0000 (17:44 +0100)]
[NTOS:KD] Cleanup of some old code.
- Remove KdbInit() macro and directly use KdbpCliInit() (since the place
where it was used was already within an #ifdef KDBG block).
- Declare KdpKdbgInit() only when KDBG is defined, move its definition
into kdio.c and remove the legacy wrappers/kdbg.c file.
And in KdbInitialize(), set KdpInitRoutine directly to the former,
instead of using the KdpKdbgInit indirection.
- Don't reset KdComPortInUse in KdpDebugLogInit().
- Minor refactorings: KdpSerialDebugPrint -> KdpSerialPrint and make it
static; argument name "Message" -> "String", "StringLength" -> "Length".
Hermès Bélusca-Maïto [Fri, 18 Nov 2022 15:23:06 +0000 (16:23 +0100)]
[NTOS:KD] Annotate KdInitSystem and remove redundant declaration in kd.h