Browse Source

* Dotted filenames for package rtl-objpas

Michaël Van Canneyt 2 years ago
parent
commit
4b5ffd1b23
28 changed files with 244 additions and 56 deletions
  1. 3 0
      packages/rtl-objpas/namespaced/Data.FMTBcd.pp
  2. 3 0
      packages/rtl-objpas/namespaced/System.ConvUtils.pp
  3. 3 0
      packages/rtl-objpas/namespaced/System.DateUtils.pp
  4. 3 0
      packages/rtl-objpas/namespaced/System.Nullable.pp
  5. 3 0
      packages/rtl-objpas/namespaced/System.Rtti.pp
  6. 3 0
      packages/rtl-objpas/namespaced/System.StdConvs.pp
  7. 3 0
      packages/rtl-objpas/namespaced/System.StrUtils.pp
  8. 3 0
      packages/rtl-objpas/namespaced/System.Syshelpers.pp
  9. 3 0
      packages/rtl-objpas/namespaced/System.System.timespan.pp
  10. 3 0
      packages/rtl-objpas/namespaced/System.System.uitypes.pp
  11. 3 0
      packages/rtl-objpas/namespaced/System.VarUtils.pp
  12. 3 0
      packages/rtl-objpas/namespaced/System.Variants.pp
  13. 3 0
      packages/rtl-objpas/namespaced/System.WideStrUtils.pp
  14. 16 0
      packages/rtl-objpas/namespaces.lst
  15. 7 3
      packages/rtl-objpas/src/common/varutils.pp
  16. 13 1
      packages/rtl-objpas/src/inc/convutil.inc
  17. 41 30
      packages/rtl-objpas/src/inc/dateutil.inc
  18. 15 2
      packages/rtl-objpas/src/inc/fmtbcd.pp
  19. 10 0
      packages/rtl-objpas/src/inc/nullable.pp
  20. 29 10
      packages/rtl-objpas/src/inc/rtti.pp
  21. 6 0
      packages/rtl-objpas/src/inc/stdconvs.pp
  22. 14 3
      packages/rtl-objpas/src/inc/strutils.pp
  23. 11 0
      packages/rtl-objpas/src/inc/syshelpers.pp
  24. 9 0
      packages/rtl-objpas/src/inc/system.timespan.pp
  25. 1 0
      packages/rtl-objpas/src/inc/system.uitypes.pp
  26. 18 5
      packages/rtl-objpas/src/inc/variants.pp
  27. 9 2
      packages/rtl-objpas/src/inc/widestrutils.pp
  28. 6 0
      packages/rtl-objpas/src/win/varutils.pp

+ 3 - 0
packages/rtl-objpas/namespaced/Data.FMTBcd.pp

@@ -0,0 +1,3 @@
+unit Data.FMTBcd;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i fmtbcd.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.ConvUtils.pp

@@ -0,0 +1,3 @@
+unit System.ConvUtils;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i convutils.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.DateUtils.pp

@@ -0,0 +1,3 @@
+unit System.DateUtils;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i dateutil.inc}

+ 3 - 0
packages/rtl-objpas/namespaced/System.Nullable.pp

@@ -0,0 +1,3 @@
+unit System.Nullable;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i nullable.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.Rtti.pp

@@ -0,0 +1,3 @@
+unit System.Rtti;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i rtti.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.StdConvs.pp

@@ -0,0 +1,3 @@
+unit System.StdConvs;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i stdconvs.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.StrUtils.pp

@@ -0,0 +1,3 @@
+unit System.StrUtils;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i strutils.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.Syshelpers.pp

@@ -0,0 +1,3 @@
+unit System.Syshelpers;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i syshelpers.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.System.timespan.pp

@@ -0,0 +1,3 @@
+unit System.System.timespan;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i system.timespan.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.System.uitypes.pp

@@ -0,0 +1,3 @@
+unit System.System.uitypes;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i system.uitypes.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.VarUtils.pp

@@ -0,0 +1,3 @@
+unit System.VarUtils;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i varutils.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.Variants.pp

@@ -0,0 +1,3 @@
+unit System.Variants;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i variants.pp}

+ 3 - 0
packages/rtl-objpas/namespaced/System.WideStrUtils.pp

@@ -0,0 +1,3 @@
+unit System.WideStrUtils;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i widestrutils.pp}

+ 16 - 0
packages/rtl-objpas/namespaces.lst

@@ -0,0 +1,16 @@
+{s*:src/win/}=namespaced/
+{i+:src/win/}
+{s*:src/inc/}=namespaced/
+{i+:src/inc/}
+src/inc/stdconvs.pp=namespaced/System.StdConvs.pp
+src/inc/variants.pp=namespaced/System.Variants.pp
+src/inc/strutils.pp=namespaced/System.StrUtils.pp
+src/win/varutils.pp=namespaced/System.VarUtils.pp
+src/common/varutils.pp=namespaced/System.VarUtils.pp
+src/inc/convutils.pp=namespaced/System.ConvUtils.pp
+src/inc/dateutils.pp=namespaced/System.DateUtils.pp
+src/inc/nullable.pp=namespaced/System.Nullable.pp
+src/inc/rtti.pp=namespaced/System.Rtti.pp
+src/inc/widestrutils.pp=namespaced/System.WideStrUtils.pp
+src/inc/syshelpers.pp=namespaced/System.Syshelpers.pp
+src/inc/fmtbcd.pp=namespaced/Data.FMTBcd.pp

+ 7 - 3
packages/rtl-objpas/src/common/varutils.pp

@@ -14,13 +14,17 @@
  **********************************************************************}
  **********************************************************************}
 
 
 {$MODE ObjFPC}
 {$MODE ObjFPC}
-
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit varutils;
 Unit varutils;
+{$ENDIF}
 
 
 Interface
 Interface
 
 
-Uses sysutils;
-
+{$IFDEF FPC_DOTTEDUNITS}
+Uses System.SysUtils, System.Variants;
+{$ELSE}
+uses sysutils, variants;
+{$ENDIF}
 // Read definitions.
 // Read definitions.
 
 
 {$i varutilh.inc}
 {$i varutilh.inc}

+ 13 - 1
packages/rtl-objpas/src/inc/convutil.inc

@@ -17,8 +17,9 @@
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
 **********************************************************************}
 **********************************************************************}
-
+{$IFNDEF FPC_DOTTEDUNITS}
 unit ConvUtils;
 unit ConvUtils;
+{$ENDIF}
 
 
 interface
 interface
 
 
@@ -26,8 +27,14 @@ interface
 {$H+}
 {$H+}
 
 
 {$ifndef FPUNONE}
 {$ifndef FPUNONE}
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils, System.Math;
+{$ELSE FPC_DOTTEDUNITS}  
 uses
 uses
   sysutils, math;
   sysutils, math;
+{$ENDIF FPC_DOTTEDUNITS}
+
 
 
 Type TConvType        = type Word;
 Type TConvType        = type Word;
      TConvFamily      = type Word;
      TConvFamily      = type Word;
@@ -137,8 +144,13 @@ Type
 
 
 Implementation
 Implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.RtlConsts;
+{$ELSE}
 uses
 uses
   RtlConsts;
   RtlConsts;
+{$ENDIF}
 
 
 const
 const
   macheps=1E-9;
   macheps=1E-9;

+ 41 - 30
packages/rtl-objpas/src/inc/dateutil.inc

@@ -15,14 +15,21 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
-
+{$IFNDEF FPC_DOTTEDUNITS}
 unit DateUtils;
 unit DateUtils;
+{$ENDIF}
 
 
 interface
 interface
 
 
+
 {$ifndef FPUNONE}
 {$ifndef FPUNONE}
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils, System.Math;
+{$ELSE}
 uses
 uses
   SysUtils, Math;
   SysUtils, Math;
+{$ENDIF}
 
 
 { ---------------------------------------------------------------------
 { ---------------------------------------------------------------------
     Various constants
     Various constants
@@ -588,7 +595,11 @@ type
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.SysConst;
+{$ELSE FPC_DOTTEDUNITS}
 uses sysconst;
 uses sysconst;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 const
 const
   TDateTimeEpsilon = 2.2204460493e-16;
   TDateTimeEpsilon = 2.2204460493e-16;
@@ -2847,25 +2858,25 @@ end;
 function UniversalTimeToLocal(UT: TDateTime): TDateTime;
 function UniversalTimeToLocal(UT: TDateTime): TDateTime;
 
 
 begin
 begin
-  Result:=SysUtils.UniversalTimeToLocal(UT,-GetLocalTimeOffset(UT, True));
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.UniversalTimeToLocal(UT,-GetLocalTimeOffset(UT, True));
 end;
 end;
 
 
 function UniversalTimeToLocal(UT: TDateTime; TZOffset : Integer): TDateTime;
 function UniversalTimeToLocal(UT: TDateTime; TZOffset : Integer): TDateTime;
 
 
 begin
 begin
-  Result:=SysUtils.UniversalTimeToLocal(UT,TZOffset);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.UniversalTimeToLocal(UT,TZOffset);
 end;
 end;
  
  
 Function LocalTimeToUniversal(LT: TDateTime): TDateTime;
 Function LocalTimeToUniversal(LT: TDateTime): TDateTime;
 
 
 begin
 begin
-  Result:=SysUtils.LocalTimeToUniversal(LT,-GetLocalTimeOffset(LT, False));
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.LocalTimeToUniversal(LT,-GetLocalTimeOffset(LT, False));
 end;
 end;
 
 
 Function LocalTimeToUniversal(LT: TDateTime;TZOffset: Integer): TDateTime;
 Function LocalTimeToUniversal(LT: TDateTime;TZOffset: Integer): TDateTime;
 
 
 begin
 begin
-  Result:=SysUtils.LocalTimeToUniversal(LT,TZOffset);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.LocalTimeToUniversal(LT,TZOffset);
 end;
 end;
 
 
 Const
 Const
@@ -3240,7 +3251,7 @@ end;
 
 
 function TDateTimeHelper.DaysBetween(const aDateTime: TDateTime): Integer;
 function TDateTimeHelper.DaysBetween(const aDateTime: TDateTime): Integer;
 begin
 begin
-  Result :=DateUtils.DaysBetween(Self, aDateTime);
+  Result :={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.DaysBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.EndOfDay: TDateTime;
 function TDateTimeHelper.EndOfDay: TDateTime;
@@ -3310,7 +3321,7 @@ end;
 
 
 class function TDateTimeHelper.GetNow: TDateTime;
 class function TDateTimeHelper.GetNow: TDateTime;
 begin
 begin
-  Result := SysUtils.Now;
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Now;
 end;
 end;
 
 
 function TDateTimeHelper.GetSecond: Word;
 function TDateTimeHelper.GetSecond: Word;
@@ -3325,12 +3336,12 @@ end;
 
 
 class function TDateTimeHelper.GetToday: TDateTime;
 class function TDateTimeHelper.GetToday: TDateTime;
 begin
 begin
-  Result := SysUtils.Date;
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Date;
 end;
 end;
 
 
 class function TDateTimeHelper.GetTomorrow: TDateTime;
 class function TDateTimeHelper.GetTomorrow: TDateTime;
 begin
 begin
-  Result := SysUtils.Date + 1;
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Date + 1;
 end;
 end;
 
 
 function TDateTimeHelper.GetTotalSecounds: Int64;
 function TDateTimeHelper.GetTotalSecounds: Int64;
@@ -3350,12 +3361,12 @@ end;
 
 
 class function TDateTimeHelper.GetYesterDay: TDateTime;
 class function TDateTimeHelper.GetYesterDay: TDateTime;
 begin
 begin
-  Result := SysUtils.Date - 1;
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Date - 1;
 end;
 end;
 
 
 function TDateTimeHelper.HoursBetween(const aDateTime: TDateTime): Int64;
 function TDateTimeHelper.HoursBetween(const aDateTime: TDateTime): Int64;
 begin
 begin
-  Result := DateUtils.HoursBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.HoursBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.InRange(const aStartDateTime, aEndDateTime: TDateTime;
 function TDateTimeHelper.InRange(const aStartDateTime, aEndDateTime: TDateTime;
@@ -3366,47 +3377,47 @@ end;
 
 
 function TDateTimeHelper.IsAM: Boolean;
 function TDateTimeHelper.IsAM: Boolean;
 begin
 begin
-  Result := DateUtils.IsAM(Self);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsAM(Self);
 end;
 end;
 
 
 function TDateTimeHelper.IsInLeapYear: Boolean;
 function TDateTimeHelper.IsInLeapYear: Boolean;
 begin
 begin
-  Result := DateUtils.IsInLeapYear(Self);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsInLeapYear(Self);
 end;
 end;
 
 
 function TDateTimeHelper.IsPM: Boolean;
 function TDateTimeHelper.IsPM: Boolean;
 begin
 begin
-  Result := DateUtils.IsPM(Self);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsPM(Self);
 end;
 end;
 
 
 function TDateTimeHelper.IsSameDay(const aDateTime: TDateTime): Boolean;
 function TDateTimeHelper.IsSameDay(const aDateTime: TDateTime): Boolean;
 begin
 begin
-  Result := DateUtils.IsSameDay(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsSameDay(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.IsToday: Boolean;
 function TDateTimeHelper.IsToday: Boolean;
 begin
 begin
-  Result := DateUtils.IsToday(Self);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsToday(Self);
 end;
 end;
 
 
 function TDateTimeHelper.MilliSecondsBetween(const aDateTime: TDateTime): Int64;
 function TDateTimeHelper.MilliSecondsBetween(const aDateTime: TDateTime): Int64;
 begin
 begin
-  Result := DateUtils.MilliSecondsBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.MilliSecondsBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.MinutesBetween(const aDateTime: TDateTime): Int64;
 function TDateTimeHelper.MinutesBetween(const aDateTime: TDateTime): Int64;
 begin
 begin
-  Result := DateUtils.MinutesBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.MinutesBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.MonthsBetween(const aDateTime: TDateTime): Integer;
 function TDateTimeHelper.MonthsBetween(const aDateTime: TDateTime): Integer;
 begin
 begin
-  Result := DateUtils.MonthsBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.MonthsBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.SecondsBetween(const aDateTime: TDateTime): Int64;
 function TDateTimeHelper.SecondsBetween(const aDateTime: TDateTime): Int64;
 begin
 begin
-  Result := DateUtils.SecondsBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.SecondsBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.StartOfDay: TDateTime;
 function TDateTimeHelper.StartOfDay: TDateTime;
@@ -3439,60 +3450,60 @@ end;
 
 
 function TDateTimeHelper.WeeksBetween(const aDateTime: TDateTime): Integer;
 function TDateTimeHelper.WeeksBetween(const aDateTime: TDateTime): Integer;
 begin
 begin
-  Result := DateUtils.WeeksBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WeeksBetween(Self, aDateTime);
 end;
 end;
 
 
 function TDateTimeHelper.WithinDays(const aDateTime: TDateTime; const aDays:
 function TDateTimeHelper.WithinDays(const aDateTime: TDateTime; const aDays:
   Integer): Boolean;
   Integer): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastDays(Self, aDateTime, aDays);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastDays(Self, aDateTime, aDays);
 end;
 end;
 
 
 function TDateTimeHelper.WithinHours(const aDateTime: TDateTime; const aHours:
 function TDateTimeHelper.WithinHours(const aDateTime: TDateTime; const aHours:
   Int64): Boolean;
   Int64): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastHours(Self, aDateTime, aHours);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastHours(Self, aDateTime, aHours);
 end;
 end;
 
 
 function TDateTimeHelper.WithinMilliseconds(const aDateTime: TDateTime; const
 function TDateTimeHelper.WithinMilliseconds(const aDateTime: TDateTime; const
   AMilliseconds: Int64): Boolean;
   AMilliseconds: Int64): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastMilliSeconds(Self, aDateTime, AMilliseconds);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastMilliSeconds(Self, aDateTime, AMilliseconds);
 end;
 end;
 
 
 function TDateTimeHelper.WithinMinutes(const aDateTime: TDateTime; const
 function TDateTimeHelper.WithinMinutes(const aDateTime: TDateTime; const
   aMinutes: Int64): Boolean;
   aMinutes: Int64): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastMinutes(Self, aDateTime, aMinutes);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastMinutes(Self, aDateTime, aMinutes);
 end;
 end;
 
 
 function TDateTimeHelper.WithinMonths(const aDateTime: TDateTime; const aMonths:
 function TDateTimeHelper.WithinMonths(const aDateTime: TDateTime; const aMonths:
   Integer): Boolean;
   Integer): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastMonths(Self, aDateTime, aMonths);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastMonths(Self, aDateTime, aMonths);
 end;
 end;
 
 
 function TDateTimeHelper.WithinSeconds(const aDateTime: TDateTime; const
 function TDateTimeHelper.WithinSeconds(const aDateTime: TDateTime; const
   aSeconds: Int64): Boolean;
   aSeconds: Int64): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastSeconds(Self, aDateTime, aSeconds);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastSeconds(Self, aDateTime, aSeconds);
 end;
 end;
 
 
 function TDateTimeHelper.WithinWeeks(const aDateTime: TDateTime; const aWeeks:
 function TDateTimeHelper.WithinWeeks(const aDateTime: TDateTime; const aWeeks:
   Integer): Boolean;
   Integer): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastWeeks(Self, aDateTime, aWeeks);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastWeeks(Self, aDateTime, aWeeks);
 end;
 end;
 
 
 function TDateTimeHelper.WithinYears(const aDateTime: TDateTime; const aYears:
 function TDateTimeHelper.WithinYears(const aDateTime: TDateTime; const aYears:
   Integer): Boolean;
   Integer): Boolean;
 begin
 begin
-  Result := DateUtils.WithinPastYears(Self, aDateTime, aYears);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastYears(Self, aDateTime, aYears);
 end;
 end;
 
 
 function TDateTimeHelper.YearsBetween(const aDateTime: TDateTime): Integer;
 function TDateTimeHelper.YearsBetween(const aDateTime: TDateTime): Integer;
 begin
 begin
-  Result := DateUtils.YearsBetween(Self, aDateTime);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.YearsBetween(Self, aDateTime);
 end;
 end;
 
 
 class function TDateTimeHelper.Parse(Date: string; aFormat: string = '';
 class function TDateTimeHelper.Parse(Date: string; aFormat: string = '';

+ 15 - 2
packages/rtl-objpas/src/inc/fmtbcd.pp

@@ -136,13 +136,21 @@
   {$define maybe_packed := (**)}
   {$define maybe_packed := (**)}
 {$endif}
 {$endif}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT FmtBCD;
 UNIT FmtBCD;
+{$ENDIF}
 
 
 INTERFACE
 INTERFACE
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  USES
+    System.SysUtils,
+    System.Variants;
+{$ELSE FPC_DOTTEDUNITS}
   USES
   USES
     SysUtils,
     SysUtils,
     Variants;
     Variants;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
     MaxStringDigits = 100;          { not used ! }
     MaxStringDigits = 100;          { not used ! }
@@ -858,8 +866,13 @@ INTERFACE
 
 
 IMPLEMENTATION
 IMPLEMENTATION
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  USES
+    System.Classes {$ifopt r+}, System.SysConst {$endif};
+{$ELSE}
   USES
   USES
     classes {$ifopt r+}, sysconst {$endif};
     classes {$ifopt r+}, sysconst {$endif};
+{$ENDIF}
 
 
   type
   type
     TFMTBcdFactory = CLASS(TPublishableVarianttype)
     TFMTBcdFactory = CLASS(TPublishableVarianttype)
@@ -2592,10 +2605,10 @@ writeln ( '> ', i4, ' ', bh.Singles[i4], ' ', Add );
           if E < 0 then
           if E < 0 then
           begin
           begin
             System.Delete(Result, P+E-1, -E);
             System.Delete(Result, P+E-1, -E);
-            Result := Result + SysUtils.Format('E%.*d' , [Digits,E])
+            Result := Result + {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Format('E%.*d' , [Digits,E])
           end
           end
           else
           else
-            Result := Result + SysUtils.Format('E+%.*d', [Digits,E]);
+            Result := Result + {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Format('E+%.*d', [Digits,E]);
         End;
         End;
 
 
         ffFixed:
         ffFixed:

+ 10 - 0
packages/rtl-objpas/src/inc/nullable.pp

@@ -12,14 +12,20 @@
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit nullable;
 unit nullable;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}
 {$mode objfpc}
 {$modeswitch advancedrecords}
 {$modeswitch advancedrecords}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses sysutils;
 uses sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Type
 Type
 
 
@@ -61,7 +67,11 @@ Type
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.RtlConsts,System.TypInfo;
+{$ELSE FPC_DOTTEDUNITS}
 uses rtlconsts,typinfo;
 uses rtlconsts,typinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 { TNullable }
 { TNullable }
 
 

+ 29 - 10
packages/rtl-objpas/src/inc/rtti.pp

@@ -12,7 +12,9 @@
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 }
 }
-unit Rtti experimental;
+{$IFNDEF FPC_DOTTEDUNITS}
+unit Rtti;
+{$ENDIF}
 
 
 {$mode objfpc}{$H+}
 {$mode objfpc}{$H+}
 {$modeswitch advancedrecords}
 {$modeswitch advancedrecords}
@@ -37,11 +39,17 @@ unit Rtti experimental;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Classes,
+  System.SysUtils,
+  System.TypInfo;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   Classes,
   Classes,
   SysUtils,
   SysUtils,
   typinfo;
   typinfo;
-
+{$ENDIF FPC_DOTTEDUNITS}
 type
 type
   TRttiObject = class;
   TRttiObject = class;
   TRttiType = class;
   TRttiType = class;
@@ -688,14 +696,25 @@ resourcestring
 implementation
 implementation
 
 
 uses
 uses
+{$IFDEF FPC_DOTTEDUNITS}
+  System.Variants,
+{$ifdef windows}
+  WinApi.Windows,
+{$endif}
+{$ifdef unix}
+  UnixApi.Base,
+{$endif}
+  System.FGL;
+{$ELSE FPC_DOTTEDUNITS}
+  Variants,
 {$ifdef windows}
 {$ifdef windows}
   Windows,
   Windows,
 {$endif}
 {$endif}
 {$ifdef unix}
 {$ifdef unix}
   BaseUnix,
   BaseUnix,
 {$endif}
 {$endif}
-  variants,
   fgl;
   fgl;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 function AlignToPtr(aPtr: Pointer): Pointer; inline;
 function AlignToPtr(aPtr: Pointer): Pointer; inline;
 begin
 begin
@@ -1968,7 +1987,7 @@ var
 
 
 begin
 begin
   Result:=Default(TValue);
   Result:=Default(TValue);
-  aType:=VarType(aValue);
+  aType:=TVarType(aValue);
   case aType of
   case aType of
     varEmpty,
     varEmpty,
     VarNull : TValue.Make(@aValue,System.TypeInfo(Variant),Result);
     VarNull : TValue.Make(@aValue,System.TypeInfo(Variant),Result);
@@ -3637,7 +3656,7 @@ begin
       addr := vmt[VirtualIndex];
       addr := vmt[VirtualIndex];
   end;
   end;
 
 
-  Result := Rtti.Invoke(Name, addr, CallingConvention, IsStatic, aInstance, aArgs, GetParameters(True), ReturnType);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Rtti.Invoke(Name, addr, CallingConvention, IsStatic, aInstance, aArgs, GetParameters(True), ReturnType);
 end;
 end;
 
 
 function TRttiMethod.CreateImplementation(aUserData: Pointer; aCallback: TMethodImplementationCallbackMethod): TMethodImplementation;
 function TRttiMethod.CreateImplementation(aUserData: Pointer; aCallback: TMethodImplementationCallbackMethod): TMethodImplementation;
@@ -3965,7 +3984,7 @@ begin
   { by using a pointer we can also use this for non-class instance methods }
   { by using a pointer we can also use this for non-class instance methods }
   TValue.Make(@method^.Data, PTypeInfo(TypeInfo(Pointer)), inst);
   TValue.Make(@method^.Data, PTypeInfo(TypeInfo(Pointer)), inst);
 
 
-  Result := Rtti.Invoke(Name, method^.Code, CallingConvention, False, inst, aArgs, GetParameters(True), ReturnType);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Rtti.Invoke(Name, method^.Code, CallingConvention, False, inst, aArgs, GetParameters(True), ReturnType);
 end;
 end;
 
 
 { TRttiProcedureType }
 { TRttiProcedureType }
@@ -4050,7 +4069,7 @@ begin
   if aCallable.Kind <> tkProcVar then
   if aCallable.Kind <> tkProcVar then
     raise EInvocationError.CreateFmt(SErrInvokeCallableNotProc, [Name]);
     raise EInvocationError.CreateFmt(SErrInvokeCallableNotProc, [Name]);
 
 
-  Result := Rtti.Invoke(Name, PCodePointer(aCallable.GetReferenceToRawData)^, CallingConvention, True, TValue.Empty, aArgs, GetParameters(True), ReturnType);
+  Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Rtti.Invoke(Name, PCodePointer(aCallable.GetReferenceToRawData)^, CallingConvention, True, TValue.Empty, aArgs, GetParameters(True), ReturnType);
 end;
 end;
 
 
 { TRttiStringType }
 { TRttiStringType }
@@ -4311,7 +4330,7 @@ begin
         begin
         begin
           SetLength(FAttributes, at^.AttributeCount);
           SetLength(FAttributes, at^.AttributeCount);
           for i := 0 to High(FAttributes) do
           for i := 0 to High(FAttributes) do
-            FAttributes[i] := TCustomAttribute(typinfo.GetAttribute(at, i));
+            FAttributes[i] := TCustomAttribute({$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}TypInfo.GetAttribute(at, i));
         end;
         end;
       FAttributesResolved:=true;
       FAttributesResolved:=true;
     end;
     end;
@@ -4561,7 +4580,7 @@ end;
 
 
 function TRttiType.GetIsManaged: boolean;
 function TRttiType.GetIsManaged: boolean;
 begin
 begin
-  result := Rtti.IsManaged(FTypeInfo);
+  result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Rtti.IsManaged(FTypeInfo);
 end;
 end;
 
 
 function TRttiType.GetIsOrdinal: boolean;
 function TRttiType.GetIsOrdinal: boolean;
@@ -4639,7 +4658,7 @@ begin
       begin
       begin
       setlength(FAttributes,at^.AttributeCount);
       setlength(FAttributes,at^.AttributeCount);
       for i := 0 to at^.AttributeCount-1 do
       for i := 0 to at^.AttributeCount-1 do
-        FAttributes[i]:=TypInfo.GetAttribute(at,i);
+        FAttributes[i]:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}TypInfo.GetAttribute(at,i);
       end;
       end;
     FAttributesResolved:=true;
     FAttributesResolved:=true;
     end;
     end;

+ 6 - 0
packages/rtl-objpas/src/inc/stdconvs.pp

@@ -15,7 +15,9 @@
 
 
 **********************************************************************}
 **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit StdConvs;
 unit StdConvs;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -23,7 +25,11 @@ interface
 {$H+}
 {$H+}
 
 
 {$ifndef FPUNONE}
 {$ifndef FPUNONE}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses System.ConvUtils;
+{$ELSE FPC_DOTTEDUNITS}
 Uses convutils;
 Uses convutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 const
 const
   // Powers of 10
   // Powers of 10

+ 14 - 3
packages/rtl-objpas/src/inc/strutils.pp

@@ -15,12 +15,19 @@
 {$mode objfpc}
 {$mode objfpc}
 {$h+}
 {$h+}
 {$inline on}
 {$inline on}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit StrUtils;
 unit StrUtils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils, System.Types;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   SysUtils, Types;
   SysUtils, Types;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 { ---------------------------------------------------------------------
 { ---------------------------------------------------------------------
     Case insensitive search/replace
     Case insensitive search/replace
@@ -300,7 +307,11 @@ Function SplitCommandLine(S : UnicodeString) : TUnicodeStringArray;
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.SysConst; // HexDigits
+{$ELSE FPC_DOTTEDUNITS}
 uses sysconst; // HexDigits
 uses sysconst; // HexDigits
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 (*
 (*
   FindMatchesBoyerMooreCaseSensitive
   FindMatchesBoyerMooreCaseSensitive
@@ -861,7 +872,7 @@ Function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceF
 
 
 begin
 begin
   Case Algorithm of
   Case Algorithm of
-    sraDefault    : Result:=sysutils.StringReplace(S,OldPattern,NewPattern,Flags,aCount);
+    sraDefault    : Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.StringReplace(S,OldPattern,NewPattern,Flags,aCount);
     sraManySmall  : Result:=StringReplaceFast(S,OldPattern,NewPattern,Flags,aCount);
     sraManySmall  : Result:=StringReplaceFast(S,OldPattern,NewPattern,Flags,aCount);
     sraBoyerMoore : Result:=StringReplaceBoyerMoore(S,OldPattern,NewPattern,Flags,aCount);
     sraBoyerMoore : Result:=StringReplaceBoyerMoore(S,OldPattern,NewPattern,Flags,aCount);
   end;
   end;
@@ -872,13 +883,13 @@ end;
 function StringReplace(const S, OldPattern, NewPattern: unicodestring; Flags: TReplaceFlags): unicodestring;
 function StringReplace(const S, OldPattern, NewPattern: unicodestring; Flags: TReplaceFlags): unicodestring;
 
 
 begin
 begin
-  Result:=sysutils.StringReplace(S,OldPattern,NewPattern,Flags);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.StringReplace(S,OldPattern,NewPattern,Flags);
 end;
 end;
 
 
 function StringReplace(const S, OldPattern, NewPattern: widestring; Flags: TReplaceFlags): widestring;
 function StringReplace(const S, OldPattern, NewPattern: widestring; Flags: TReplaceFlags): widestring;
 
 
 begin
 begin
-  Result:=sysutils.StringReplace(S,OldPattern,NewPattern,Flags);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.StringReplace(S,OldPattern,NewPattern,Flags);
 end;
 end;
 {$ENDIF}
 {$ENDIF}
 
 

+ 11 - 0
packages/rtl-objpas/src/inc/syshelpers.pp

@@ -13,7 +13,9 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit syshelpers;
 unit syshelpers;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}
 {$mode objfpc}
 {$H+}
 {$H+}
@@ -24,8 +26,13 @@ unit syshelpers;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Classes, System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   classes, sysutils;
   classes, sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 ///////////////////////
 ///////////////////////
 //                   //
 //                   //
@@ -197,7 +204,11 @@ type
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.SysConst;
+{$ELSE FPC_DOTTEDUNITS}
 uses sysconst;
 uses sysconst;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 ///////////////////////
 ///////////////////////
 //                   //
 //                   //

+ 9 - 0
packages/rtl-objpas/src/inc/system.timespan.pp

@@ -20,8 +20,13 @@ unit system.timespan;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Classes, System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   Classes, SysUtils;
   Classes, SysUtils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Type
 Type
     TTimeSpan = record
     TTimeSpan = record
@@ -117,7 +122,11 @@ Type
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses System.Math;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Math;
 Uses Math;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 // Embacadero documentation is poor, I used MS' http://www1.cs.columbia.edu/~lok/csharp/refdocs/System/types/TimeSpan.html
 // Embacadero documentation is poor, I used MS' http://www1.cs.columbia.edu/~lok/csharp/refdocs/System/types/TimeSpan.html
 // mscorlib's docs seems to be not locale dependent, while C# docs mention "culture".
 // mscorlib's docs seems to be not locale dependent, while C# docs mention "culture".

+ 1 - 0
packages/rtl-objpas/src/inc/system.uitypes.pp

@@ -14,6 +14,7 @@
 
 
  **********************************************************************}
  **********************************************************************}
 unit System.UITypes;
 unit System.UITypes;
+
 {$mode delphi}
 {$mode delphi}
 
 
 // LCL defined all sets with SizeOf()=4
 // LCL defined all sets with SizeOf()=4

+ 18 - 5
packages/rtl-objpas/src/inc/variants.pp

@@ -23,12 +23,19 @@
 {$inline on}
 {$inline on}
 {$define VARIANTINLINE}
 {$define VARIANTINLINE}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Variants;
 unit Variants;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+    System.SysUtils,System.SysConst,System.RtlConsts,System.TypInfo;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
     sysutils,sysconst,rtlconsts,typinfo;
     sysutils,sysconst,rtlconsts,typinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
 type
   EVariantParamNotFoundError = class(EVariantError);
   EVariantParamNotFoundError = class(EVariantError);
@@ -357,9 +364,15 @@ var
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Math,
+  System.VarUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   Math,
   Math,
   VarUtils;
   VarUtils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 var
 var
   customvarianttypes    : array of TCustomVariantType;
   customvarianttypes    : array of TCustomVariantType;
@@ -1504,9 +1517,9 @@ begin
 {$endif}
 {$endif}
       end;
       end;
     except
     except
-      on E: SysUtils.ERangeError do
+      on E: {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.ERangeError do
         Overflow := True;
         Overflow := True;
-      on E: SysUtils.EIntOverflow do
+      on E: {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.EIntOverflow do
         Overflow := True;
         Overflow := True;
     end;
     end;
 {$pop}
 {$pop}
@@ -4245,14 +4258,14 @@ function TInvokeableVariantType.SetProperty(var V: TVarData; const Name: AnsiStr
 function TPublishableVariantType.GetProperty(var Dest: TVarData; const V: TVarData; const Name: AnsiString): Boolean;
 function TPublishableVariantType.GetProperty(var Dest: TVarData; const V: TVarData; const Name: AnsiString): Boolean;
   begin
   begin
     Result:=true;
     Result:=true;
-    Variant(Dest):=TypInfo.GetPropValue(getinstance(v),name);
+    Variant(Dest):={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}TypInfo.GetPropValue(getinstance(v),name);
   end;
   end;
 
 
 
 
 function TPublishableVariantType.SetProperty(var V: TVarData; const Name: AnsiString; const Value: TVarData): Boolean;
 function TPublishableVariantType.SetProperty(var V: TVarData; const Name: AnsiString; const Value: TVarData): Boolean;
   begin
   begin
     Result:=true;
     Result:=true;
-    TypInfo.SetPropValue(getinstance(v),name,Variant(value));
+    {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}TypInfo.SetPropValue(getinstance(v),name,Variant(value));
   end;
   end;
 
 
 
 
@@ -4573,7 +4586,7 @@ end;
 
 
 Function GetPropValue(Instance: TObject; const PropName: AnsiString): Variant;
 Function GetPropValue(Instance: TObject; const PropName: AnsiString): Variant;
 begin
 begin
-  Result:=TypInfo.GetPropValue(Instance,PropName,True);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}TypInfo.GetPropValue(Instance,PropName,True);
 end;
 end;
 
 
 
 

+ 9 - 2
packages/rtl-objpas/src/inc/widestrutils.pp

@@ -12,7 +12,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit widestrutils;
 unit widestrutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}
 {$mode objfpc}
 {$H+}
 {$H+}
@@ -20,8 +22,13 @@ unit widestrutils;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils, System.Classes;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   SysUtils, Classes;
   SysUtils, Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 function WideStringReplace(const S, OldPattern, NewPattern: WideString; Flags: TReplaceFlags): WideString;
 function WideStringReplace(const S, OldPattern, NewPattern: WideString; Flags: TReplaceFlags): WideString;
 function WideReplaceStr(const AText, AFromText, AToText: WideString): WideString; inline;
 function WideReplaceStr(const AText, AFromText, AToText: WideString): WideString; inline;
@@ -135,13 +142,13 @@ end;
 Function WideStringReplace(const S, OldPattern, NewPattern: WideString; Flags: TReplaceFlags): WideString;
 Function WideStringReplace(const S, OldPattern, NewPattern: WideString; Flags: TReplaceFlags): WideString;
 
 
 begin
 begin
-  Result:= sysutils.WideStringReplace(S,OldPattern,NewPattern,Flags);
+  Result:= {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.WideStringReplace(S,OldPattern,NewPattern,Flags);
 end;
 end;
 
 
 Function UnicodeStringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags): UnicodeString;
 Function UnicodeStringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags): UnicodeString;
 
 
 begin
 begin
-  Result:= sysutils.UnicodeStringReplace(S,OldPattern,NewPattern,Flags);
+  Result:=  {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.UnicodeStringReplace(S,OldPattern,NewPattern,Flags);
 end;
 end;
 
 
 function HasUTF8BOM(S: TStream): boolean;
 function HasUTF8BOM(S: TStream): boolean;

+ 6 - 0
packages/rtl-objpas/src/win/varutils.pp

@@ -19,11 +19,17 @@
 {$smartlink on}
 {$smartlink on}
 {$endif}
 {$endif}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit VarUtils;
 Unit VarUtils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses System.SysUtils,System.Types;
+{$ELSE FPC_DOTTEDUNITS}
 Uses sysutils,Types;
 Uses sysutils,Types;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$i varutilh.inc}
 {$i varutilh.inc}