On Tue, Jul 15, 2008 at 10:56 PM, Mathias Kosch info@mkosch.de wrote:
Dear Sirs and Madams,
while configuration "The Bat!" for wine I had to fix some issues with Wine (version 1.1.1). I am now sending you the patches, because I was told so in Bugzilla. I hope, they can be applied to the next version of Wine so I don't need to recompile myself.
The first problem relates to the functions "RegGetValueW" and "RegGetValueA" in "advapi32". In case dwFlags contains the Bits (RRF_RT_REG_EXPAND_SZ | RRF_RT_REG_SZ) and not the bit RRF_NOEXPAND the function will return ERROR_INVALID_PARAMETER. This is wrong behaviour, because expansion will transform a result of type RRF_RT_REG_EXPAND_SZ into RRF_RT_REG_SZ which satisfies the request. This will especially make the use of the flag "RRF_RT_ANY" impossible. The patch can be found in the attached file "registry.c.patch".
The second problems relates to the function "X11DRV_SetDIBits" in "winex11.drv". It causes "The Bat!" to display white squares instead of colored icons. The mistake is inside the recently added optimization code for the case "where the input bits are in exactly the same format as the internal representation". The assignment
dbits = (LPBYTE)bits + (dstwidthb * (lines-1));
obviously needs to be changed to:
dbits = (LPBYTE)dbits + (dstwidthb * (lines-1));
The patch can be found in the attached file "dib.c.patch".
Only one patch per mail. Please read about sending patches to Wine at [1]. Also, you forgot to send a test case as was mentioned in the bug report.
[1] http://www.winehq.org/site/sending_patches