Mike McCormack : msi: Handle the sign properly when converting integer data .

Alexandre Julliard julliard at wine.codeweavers.com
Thu Oct 12 15:28:54 CDT 2006


Module: wine
Branch: master
Commit: 9187951ac72ef7493dd90981da280d963bc26dbc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9187951ac72ef7493dd90981da280d963bc26dbc

Author: Mike McCormack <mike at codeweavers.com>
Date:   Thu Oct 12 21:28:26 2006 +0900

msi: Handle the sign properly when converting integer data.

---

 dlls/msi/table.c    |    6 ++++++
 dlls/msi/tests/db.c |    4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/msi/table.c b/dlls/msi/table.c
index 1ef7d0e..61ff217 100644
--- a/dlls/msi/table.c
+++ b/dlls/msi/table.c
@@ -1762,7 +1762,13 @@ static UINT* msi_record_to_row( MSITABLE
             }
         }
         else
+        {
             data[i] = MSI_RecordGetInteger( rec, i+1 );
+            if ((tv->columns[i].type&0xff) == 2)
+                data[i] += 0x8000;
+            else
+                data[i] += 0x80000000;
+        }
     }
     return data;
 }
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 5fc33eb..f3e15a8 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -1913,7 +1913,7 @@ static void test_try_transform(void)
     hrec = 0;
     query = "select `NOO`,`OOO` from `MOO` where `NOO` = 1 AND `OOO` = 'c'";
     r = do_query(hdb, query, &hrec);
-    todo_wine ok(r == ERROR_SUCCESS, "select query failed\n");
+    ok(r == ERROR_SUCCESS, "select query failed\n");
     MsiCloseHandle(hrec);
 
     /* check unchanged value */
@@ -1927,7 +1927,7 @@ static void test_try_transform(void)
     hrec = 0;
     query = "select * from `MOO` where `NOO` = 3";
     r = do_query(hdb, query, &hrec);
-    todo_wine ok(r == ERROR_NO_MORE_ITEMS, "select query failed\n");
+    ok(r == ERROR_NO_MORE_ITEMS, "select query failed\n");
     if (hrec) MsiCloseHandle(hrec);
 
     MsiCloseHandle( hdb );




More information about the wine-cvs mailing list