Browse Source

* Fix compilation with unicodertl

Michael VAN CANNEYT 2 years ago
parent
commit
6cc315d4da
1 changed files with 16 additions and 11 deletions
  1. 16 11
      rtl/win/dos.pp

+ 16 - 11
rtl/win/dos.pp

@@ -438,7 +438,7 @@ function FindNextFile  (hFindFile: THandle; var lpFindFileData: TWinFindData): L
 function FindCloseFile (hFindFile: THandle): LongBool;
 function FindCloseFile (hFindFile: THandle): LongBool;
   stdcall; external 'kernel32' name 'FindClose';
   stdcall; external 'kernel32' name 'FindClose';
 
 
-Procedure StringToPchar (Var S : String);
+Procedure StringToPchar (Var S : ShortString);
 Var L : Longint;
 Var L : Longint;
 begin
 begin
   L:=ord(S[0]);
   L:=ord(S[0]);
@@ -446,7 +446,7 @@ begin
   S[L]:=#0;
   S[L]:=#0;
 end;
 end;
 
 
-Procedure PCharToString (Var S : String);
+Procedure PCharToString (Var S : ShortString);
 Var L : Longint;
 Var L : Longint;
 begin
 begin
   L:=strlen(PAnsiChar(@S[0]));
   L:=strlen(PAnsiChar(@S[0]));
@@ -478,6 +478,10 @@ end;
 
 
 
 
 procedure findfirst(const path : pathstr;attr : word;var f : searchRec);
 procedure findfirst(const path : pathstr;attr : word;var f : searchRec);
+
+var
+  S : ShortString;
+
 begin
 begin
   fillchar(f,sizeof(f),0);
   fillchar(f,sizeof(f),0);
   { no error }
   { no error }
@@ -485,11 +489,12 @@ begin
   F.Name:=Path;
   F.Name:=Path;
   F.Attr:=attr;
   F.Attr:=attr;
   F.ExcludeAttr:=(not Attr) and ($1e); {hidden,sys,dir,volume}
   F.ExcludeAttr:=(not Attr) and ($1e); {hidden,sys,dir,volume}
-  StringToPchar(f.name);
+  S:=f.name;
+  StringToPchar(S);
 
 
   { FindFirstFile is a Win32 Call }
   { FindFirstFile is a Win32 Call }
   F.WinFindData.dwFileAttributes:=DosToWinAttr(f.attr);
   F.WinFindData.dwFileAttributes:=DosToWinAttr(f.attr);
-  F.FindHandle:=FindFirstFile (PAnsiChar(@f.Name),F.WinFindData);
+  F.FindHandle:=FindFirstFile (PAnsiChar(@S),F.WinFindData);
 
 
   If F.FindHandle=Invalid_Handle_value then
   If F.FindHandle=Invalid_Handle_value then
    begin
    begin
@@ -548,7 +553,7 @@ function GetShortPathName(lpszLongPath:PAnsiChar; lpszShortPath:PAnsiChar; cchBu
     stdcall; external 'kernel32' name 'GetShortPathNameA';
     stdcall; external 'kernel32' name 'GetShortPathNameA';
 
 
 
 
-Function FSearch(path: pathstr; dirlist: string): pathstr;
+Function FSearch(path: pathstr; dirlist: shortstring): pathstr;
 var
 var
   p1     : longint;
   p1     : longint;
   s      : searchrec;
   s      : searchrec;
@@ -660,7 +665,7 @@ begin
 end;
 end;
 
 
 { change to short filename if successful win32 call PM }
 { change to short filename if successful win32 call PM }
-function GetShortName(var p : String) : boolean;
+function GetShortName(var p : shortString) : boolean;
 var
 var
   buffer   : array[0..255] of AnsiChar;
   buffer   : array[0..255] of AnsiChar;
   ret : longint;
   ret : longint;
@@ -686,11 +691,11 @@ begin
 end;
 end;
 
 
 { change to long filename if successful DOS call PM }
 { change to long filename if successful DOS call PM }
-function GetLongName(var p : String) : boolean;
+function GetLongName(var p : shortString) : boolean;
 
 
 var
 var
   SR: SearchRec;
   SR: SearchRec;
-  FullFN, FinalFN, TestFN: string;
+  FullFN, FinalFN, TestFN: shortstring;
   Found: boolean;
   Found: boolean;
   SPos: byte;
   SPos: byte;
 begin
 begin
@@ -789,7 +794,7 @@ begin
 end;
 end;
 
 
 
 
-Function EnvStr (Index: longint): string;
+Function EnvStr (Index: longint): shortstring;
 var
 var
    hp,p : PAnsiChar;
    hp,p : PAnsiChar;
    count,i : longint;
    count,i : longint;
@@ -815,9 +820,9 @@ begin
 end;
 end;
 
 
 
 
-Function  GetEnv(envvar: string): string;
+Function  GetEnv(envvar: shortstring): shortstring;
 var
 var
-   s : string;
+   s : shortstring;
    i : longint;
    i : longint;
    hp,p : PAnsiChar;
    hp,p : PAnsiChar;
 begin
 begin