Commit graph

9016 commits

Author SHA1 Message Date
Eric Pouech 433bc12709 winedbg: Fix read access to variables with thread local storage.
No longer relying on loaded module info (getting index address out of
PE image, and caching it in struct dbg_module).

Co-authored-by: Evan Tang <etang@codeweavers.com>
2023-01-26 22:05:13 +01:00
Eric Pouech 224b33c2be winedbg: Track loaded modules.
Co-authored-by: Evan Tang <etang@codeweavers.com>
2023-01-26 22:05:13 +01:00
Eric Pouech e8c7920919 conhost.exe: Handle ctrl-\ in Wine.
Let conhost handle ctrl-\ instead of Unix tty, and pretend it's a
ctrl-pause/break key stroke.  This allows CUI application in processed
input mode not to close upon ctrl-\.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54141
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-25 10:04:02 +01:00
Eric Pouech fda954dfd4 conhost.exe: Handle ctrl-pause/break key strokes.
Note: this patch should be extended by adding insertion
of the CTRL_BREAK_EVENT into processes' crtl handler
(as it's done for CTRL_C_EVENT).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-25 10:04:00 +01:00
Eric Pouech 5fc54e3219 winedbg: Use debuggee's bitness for 'examine /a' command.
Also fixes stack dump in crash summary and 'info stack' command.
(We were using debugger's bitness instead).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 20:14:52 +01:00
Eric Pouech a89975f731 dbghelp: Expose the real path to the module in SymGetModuleInfo*().
Expose the real path of a loaded module (potentially read from
WINEDLLDIR or WINEBUILDDIR or overriden load order or ...).  This
improves gdb integration by passing the real path to the loaded
modules (instead of the paths in c:\windows\ system subdirectories).
Introduce new Wine only dbghelp's extended option to enable the
feature.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54250
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 18:25:58 +01:00
Eric Pouech 3055653c1e winedbg: Pass loaded image's file handle to dbghelp.
In some cases (running from build tree, overriding load order...), the
path to the module from the load DLL debug event isn't the real path
to the loaded module. So pass the handle to loaded module's image from
winedbg to dbghelp (to avoid image lookup).

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54250
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 18:24:13 +01:00
Rémi Bernon 03aa9e13e7 services: Use a separate allocation for NotifyParamsArray[0].params.
The pointer might be freed by RPC NdrPointerFree, which will try to use
a dedicated free call for the array elements, and fail.
2023-01-24 18:15:41 +01:00
Gabriel Ivăncescu 929fdbbf55 notepad: Fix uninitialized upper 64-bits of pos in DoFind.
And get rid of the hacky casts.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-01-18 22:55:19 +01:00
Eric Pouech ec05c03463 conhost: Initialize color_map when creating an alternate screen buffer.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54287
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-11 14:27:58 +01:00
Eric Pouech 8993f5720a conhost: Reset console attribute upon exit in unix mode.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-11 14:27:54 +01:00
Hugh McMaster 0e6b21ef1d conhost: Migrate from FontPitchFamily to FontFamily.
To ensure a seamless transition between value names, we try loading the
registry value from FontFamily first and FontPitchFamily second.

Any changes to the console font family are saved to the new value name.
2023-01-11 11:54:16 +01:00
Jinoh Kang 36ca172e85 regedit: Clip siblings when drawing list and tree views. 2023-01-06 10:41:21 +01:00
Jinoh Kang 8242b65172 regedit: Use the default WM_PAINT implementation for REGEDIT window. 2023-01-06 10:41:21 +01:00
Eric Pouech af215210f0 kernel32/tests: Skip some console tests on w1064v1909.
We get conhost.exe:tty failures on testbot:
- not for version prior to w1064v1909 (these tests require
  pseudo-consoles, which are not implemented in these Windows
  version).
- for w1064v1909
- not for W10 versions after w1064v1909.

So, we assume that pseudo-console support is immature in this
Windows version: skip all the remaining test at the first
discrepancy point.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53465
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-12-21 18:24:39 +01:00
Eric Pouech 0a7c04816f conhost: Don't print control characters for Unix tty.
They will be reinterpreted by Unix tty, leading to wrong display.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-12-20 22:37:02 +01:00
Eric Pouech a922577986 winedbg: Avoid passing a non allocated buffer to HeapFree.
Latest changes to heap management can lead to a crash in this situation.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-12-09 17:52:25 +01:00
Alex Henrie 5792785879 cmd: Use standard C functions for memory allocation. 2022-12-09 17:52:25 +01:00
Alexandre Julliard 57c58be77d winedbg: Fix printf format warnings on ARM platforms. 2022-12-08 18:11:23 +01:00
Alex Henrie 33ae61d79b winhlp32: Use standard C functions for memory allocation. 2022-12-07 20:27:26 +01:00
Eric Pouech cd0e949519 wineconsole: Set launched process name as created console title.
wineconsole was setting created console's title to '????\wineconsole.exe'.
This was preventing conhost to load its configuration according to
first running command path.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-12-05 20:04:54 +01:00
Alex Henrie b8b55de629 winecfg: Annotate allocation functions with __WINE_(DEALLOC|MALLOC). 2022-12-05 20:04:54 +01:00
Alex Henrie 1f4532d5c6 winecfg: Use standard C functions for memory allocation. 2022-12-05 20:04:54 +01:00
Alex Henrie 6136b54757 services: Use standard C functions for memory allocation. 2022-12-01 10:24:10 +01:00
Eric Pouech f2ca35bd80 cmd: Use OEM code page when reading a file.
Calling GetConsoleCP() when ReadConsoleW() fails (potentially indicating
that cmd.exe's instance isn't attached to a console) makes no sense.

In details, since GetConsoleCP() returns 0 when not attached to a console
to indicate error, we're in fact using CP_ACP.

So fallback explicitely to OEM CP (which is the default for CUI programs).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-25 18:09:57 +01:00
Rémi Bernon 1c30f7803c winepath: Free wine_get_(dos|unix)_file_name memory with HeapFree. 2022-11-25 18:09:57 +01:00
Paul Gofman eec6aea10a wmic: Support array of BSTRs in convert_to_bstr(). 2022-11-24 22:20:20 +01:00
Paul Gofman e3d7a3e3f6 wmic: Add nicconfig alias. 2022-11-24 22:20:20 +01:00
Paul Gofman 97b9d8ddbe wmic: Handle VariantChangeType() failures.
wmic currently crashes on, e. g., VT_EMPTY or VT_ARRAY types returned.
2022-11-24 22:20:20 +01:00
Paul Gofman 85b84a949c wmic: Call _BeginEnumeration() before iterating class object.
Otherwise enumeration fails on Windows.
2022-11-24 22:20:20 +01:00
Paul Gofman 6412b3dc3a wmic: Don't set WBEM_FLAG_FORWARD_ONLY flag on query.
The result access is not forward only.
2022-11-24 22:20:20 +01:00
Rémi Bernon f810a57590 rpcss: Use I_Rpc(Free|Allocate) in MIDL_user_(allocate|free).
In ept_map, rpcss uses TowerConstruct to allocate tower array elements.

The array is later released by the generated stub code, and each element
is ultimately freed using MIDL_user_free.

TowerConstruct always allocate memory using I_RpcAllocate, we must use
I_RpcFree to free it.
2022-11-23 17:59:47 +01:00
Alex Henrie dab61cdcd1 explorer: Put the calling convention inside the function pointer parentheses.
As required by MSVC.
2022-11-22 18:27:30 +01:00
Zhiyi Zhang 8459a5272a explorer: Use a valid taskbar position when the taskbar is hidden.
Some applications use FindWindowA() with class Shell_TrayWnd to find the taskbar window on Windows.
Then GetWindowRect() is called to get the taskbar window rectangle. Finally, the taskbar window
rectangle is subtracted from the primary screen rectangle to calculate the work area. Without a
valid taskbar window position, these applications end up getting an incorrect work area and going
down the wrong path. So use the same position and size as the host system panel for explorer taskbar
when it's hidden.
2022-11-17 10:00:24 +01:00
Zhiyi Zhang b6818e2c20 explorer/tests: Add taskbar tests. 2022-11-17 10:00:24 +01:00
Eric Pouech 8f1febc430 cmd: Don't write outside of variable array.
GCC 12.2 rightfully complains about an out-of-founds array access.
This can possibly happen for unsupported variable names.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-14 13:13:02 +01:00
Eric Pouech 41221452c8 winedbg: Don't use invalid address mode in exception prolog.
Removes a GCC 12.2 warning about printing NULL string.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-14 13:13:02 +01:00
Arkadiusz Hiler 92e4cad8e0 cmd/tests: Make sure for /f doesn't loop infinitely on NULs. 2022-11-10 09:48:30 +01:00
Eric Pouech e1c37c21da cmd: Use CRT file I/O function inside 'for /F' handling.
This allows:
- to mimic native behavior when a stray '\0' is present in file
  (in 'FOR /F' execution, it's interpreted as an EOF marker)
  (prevents an infinite loop)
- supports (with /USEBACKQ) unicode output (if BOM is present)

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53386
2022-11-10 09:48:23 +01:00
Alex Henrie 08ec06da54 uuid: Add propkey.h.
Needed to compile Tera Term.
2022-11-08 20:07:51 +01:00
Mohamad Al-Jaf 21ae94d437 certutil: Add stub program.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53086
2022-11-07 21:16:10 +01:00
Mohamad Al-Jaf 82e8d6036f setx: Add stub program.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53755
2022-11-07 21:16:10 +01:00
Alex Henrie 212e319dce cmd: Use the wcsrev function instead of reimplementing it. 2022-11-04 19:23:55 +01:00
Alex Henrie 6ee8f819cf cmd: Remove inapplicable comment from WCMD_getfileowner. 2022-11-04 19:23:55 +01:00
Zhiyi Zhang 957dfccb14 winecfg: Adjust top-level window rectangles after theme changes.
Manual tests show that calling EnableTheming() in uxtheme.dll doesn't update window sizes. So
it seems more appropriate to do it in winecfg.exe.
2022-11-02 17:19:44 +01:00
Zhiyi Zhang 982c9974a7 winecfg: Use SM_CYSIZE to set and get caption height.
After applying a theme with CaptionBarHeight set, caption height from SPI_GETNONCLIENTMETRICS is set
to the specified size. However in refresh_sysparams(), the caption height is refreshed and the value
from SM_CXSIZE is used and ends up overwriting the theme specified caption height. SM_CYSIZE is the
correct index instead of SM_CXSIZE.

You may need to turn a theme off and on for the correct caption height to take effect after the fix.
2022-11-02 17:19:42 +01:00
Eric Pouech 9317a331f1 conhost/tests: Fix some conditions on tty test termination.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-01 20:46:23 +01:00
Alexandre Julliard 6a91264918 makefiles: Store PE objects in subdirectories in the build tree.
This will make it possible to build multiple PE architectures.
2022-10-26 15:03:05 +02:00
Eric Pouech 5a8350120c conhost/tests: Fix some tests on input sequences.
Correctly handling keyboards (French, German...) which report right-alt
as ctrl+alt in VkKeyScan().

Splitting escape_test input tests into pure virtual keys on one hand,
and modified char key on the other.
Generating the virtual codes for the later instead of hardcoding the
results (bound to generic US keyboard).

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52980
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-24 18:50:36 +02:00
Eric Pouech bdad6f2c85 conhost/tests: Fix tests for some keyboard layouts.
Some keyboards (French, German and some others) report the right alt key
(which is some cases the right-shift one) as ctrl+alt.
Add proper handling for ctrl+alt return from VkKeyScan().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52980
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-24 18:50:29 +02:00