-/* $Id: path.c,v 1.28 2004/05/13 21:01:14 navaraf Exp $
+/* $Id: path.c,v 1.29 2004/08/25 15:04:19 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
PWSTR buf = 0;
PFILE_NAME_INFORMATION filenameinfo;
ULONG backslashcount = 0;
- PWSTR cntr;
+ ULONG Index;
WCHAR var[4];
DPRINT ("RtlSetCurrentDirectory %wZ\n", name);
RtlReleasePebLock ();
return Status;
}
-
+
filenameinfo = RtlAllocateHeap(RtlGetProcessHeap(),
0,
MAX_PATH*sizeof(WCHAR)+sizeof(ULONG));
return(Status);
}
- if (filenameinfo->FileName[1]) // If it's just "\", we need special handling
+ /* If it's just "\", we need special handling */
+ if (filenameinfo->FileNameLength > sizeof(WCHAR))
{
wcs = buf + size / sizeof(WCHAR) - 1;
if (*wcs == L'\\')
size -= sizeof(WCHAR);
}
- for (cntr=filenameinfo->FileName;*cntr!=0;cntr++)
+ for (Index = 0;
+ Index < filenameinfo->FileNameLength / sizeof(WCHAR);
+ Index++)
{
- if (*cntr=='\\') backslashcount++;
+ if (filenameinfo->FileName[Index] == '\\') backslashcount++;
}
DPRINT("%d \n",backslashcount);
}
wcs++;
- wcscpy(wcs,filenameinfo->FileName);
+ RtlCopyMemory(wcs, filenameinfo->FileName, filenameinfo->FileNameLength);
+ wcs[filenameinfo->FileNameLength / sizeof(WCHAR)] = 0;
- size=((wcs-buf)+wcslen(filenameinfo->FileName))*sizeof(WCHAR);
+ size = (wcs - buf) * sizeof(WCHAR) + filenameinfo->FileNameLength;
}
RtlFreeHeap (RtlGetProcessHeap (),
buf,
size + sizeof(WCHAR));
cd->DosPath.Length = size;
-
+
if (cd->Handle)
NtClose(cd->Handle);
cd->Handle = handle;