Browse Source

* Dotted filenames for package rtl-extra

Michaël Van Canneyt 2 years ago
parent
commit
db83f9ea44
49 changed files with 444 additions and 145 deletions
  1. 3 0
      packages/rtl-extra/namespaced/System.Matrix.pp
  2. 3 0
      packages/rtl-extra/namespaced/System.Net.Sockets.pp
  3. 3 0
      packages/rtl-extra/namespaced/System.Objects.pp
  4. 3 0
      packages/rtl-extra/namespaced/System.Printer.pp
  5. 3 0
      packages/rtl-extra/namespaced/System.Real48utils.pp
  6. 3 0
      packages/rtl-extra/namespaced/System.Serial.pp
  7. 3 0
      packages/rtl-extra/namespaced/System.Sockets.pp
  8. 3 0
      packages/rtl-extra/namespaced/System.Sortalgs.pp
  9. 3 0
      packages/rtl-extra/namespaced/System.Ucomplex.pp
  10. 3 0
      packages/rtl-extra/namespaced/UnixApi.Clocale.pp
  11. 3 0
      packages/rtl-extra/namespaced/UnixApi.Gpm.pp
  12. 3 0
      packages/rtl-extra/namespaced/UnixApi.Ipc.pp
  13. 3 0
      packages/rtl-extra/namespaced/UnixApi.Serial.pp
  14. 3 0
      packages/rtl-extra/namespaced/UnixApi.Sockets.pp
  15. 3 0
      packages/rtl-extra/namespaced/WinApi.Winsock.pp
  16. 3 0
      packages/rtl-extra/namespaced/WinApi.Winsock2.pp
  17. 62 0
      packages/rtl-extra/namespaces.lst
  18. 2 0
      packages/rtl-extra/src/amiga/printer.pp
  19. 7 0
      packages/rtl-extra/src/amiga/sockets.pp
  20. 7 0
      packages/rtl-extra/src/android/clocale.pp
  21. 7 0
      packages/rtl-extra/src/aros/sockets.pp
  22. 2 0
      packages/rtl-extra/src/atari/printer.pp
  23. 2 0
      packages/rtl-extra/src/go32v2/printer.pp
  24. 2 0
      packages/rtl-extra/src/inc/matrix.pp
  25. 2 0
      packages/rtl-extra/src/inc/objects.pp
  26. 2 0
      packages/rtl-extra/src/inc/real48utils.pp
  27. 7 0
      packages/rtl-extra/src/inc/sortalgs.pp
  28. 6 0
      packages/rtl-extra/src/inc/ucomplex.pp
  29. 2 0
      packages/rtl-extra/src/msdos/printer.pp
  30. 7 0
      packages/rtl-extra/src/netware/sockets.pp
  31. 2 0
      packages/rtl-extra/src/netwcomn/winsock.pp
  32. 7 0
      packages/rtl-extra/src/netwlibc/sockets.pp
  33. 2 0
      packages/rtl-extra/src/os2/printer.pp
  34. 12 0
      packages/rtl-extra/src/os2commn/sockets.pp
  35. 7 0
      packages/rtl-extra/src/unix/clocale.pp
  36. 11 0
      packages/rtl-extra/src/unix/gpm.pp
  37. 20 1
      packages/rtl-extra/src/unix/ipc.pp
  38. 6 0
      packages/rtl-extra/src/unix/printer.pp
  39. 6 0
      packages/rtl-extra/src/unix/serial.pp
  40. 17 3
      packages/rtl-extra/src/unix/sockets.pp
  41. 7 0
      packages/rtl-extra/src/unix/unixsockets.pp
  42. 118 118
      packages/rtl-extra/src/win/fpwinsockh.inc
  43. 2 0
      packages/rtl-extra/src/win/printer.pp
  44. 9 3
      packages/rtl-extra/src/win/serial.pp
  45. 27 20
      packages/rtl-extra/src/win/sockets.pp
  46. 7 0
      packages/rtl-extra/src/win/winsock.pp
  47. 6 0
      packages/rtl-extra/src/win/winsock2.pp
  48. 7 0
      packages/rtl-extra/src/wince/winsock.pp
  49. 6 0
      packages/rtl-extra/src/wince/winsock2.pp

+ 3 - 0
packages/rtl-extra/namespaced/System.Matrix.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Net.Sockets.pp

@@ -0,0 +1,3 @@
+unit System.Net.Sockets;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i sockets.pp}

+ 3 - 0
packages/rtl-extra/namespaced/System.Objects.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Printer.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Real48utils.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Serial.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Sockets.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Sortalgs.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/System.Ucomplex.pp

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

+ 3 - 0
packages/rtl-extra/namespaced/UnixApi.Clocale.pp

@@ -0,0 +1,3 @@
+unit UnixApi.Clocale;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i clocale.pp}

+ 3 - 0
packages/rtl-extra/namespaced/UnixApi.Gpm.pp

@@ -0,0 +1,3 @@
+unit UnixApi.Gpm;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i gpm.pp}

+ 3 - 0
packages/rtl-extra/namespaced/UnixApi.Ipc.pp

@@ -0,0 +1,3 @@
+unit UnixApi.Ipc;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i ipc.pp}

+ 3 - 0
packages/rtl-extra/namespaced/UnixApi.Serial.pp

@@ -0,0 +1,3 @@
+unit UnixApi.Serial;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i serial.pp}

+ 3 - 0
packages/rtl-extra/namespaced/UnixApi.Sockets.pp

@@ -0,0 +1,3 @@
+unit UnixApi.Sockets;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i unixsockets.pp}

+ 3 - 0
packages/rtl-extra/namespaced/WinApi.Winsock.pp

@@ -0,0 +1,3 @@
+unit WinApi.Winsock;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i winsock.pp}

+ 3 - 0
packages/rtl-extra/namespaced/WinApi.Winsock2.pp

@@ -0,0 +1,3 @@
+unit WinApi.Winsock2;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i winsock2.pp}

+ 62 - 0
packages/rtl-extra/namespaces.lst

@@ -0,0 +1,62 @@
+src/atari/printer.pp=namespaced/System.Printer.pp
+{s*:src/atari/}=namespaced/
+{i+:src/atari/}
+src/go32v2/printer.pp=namespaced/System.Printer.pp
+{s*:src/go32v2/}=namespaced/
+{i+:src/go32v2/}
+src/os2commn/sockets.pp=namespaced/System.Net.Sockets.pp
+{s*:src/os2commn/}=namespaced/
+{i+:src/os2commn/}
+src/os2commn/winsock.pp=namespaced/System.Net.Winsock.pp
+src/inc/ucomplex.pp=namespaced/System.Ucomplex.pp
+{s*:src/inc/}=namespaced/
+{i+:src/inc/}
+src/inc/objects.pp=namespaced/System.Objects.pp
+src/inc/sortalgs.pp=namespaced/System.Sortalgs.pp
+src/inc/matrix.pp=namespaced/System.Matrix.pp
+src/inc/real48utils.pp=namespaced/System.Real48utils.pp
+src/win/winsock2.pp=namespaced/WinApi.Winsock2.pp
+{s*:src/win/}=namespaced/
+{i+:src/win/}
+src/win/sockets.pp=namespaced/System.Net.Sockets.pp
+src/win/serial.pp=namespaced/System.Serial.pp
+src/win/winsock.pp=namespaced/WinApi.Winsock.pp
+src/win/printer.pp=namespaced/System.Printer.pp
+src/netwlibc/sockets.pp=namespaced/System.Net.Sockets.pp
+{s*:src/netwlibc/}=namespaced/
+{i+:src/netwlibc/}
+src/amiga/sockets.pp=namespaced/System.Net.Sockets.pp
+{s*:src/amiga/}=namespaced/
+{i+:src/amiga/}
+src/amiga/printer.pp=namespaced/System.Printer.pp
+src/netware/sockets.pp=namespaced/System.Net.Sockets.pp
+{s*:src/netware/}=namespaced/
+{i+:src/netware/}
+src/msdos/printer.pp=namespaced/System.Printer.pp
+{s*:src/msdos/}=namespaced/
+{i+:src/msdos/}
+src/unix/sockets.pp=namespaced/System.Net.Sockets.pp
+{s*:src/unix/}=namespaced/
+{i+:src/unix/}
+src/unix/gpm.pp=namespaced/UnixApi.Gpm.pp
+src/unix/serial.pp=namespaced/UnixApi.Serial.pp
+src/unix/clocale.pp=namespaced/UnixApi.Clocale.pp
+src/unix/ipc.pp=namespaced/UnixApi.Ipc.pp
+src/unix/printer.pp=namespaced/System.Printer.pp
+src/unix/unixsockets.pp=namespaced/UnixApi.Sockets.pp
+src/os2/printer.pp=namespaced/System.Printer.pp
+{s*:src/os2/}=namespaced/
+{i+:src/os2/}
+src/aros/sockets.pp=namespaced/System.Net.Sockets.pp
+{s*:src/aros/}=namespaced/
+{i+:src/aros/}
+src/android/clocale.pp=namespaced/UnixApi.Clocale.pp
+{s*:src/android/}=namespaced/
+{i+:src/android/}
+src/wince/winsock2.pp=namespaced/WinApi.Winsock2.pp
+{s*:src/wince/}=namespaced/
+{i+:src/wince/}
+src/wince/winsock.pp=namespaced/WinApi.Winsock.pp
+src/netwcomn/winsock.pp=namespaced/WinApi.Winsock.pp
+{s*:src/netwcomn/}=namespaced/
+{i+:src/netwcomn/}

+ 2 - 0
packages/rtl-extra/src/amiga/printer.pp

@@ -13,7 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit printer;
 unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 interface
 interface
 
 
 {$I printerh.inc}
 {$I printerh.inc}

+ 7 - 0
packages/rtl-extra/src/amiga/sockets.pp

@@ -14,12 +14,19 @@
 {.$DEFINE SOCKETS_DEBUG}
 {.$DEFINE SOCKETS_DEBUG}
 {$ModeSwitch out}
 {$ModeSwitch out}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.CTypes,Amiga.Core.Exec;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   ctypes,exec;
   ctypes,exec;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
 type
     size_t   = cuint32;         { as definied in the C standard}
     size_t   = cuint32;         { as definied in the C standard}

+ 7 - 0
packages/rtl-extra/src/android/clocale.pp

@@ -12,14 +12,21 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit clocale;
 unit clocale;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}
 {$mode objfpc}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.CWString, System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   cwstring, SysUtils;
   cwstring, SysUtils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 procedure GetAndroidFormatSettings(var ASettings: TFormatSettings; ALocale: utf8string = '');
 procedure GetAndroidFormatSettings(var ASettings: TFormatSettings; ALocale: utf8string = '');
 
 

+ 7 - 0
packages/rtl-extra/src/aros/sockets.pp

@@ -14,11 +14,18 @@
 {.$DEFINE SOCKETS_DEBUG}
 {.$DEFINE SOCKETS_DEBUG}
 {$ModeSwitch out}
 {$ModeSwitch out}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 Interface
 Interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.CTypes,Amiga.Core.Exec;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   ctypes,exec;
   ctypes,exec;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
 type
     size_t   = cuint32;         { as definied in the C standard}
     size_t   = cuint32;         { as definied in the C standard}

+ 2 - 0
packages/rtl-extra/src/atari/printer.pp

@@ -13,7 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit printer;
 unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 interface
 interface
 
 
 {$I printerh.inc}
 {$I printerh.inc}

+ 2 - 0
packages/rtl-extra/src/go32v2/printer.pp

@@ -13,7 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit printer;
 unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 2 - 0
packages/rtl-extra/src/inc/matrix.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit matrix;
 unit matrix;
+{$ENDIF FPC_DOTTEDUNITS}
 {
 {
     This file is part of the Free Pascal run time library.
     This file is part of the Free Pascal run time library.
     Copyright (c) 2004 by Daniel Mantione
     Copyright (c) 2004 by Daniel Mantione

+ 2 - 0
packages/rtl-extra/src/inc/objects.pp

@@ -33,7 +33,9 @@
 {    Free Vision project coordinator Balazs Scheidler      }
 {    Free Vision project coordinator Balazs Scheidler      }
 {    [email protected]                                     }
 {    [email protected]                                     }
 {                                                          }
 {                                                          }
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT Objects;
 UNIT Objects;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifdef cpullvm}
 {$ifdef cpullvm}
 {$define TYPED_LOCAL_CALLBACKS}
 {$define TYPED_LOCAL_CALLBACKS}

+ 2 - 0
packages/rtl-extra/src/inc/real48utils.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Real48Utils;
 unit Real48Utils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}{$H+}
 {$mode objfpc}{$H+}
 
 

+ 7 - 0
packages/rtl-extra/src/inc/sortalgs.pp

@@ -15,14 +15,21 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit SortAlgs;
 unit SortAlgs;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$MODE objfpc}
 {$MODE objfpc}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SortBase;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   SortBase;
   SortBase;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {
 {
                        HeapSort
                        HeapSort

+ 6 - 0
packages/rtl-extra/src/inc/ucomplex.pp

@@ -11,7 +11,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit UComplex;
 Unit UComplex;
+{$ENDIF FPC_DOTTEDUNITS}
 {$INLINE ON}
 {$INLINE ON}
 {$define TEST_INLINE}
 {$define TEST_INLINE}
 
 
@@ -23,7 +25,11 @@ Unit UComplex;
   interface
   interface
 
 
 {$ifndef FPUNONE}
 {$ifndef FPUNONE}
+{$IFDEF FPC_DOTTEDUNITS}
+    uses System.Math;
+{$ELSE FPC_DOTTEDUNITS}
     uses math;
     uses math;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
     type complex = record
     type complex = record
                      re : real;
                      re : real;

+ 2 - 0
packages/rtl-extra/src/msdos/printer.pp

@@ -13,7 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit printer;
 unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 7 - 0
packages/rtl-extra/src/netware/sockets.pp

@@ -14,7 +14,9 @@
 {$mode objfpc}
 {$mode objfpc}
 {$ModeSwitch out}
 {$ModeSwitch out}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 
 
@@ -23,8 +25,13 @@ Interface
 
 
 {$R-}
 {$R-}
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses
+  WinApi.Winsock;
+{$ELSE FPC_DOTTEDUNITS}
 Uses
 Uses
   winsock;
   winsock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Type
 Type
   cushort=word;
   cushort=word;

+ 2 - 0
packages/rtl-extra/src/netwcomn/winsock.pp

@@ -20,7 +20,9 @@
 {$PACKRECORDS 1}
 {$PACKRECORDS 1}
 {$R-}
 {$R-}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit winsock;
 unit winsock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}
 {$mode objfpc}
 
 

+ 7 - 0
packages/rtl-extra/src/netwlibc/sockets.pp

@@ -14,7 +14,9 @@
 {$mode objfpc}
 {$mode objfpc}
 {$ModeSwitch out}
 {$ModeSwitch out}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 
 
@@ -23,8 +25,13 @@ Interface
 
 
 {$R-}
 {$R-}
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses
+  WinApi.Winsock;
+{$ELSE FPC_DOTTEDUNITS}
 Uses
 Uses
   winsock;
   winsock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Type
 Type
   cushort=word;
   cushort=word;

+ 2 - 0
packages/rtl-extra/src/os2/printer.pp

@@ -13,7 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit printer;
 unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 interface
 interface
 
 
 {$I printerh.inc}
 {$I printerh.inc}

+ 12 - 0
packages/rtl-extra/src/os2commn/sockets.pp

@@ -18,12 +18,19 @@
 { $DEFINE notUnix}      // To make ssockets.pp compile
 { $DEFINE notUnix}      // To make ssockets.pp compile
 {$ModeSwitch out}
 {$ModeSwitch out}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  OS2Api.so32dll, System.CTypes;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   so32dll, ctypes;
   so32dll, ctypes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 const
 const
   AF_UNSPEC      = so32dll.AF_UNSPEC;      // unspecified
   AF_UNSPEC      = so32dll.AF_UNSPEC;      // unspecified
@@ -587,8 +594,13 @@ function NativeSocket (AEMXSocket: cInt): cInt;
 
 
 Implementation
 Implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  OS2Api.doscalls;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   DosCalls;
   DosCalls;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {******************************************************************************
 {******************************************************************************
                           Basic Socket Functions
                           Basic Socket Functions

+ 7 - 0
packages/rtl-extra/src/unix/clocale.pp

@@ -14,7 +14,9 @@
 
 
 { Initial implementation by petr kristan }
 { Initial implementation by petr kristan }
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit clocale;
 unit clocale;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifdef android}
 {$ifdef android}
   {$error This unit is not intended for Android. Something wrong with the make file. }
   {$error This unit is not intended for Android. Something wrong with the make file. }
@@ -43,8 +45,13 @@ implementation
 
 
 {$linklib c}
 {$linklib c}
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses
+  System.SysUtils, UnixApi.Types, System.InitC;
+{$ELSE FPC_DOTTEDUNITS}
 Uses
 Uses
   SysUtils, unixtype, initc;
   SysUtils, unixtype, initc;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Const
 Const
 {$if defined(BSD) or defined(SUNOS) or defined(aix)}
 {$if defined(BSD) or defined(SUNOS) or defined(aix)}

+ 11 - 0
packages/rtl-extra/src/unix/gpm.pp

@@ -12,7 +12,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit gpm;
 unit gpm;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {Note: Libgpm is *the* interface for Linux text-mode programs.
 {Note: Libgpm is *the* interface for Linux text-mode programs.
        Unfortunately it isn't suitable for anything else besides a blocky
        Unfortunately it isn't suitable for anything else besides a blocky
@@ -26,8 +28,13 @@ unit gpm;
                                     interface
                                     interface
 {*****************************************************************************}
 {*****************************************************************************}
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Base;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   baseUnix;
   baseUnix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifdef use_external}
 {$ifdef use_external}
 {$linklib gpm}
 {$linklib gpm}
@@ -207,7 +214,11 @@ function gpm_getsnapshot(var eptr:Tgpmevent):longint;inline;
 {*****************************************************************************}
 {*****************************************************************************}
 
 
 {$ifndef use_external}
 {$ifndef use_external}
+{$IFDEF FPC_DOTTEDUNITS}
+uses  UnixApi.TermIO,System.Net.Sockets,System.Strings,UnixApi.Unix;
+{$ELSE FPC_DOTTEDUNITS}
 uses  termio,sockets,strings,unix;
 uses  termio,sockets,strings,unix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type  Pgpm_stst=^Tgpm_stst;
 type  Pgpm_stst=^Tgpm_stst;
       Tgpm_stst=record
       Tgpm_stst=record

+ 20 - 1
packages/rtl-extra/src/unix/ipc.pp

@@ -12,16 +12,25 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
-
+{$IFNDEF FPC_DOTTEDUNITS}
 unit ipc;
 unit ipc;
+{$ENDIF}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses
+{$ifdef FPC_USE_LIBC}
+  System.InitC,
+{$endif}
+  UnixApi.Base,UnixApi.Types;
+{$ELSE FPC_DOTTEDUNITS}
 Uses
 Uses
 {$ifdef FPC_USE_LIBC}
 {$ifdef FPC_USE_LIBC}
   initc,
   initc,
 {$endif}
 {$endif}
   BaseUnix,UnixType;
   BaseUnix,UnixType;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$i osdefs.inc}       { Compile time defines }
 {$i osdefs.inc}       { Compile time defines }
 
 
@@ -882,10 +891,20 @@ Function semtimedop(semid:cint; sops: psembuf; nsops: size_t; timeOut: ptimespec
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+
+{$ifndef FPC_USE_LIBC}
+uses UnixApi.SysCall;
+{$endif ndef FPC_USE_LIBC}
+
+{$ELSE}
+
 {$ifndef FPC_USE_LIBC}
 {$ifndef FPC_USE_LIBC}
 uses Syscall;
 uses Syscall;
 {$endif ndef FPC_USE_LIBC}
 {$endif ndef FPC_USE_LIBC}
 
 
+{$ENDIF}
+
 {$ifndef FPC_USE_LIBC}
 {$ifndef FPC_USE_LIBC}
  {$if defined(Linux)}
  {$if defined(Linux)}
   {$if defined(cpux86_64) or defined(cpuaarch64) or defined(cpuriscv32) or defined(cpuriscv64) or defined(cpuxtensa) or defined(cpuloongarch64) or defined(NO_SYSCALL_IPC)}
   {$if defined(cpux86_64) or defined(cpuaarch64) or defined(cpuriscv32) or defined(cpuriscv64) or defined(cpuxtensa) or defined(cpuloongarch64) or defined(NO_SYSCALL_IPC)}

+ 6 - 0
packages/rtl-extra/src/unix/printer.pp

@@ -29,7 +29,9 @@
 
 
   ---------------------------------------------------------------------}
   ---------------------------------------------------------------------}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit printer;
 Unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 
 
@@ -56,7 +58,11 @@ Procedure AssignLst ( Var F : text; ToFile : string);
 }
 }
 
 
 Implementation
 Implementation
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Unix,UnixApi.Base,System.Strings;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Unix,BaseUnix,Strings;
 Uses Unix,BaseUnix,Strings;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$I printer.inc}
 {$I printer.inc}
 
 

+ 6 - 0
packages/rtl-extra/src/unix/serial.pp

@@ -2,7 +2,9 @@
   (c) 2000 Sebastian Guenther, [email protected]; modified MarkMLl 2012.
   (c) 2000 Sebastian Guenther, [email protected]; modified MarkMLl 2012.
 }
 }
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Serial;
 unit Serial;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$MODE objfpc}
 {$MODE objfpc}
 {$H+}
 {$H+}
@@ -10,7 +12,11 @@ unit Serial;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses UnixApi.Base,UnixApi.TermIO,UnixApi.Unix;
+{$ELSE FPC_DOTTEDUNITS}
 uses BaseUnix,termio,unix;
 uses BaseUnix,termio,unix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
 type
 
 

+ 17 - 3
packages/rtl-extra/src/unix/sockets.pp

@@ -10,14 +10,23 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 Interface
 Interface
 {$ModeSwitch out}
 {$ModeSwitch out}
 
 
 {$ifdef Unix}
 {$ifdef Unix}
+
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Base,UnixApi.Types;
+{$ELSE}
 Uses baseunix,UnixType;
 Uses baseunix,UnixType;
+{$ENDIF}
+
 {$endif}
 {$endif}
 
 
+
 {$i osdefs.inc}       { Compile time defines }
 {$i osdefs.inc}       { Compile time defines }
 
 
 {$if 
 {$if 
@@ -29,7 +38,7 @@ Uses baseunix,UnixType;
 {$endif}
 {$endif}
 
 
 Type 
 Type 
- TSockLen = BaseUnix.TSocklen;
+ TSockLen = {$IFDEF FPC_DOTTEDUNITS}UnixApi.Base{$ELSE}BaseUnix{$ENDIF}.TSocklen;
 
 
 {$i unxsockh.inc}
 {$i unxsockh.inc}
 {$i socketsh.inc}
 {$i socketsh.inc}
@@ -76,8 +85,13 @@ Function Accept(Sock:longint;var addr:ansistring;var SockIn,SockOut:File):Boolea
 
 
 Implementation
 Implementation
 
 
-Uses {$ifndef FPC_USE_LIBC}SysCall{$else}initc{$endif};
-
+{$IFDEF FPC_DOTTEDUNITS}
+Uses 
+  {$ifndef FPC_USE_LIBC}UnixApi.SysCall{$else}System.InitC{$endif};
+{$ELSE}
+Uses 
+  {$ifndef FPC_USE_LIBC}SysCall{$else}initc{$endif};
+{$ENDIF}
 threadvar internal_socketerror : cint;
 threadvar internal_socketerror : cint;
 
 
 {******************************************************************************
 {******************************************************************************

+ 7 - 0
packages/rtl-extra/src/unix/unixsockets.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit unixsockets;
 unit unixsockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$mode objfpc}{$H+}
 {$mode objfpc}{$H+}
 
 
@@ -6,8 +8,13 @@ unit unixsockets;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.CTypes, UnixApi.Base;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   cTypes, BaseUnix;
   cTypes, BaseUnix;
+{$ENDIF FPC_DOTTEDUNITS}
   
   
 {$unixsocketsh.inc}
 {$unixsocketsh.inc}
 
 

+ 118 - 118
packages/rtl-extra/src/win/fpwinsockh.inc

@@ -4,33 +4,33 @@
 
 
 const
 const
 { Address families. }
 { Address families. }
-  AF_UNSPEC       = winsock2.AF_UNSPEC;               { unspecified }
-  AF_UNIX         = winsock2.AF_UNIX;               { local to host (pipes, portals) }
-  AF_INET         = winsock2.AF_INET;               { internetwork: UDP, TCP, etc. }
-  AF_IMPLINK      = winsock2.AF_IMPLINK;               { arpanet imp addresses }
-  AF_PUP          = winsock2.AF_PUP;               { pup protocols: e.g. BSP }
-  AF_CHAOS        = winsock2.AF_CHAOS;               { mit CHAOS protocols }
-  AF_IPX          = winsock2.AF_IPX;               { IPX and SPX }
-  AF_NS           = winsock2.AF_NS;               { XEROX NS protocols }
-  AF_ISO          = winsock2.AF_ISO;               { ISO protocols }
-  AF_OSI          = winsock2.AF_OSI;          { OSI is ISO }
-  AF_ECMA         = winsock2.AF_ECMA;               { european computer manufacturers }
-  AF_DATAKIT      = winsock2.AF_DATAKIT;               { datakit protocols }
-  AF_CCITT        = winsock2.AF_CCITT;              { CCITT protocols, X.25 etc }
-  AF_SNA          = winsock2.AF_SNA;              { IBM SNA }
-  AF_DECnet       = winsock2.AF_DECnet;              { DECnet }
-  AF_DLI          = winsock2.AF_DLI;              { Direct data link interface }
-  AF_LAT          = winsock2.AF_LAT;              { LAT }
-  AF_HYLINK       = winsock2.AF_HYLINK;              { NSC Hyperchannel }
-  AF_APPLETALK    = winsock2.AF_APPLETALK;              { AppleTalk }
-  AF_NETBIOS      = winsock2.AF_NETBIOS;              { NetBios-style addresses }
-  AF_VOICEVIEW    = winsock2.AF_VOICEVIEW;              { VoiceView }
-  AF_FIREFOX      = winsock2.AF_FIREFOX;              { FireFox }
-  AF_UNKNOWN1     = winsock2.AF_UNKNOWN1;              { Somebody is using this! }
-  AF_BAN          = winsock2.AF_BAN;              { Banyan }
-  AF_ATM          = winsock2.AF_ATM; // Native ATM Services
-  AF_INET6        = winsock2.AF_INET6; // Internetwork Version 6
-  AF_MAX          = winsock2.AF_MAX;
+  AF_UNSPEC       = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_UNSPEC;               { unspecified }
+  AF_UNIX         = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_UNIX;               { local to host (pipes, portals) }
+  AF_INET         = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_INET;               { internetwork: UDP, TCP, etc. }
+  AF_IMPLINK      = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_IMPLINK;               { arpanet imp addresses }
+  AF_PUP          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_PUP;               { pup protocols: e.g. BSP }
+  AF_CHAOS        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_CHAOS;               { mit CHAOS protocols }
+  AF_IPX          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_IPX;               { IPX and SPX }
+  AF_NS           = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_NS;               { XEROX NS protocols }
+  AF_ISO          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_ISO;               { ISO protocols }
+  AF_OSI          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_OSI;          { OSI is ISO }
+  AF_ECMA         = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_ECMA;               { european computer manufacturers }
+  AF_DATAKIT      = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_DATAKIT;               { datakit protocols }
+  AF_CCITT        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_CCITT;              { CCITT protocols, X.25 etc }
+  AF_SNA          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_SNA;              { IBM SNA }
+  AF_DECnet       = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_DECnet;              { DECnet }
+  AF_DLI          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_DLI;              { Direct data link interface }
+  AF_LAT          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_LAT;              { LAT }
+  AF_HYLINK       = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_HYLINK;              { NSC Hyperchannel }
+  AF_APPLETALK    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_APPLETALK;              { AppleTalk }
+  AF_NETBIOS      = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_NETBIOS;              { NetBios-style addresses }
+  AF_VOICEVIEW    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_VOICEVIEW;              { VoiceView }
+  AF_FIREFOX      = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_FIREFOX;              { FireFox }
+  AF_UNKNOWN1     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_UNKNOWN1;              { Somebody is using this! }
+  AF_BAN          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_BAN;              { Banyan }
+  AF_ATM          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_ATM; // Native ATM Services
+  AF_INET6        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_INET6; // Internetwork Version 6
+  AF_MAX          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.AF_MAX;
 
 
   PF_UNSPEC       = AF_UNSPEC;
   PF_UNSPEC       = AF_UNSPEC;
   PF_UNIX         = AF_UNIX;
   PF_UNIX         = AF_UNIX;
@@ -61,71 +61,71 @@ const
   PF_MAX          = AF_MAX;
   PF_MAX          = AF_MAX;
 
 
 { Protocols }
 { Protocols }
-  IPPROTO_IP     =  winsock2.IPPROTO_IP;
-  IPPROTO_ICMP   =  winsock2.IPPROTO_ICMP;
-  IPPROTO_IGMP   =  winsock2.IPPROTO_IGMP;
-  IPPROTO_GGP    =  winsock2.IPPROTO_GGP;
-  IPPROTO_TCP    =  winsock2.IPPROTO_TCP;
-  IPPROTO_PUP    =  winsock2.IPPROTO_PUP;
-  IPPROTO_UDP    =  winsock2.IPPROTO_UDP;
-  IPPROTO_IDP    =  winsock2.IPPROTO_IDP;
-  IPPROTO_ND     =  winsock2.IPPROTO_ND;
-
-  IPPROTO_RAW    =  winsock2.IPPROTO_RAW;
-  IPPROTO_MAX    =  winsock2.IPPROTO_MAX;
+  IPPROTO_IP     =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_IP;
+  IPPROTO_ICMP   =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_ICMP;
+  IPPROTO_IGMP   =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_IGMP;
+  IPPROTO_GGP    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_GGP;
+  IPPROTO_TCP    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_TCP;
+  IPPROTO_PUP    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_PUP;
+  IPPROTO_UDP    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_UDP;
+  IPPROTO_IDP    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_IDP;
+  IPPROTO_ND     =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_ND;
+
+  IPPROTO_RAW    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_RAW;
+  IPPROTO_MAX    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPROTO_MAX;
 
 
 { Port/socket numbers: network standard functions}
 { Port/socket numbers: network standard functions}
 
 
-  IPPORT_ECHO    =  winsock2.IPPORT_ECHO;
-  IPPORT_DISCARD =  winsock2.IPPORT_DISCARD;
-  IPPORT_SYSTAT  =  winsock2.IPPORT_SYSTAT;
-  IPPORT_DAYTIME =  winsock2.IPPORT_DAYTIME;
-  IPPORT_NETSTAT =  winsock2.IPPORT_NETSTAT;
-  IPPORT_FTP     =  winsock2.IPPORT_FTP;
-  IPPORT_TELNET  =  winsock2.IPPORT_TELNET;
-  IPPORT_SMTP    =  winsock2.IPPORT_SMTP;
-  IPPORT_TIMESERVER  =  winsock2.IPPORT_TIMESERVER;
-  IPPORT_NAMESERVER  =  winsock2.IPPORT_NAMESERVER;
-  IPPORT_WHOIS       =  winsock2.IPPORT_WHOIS;
-  IPPORT_MTP         =  winsock2.IPPORT_MTP;
+  IPPORT_ECHO    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_ECHO;
+  IPPORT_DISCARD =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_DISCARD;
+  IPPORT_SYSTAT  =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_SYSTAT;
+  IPPORT_DAYTIME =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_DAYTIME;
+  IPPORT_NETSTAT =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_NETSTAT;
+  IPPORT_FTP     =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_FTP;
+  IPPORT_TELNET  =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_TELNET;
+  IPPORT_SMTP    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_SMTP;
+  IPPORT_TIMESERVER  =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_TIMESERVER;
+  IPPORT_NAMESERVER  =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_NAMESERVER;
+  IPPORT_WHOIS       =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_WHOIS;
+  IPPORT_MTP         =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_MTP;
 
 
 { Port/socket numbers: host specific functions }
 { Port/socket numbers: host specific functions }
 
 
-  IPPORT_TFTP        =  winsock2.IPPORT_TFTP;
-  IPPORT_RJE         =  winsock2.IPPORT_RJE;
-  IPPORT_FINGER      =  winsock2.IPPORT_FINGER;
-  IPPORT_TTYLINK     =  winsock2.IPPORT_TTYLINK;
-  IPPORT_SUPDUP      =  winsock2.IPPORT_SUPDUP;
+  IPPORT_TFTP        =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_TFTP;
+  IPPORT_RJE         =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_RJE;
+  IPPORT_FINGER      =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_FINGER;
+  IPPORT_TTYLINK     =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_TTYLINK;
+  IPPORT_SUPDUP      =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_SUPDUP;
 
 
 { UNIX TCP sockets }
 { UNIX TCP sockets }
 
 
-  IPPORT_EXECSERVER  =  winsock2.IPPORT_EXECSERVER;
-  IPPORT_LOGINSERVER =  winsock2.IPPORT_LOGINSERVER;
-  IPPORT_CMDSERVER   =  winsock2.IPPORT_CMDSERVER;
-  IPPORT_EFSSERVER   =  winsock2.IPPORT_EFSSERVER;
+  IPPORT_EXECSERVER  =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_EXECSERVER;
+  IPPORT_LOGINSERVER =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_LOGINSERVER;
+  IPPORT_CMDSERVER   =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_CMDSERVER;
+  IPPORT_EFSSERVER   =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_EFSSERVER;
 
 
 { UNIX UDP sockets }
 { UNIX UDP sockets }
 
 
-  IPPORT_BIFFUDP     =  winsock2.IPPORT_BIFFUDP;
-  IPPORT_WHOSERVER   =  winsock2.IPPORT_WHOSERVER;
-  IPPORT_ROUTESERVER =  winsock2.IPPORT_ROUTESERVER;
+  IPPORT_BIFFUDP     =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_BIFFUDP;
+  IPPORT_WHOSERVER   =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_WHOSERVER;
+  IPPORT_ROUTESERVER =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_ROUTESERVER;
 
 
 { Ports < IPPORT_RESERVED are reserved for
 { Ports < IPPORT_RESERVED are reserved for
   privileged processes (e.g. root). }
   privileged processes (e.g. root). }
 
 
-  IPPORT_RESERVED    =  winsock2.IPPORT_RESERVED;
+  IPPORT_RESERVED    =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IPPORT_RESERVED;
 
 
 { Options for use with [gs]etsockopt at the IP level. }
 { Options for use with [gs]etsockopt at the IP level. }
 
 
-  IP_OPTIONS          = winsock2.IP_OPTIONS;
-  IP_MULTICAST_IF     = winsock2.IP_MULTICAST_IF;
-  IP_MULTICAST_TTL    = winsock2.IP_MULTICAST_TTL;
-  IP_MULTICAST_LOOP   = winsock2.IP_MULTICAST_LOOP;
-  IP_ADD_MEMBERSHIP   = winsock2.IP_ADD_MEMBERSHIP;
-  IP_DROP_MEMBERSHIP  = winsock2.IP_DROP_MEMBERSHIP;
-  IP_TTL              = winsock2.IP_TTL;
-  IP_TOS              = winsock2.IP_TOS;
-  IP_DONTFRAGMENT     = winsock2.IP_DONTFRAGMENT;
+  IP_OPTIONS          = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_OPTIONS;
+  IP_MULTICAST_IF     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_MULTICAST_IF;
+  IP_MULTICAST_TTL    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_MULTICAST_TTL;
+  IP_MULTICAST_LOOP   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_MULTICAST_LOOP;
+  IP_ADD_MEMBERSHIP   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_ADD_MEMBERSHIP;
+  IP_DROP_MEMBERSHIP  = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_DROP_MEMBERSHIP;
+  IP_TTL              = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_TTL;
+  IP_TOS              = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_TOS;
+  IP_DONTFRAGMENT     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.IP_DONTFRAGMENT;
 
 
 { This is used instead of -1, since the
 { This is used instead of -1, since the
   TSocket type is unsigned.}
   TSocket type is unsigned.}
@@ -133,75 +133,75 @@ const
   Tsocket might be unsigned, but the sockets unit uses
   Tsocket might be unsigned, but the sockets unit uses
   signed types. So, we cannot use these constants, signed
   signed types. So, we cannot use these constants, signed
   ones are defined in socketh.inc.
   ones are defined in socketh.inc.
-  INVALID_SOCKET                = winsock2.INVALID_SOCKET;
-  SOCKET_ERROR                  = winsock2.SOCKET_ERROR;
+  INVALID_SOCKET                = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.INVALID_SOCKET;
+  SOCKET_ERROR                  = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SOCKET_ERROR;
 }
 }
 
 
 { Option flags per-socket. }
 { Option flags per-socket. }
 
 
-  SO_DEBUG        = winsock2.SO_DEBUG;
-  SO_ACCEPTCONN   = winsock2.SO_ACCEPTCONN;
-  SO_REUSEADDR    = winsock2.SO_REUSEADDR;
-  SO_KEEPALIVE    = winsock2.SO_KEEPALIVE;
-  SO_DONTROUTE    = winsock2.SO_DONTROUTE;
-  SO_BROADCAST    = winsock2.SO_BROADCAST;
-  SO_USELOOPBACK  = winsock2.SO_USELOOPBACK;
-  SO_LINGER       = winsock2.SO_LINGER;
-  SO_OOBINLINE    = winsock2.SO_OOBINLINE;
+  SO_DEBUG        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DEBUG;
+  SO_ACCEPTCONN   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_ACCEPTCONN;
+  SO_REUSEADDR    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_REUSEADDR;
+  SO_KEEPALIVE    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_KEEPALIVE;
+  SO_DONTROUTE    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DONTROUTE;
+  SO_BROADCAST    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_BROADCAST;
+  SO_USELOOPBACK  = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_USELOOPBACK;
+  SO_LINGER       = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_LINGER;
+  SO_OOBINLINE    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_OOBINLINE;
 
 
-  SO_DONTLINGER  =  winsock2.SO_DONTLINGER;
+  SO_DONTLINGER  =  {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DONTLINGER;
 
 
 { Additional options. }
 { Additional options. }
 
 
-  SO_SNDBUF       = winsock2.SO_SNDBUF;
-  SO_RCVBUF       = winsock2.SO_RCVBUF;
-  SO_SNDLOWAT     = winsock2.SO_SNDLOWAT;
-  SO_RCVLOWAT     = winsock2.SO_RCVLOWAT;
-  SO_SNDTIMEO     = winsock2.SO_SNDTIMEO;
-  SO_RCVTIMEO     = winsock2.SO_RCVTIMEO;
-  SO_ERROR        = winsock2.SO_ERROR;
-  SO_TYPE         = winsock2.SO_TYPE;
+  SO_SNDBUF       = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_SNDBUF;
+  SO_RCVBUF       = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_RCVBUF;
+  SO_SNDLOWAT     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_SNDLOWAT;
+  SO_RCVLOWAT     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_RCVLOWAT;
+  SO_SNDTIMEO     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_SNDTIMEO;
+  SO_RCVTIMEO     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_RCVTIMEO;
+  SO_ERROR        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_ERROR;
+  SO_TYPE         = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_TYPE;
 
 
 { Options for connect and disconnect data and options.  Used only by
 { Options for connect and disconnect data and options.  Used only by
   non-TCP/IP transports such as DECNet, OSI TP4, etc. }
   non-TCP/IP transports such as DECNet, OSI TP4, etc. }
 
 
-  SO_CONNDATA     = winsock2.SO_CONNDATA;
-  SO_CONNOPT      = winsock2.SO_CONNOPT;
-  SO_DISCDATA     = winsock2.SO_DISCDATA;
-  SO_DISCOPT      = winsock2.SO_DISCOPT;
-  SO_CONNDATALEN  = winsock2.SO_CONNDATALEN;
-  SO_CONNOPTLEN   = winsock2.SO_CONNOPTLEN;
-  SO_DISCDATALEN  = winsock2.SO_DISCDATALEN;
-  SO_DISCOPTLEN   = winsock2.SO_DISCOPTLEN;
+  SO_CONNDATA     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_CONNDATA;
+  SO_CONNOPT      = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_CONNOPT;
+  SO_DISCDATA     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DISCDATA;
+  SO_DISCOPT      = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DISCOPT;
+  SO_CONNDATALEN  = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_CONNDATALEN;
+  SO_CONNOPTLEN   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_CONNOPTLEN;
+  SO_DISCDATALEN  = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DISCDATALEN;
+  SO_DISCOPTLEN   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_DISCOPTLEN;
 
 
 { Option for opening sockets for synchronous access. }
 { Option for opening sockets for synchronous access. }
-  SO_OPENTYPE     = winsock2.SO_OPENTYPE;
-  SO_SYNCHRONOUS_ALERT    = winsock2.SO_SYNCHRONOUS_ALERT;
-  SO_SYNCHRONOUS_NONALERT = winsock2.SO_SYNCHRONOUS_NONALERT;
+  SO_OPENTYPE     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_OPENTYPE;
+  SO_SYNCHRONOUS_ALERT    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_SYNCHRONOUS_ALERT;
+  SO_SYNCHRONOUS_NONALERT = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_SYNCHRONOUS_NONALERT;
 
 
 { Other NT-specific options. }
 { Other NT-specific options. }
-  SO_MAXDG        = winsock2.SO_MAXDG;
-  SO_MAXPATHDG    = winsock2.SO_MAXPATHDG;
-  SO_UPDATE_ACCEPT_CONTEXT     = winsock2.SO_UPDATE_ACCEPT_CONTEXT;
-  SO_CONNECT_TIME = winsock2.SO_CONNECT_TIME;
+  SO_MAXDG        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_MAXDG;
+  SO_MAXPATHDG    = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_MAXPATHDG;
+  SO_UPDATE_ACCEPT_CONTEXT     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_UPDATE_ACCEPT_CONTEXT;
+  SO_CONNECT_TIME = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SO_CONNECT_TIME;
 
 
 { TCP options. }
 { TCP options. }
-  TCP_NODELAY     = winsock2.TCP_NODELAY;
-  TCP_BSDURGENT   = winsock2.TCP_BSDURGENT;
+  TCP_NODELAY     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.TCP_NODELAY;
+  TCP_BSDURGENT   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.TCP_BSDURGENT;
 
 
-  MSG_OOB         = winsock2.MSG_OOB;
-  MSG_PEEK        = winsock2.MSG_PEEK;
-  MSG_DONTROUTE   = winsock2.MSG_DONTROUTE;
+  MSG_OOB         = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.MSG_OOB;
+  MSG_PEEK        = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.MSG_PEEK;
+  MSG_DONTROUTE   = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.MSG_DONTROUTE;
 
 
 { WinSock 2 extension -- new flags for WSASend(), WSASendTo(), WSARecv() and WSARecvFrom() }
 { WinSock 2 extension -- new flags for WSASend(), WSASendTo(), WSARecv() and WSARecvFrom() }
-  MSG_INTERRUPT = winsock2.MSG_INTERRUPT;
-  MSG_MAXIOVLEN = winsock2.MSG_MAXIOVLEN;
+  MSG_INTERRUPT = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.MSG_INTERRUPT;
+  MSG_MAXIOVLEN = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.MSG_MAXIOVLEN;
 
 
-  MSG_PARTIAL     = winsock2.MSG_PARTIAL;
+  MSG_PARTIAL     = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.MSG_PARTIAL;
 
 
   { options for socket level  }
   { options for socket level  }
   SOL_SOCKET = $ffff;
   SOL_SOCKET = $ffff;
   
   
-  INVALID_SOCKET = winsock2.INVALID_SOCKET;
-  SOCKET_ERROR = winsock2.SOCKET_ERROR;
+  INVALID_SOCKET = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.INVALID_SOCKET;
+  SOCKET_ERROR = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SOCKET_ERROR;
 
 

+ 2 - 0
packages/rtl-extra/src/win/printer.pp

@@ -13,7 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit printer;
 unit printer;
+{$ENDIF FPC_DOTTEDUNITS}
 interface
 interface
 
 
 {$I printerh.inc}
 {$I printerh.inc}

+ 9 - 3
packages/rtl-extra/src/win/serial.pp

@@ -3,14 +3,20 @@
   Windows variant written with reference to Dejan Crnila's TComPort v1.01.
   Windows variant written with reference to Dejan Crnila's TComPort v1.01.
 }
 }
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Serial;
 unit Serial;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$MODE objfpc}
 {$MODE objfpc}
 {$H+}
 {$H+}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses WinApi.Windows;
+{$ELSE FPC_DOTTEDUNITS}
 uses Windows;
 uses Windows;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
 type
 
 
@@ -148,10 +154,10 @@ begin
   DCB.BaudRate := BitsPerSec;
   DCB.BaudRate := BitsPerSec;
   DCB.ByteSize := ByteSize;
   DCB.ByteSize := ByteSize;
   case Parity of
   case Parity of
-    OddParity:  DCB.Parity := Windows.ODDPARITY;
-    EvenParity: DCB.Parity := Windows.EVENPARITY
+    OddParity:  DCB.Parity := {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.ODDPARITY;
+    EvenParity: DCB.Parity := {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.EVENPARITY
   else
   else
-    DCB.Parity := Windows.NOPARITY
+    DCB.Parity := {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.NOPARITY
   end;
   end;
   if StopBits > 1 then
   if StopBits > 1 then
     DCB.StopBits := TWOSTOPBITS
     DCB.StopBits := TWOSTOPBITS

+ 27 - 20
packages/rtl-extra/src/win/sockets.pp

@@ -12,15 +12,22 @@
  **********************************************************************}
  **********************************************************************}
 {$mode objfpc}
 {$mode objfpc}
 {$ModeSwitch out}
 {$ModeSwitch out}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Sockets;
 unit Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 
 
 {$macro on}
 {$macro on}
 {$define maybelibc:=}
 {$define maybelibc:=}
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  Uses
+     WinApi.Winsock2,System.CTypes;
+{$ELSE FPC_DOTTEDUNITS}
   Uses
   Uses
      winsock2,ctypes;
      winsock2,ctypes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Type
 Type
   // the common socket functions are defined as size_t.
   // the common socket functions are defined as size_t.
@@ -77,40 +84,40 @@ end;
 
 
 function fpsocket       (domain:cint; xtype:cint; protocol: cint):cint;
 function fpsocket       (domain:cint; xtype:cint; protocol: cint):cint;
 begin
 begin
-  fpSocket:=WinSock2.Socket(Domain,xtype,ProtoCol);
+  fpSocket:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Socket(Domain,xtype,ProtoCol);
 end;
 end;
 
 
 function fpsend (s:cint; msg:pointer; len:size_t; flags:cint):ssize_t;
 function fpsend (s:cint; msg:pointer; len:size_t; flags:cint):ssize_t;
 begin
 begin
-  fpSend:=WinSock2.Send(S,msg,len,flags);
+  fpSend:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Send(S,msg,len,flags);
 end;
 end;
 
 
 function fpsendto (s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;
 function fpsendto (s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;
 begin
 begin
   // Dubious construct, this should be checked. (IPV6 fails ?)
   // Dubious construct, this should be checked. (IPV6 fails ?)
-  fpSendTo:=WinSock2.SendTo(S,msg,Len,Flags,Winsock2.PSockAddr(tox),toLen);
+  fpSendTo:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SendTo(S,msg,Len,Flags,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.PSockAddr(tox),toLen);
 end;
 end;
 
 
 function fprecv         (s:cint; buf: pointer; len: size_t; flags: cint):ssize_t;
 function fprecv         (s:cint; buf: pointer; len: size_t; flags: cint):ssize_t;
 begin
 begin
-  fpRecv:=WinSock2.Recv(S,Buf,Len,Flags);
+  fpRecv:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Recv(S,Buf,Len,Flags);
 end;
 end;
 
 
 function fprecvfrom    (s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;
 function fprecvfrom    (s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;
 
 
 begin
 begin
-  fpRecvFrom:=WinSock2.RecvFrom(S,Buf,Len,Flags,WinSock2.PSockAddr(From),FromLen);
+  fpRecvFrom:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.RecvFrom(S,Buf,Len,Flags,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.PSockAddr(From),FromLen);
 end;
 end;
 
 
 function fpconnect     (s:cint; name  : psockaddr; namelen : tsocklen):cint;
 function fpconnect     (s:cint; name  : psockaddr; namelen : tsocklen):cint;
 
 
 begin
 begin
-  fpConnect:=Winsock2.Connect(S,WinSock2.PSockAddr(name),nameLen);
+  fpConnect:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Connect(S,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.PSockAddr(name),nameLen);
 end;
 end;
 
 
 function fpshutdown     (s:cint; how:cint):cint;
 function fpshutdown     (s:cint; how:cint):cint;
 begin
 begin
-  fpShutDown:=Winsock2.ShutDown(S,How);
+  fpShutDown:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.ShutDown(S,How);
 end;
 end;
 
 
 Function socket(Domain,SocketType,Protocol:Longint):Longint;
 Function socket(Domain,SocketType,Protocol:Longint):Longint;
@@ -142,37 +149,37 @@ end;
 
 
 function fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint;
 function fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint;
 begin
 begin
-  fpbind:=Winsock2.Bind(S,Winsock2.PSockAddr(Addrx),AddrLen);
+  fpbind:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Bind(S,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.PSockAddr(Addrx),AddrLen);
 end;
 end;
 
 
 function fplisten      (s:cint; backlog : cint):cint;
 function fplisten      (s:cint; backlog : cint):cint;
 begin
 begin
-  fplisten:=Winsock2.Listen(S,backlog);
+  fplisten:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Listen(S,backlog);
 end;
 end;
 
 
 function fpaccept      (s:cint; addrx : psockaddr; addrlen : psocklen):cint;
 function fpaccept      (s:cint; addrx : psockaddr; addrlen : psocklen):cint;
 begin
 begin
-  fpAccept:=Winsock2.Accept(S,Winsock2.PSockAddr(Addrx), AddrLen);
+  fpAccept:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Accept(S,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.PSockAddr(Addrx), AddrLen);
 end;
 end;
 
 
 function fpgetsockname (s:cint; name  : psockaddr; namelen : psocklen):cint;
 function fpgetsockname (s:cint; name  : psockaddr; namelen : psocklen):cint;
 begin
 begin
-  fpGetSockName:=Winsock2.GetSockName(S,Winsock2.TSockAddr(name^),nameLen^);
+  fpGetSockName:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.GetSockName(S,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.TSockAddr(name^),nameLen^);
 end;
 end;
 
 
 function fpgetpeername (s:cint; name  : psockaddr; namelen : psocklen):cint;
 function fpgetpeername (s:cint; name  : psockaddr; namelen : psocklen):cint;
 begin
 begin
-  fpGetPeerName:=Winsock2.GetPeerName(S,Winsock2.TSockAddr(name^),NameLen^);
+  fpGetPeerName:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.GetPeerName(S,{$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.TSockAddr(name^),NameLen^);
 end;
 end;
 
 
 function fpgetsockopt  (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;
 function fpgetsockopt  (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;
 begin
 begin
-  fpGetSockOpt:=Winsock2.GetSockOpt(S,Level,OptName,OptVal,OptLen^);
+  fpGetSockOpt:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.GetSockOpt(S,Level,OptName,OptVal,OptLen^);
 end;
 end;
 
 
 function fpsetsockopt  (s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;
 function fpsetsockopt  (s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;
 begin
 begin
-  fpSetSockOpt:=Winsock2.SetSockOpt(S,Level,OptName,OptVal,OptLen);
+  fpSetSockOpt:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SetSockOpt(S,Level,OptName,OptVal,OptLen);
 end;
 end;
 
 
 function fpsocketpair  (d:cint; xtype:cint; protocol:cint; sv:pcint):cint;
 function fpsocketpair  (d:cint; xtype:cint; protocol:cint; sv:pcint):cint;
@@ -183,7 +190,7 @@ end;
 
 
 Function CloseSocket(Sock:Longint):Longint;
 Function CloseSocket(Sock:Longint):Longint;
 begin
 begin
-  result := Winsock2.CloseSocket (Sock);
+  result := {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.CloseSocket (Sock);
 end;
 end;
 
 
 Function Bind(Sock:Longint;Const Addr;AddrLen:Longint):Boolean;
 Function Bind(Sock:Longint;Const Addr;AddrLen:Longint):Boolean;
@@ -244,8 +251,8 @@ end;
 
 
 function fpWrite(handle : longint;Const bufptr;size : dword) : dword;
 function fpWrite(handle : longint;Const bufptr;size : dword) : dword;
 begin
 begin
-  fpWrite := dword(Winsock2.send(handle, bufptr, size, 0));
-  if fpWrite = dword(winsock2.SOCKET_ERROR) then
+  fpWrite := dword({$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.send(handle, bufptr, size, 0));
+  if fpWrite = dword({$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SOCKET_ERROR) then
     fpWrite := 0;
     fpWrite := 0;
 end;
 end;
 
 
@@ -254,7 +261,7 @@ function fpRead(handle : longint;var bufptr;size : dword) : dword;
      d : dword;
      d : dword;
 
 
   begin
   begin
-     if ioctlsocket(handle,FIONREAD,@d) = winsock2.SOCKET_ERROR then
+     if ioctlsocket(handle,FIONREAD,@d) = {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SOCKET_ERROR then
        begin
        begin
          fpRead:=0;
          fpRead:=0;
          exit;
          exit;
@@ -263,8 +270,8 @@ function fpRead(handle : longint;var bufptr;size : dword) : dword;
        begin
        begin
          if size>d then
          if size>d then
            size:=d;
            size:=d;
-         fpRead := dword(Winsock2.recv(handle, bufptr, size, 0));
-         if fpRead = dword(winsock2.SOCKET_ERROR) then
+         fpRead := dword({$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.recv(handle, bufptr, size, 0));
+         if fpRead = dword({$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.SOCKET_ERROR) then
            fpRead := 0;
            fpRead := 0;
        end;
        end;
   end;
   end;

+ 7 - 0
packages/rtl-extra/src/win/winsock.pp

@@ -19,12 +19,19 @@
 {$endif}
 {$endif}
 {$mode fpc}
 {$mode fpc}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit WinSock;
 unit WinSock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+    uses
+       WinApi.Windows;
+{$ELSE FPC_DOTTEDUNITS}
     uses
     uses
        windows;
        windows;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
     const
     const
        WINSOCK_VERSION = $0101;
        WINSOCK_VERSION = $0101;

+ 6 - 0
packages/rtl-extra/src/win/winsock2.pp

@@ -8,7 +8,9 @@
 // converted by Alex Konshin, mailto:[email protected]
 // converted by Alex Konshin, mailto:[email protected]
 // added FreePascal stuff: [email protected]
 // added FreePascal stuff: [email protected]
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit WinSock2;
 unit WinSock2;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifndef NO_SMART_LINK}
 {$ifndef NO_SMART_LINK}
 {$smartlink on}
 {$smartlink on}
@@ -20,7 +22,11 @@ unit WinSock2;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses WinApi.Windows;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Windows;
 Uses Windows;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {       Define the current Winsock version. To build an earlier Winsock version
 {       Define the current Winsock version. To build an earlier Winsock version
         application redefine this value prior to including Winsock2.h. }
         application redefine this value prior to including Winsock2.h. }

+ 7 - 0
packages/rtl-extra/src/wince/winsock.pp

@@ -14,7 +14,9 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit winsock;
 unit winsock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 { convention is cdecl for WinCE API}
 { convention is cdecl for WinCE API}
 {$calling cdecl}
 {$calling cdecl}
@@ -72,8 +74,13 @@ unit winsock;
 
 
   interface
   interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+    uses
+       WinApi.Windows;
+{$ELSE FPC_DOTTEDUNITS}
     uses
     uses
        windows;
        windows;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 //begin common win32 & wince
 //begin common win32 & wince
 
 

+ 6 - 0
packages/rtl-extra/src/wince/winsock2.pp

@@ -10,7 +10,9 @@
 // updated for wince : [email protected]
 // updated for wince : [email protected]
 // based on svn3257 rtl/win/winsock2.pas
 // based on svn3257 rtl/win/winsock2.pas
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit WinSock2;
 unit WinSock2;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifndef NO_SMART_LINK}
 {$ifndef NO_SMART_LINK}
 {$smartlink on}
 {$smartlink on}
@@ -24,7 +26,11 @@ unit WinSock2;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses WinApi.Windows;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Windows;
 Uses Windows;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {       Define the current Winsock version. To build an earlier Winsock version
 {       Define the current Winsock version. To build an earlier Winsock version
         application redefine this value prior to including Winsock2.h. }
         application redefine this value prior to including Winsock2.h. }