Alexandre Goujon : fusion: Improve parse_display_name.

Alexandre Julliard julliard at winehq.org
Mon Sep 13 17:14:44 CDT 2010


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

Author: Alexandre Goujon <ale.goujon at gmail.com>
Date:   Fri Sep 10 09:59:53 2010 +0200

fusion: Improve parse_display_name.

---

 dlls/fusion/asmname.c       |   10 +++++++++-
 dlls/fusion/tests/asmname.c |    9 +++------
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/dlls/fusion/asmname.c b/dlls/fusion/asmname.c
index bcf49a7..54be4e8 100644
--- a/dlls/fusion/asmname.c
+++ b/dlls/fusion/asmname.c
@@ -522,8 +522,16 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam
     if (!str)
         return E_OUTOFMEMORY;
 
-    ptr = strstrW(str, separator);
+    ptr = strchrW(str, ',');
     if (ptr) *ptr = '\0';
+
+    /* no ',' but ' ' only */
+    if( !ptr && strchrW(str, ' ') )
+    {
+        hr = FUSION_E_INVALID_NAME;
+        goto done;
+    }
+
     name->name = strdupW(str);
     if (!name->name)
         return E_OUTOFMEMORY;
diff --git a/dlls/fusion/tests/asmname.c b/dlls/fusion/tests/asmname.c
index 655f62f..170af23 100644
--- a/dlls/fusion/tests/asmname.c
+++ b/dlls/fusion/tests/asmname.c
@@ -868,12 +868,9 @@ static void test_CreateAssemblyNameObject(void)
     to_widechar(namestr, "wine PublicKeyToken=1234567890abcdef");
     name = (IAssemblyName *)0xdeadbeef;
     hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
-    todo_wine
-    {
-        ok(hr == FUSION_E_INVALID_NAME,
-           "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
-        ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
-    }
+    ok(hr == FUSION_E_INVALID_NAME,
+       "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
+    ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
     if(SUCCEEDED(hr)) IAssemblyName_Release(name);
 
     /* no '=' */




More information about the wine-cvs mailing list