[PATCH] propsys: Fix negative numeric source handling in PropVariantToBoolean()

Nikolay Sivov nsivov at codeweavers.com
Sun Sep 24 04:00:08 CDT 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/propsys/propvar.c       | 2 +-
 dlls/propsys/tests/propsys.c | 3 ---
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/dlls/propsys/propvar.c b/dlls/propsys/propvar.c
index bdf9226989..3e3b502675 100644
--- a/dlls/propsys/propvar.c
+++ b/dlls/propsys/propvar.c
@@ -282,7 +282,7 @@ HRESULT WINAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, BOOL *ret)
             break;
     }
 
-    hr = PROPVAR_ConvertNumber(propvarIn, 64, FALSE, &res);
+    hr = PROPVAR_ConvertNumber(propvarIn, 64, TRUE, &res);
     *ret = !!res;
     return hr;
 }
diff --git a/dlls/propsys/tests/propsys.c b/dlls/propsys/tests/propsys.c
index ce1ee7138f..327c606b33 100644
--- a/dlls/propsys/tests/propsys.c
+++ b/dlls/propsys/tests/propsys.c
@@ -956,7 +956,6 @@ static void test_PropVariantToBoolean(void)
     propvar.u.lVal = -67;
     val = FALSE;
     hr = PropVariantToBoolean(&propvar, &val);
-todo_wine
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
     ok(val == TRUE, "Unexpected value %d\n", val);
 
@@ -986,7 +985,6 @@ todo_wine
     propvar.u.pwszVal = str_n7;
     val = FALSE;
     hr = PropVariantToBoolean(&propvar, &val);
-todo_wine
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
     ok(val == TRUE, "Unexpected value %d\n", val);
 
@@ -1092,7 +1090,6 @@ todo_wine
     propvar.vt = VT_LPSTR;
     propvar.u.pszVal = (char *)"-1";
     hr = PropVariantToBoolean(&propvar, &val);
-todo_wine
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
     ok(val == TRUE, "Unexpected value %d\n", val);
 }
-- 
2.14.1




More information about the wine-patches mailing list