Ver código fonte

* convert calls to GetCurrentDirectory to *W in Windows do_getdir()

git-svn-id: branches/cpstrrtl@25042 -
Jonas Maebe 12 anos atrás
pai
commit
08ab4dcabe
2 arquivos alterados com 6 adições e 3 exclusões
  1. 3 3
      rtl/win/sysdir.inc
  2. 3 0
      rtl/win/sysos.inc

+ 3 - 3
rtl/win/sysdir.inc

@@ -95,12 +95,12 @@ begin
     setlength(savebuf,len-1); // -1 because len is #0 inclusive
 
     GetCurrentDirectoryW(len,punicodechar(SaveBuf)); // in TChar
-    if not SetCurrentDirectory(@Drive) then
+    if not SetCurrentDirectoryW(@Drive) then
      begin
       errno := word (GetLastError);
       Errno2InoutRes;
       Dir := widechar (DriveNr + 64) + ':\';
-      SetCurrentDirectory(@SaveBuf);
+      SetCurrentDirectoryW(@SaveBuf);
       Exit;
      end;
    end;
@@ -109,7 +109,7 @@ begin
   setlength(dir,len-1); // -1 because len is #0 inclusive
   GetCurrentDirectoryW(len,punicodechar(dir));
   if not defaultdrive then
-    SetCurrentDirectory(@SaveBuf);
+    SetCurrentDirectoryW(@SaveBuf);
   if not FileNameCasePreserving then
     dir:=upcase(dir);
 {$else WINCE}

+ 3 - 0
rtl/win/sysos.inc

@@ -318,6 +318,9 @@ threadvar
      stdcall;external KernelDLL name 'SetCurrentDirectoryA';
 
   {$endif}
+   { Directory }
+   function SetCurrentDirectoryW(name : pointer) : longbool;
+     stdcall;external KernelDLL name 'SetCurrentDirectoryW';
    function GetCurrentDirectoryW(bufsize : longint;name : punicodechar) : Dword;
      stdcall;external KernelDLL name 'GetCurrentDirectoryW';