Browse Source

* Dotted filenames for package vcl-compat

Michaël Van Canneyt 2 years ago
parent
commit
5a670c6023

+ 63 - 43
packages/vcl-compat/src/system.ioutils.pp

@@ -27,8 +27,13 @@ unit System.IOUtils;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Classes, System.SysUtils, System.Types, Fcl.Streams.Extra;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Classes, SysUtils, Types, streamex;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
 
@@ -292,6 +297,20 @@ type
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  {$IfDef MSWINDOWS}
+    WinApi.Windows, WinApi.WinDirs,
+  {$EndIf}
+  {$IfDef WINCE}
+    WinApi.Windows,
+  {$EndIf}
+  {$IfDef Unix}
+    UnixApi.Base,
+  {$EndIf}
+   System.DateUtils
+  ;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   {$IfDef MSWINDOWS}
     windows, WinDirs,
@@ -304,6 +323,7 @@ uses
   {$EndIf}
    DateUtils
   ;
+{$ENDIF FPC_DOTTEDUNITS}
 
 ResourceString
   SErrFileExists = 'File "%s" already exists';
@@ -398,7 +418,7 @@ end;
 
 function UTCtoLocal(const UTCDateTime: TDateTime): TDateTime;
 begin
-  Result:=Sysutils.UniversalTimeToLocal(UTCDateTime,GetLocalTimeOffset);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.UniversalTimeToLocal(UTCDateTime,GetLocalTimeOffset);
  end;
 
 { TPath }
@@ -612,7 +632,7 @@ begin
   Result:=False;
   {$IfDef MSWINDOWS}
     try
-      case GetDriveType(PChar(ExtractFileDrive(aPath))) of
+      case GetDriveType(PAnsiChar(ExtractFileDrive(aPath))) of
         DRIVE_REMOVABLE,
         DRIVE_FIXED,
         DRIVE_REMOTE,
@@ -1049,17 +1069,17 @@ end;
 
 class function TPath.GetTempFileName: string;
 begin
-  Result:=SysUtils.GetTempFileName;
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.GetTempFileName;
 end;
 
 class function TPath.GetTempPath: string;
 begin
-  Result:=IncludeTrailingPathDelimiter(SysUtils.GetTempDir);
+  Result:=IncludeTrailingPathDelimiter({$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.GetTempDir);
 end;
 
 class function TPath.GetHomePath: string;
 begin
-  Result:=SysUtils.GetUserDir;
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.GetUserDir;
 end;
 
 {$ifdef UNIX}
@@ -1150,7 +1170,7 @@ begin
     {$IFDEF UNIX}
       Result:=GetUserDir+'.cache'; // Check darwin
     {$ELSE}
-    Result:=SysUtils.GetTempDir;
+    Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.GetTempDir;
     {$ENDIF}
   {$EndIf}
 end;
@@ -1438,14 +1458,14 @@ begin
   {$Else}
     { Attributes supported by TSearchRec}
     Result:=[];
-    AddIfSet(Result, SysUtils.faDirectory,         TFileAttribute.faDirectory);
-    AddIfSet(Result, SysUtils.faSymLink{%H-},      TFileAttribute.faSymLink);
-    AddIfSet(Result, SysUtils.faNormal,            TFileAttribute.faNormal);
-    AddIfSet(Result, SysUtils.faDirectory,  TFileAttribute.faDirectory);
-    AddIfSet(Result, SysUtils.faSymLink{%H-},    TFileAttribute.faSymLink);
-    AddIfSet(Result, SysUtils.faHidden{%H-},     TFileAttribute.faHidden);
-    AddIfSet(Result, SysUtils.faSysFile{%H-},    TFileAttribute.faSystem);
-    AddIfSet(Result, SysUtils.faArchive,    TFileAttribute.faArchive);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faDirectory,         TFileAttribute.faDirectory);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faSymLink{%H-},      TFileAttribute.faSymLink);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faNormal,            TFileAttribute.faNormal);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faDirectory,  TFileAttribute.faDirectory);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faSymLink{%H-},    TFileAttribute.faSymLink);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faHidden{%H-},     TFileAttribute.faHidden);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faSysFile{%H-},    TFileAttribute.faSystem);
+    AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faArchive,    TFileAttribute.faArchive);
   {$EndIf}
 end;
 
@@ -1486,13 +1506,13 @@ begin
       Result:=FileAttributesToFlags(Attributes);
     {$ELSE}
        // Assume attrs as in TSearchRec
-      AddIfSet(Result, SysUtils.faDirectory,  TFileAttribute.faDirectory);
-      AddIfSet(Result, SysUtils.faSymLink{%H-},    TFileAttribute.faSymLink);
-      AddIfSet(Result, SysUtils.faNormal,     TFileAttribute.faNormal);
-      AddIfSet(Result, SysUtils.faReadOnly,   TFileAttribute.faReadOnly);
-      AddIfSet(Result, SysUtils.faHidden{%H-},     TFileAttribute.faHidden);
-      AddIfSet(Result, SysUtils.faSysFile{%H-},    TFileAttribute.faSystem);
-      AddIfSet(Result, SysUtils.faArchive,    TFileAttribute.faArchive);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faDirectory,  TFileAttribute.faDirectory);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faSymLink{%H-},    TFileAttribute.faSymLink);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faNormal,     TFileAttribute.faNormal);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faReadOnly,   TFileAttribute.faReadOnly);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faHidden{%H-},     TFileAttribute.faHidden);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faSysFile{%H-},    TFileAttribute.faSystem);
+      AddIfSet(Result, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faArchive,    TFileAttribute.faArchive);
     {$EndIf}
   {$EndIf}
 end;
@@ -1505,7 +1525,7 @@ end;
 class function TFile.Create(const aPath: string; const BufferSize: Integer
   ): TFileStream;
 begin
-  Result:=TFileStream.Create(aPath,Classes.fmCreate);
+  Result:=TFileStream.Create(aPath,{$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Classes.fmCreate);
 end;
 
 class function TFile.OpenOrCreate(const aPath: string): TFileStream;
@@ -1685,7 +1705,7 @@ end;
 
 class procedure TFile.Delete(const aPath: string);
 begin
-  SysUtils.DeleteFile(aPath);
+  {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.DeleteFile(aPath);
 end;
 
 class function TFile.Exists(const aPath: string; FollowLink: Boolean): Boolean;
@@ -1806,7 +1826,7 @@ class function TFile.Open(const aPath: string; const aMode: TFileMode;
 
 Const
  // faRead, faWrite, faReadWrite
-   AccessModes : Array[TFileAccess] of Word = (SysUtils.fmOpenRead, SysUtils.fmOpenWrite,fmOpenReadWrite)  ;
+   AccessModes : Array[TFileAccess] of Word = ({$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.fmOpenRead, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.fmOpenWrite,fmOpenReadWrite)  ;
    // fsNone, fsRead, fsWrite, fsReadWrite
    ShareModes : Array[TFileShare] of word = (fmShareExclusive, fmShareDenyRead, fmShareDenyWrite,fmShareDenyNone);
 
@@ -1825,7 +1845,7 @@ begin
     Result:=TFileStream.Create(aPath,fMode);
     end;
   TFileMode.fmCreate:
-    Result:=TFileStream.Create(aPath, Classes.fmCreate or sMode);
+    Result:=TFileStream.Create(aPath, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Classes.fmCreate or sMode);
   TFileMode.fmOpen:
     begin
     if Exists(aPath) then
@@ -1837,7 +1857,7 @@ begin
     if Exists(aPath) then
       Result:=TFileStream.Create(aPath,fMode)
     else
-      Result:=TFileStream.Create(aPath,Classes.fmCreate or sMode);
+      Result:=TFileStream.Create(aPath,{$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Classes.fmCreate or sMode);
     end;
   TFileMode.fmTruncate:
     begin
@@ -1854,7 +1874,7 @@ begin
       Result.Seek(0,soEnd);
     end
     else
-      Result:=TFileStream.Create(aPath, Classes.fmCreate or sMode);
+      Result:=TFileStream.Create(aPath, {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Classes.fmCreate or sMode);
     end;
   end;
 end;
@@ -1950,7 +1970,7 @@ begin
   ReplaceFlags:=REPLACEFILE_WRITE_THROUGH;
   if aIgnoreMetadataErrors then
       ReplaceFlags:=ReplaceFlags or REPLACEFILE_IGNORE_MERGE_ERRORS;
-  ReplaceFileA(PChar(lDest),PChar(lSrc),PChar(lBackup),ReplaceFlags,nil,nil);
+  ReplaceFileA(PAnsiChar(lDest),PAnsiChar(lSrc),PAnsiChar(lBackup),ReplaceFlags,nil,nil);
 end;
 {$ENDIF MSWINDOWS}
 
@@ -1975,7 +1995,7 @@ begin
 {$ifdef unix}
   fpCHmod(aPath,FileAttributesToInteger(aAttributes));
 {$else}
-  SysUtils.FileSetAttr(aPath, FileAttributesToInteger(aAttributes));
+  {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FileSetAttr(aPath, FileAttributesToInteger(aAttributes));
 {$endif}
 end;
 
@@ -2046,12 +2066,12 @@ begin
   Result      :=[];
   if (FindFirst(IntPath + aSearchPattern, TFile.FileAttributesToInteger(SearchAttributes), SearchRec) = 0) then
     repeat
-      if (aSearchOption = soAllDirectories) and ((SearchRec.Attr and SysUtils.faDirectory) <> 0) then
+      if (aSearchOption = soAllDirectories) and ((SearchRec.Attr and {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faDirectory) <> 0) then
         Result:=Result + GetFilesAndDirectories(IntPath + SearchRec.Name, aSearchPattern, aSearchOption, SearchAttributes, aPredicate)
       else if FilterPredicate(aPath, SearchRec) then
         Result:=Result + [IntPath + SearchRec.Name];
     until FindNext(SearchRec) <> 0;
-  SysUtils.FindClose(SearchRec);
+  {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FindClose(SearchRec);
 end;
 
 class function TDirectory.GetFilesAndDirectories(const aPath,
@@ -2093,7 +2113,7 @@ end;
 function DeleteDirectory(const DirectoryName: string; OnlyChildren: boolean): boolean;
 const
   //Don't follow symlinks on *nix, just delete them
-  DeleteMask = faAnyFile {$ifdef unix} or sysutils.faSymLink{%H-} {$endif unix};
+  DeleteMask = faAnyFile {$ifdef unix} or {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}sysutils.faSymLink{%H-} {$endif unix};
 var
   FileInfo: TSearchRec;
   CurSrcDir: String;
@@ -2108,15 +2128,15 @@ begin
         if (FileInfo.Name='.') or (FileInfo.Name='..') or (FileInfo.Name='') then
           continue;
         CurFilename:=CurSrcDir+FileInfo.Name;
-        if ((FileInfo.Attr and sysutils.faDirectory)>0)
-           {$ifdef unix} and ((FileInfo.Attr and sysutils.faSymLink{%H-})=0) {$endif unix} then begin
+        if ((FileInfo.Attr and {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}sysutils.faDirectory)>0)
+           {$ifdef unix} and ((FileInfo.Attr and {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}sysutils.faSymLink{%H-})=0) {$endif unix} then begin
           if not DeleteDirectory(CurFilename,false) then exit;
         end else begin
-          if not Sysutils.DeleteFile(CurFilename) then exit;
+          if not {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.DeleteFile(CurFilename) then exit;
         end;
-      until Sysutils.FindNext(FileInfo)<>0;
+      until {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FindNext(FileInfo)<>0;
     finally
-      Sysutils.FindClose(FileInfo);
+      {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FindClose(FileInfo);
     end;
   if (not OnlyChildren) and (not RemoveDir(CurSrcDir)) then exit;
   Result:=true;
@@ -2472,9 +2492,9 @@ begin
         if Handle and Assigned(aAfter) then
           Continue:=aAfter(lPath,Info);
         end;
-    until (SysUtils.FindNext(Info)<>0) or not Continue;
+    until ({$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FindNext(Info)<>0) or not Continue;
   finally
-    SysUtils.FindClose(Info);
+    {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FindClose(Info);
   end;
 end;
 
@@ -2487,7 +2507,7 @@ begin
     repeat
       Result:=(sr.Name = '.') or (sr.Name = '..');
     until Result and (FindNext(sr) = 0);
-  SysUtils.FindClose(sr);
+  {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FindClose(sr);
 end;
 
 class function TDirectory.IsRelativePath(const aPath: string): Boolean;
@@ -2498,7 +2518,7 @@ end;
 Function SpecialDir(Const Info : TSearchRec) : Boolean;
 
 begin
-  Result:=(Info.Attr and SysUtils.faDirectory <> 0) and (Info.Name='.') or (Info.Name='..');
+  Result:=(Info.Attr and {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faDirectory <> 0) and (Info.Name='.') or (Info.Name='..');
 end;
 
 class procedure TDirectory.Move(const SourceDirName, DestDirName: string);
@@ -2531,7 +2551,7 @@ Var
       begin
         lSrc:=TPath.Combine(aPath,aInfo.Name);
 {$IFDEF WINDOWS}
-        FileSetAttr(lSrc,SysUtils.faNormal);
+        FileSetAttr(lSrc,{$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faNormal);
 {$ENDIF}
         RemoveDir(lSrc);
       end
@@ -2543,7 +2563,7 @@ Var
           lDestF:=IncludeTrailingPathDelimiter(lDestF+ExtractRelativePath(lSource,aPath));
         lDestF:=lDest+aInfo.Name;
 {$IFDEF WINDOWS}
-        FileSetAttr(lSrc,SysUtils.faNormal);
+        FileSetAttr(lSrc,{$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.faNormal);
 {$ENDIF WINDOWS}
         RenameFile(lSrc,lDestF);
 {$IFDEF WINDOWS}

+ 8 - 0
packages/vcl-compat/src/system.netencoding.pp

@@ -21,7 +21,11 @@ unit System.NetEncoding;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.SysUtils, System.Classes;
+{$ELSE FPC_DOTTEDUNITS}
 uses Sysutils, Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
   // Not used here
@@ -108,7 +112,11 @@ type
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.Hash.Base64, FpWeb.Http.Protocol, Html.Defs, Xml.Read;
+{$ELSE FPC_DOTTEDUNITS}
 uses base64, httpprotocol, HTMLDefs, xmlread;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Resourcestring
   sInvalidHTMLEntity = 'Invalid HTML encoded character: %s';