This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
-- v21: mspatcha: Remove useless unused parameter annotation mspatcha: Fix check for if patch was necessary mspatcha: Fix normalize_old_file_image result if no old file is supplied mspatcha: Use string comparison for section names mspatcha: Use unaligned typedefs mspatcha: Remove useless result variable in NormalizeFileForPatchSignature mspatcha: Relocate PE/COFF image functions mspatcha: Cleanup normalize_old_file_image return logic mspatcha: Fix new file buffer local variable assignment mspatcha: Fix relocation block enumeration mspatcha: Fix progress callback behaviour mspatcha: Fix binary to hex string conversions for GetFilePatchSignatureByBuffer mspatcha: Add support for 32-bit file image patch transforms mspatcha: Add implementations for GetFilePatchSignature* routines mspatcha: Add support for 32-bit file normalizing mspatcha/tests: Add additional unit tests for ApplyPatchToFileByBuffers mspatcha/tests: Add unit tests for NormalizeFileForPatchSignature and GetFilePatchSignature*
This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/wine/-/merge_requests/3870