mirror of
https://github.com/reactos/reactos.git
synced 2025-06-10 04:14:53 +00:00
Handle file names like ./somename in SearchPath()
svn path=/trunk/; revision=9959
This commit is contained in:
parent
820eaf8fce
commit
1c2af8076a
1 changed files with 107 additions and 62 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: dir.c,v 1.46 2004/06/28 19:46:17 navaraf Exp $
|
||||
/* $Id: dir.c,v 1.47 2004/07/01 22:35:35 gvg Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
|
@ -753,11 +753,55 @@ SearchPathW (
|
|||
PWCHAR EnvironmentBufferW = NULL;
|
||||
PWCHAR AppPathW = NULL;
|
||||
WCHAR Buffer;
|
||||
//WCHAR drv[3];
|
||||
|
||||
BOOL HasExtension;
|
||||
LPCWSTR p;
|
||||
PWCHAR Name;
|
||||
|
||||
DPRINT("SearchPath\n");
|
||||
|
||||
HasExtension = FALSE;
|
||||
p = lpFileName + wcslen(lpFileName);
|
||||
while (lpFileName < p &&
|
||||
L'\\' != *(p - 1) &&
|
||||
L'/' != *(p - 1) &&
|
||||
L':' != *(p - 1))
|
||||
{
|
||||
HasExtension = HasExtension || L'.' == *(p - 1);
|
||||
p--;
|
||||
}
|
||||
if (lpFileName < p)
|
||||
{
|
||||
if (HasExtension || NULL == lpExtension)
|
||||
{
|
||||
Name = (PWCHAR) lpFileName;
|
||||
}
|
||||
else
|
||||
{
|
||||
Name = RtlAllocateHeap(GetProcessHeap(),
|
||||
HEAP_GENERATE_EXCEPTIONS,
|
||||
(wcslen(lpFileName) + wcslen(lpExtension) + 1)
|
||||
* sizeof(WCHAR));
|
||||
if (NULL == Name)
|
||||
{
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return 0;
|
||||
}
|
||||
wcscat(wcscpy(Name, lpFileName), lpExtension);
|
||||
}
|
||||
if (RtlDoesFileExists_U(Name))
|
||||
{
|
||||
retCode = RtlGetFullPathName_U (Name,
|
||||
nBufferLength * sizeof(WCHAR),
|
||||
lpBuffer,
|
||||
lpFilePart);
|
||||
}
|
||||
if (Name != lpFileName)
|
||||
{
|
||||
RtlFreeHeap(GetProcessHeap(), 0, Name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lpPath == NULL)
|
||||
{
|
||||
|
||||
|
@ -823,6 +867,7 @@ SearchPathW (
|
|||
{
|
||||
SetLastError(ERROR_FILE_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
return retCode / sizeof(WCHAR);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue