dlls/shell32/pidl.c -- adjust to unsignedness of a type

Gerald Pfeifer gerald at pfeifer.com
Sun Feb 17 12:47:27 CST 2008


On Sat, 16 Feb 2008, Alexandre Julliard wrote:
> The test should probably be removed completely since there's already a
> default for it in the switch() that follows.

I was thinking of this, but wanted to go for the smaller patch initially,
but your wish is my command ;-). 

Updated patch below.  Nearly everything here is whitespace changes; the 
second hunk only removes "if (type >= 0 && type <= 2) {" and "}".

Gerald

ChangeLog:
Adjust a format specifier and remove a redundant range check in
ILGetDisplayNameExW().

Index: pidl.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/pidl.c,v
retrieving revision 1.159
diff -u -3 -p -r1.159 pidl.c
--- pidl.c	16 Feb 2008 15:58:53 -0000	1.159
+++ pidl.c	17 Feb 2008 18:44:54 -0000
@@ -97,7 +97,7 @@ BOOL WINAPI ILGetDisplayNameExW(LPSHELLF
     STRRET strret;
     DWORD flag;
 
-    TRACE("%p %p %p %d\n", psf, pidl, path, type);
+    TRACE("%p %p %p %x\n", psf, pidl, path, type);
 
     if (!pidl || !path)
         return FALSE;
@@ -109,46 +109,44 @@ BOOL WINAPI ILGetDisplayNameExW(LPSHELLF
             return FALSE;
     }
 
-    if (type >= 0 && type <= 2)
+    switch (type)
     {
-        switch (type)
+    case ILGDN_FORPARSING:
+        flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
+        break;
+    case ILGDN_NORMAL:
+        flag = SHGDN_NORMAL;
+        break;
+    case ILGDN_INFOLDER:
+        flag = SHGDN_INFOLDER;
+        break;
+    default:
+        FIXME("Unknown type parameter = %x\n", type);
+        flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
+        break;
+    }
+
+    if (!*(const WORD*)pidl || type == ILGDN_FORPARSING)
+    {
+        ret = IShellFolder_GetDisplayNameOf(lsf, pidl, flag, &strret);
+        if (SUCCEEDED(ret))
         {
-        case ILGDN_FORPARSING:
-            flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
-            break;
-        case ILGDN_NORMAL:
-            flag = SHGDN_NORMAL;
-            break;
-        case ILGDN_INFOLDER:
-            flag = SHGDN_INFOLDER;
-            break;
-        default:
-            FIXME("Unknown type parameter = %x\n", type);
-            flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
-            break;
+            if(!StrRetToStrNW(path, MAX_PATH, &strret, pidl))
+                ret = E_FAIL;
         }
-        if (!*(const WORD*)pidl || type == ILGDN_FORPARSING)
+    }
+    else
+    {
+        ret = SHBindToParent(pidl, &IID_IShellFolder, (LPVOID*)&psfParent, &pidllast);
+        if (SUCCEEDED(ret))
         {
-            ret = IShellFolder_GetDisplayNameOf(lsf, pidl, flag, &strret);
+            ret = IShellFolder_GetDisplayNameOf(psfParent, pidllast, flag, &strret);
             if (SUCCEEDED(ret))
             {
-                if(!StrRetToStrNW(path, MAX_PATH, &strret, pidl))
+                if(!StrRetToStrNW(path, MAX_PATH, &strret, pidllast))
                     ret = E_FAIL;
             }
-        }
-        else
-        {
-            ret = SHBindToParent(pidl, &IID_IShellFolder, (LPVOID*)&psfParent, &pidllast);
-            if (SUCCEEDED(ret))
-            {
-                ret = IShellFolder_GetDisplayNameOf(psfParent, pidllast, flag, &strret);
-                if (SUCCEEDED(ret))
-                {
-                    if(!StrRetToStrNW(path, MAX_PATH, &strret, pidllast))
-                        ret = E_FAIL;
-                }
-                IShellFolder_Release(psfParent);
-            }
+            IShellFolder_Release(psfParent);
         }
     }
 



More information about the wine-patches mailing list