This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… by Erich E. Hoover (@ehoover), and implements support for the `SYSTEM`, `HIDDEN` and `READONLY` DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.
Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the `user.DOSATTRIB` attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.
Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.
This effort is part of a larger project I have been working on to get Msys2 and Cygwin working properly on Wine. The absence of DOS fule attribute support prevents one of the modes that Cygwin and Msys2 can use to emulate symbolic links from working correctly, which causes the Cygwin installer to fail: https://bugs.winehq.org/show_bug.cgi?id=9158
--
v6: ntdll: Implement storing DOS attributes in NtCreateFile.
ntdll: Implement retrieving DOS attributes in NtQueryInformationFile
ntdll: Implement storing DOS attributes in NtSetInformationFile.
ntdll: Implement retrieving DOS attributes in [fd_]get_file_info().
https://gitlab.winehq.org/wine/wine/-/merge_requests/946
This series includes several improvements in DbgHelp for supporting
(global / file static / function static) variables.
In more details:
- correct distinction and hierarchy attributes for the three kinds
(Dwarf and PDB)
- better filtering of PDB information
+ dropping invalid variable definitions from incremental linker
(hence preventing their use instead of the valid ones)
+ keeping more wanted variables in case of collision (by address
or by name)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/950
mingw-w64 defines __forceinline (and therefore FORCEINLINE) as
"extern __inline__ __attribute__((__always_inline__,__gnu_inline__)). This means
that COM inline wrappers specify multiple storage classes and hence cannot be
compiled.
Wine defines FORCEINLINE simply as "inline" (and uses "static" everywhere), so
this is a non-issue for Wine. However, since Wine and mingw-w64 share the source
code of widl and of most IDL headers, this patch changes the definition for both
projects.
There's no reason to force inlining here, especially since the wrappers need to
be manually enabled, and we don't need to match PSDK semantics where these
wrappers don't even exist.
In practice, use "__inline__" instead of "inline" for GNU C targets, to preserve
compatibility with C89 in mingw-w64 headers.
--
v2: widl: Generate "static inline" instead of "static FORCEINLINE" for COM inline wrappers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/935
To avoid direct callbacks from display drivers to win32u while changing display settings.
--
v2: winemac.drv: Resize desktop window on WM_DISPLAYCHANGE message.
winex11.drv: Resize desktop window on WM_DISPLAYCHANGE message.
win32u: Send WM_DISPLAYCHANGE message to the desktop window.
winex11.drv: Send WM_X11DRV_CLIP_CURSOR_REQUEST message from the deskop.
winex11.drv: Sync window positions in a WM_X11DRV_DESKTOP_RESIZED message.
https://gitlab.winehq.org/wine/wine/-/merge_requests/944
--
v2: comtl32: Don't pass PROPSHEETPAGE to SetWindowSubclass in PROPSHEET_CreatePage.
comctl32/tests: Test passing PropertySheetPage as HPROPSHEETPAGE.
comctl32/tests: Add more PROPSHEETPAGE tests inside callback.
comctl32/tests: Test passing extra data in PROPSHEETPAGE structure.
comctl32/tests: Test PROPERTYSHEETPAGE passed in WM_INITDIALOG.
https://gitlab.winehq.org/wine/wine/-/merge_requests/932
When the destination file cannot be copied in 32 bit installer of 64 bit dlls (going to system32) temporary file attempted at system32 (as that is the destination directory) currently ends up in syswow64. When wineboot is later processing PendingFileRenameOperations the redirection of the source file is not performed (and there is no way to guess that the file was redirected).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/945