Properly convert between ascii and unicode in SearchPathA

svn path=/trunk/; revision=7298
This commit is contained in:
Gé van Geldorp 2003-12-28 21:25:48 +00:00
parent 755d9f5216
commit 3b85b43844

View file

@ -1,4 +1,4 @@
/* $Id: dir.c,v 1.40 2003/12/09 10:38:05 gvg Exp $ /* $Id: dir.c,v 1.41 2003/12/28 21:25:48 gvg Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries * PROJECT: ReactOS system libraries
@ -541,9 +541,9 @@ SearchPathA (
Buffer.MaximumLength = nBufferLength; Buffer.MaximumLength = nBufferLength;
Buffer.Buffer = lpBuffer; Buffer.Buffer = lpBuffer;
RetValue = SearchPathW (PathU.Buffer, RetValue = SearchPathW (NULL == lpPath ? NULL : PathU.Buffer,
FileNameU.Buffer, NULL == lpFileName ? NULL : FileNameU.Buffer,
ExtensionU.Buffer, NULL == lpExtension ? NULL : ExtensionU.Buffer,
nBufferLength, nBufferLength,
BufferU.Buffer, BufferU.Buffer,
&FilePartW); &FilePartW);
@ -558,15 +558,21 @@ SearchPathA (
0, 0,
ExtensionU.Buffer); ExtensionU.Buffer);
/* convert ansi (or oem) string to unicode */ if (0 != RetValue)
if (bIsFileApiAnsi) {
RtlUnicodeStringToAnsiString (&Buffer, BufferU.Length = wcslen(BufferU.Buffer) * sizeof(WCHAR);
&BufferU, /* convert ansi (or oem) string to unicode */
FALSE); if (bIsFileApiAnsi)
else RtlUnicodeStringToAnsiString (&Buffer,
RtlUnicodeStringToOemString (&Buffer, &BufferU,
&BufferU, FALSE);
FALSE); else
RtlUnicodeStringToOemString (&Buffer,
&BufferU,
FALSE);
/* nul-terminate ascii string */
Buffer.Buffer[BufferU.Length / sizeof(WCHAR)] = '\0';
}
RtlFreeHeap (RtlGetProcessHeap (), RtlFreeHeap (RtlGetProcessHeap (),
0, 0,