PWCHAR EnvironmentBufferW = NULL;
PWCHAR AppPathW = NULL;
WCHAR Buffer;
- BOOL HasExtension;
+ BOOL HasExtension = FALSE, IsAbsolute = FALSE;
LPCWSTR p;
PWCHAR Name;
TRACE("SearchPath\n");
- HasExtension = FALSE;
p = lpFileName + wcslen(lpFileName);
while (lpFileName < p &&
L'\\' != *(p - 1) &&
- L'/' != *(p - 1) &&
- L':' != *(p - 1))
+ L'/' != *(p - 1))
{
HasExtension = HasExtension || L'.' == *(p - 1);
+ if (p >= lpFileName && L'\\' == *(p-1))
+ {
+ if (':' == *p)
+ IsAbsolute = TRUE;
+ }
p--;
}
- if (lpFileName < p)
+ if (IsAbsolute)
{
if (HasExtension || NULL == lpExtension)
{
}
wcscat(wcscpy(Name, lpFileName), lpExtension);
}
- if (RtlDoesFileExists_U(Name))
+ if (RtlDoesFileExists_U(Name))
{
retCode = RtlGetFullPathName_U (Name,
nBufferLength * sizeof(WCHAR),