2
0
Эх сурвалжийг харах

* more file handling from shortstring to tcmdstr

git-svn-id: trunk@6595 -
Jonas Maebe 18 жил өмнө
parent
commit
90ea73a90b

+ 58 - 58
compiler/cfileutils.pas

@@ -51,18 +51,18 @@ interface
       private
         FDirectoryEntries : TFPHashList;
       public
-        constructor Create(AList:TFPHashObjectList;const AName:string);
+        constructor Create(AList:TFPHashObjectList;const AName:TCmdStr);
         destructor  destroy;override;
         procedure Reload;
-        function FileExists(const AName:string):boolean;
-        function DirectoryExists(const AName:string):boolean;
+        function FileExists(const AName:TCmdStr):boolean;
+        function DirectoryExists(const AName:TCmdStr):boolean;
         property DirectoryEntries:TFPHashList read FDirectoryEntries;
       end;
 
       TCachedSearchRec = record
-        Name       : string;
+        Name       : TCmdStr;
         Attr       : byte;
-        Pattern    : string;
+        Pattern    : TCmdStr;
         CachedDir  : TCachedDirectory;
         EntryIndex : longint;
       end;
@@ -70,13 +70,13 @@ interface
       TDirectoryCache = class
       private
         FDirectories : TFPHashObjectList;
-        function GetDirectory(const ADir:string):TCachedDirectory;
+        function GetDirectory(const ADir:TCmdStr):TCachedDirectory;
       public
         constructor Create;
         destructor  destroy;override;
-        function FileExists(const AName:string):boolean;
-        function DirectoryExists(const AName:string):boolean;
-        function FindFirst(const APattern:string;var Res:TCachedSearchRec):boolean;
+        function FileExists(const AName:TCmdStr):boolean;
+        function DirectoryExists(const AName:TCmdStr):boolean;
+        function FindFirst(const APattern:TCmdStr;var Res:TCachedSearchRec):boolean;
         function FindNext(var Res:TCachedSearchRec):boolean;
         function FindClose(var Res:TCachedSearchRec):boolean;
       end;
@@ -88,26 +88,26 @@ interface
         function  FindFile(const f : TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
       end;
 
-    function  bstoslash(const s : string) : string;
+    function  bstoslash(const s : TCmdStr) : TCmdStr;
     {Gives the absolute path to the current directory}
-    function  GetCurrentDir:string;
+    function  GetCurrentDir:TCmdStr;
     {Gives the relative path to the current directory,
      with a trailing dir separator. E. g. on unix ./ }
-    function CurDirRelPath(systeminfo: tsysteminfo): string;
-    function  path_absolute(const s : string) : boolean;
-    Function  PathExists (const F : String;allowcache:boolean) : Boolean;
-    Function  FileExists (const F : String;allowcache:boolean) : Boolean;
+    function CurDirRelPath(systeminfo: tsysteminfo): TCmdStr;
+    function  path_absolute(const s : TCmdStr) : boolean;
+    Function  PathExists (const F : TCmdStr;allowcache:boolean) : Boolean;
+    Function  FileExists (const F : TCmdStr;allowcache:boolean) : Boolean;
     function  FileExistsNonCase(const path,fn:TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
-    Function  RemoveDir(d:string):boolean;
-    Function  FixPath(s:string;allowdot:boolean):string;
-    function  FixFileName(const s:string):string;
-    function  TargetFixPath(s:string;allowdot:boolean):string;
-    function  TargetFixFileName(const s:string):string;
-    procedure SplitBinCmd(const s:string;var bstr: String;var cstr:TCmdStr);
+    Function  RemoveDir(d:TCmdStr):boolean;
+    Function  FixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
+    function  FixFileName(const s:TCmdStr):TCmdStr;
+    function  TargetFixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
+    function  TargetFixFileName(const s:TCmdStr):TCmdStr;
+    procedure SplitBinCmd(const s:TCmdStr;var bstr: TCmdStr;var cstr:TCmdStr);
     function  FindFile(const f : TCmdStr;path : TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
     function  FindFilePchar(const f : TCmdStr;path : pchar;allowcache:boolean;var foundfile:TCmdStr):boolean;
     function  FindExe(const bin:TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
-    function  GetShortName(const n:string):string;
+    function  GetShortName(const n:TCmdStr):TCmdStr;
 
     procedure InitFileUtils;
     procedure DoneFileUtils;
@@ -127,7 +127,7 @@ implementation
                            TCachedDirectory
 ****************************************************************************}
 
-    constructor TCachedDirectory.create(AList:TFPHashObjectList;const AName:string);
+    constructor TCachedDirectory.create(AList:TFPHashObjectList;const AName:TCmdStr);
       begin
         inherited create(AList,AName);
         FDirectoryEntries:=TFPHashList.Create;
@@ -164,7 +164,7 @@ implementation
       end;
 
 
-    function TCachedDirectory.FileExists(const AName:string):boolean;
+    function TCachedDirectory.FileExists(const AName:TCmdStr):boolean;
       var
         Attr : Longint;
       begin
@@ -179,7 +179,7 @@ implementation
       end;
 
 
-    function TCachedDirectory.DirectoryExists(const AName:string):boolean;
+    function TCachedDirectory.DirectoryExists(const AName:TCmdStr):boolean;
       var
         Attr : Longint;
       begin
@@ -212,10 +212,10 @@ implementation
       end;
 
 
-    function TDirectoryCache.GetDirectory(const ADir:string):TCachedDirectory;
+    function TDirectoryCache.GetDirectory(const ADir:TCmdStr):TCachedDirectory;
       var
         CachedDir : TCachedDirectory;
-        DirName   : string;
+        DirName   : TCmdStr;
       begin
         if ADir='' then
           DirName:='.'
@@ -231,7 +231,7 @@ implementation
       end;
 
 
-    function TDirectoryCache.FileExists(const AName:string):boolean;
+    function TDirectoryCache.FileExists(const AName:TCmdStr):boolean;
       var
         CachedDir : TCachedDirectory;
       begin
@@ -242,7 +242,7 @@ implementation
       end;
 
 
-    function TDirectoryCache.DirectoryExists(const AName:string):boolean;
+    function TDirectoryCache.DirectoryExists(const AName:TCmdStr):boolean;
       var
         CachedDir : TCachedDirectory;
       begin
@@ -253,7 +253,7 @@ implementation
       end;
 
 
-    function TDirectoryCache.FindFirst(const APattern:string;var Res:TCachedSearchRec):boolean;
+    function TDirectoryCache.FindFirst(const APattern:TCmdStr;var Res:TCachedSearchRec):boolean;
       begin
         Res.Pattern:=ExtractFileName(APattern);
         Res.CachedDir:=GetDirectory(ExtractFilePath(APattern));
@@ -290,26 +290,26 @@ implementation
                                    Utils
 ****************************************************************************}
 
-    function bstoslash(const s : string) : string;
+    function bstoslash(const s : TCmdStr) : TCmdStr;
     {
-      return string s with all \ changed into /
+      return TCmdStr s with all \ changed into /
     }
       var
          i : longint;
       begin
+        setlength(bstoslash,length(s));
         for i:=1to length(s) do
          if s[i]='\' then
           bstoslash[i]:='/'
          else
           bstoslash[i]:=s[i];
-         bstoslash[0]:=s[0];
       end;
 
 
    {Gives the absolute path to the current directory}
      var
-       CachedCurrentDir : string;
-   function GetCurrentDir:string;
+       CachedCurrentDir : TCmdStr;
+   function GetCurrentDir:TCmdStr;
      begin
        if CachedCurrentDir='' then
          begin
@@ -321,7 +321,7 @@ implementation
 
    {Gives the relative path to the current directory,
     with a trailing dir separator. E. g. on unix ./ }
-   function CurDirRelPath(systeminfo: tsysteminfo): string;
+   function CurDirRelPath(systeminfo: tsysteminfo): TCmdStr;
 
    begin
      if systeminfo.system <> system_powerpc_macos then
@@ -331,7 +331,7 @@ implementation
    end;
 
 
-   function path_absolute(const s : string) : boolean;
+   function path_absolute(const s : TCmdStr) : boolean;
    {
      is path s an absolute path?
    }
@@ -352,7 +352,7 @@ implementation
 {$endif unix}
      end;
 
-    Function FileExists ( Const F : String;allowcache:boolean) : Boolean;
+    Function FileExists ( Const F : TCmdStr;allowcache:boolean) : Boolean;
       begin
 {$ifdef usedircache}
         if allowcache then
@@ -372,7 +372,7 @@ implementation
 
     function FileExistsNonCase(const path,fn:TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
       var
-        fn2 : string;
+        fn2 : TCmdStr;
       begin
         result:=false;
         if tf_files_case_sensitive in source_info.flags then
@@ -439,10 +439,10 @@ implementation
       end;
 
 
-    Function PathExists (const F : String;allowcache:boolean) : Boolean;
+    Function PathExists (const F : TCmdStr;allowcache:boolean) : Boolean;
       Var
         i: longint;
-        hs : string;
+        hs : TCmdStr;
       begin
         if F = '' then
           begin
@@ -463,7 +463,7 @@ implementation
       end;
 
 
-    Function RemoveDir(d:string):boolean;
+    Function RemoveDir(d:TCmdStr):boolean;
       begin
         if d[length(d)]=source_info.DirSep then
          Delete(d,length(d),1);
@@ -474,7 +474,7 @@ implementation
       end;
 
 
-    Function FixPath(s:string;allowdot:boolean):string;
+    Function FixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
       var
         i : longint;
       begin
@@ -500,9 +500,9 @@ implementation
   {Actually the version in macutils.pp could be used,
    but that would not work for crosscompiling, so this is a slightly modified
    version of it.}
-  function TranslatePathToMac (const path: string; mpw: Boolean): string;
+  function TranslatePathToMac (const path: TCmdStr; mpw: Boolean): TCmdStr;
 
-    function GetVolumeIdentifier: string;
+    function GetVolumeIdentifier: TCmdStr;
 
     begin
       GetVolumeIdentifier := '{Boot}'
@@ -623,7 +623,7 @@ implementation
   end;
 
 
-   function FixFileName(const s:string):string;
+   function FixFileName(const s:TCmdStr):TCmdStr;
      var
        i      : longint;
      begin
@@ -633,6 +633,7 @@ implementation
         if (tf_files_case_aware in source_info.flags) or
            (tf_files_case_sensitive in source_info.flags) then
         begin
+          setlength(FixFileName,length(s));
           for i:=1 to length(s) do
            begin
              case s[i] of
@@ -642,10 +643,10 @@ implementation
                  FixFileName[i]:=s[i];
              end;
            end;
-          FixFileName[0]:=s[0];
         end
        else
         begin
+          setlength(FixFileName,length(s));
           for i:=1 to length(s) do
            begin
              case s[i] of
@@ -657,12 +658,11 @@ implementation
                   FixFileName[i]:=s[i];
              end;
            end;
-          FixFileName[0]:=s[0];
         end;
      end;
 
 
-    Function TargetFixPath(s:string;allowdot:boolean):string;
+    Function TargetFixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
       var
         i : longint;
       begin
@@ -686,7 +686,7 @@ implementation
       end;
 
 
-   function TargetFixFileName(const s:string):string;
+   function TargetFixFileName(const s:TCmdStr):TCmdStr;
      var
        i : longint;
      begin
@@ -696,6 +696,7 @@ implementation
         if (tf_files_case_aware in target_info.flags) or
            (tf_files_case_sensitive in target_info.flags) then
          begin
+           setlength(TargetFixFileName,length(s));
            for i:=1 to length(s) do
            begin
              case s[i] of
@@ -705,10 +706,10 @@ implementation
                  TargetFixFileName[i]:=s[i];
              end;
            end;
-           TargetFixFileName[0]:=s[0];
          end
        else
          begin
+           setlength(TargetFixFileName,length(s));
            for i:=1 to length(s) do
            begin
              case s[i] of
@@ -720,12 +721,11 @@ implementation
                   TargetFixFileName[i]:=s[i];
              end;
            end;
-           TargetFixFileName[0]:=s[0];
          end;
      end;
 
 
-   procedure SplitBinCmd(const s:string;var bstr:String;var cstr:TCmdStr);
+   procedure SplitBinCmd(const s:TCmdStr;var bstr:TCmdStr;var cstr:TCmdStr);
      var
        i : longint;
      begin
@@ -897,7 +897,7 @@ implementation
 
    procedure TSearchPathList.AddList(list:TSearchPathList;addfirst:boolean);
      var
-       s : string;
+       s : TCmdStr;
        hl : TSearchPathList;
        hp,hp2 : TCmdStrListItem;
      begin
@@ -1002,7 +1002,7 @@ implementation
              startpc:=pc;
              while (pc^<>sepch) and (pc^<>';') and (pc^<>#0) do
               inc(pc);
-			 SetLength(singlepathstring, pc-startpc);
+             SetLength(singlepathstring, pc-startpc);
              move(startpc^,singlepathstring[1],pc-startpc);            
              singlepathstring:=FixPath(ExpandFileName(singlepathstring),false);
              result:=FileExistsNonCase(singlepathstring,f,allowcache,FoundFile);
@@ -1037,15 +1037,15 @@ implementation
      end;
 
 
-    function GetShortName(const n:string):string;
+    function GetShortName(const n:TCmdStr):TCmdStr;
 {$ifdef win32}
       var
-        hs,hs2 : string;
+        hs,hs2 : TCmdStr;
         i : longint;
 {$endif}
 {$if defined(go32v2) or defined(watcom)}
       var
-        hs : string;
+        hs : TCmdStr;
 {$endif}
       begin
         GetShortName:=n;

+ 39 - 39
compiler/link.pas

@@ -55,12 +55,12 @@ interface
          Constructor Create;virtual;
          Destructor Destroy;override;
          procedure AddModuleFiles(hp:tmodule);
-         Procedure AddObject(const S,unitpath : String;isunit:boolean);
-         Procedure AddStaticLibrary(const S : String);
-         Procedure AddSharedLibrary(S : String);
-         Procedure AddStaticCLibrary(const S : String);
-         Procedure AddSharedCLibrary(S : String);
-         procedure AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);virtual;
+         Procedure AddObject(const S,unitpath : TCmdStr;isunit:boolean);
+         Procedure AddStaticLibrary(const S : TCmdStr);
+         Procedure AddSharedLibrary(S : TCmdStr);
+         Procedure AddStaticCLibrary(const S : TCmdStr);
+         Procedure AddSharedCLibrary(S : TCmdStr);
+         procedure AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);virtual;
          Procedure InitSysInitUnitName;virtual;
          Function  MakeExecutable:boolean;virtual;
          Function  MakeSharedLibrary:boolean;virtual;
@@ -75,7 +75,7 @@ interface
          Info : TLinkerInfo;
          Constructor Create;override;
          Destructor Destroy;override;
-         Function  FindUtil(const s:string):String;
+         Function  FindUtil(const s:TCmdStr):TCmdStr;
          Function  DoExec(const command:TCmdStr; para:TCmdStr;showinfo,useshell:boolean):boolean;
          procedure SetDefaultInfo;virtual;
          Function  MakeStaticLibrary:boolean;override;
@@ -88,13 +88,13 @@ interface
          { Libraries }
          FStaticLibraryList : TFPHashObjectList;
          FImportLibraryList : TFPHashObjectList;
-         procedure Load_ReadObject(const para:string);
-         procedure Load_ReadStaticLibrary(const para:string);
+         procedure Load_ReadObject(const para:TCmdStr);
+         procedure Load_ReadStaticLibrary(const para:TCmdStr);
          procedure ParseScript_Load;
          procedure ParseScript_Order;
          procedure ParseScript_CalcPos;
          procedure PrintLinkerScript;
-         function  RunLinkScript(const outputname:string):boolean;
+         function  RunLinkScript(const outputname:TCmdStr):boolean;
       protected
          property CObjInput:TObjInputClass read FCObjInput write FCObjInput;
          property CExeOutput:TExeOutputClass read FCExeOutput write FCExeOutput;
@@ -108,15 +108,15 @@ interface
          Destructor Destroy;override;
          Function  MakeExecutable:boolean;override;
          Function  MakeSharedLibrary:boolean;override;
-         procedure AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);override;
+         procedure AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);override;
        end;
 
     var
       Linker  : TLinker;
 
-    function FindObjectFile(s : string;const unitpath:string;isunit:boolean) : string;
-    function FindLibraryFile(s:string;const prefix,ext:string;var foundfile : TCmdStr) : boolean;
-    function FindDLL(const s:string;var founddll:TCmdStr):boolean;
+    function FindObjectFile(s : TCmdStr;const unitpath:TCmdStr;isunit:boolean) : TCmdStr;
+    function FindLibraryFile(s:TCmdStr;const prefix,ext:TCmdStr;var foundfile : TCmdStr) : boolean;
+    function FindDLL(const s:TCmdStr;var founddll:TCmdStr):boolean;
 
     procedure InitLinker;
     procedure DoneLinker;
@@ -138,7 +138,7 @@ Implementation
 *****************************************************************************}
 
     { searches an object file }
-    function FindObjectFile(s:string;const unitpath:string;isunit:boolean) : string;
+    function FindObjectFile(s:TCmdStr;const unitpath:TCmdStr;isunit:boolean) : TCmdStr;
       var
         found : boolean;
         foundfile : TCmdStr;
@@ -206,9 +206,9 @@ Implementation
 
 
     { searches a (windows) DLL file }
-    function FindDLL(const s:string;var founddll:TCmdStr):boolean;
+    function FindDLL(const s:TCmdStr;var founddll:TCmdStr):boolean;
       var
-        sysdir : string;
+        sysdir : TCmdStr;
         Found : boolean;
       begin
         Found:=false;
@@ -234,10 +234,10 @@ Implementation
 
 
     { searches an library file }
-    function FindLibraryFile(s:string;const prefix,ext:string;var foundfile : TCmdStr) : boolean;
+    function FindLibraryFile(s:TCmdStr;const prefix,ext:TCmdStr;var foundfile : TCmdStr) : boolean;
       var
         found : boolean;
-        paths : string;
+        paths : TCmdStr;
       begin
         findlibraryfile:=false;
         foundfile:=s;
@@ -400,18 +400,18 @@ Implementation
       end;
 
 
-    procedure TLinker.AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);
+    procedure TLinker.AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);
       begin
       end;
 
 
-    Procedure TLinker.AddObject(const S,unitpath : String;isunit:boolean);
+    Procedure TLinker.AddObject(const S,unitpath : TCmdStr;isunit:boolean);
       begin
         ObjectFiles.Concat(FindObjectFile(s,unitpath,isunit));
       end;
 
 
-    Procedure TLinker.AddSharedLibrary(S:String);
+    Procedure TLinker.AddSharedLibrary(S:TCmdStr);
       begin
         if s='' then
           exit;
@@ -426,7 +426,7 @@ Implementation
       end;
 
 
-    Procedure TLinker.AddStaticLibrary(const S:String);
+    Procedure TLinker.AddStaticLibrary(const S:TCmdStr);
       var
         ns : TCmdStr;
         found : boolean;
@@ -440,7 +440,7 @@ Implementation
       end;
 
 
-    Procedure TLinker.AddSharedCLibrary(S:String);
+    Procedure TLinker.AddSharedCLibrary(S:TCmdStr);
       begin
         if s='' then
           exit;
@@ -455,7 +455,7 @@ Implementation
       end;
 
 
-    Procedure TLinker.AddStaticCLibrary(const S:String);
+    Procedure TLinker.AddStaticCLibrary(const S:TCmdStr);
       var
         ns : TCmdStr;
         found : boolean;
@@ -469,7 +469,7 @@ Implementation
       end;
 
 
-    procedure AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);
+    procedure AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);
       begin
       end;
 
@@ -581,11 +581,11 @@ Implementation
       end;
 
 
-    Function TExternalLinker.FindUtil(const s:string):string;
+    Function TExternalLinker.FindUtil(const s:TCmdStr):TCmdStr;
       var
         Found    : boolean;
         FoundBin : TCmdStr;
-        UtilExe  : string;
+        UtilExe  : TCmdStr;
       begin
         if cs_link_on_target in current_settings.globalswitches then
           begin
@@ -656,7 +656,7 @@ Implementation
 
     Function TExternalLinker.MakeStaticLibrary:boolean;
 
-        function GetNextFiles(const maxCmdLength : AInt; var item : TCmdStrListItem) : ansistring;
+        function GetNextFiles(const maxCmdLength : AInt; var item : TCmdStrListItem) : TCmdStr;
           begin
             result := '';
             while (assigned(item) and ((length(result) + length(item.str) + 1) < maxCmdLength)) do begin
@@ -666,12 +666,12 @@ Implementation
           end;
 
       var
-        binstr, scriptfile : string;
-        success : boolean;
+        binstr, scriptfile : TCmdStr;
         cmdstr, nextcmd, smartpath : TCmdStr;
         current : TCmdStrListItem;
         script: Text;
         scripted_ar : boolean;
+        success : boolean;
       begin
         MakeStaticLibrary:=false;
       { remove the library, to be sure that it is rewritten }
@@ -782,7 +782,7 @@ Implementation
       end;
 
 
-    procedure TInternalLinker.AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);
+    procedure TInternalLinker.AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);
       var
         ImportLibrary : TImportLibrary;
         ImportSymbol  : TFPHashObject;
@@ -796,12 +796,12 @@ Implementation
       end;
 
 
-    procedure TInternalLinker.Load_ReadObject(const para:string);
+    procedure TInternalLinker.Load_ReadObject(const para:TCmdStr);
       var
         objdata   : TObjData;
         objinput  : TObjinput;
         objreader : TObjectReader;
-        fn        : string;
+        fn        : TCmdStr;
       begin
         fn:=FindObjectFile(para,'',false);
         Comment(V_Tried,'Reading object '+fn);
@@ -819,7 +819,7 @@ Implementation
       end;
 
 
-    procedure TInternalLinker.Load_ReadStaticLibrary(const para:string);
+    procedure TInternalLinker.Load_ReadStaticLibrary(const para:TCmdStr);
       var
         objreader : TObjectReader;
       begin
@@ -837,7 +837,7 @@ Implementation
       var
         s,
         para,
-        keyword : string;
+        keyword : String;
         hp : TCmdStrListItem;
       begin
         exeoutput.Load_Start;
@@ -870,7 +870,7 @@ Implementation
       var
         s,
         para,
-        keyword : string;
+        keyword : String;
         hp : TCmdStrListItem;
       begin
         exeoutput.Order_Start;
@@ -902,7 +902,7 @@ Implementation
       var
         s,
         para,
-        keyword : string;
+        keyword : String;
         hp : TCmdStrListItem;
       begin
         exeoutput.CalcPos_Start;
@@ -944,7 +944,7 @@ Implementation
       end;
 
 
-    function TInternalLinker.RunLinkScript(const outputname:string):boolean;
+    function TInternalLinker.RunLinkScript(const outputname:TCmdStr):boolean;
       label
         myexit;
       var

+ 13 - 13
compiler/script.pas

@@ -32,20 +32,20 @@ uses
 
 type
   TScript=class
-    fn   : string[100];
+    fn   : TCmdStr;
     data : TCmdStrList;
     executable : boolean;
-    constructor Create(const s:string);
-    constructor CreateExec(const s:string);
+    constructor Create(const s:TCmdStr);
+    constructor CreateExec(const s:TCmdStr);
     destructor Destroy;override;
-    procedure AddStart(const s:string);
-    procedure Add(const s:string);
+    procedure AddStart(const s:TCmdStr);
+    procedure Add(const s:TCmdStr);
     Function  Empty:boolean;
     procedure WriteToDisk;virtual;
   end;
 
   TAsmScript = class (TScript)
-    Constructor Create(Const ScriptName : String); virtual;
+    Constructor Create(Const ScriptName : TCmdStr); virtual;
     Procedure AddAsmCommand (Const Command, Options,FileName : TCmdStr);virtual;abstract;
     Procedure AddLinkCommand (Const Command, Options, FileName : TCmdStr);virtual;abstract;
     Procedure AddDeleteCommand (Const FileName : TCmdStr);virtual;abstract;
@@ -62,7 +62,7 @@ type
   end;
 
   TAsmScriptAmiga = class (TAsmScript)
-    Constructor Create (Const ScriptName : String); override;
+    Constructor Create (Const ScriptName : TCmdStr); override;
     Procedure AddAsmCommand (Const Command, Options,FileName : TCmdStr);override;
     Procedure AddLinkCommand (Const Command, Options, FileName : TCmdStr);override;
     Procedure AddDeleteCommand (Const FileName : TCmdStr);override;
@@ -71,7 +71,7 @@ type
   end;
 
   TAsmScriptUnix = class (TAsmScript)
-    Constructor Create (Const ScriptName : String);override;
+    Constructor Create (Const ScriptName : TCmdStr);override;
     Procedure AddAsmCommand (Const Command, Options,FileName : TCmdStr);override;
     Procedure AddLinkCommand (Const Command, Options, FileName : TCmdStr);override;
     Procedure AddDeleteCommand (Const FileName : TCmdStr);override;
@@ -90,10 +90,10 @@ type
 
   TLinkRes = Class (TScript)
     section: string[30];
-    procedure Add(const s:ansistring);
-    procedure AddFileName(const s:ansistring);
-    procedure EndSection(const s:ansistring);
-    procedure StartSection(const s:ansistring);
+    procedure Add(const s:TCmdStr);
+    procedure AddFileName(const s:TCmdStr);
+    procedure EndSection(const s:TCmdStr);
+    procedure StartSection(const s:TCmdStr);
   end;
 
 var
@@ -176,7 +176,7 @@ procedure TScript.WriteToDisk;
 var
   t : file;
   i : longint;
-  s : ansistring;
+  s : TCmdStr;
   le: string[2];
 
 begin

+ 1 - 1
compiler/systems/t_amiga.pas

@@ -198,7 +198,7 @@ end;
 
 function TLinkerAmiga.MakeAmigaPPCExe: boolean;
 var
-  BinStr  : string;
+  BinStr,
   CmdStr  : TCmdStr;
   StripStr: string[40];
 begin

+ 3 - 3
compiler/systems/t_beos.pas

@@ -357,8 +357,8 @@ end;
 
 function TLinkerBeOS.MakeExecutable:boolean;
 var
-  binstr : String;
-  cmdstr  : TcmdStr;
+  binstr,
+  cmdstr  : TCmdStr;
   success : boolean;
   DynLinkStr : string[60];
   StaticStr,
@@ -408,7 +408,7 @@ end;
 
 Function TLinkerBeOS.MakeSharedLibrary:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   DynLinkStr : string[60];

+ 2 - 2
compiler/systems/t_bsd.pas

@@ -499,7 +499,7 @@ end;
 
 function TLinkerBSD.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   DynLinkStr : string[60];
@@ -574,7 +574,7 @@ var
   InitStr,
   FiniStr,
   SoNameStr : string[80];
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
 begin

+ 1 - 1
compiler/systems/t_embedded.pas

@@ -218,7 +218,7 @@ end;
 
 function TlinkerEmbedded.MakeExecutable:boolean;
 var
-  binstr  : string;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StaticStr,

+ 1 - 1
compiler/systems/t_emx.pas

@@ -449,7 +449,7 @@ end;
 
 function TLinkerEMX.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   i       : longint;

+ 1 - 1
compiler/systems/t_gba.pas

@@ -550,7 +550,7 @@ end;
 
 function TLinkerGba.MakeExecutable:boolean;
 var
-  binstr  : string;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StaticStr,

+ 1 - 1
compiler/systems/t_go32v2.pas

@@ -235,7 +235,7 @@ end;
 
 function TExternalLinkerGo32v2.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StripStr : string[40];

+ 2 - 2
compiler/systems/t_linux.pas

@@ -754,7 +754,7 @@ end;
 
 function TLinkerLinux.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   DynLinkStr : string[60];
@@ -824,7 +824,7 @@ var
   InitStr,
   FiniStr,
   SoNameStr : string[80];
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
 begin

+ 1 - 1
compiler/systems/t_macos.pas

@@ -183,7 +183,7 @@ end;
 
 function TLinkerMPW.MakeExecutable:boolean;
 var
-  binstr  : string;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   DynLinkStr : string[60];

+ 1 - 1
compiler/systems/t_morph.pas

@@ -201,7 +201,7 @@ end;
 
 function TLinkerMorphOS.MakeExecutable:boolean;
 var
-  binstr  : string;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StripStr: string[40];

+ 1 - 1
compiler/systems/t_nds.pas

@@ -694,7 +694,7 @@ end;
 
 function TLinkerNDS.MakeExecutable:boolean;
 var
-  binstr  : string;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StaticStr,

+ 2 - 2
compiler/systems/t_nwl.pas

@@ -527,8 +527,8 @@ Const
 
 function TLinkerNetwlibc.MakeNetwareLoadableModule (isLib : boolean):boolean;
 var
-  binstr : String;
-  cmdstr : TcmdStr;
+  binstr,
+  cmdstr : TCmdStr;
   xdcname : string;
   success  : boolean;
   StripStr : string[2];

+ 1 - 1
compiler/systems/t_nwm.pas

@@ -497,7 +497,7 @@ end;
 
 function TLinkerNetware.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr   : TCmdStr;
   success  : boolean;
   StripStr : string[2];

+ 1 - 1
compiler/systems/t_os2.pas

@@ -448,7 +448,7 @@ end;
 
 function TLinkeros2.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   i       : longint;

+ 1 - 1
compiler/systems/t_palmos.pas

@@ -158,7 +158,7 @@ end;
 
 function TLinkerPalmOS.MakeExecutable:boolean;
 var
-  binstr  : TPathStr;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StripStr : string[40];

+ 2 - 2
compiler/systems/t_sunos.pas

@@ -371,7 +371,7 @@ end;
 
 function TLinkersolaris.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   DynLinkStr : string[60];
@@ -417,7 +417,7 @@ end;
 
 Function TLinkersolaris.MakeSharedLibrary:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
 begin

+ 1 - 1
compiler/systems/t_watcom.pas

@@ -133,7 +133,7 @@ end;
 
 function TLinkerWatcom.MakeExecutable:boolean;
 var
-  binstr : String;
+  binstr,
   cmdstr  : TCmdStr;
   success : boolean;
   StripStr : string[40];

+ 2 - 2
compiler/systems/t_win.pas

@@ -1278,7 +1278,7 @@ implementation
     function TExternalLinkerWin.MakeExecutable:boolean;
       var
         MapStr,
-        binstr : String;
+        binstr,
         cmdstr  : TCmdStr;
         success : boolean;
         cmds,i       : longint;
@@ -1382,7 +1382,7 @@ implementation
     Function TExternalLinkerWin.MakeSharedLibrary:boolean;
       var
         MapStr,
-        binstr : String;
+        binstr,
         cmdstr  : TCmdStr;
         success : boolean;
         cmds,