[1/2] msi: Sign extend the value when converting from a small integer.
Hans Leidekker
hans at codeweavers.com
Thu Nov 19 02:30:04 CST 2009
Fixes http://bugs.winehq.org/show_bug.cgi?id=17665
---
dlls/msi/table.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/table.c b/dlls/msi/table.c
index 33d1fce..fa32a04 100644
--- a/dlls/msi/table.c
+++ b/dlls/msi/table.c
@@ -1201,7 +1201,7 @@ static UINT msi_stream_name( const MSITABLEVIEW *tv, UINT row, LPWSTR *pstname )
switch( n )
{
case 2:
- sprintfW( number, fmt, ival^0x8000 );
+ sprintfW( number, fmt, ival-0x8000 );
break;
case 4:
sprintfW( number, fmt, ival^0x80000000 );
@@ -2573,7 +2573,7 @@ static MSIRECORD *msi_get_transform_record( const MSITABLEVIEW *tv, const string
case 2:
val = read_raw_int(rawdata, ofs, n);
if (val)
- MSI_RecordSetInteger( rec, i+1, val^0x8000 );
+ MSI_RecordSetInteger( rec, i+1, val-0x8000 );
TRACE(" field %d [0x%04x]\n", i+1, val );
break;
case 4:
--
1.6.3.3
More information about the wine-patches
mailing list