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-devel
mailing list