* fixed do_getdir() for non-defaultdrive after r25042 ("drive" array has to

be an array of widechar now)
  * fixed restoring of original path in do_getdir() (pass contents of
    unicodestring to SetCurrentDirectoryW(), not its address)

git-svn-id: branches/cpstrrtl@25088 -
This commit is contained in:
Jonas Maebe 2013-07-12 17:18:11 +00:00
parent 26b2149ced
commit ba49e4a29d

View File

@ -74,7 +74,7 @@ end;
procedure do_GetDir (DriveNr: byte; var Dir: Unicodestring);
{$ifndef WINCE}
var
Drive:array[0..3]of char;
Drive:array[0..3]of widechar;
defaultdrive:boolean;
savebuf: UnicodeString;
len : integer;
@ -97,7 +97,7 @@ begin
errno := word (GetLastError);
Errno2InoutRes;
Dir := widechar (DriveNr + 64) + ':\';
SetCurrentDirectoryW(@SaveBuf);
SetCurrentDirectoryW(punicodechar(SaveBuf));
Exit;
end;
end;
@ -106,7 +106,7 @@ begin
setlength(dir,len-1); // -1 because len is #0 inclusive
GetCurrentDirectoryW(len,punicodechar(dir));
if not defaultdrive then
SetCurrentDirectoryW(@SaveBuf);
SetCurrentDirectoryW(punicodechar(SaveBuf));
if not FileNameCasePreserving then
dir:=upcase(dir);
{$else WINCE}