Browse Source

* eol style property in main branch fixed

git-svn-id: trunk@19 -
fpc 20 years ago
parent
commit
48feb5014c
5 changed files with 1354 additions and 1359 deletions
  1. 1 5
      .gitattributes
  2. 0 1
      install/macosx/resources/License.txt
  3. 2 2
      install/macosx/resources/ReadMe.txt
  4. 1099 1099
      packages/extra/winunits/jedi.inc
  5. 252 252
      rtl/win32/mouse.pp

+ 1 - 5
.gitattributes

@@ -234,8 +234,6 @@ install/macosx/resources/English.lproj/InstallationCheck.strings -text
 install/macosx/resources/German.lproj/InstallationCheck.strings -text
 install/macosx/resources/InstallationCheck -text
 install/macosx/resources/InstallationCheck.strings -text
-install/macosx/resources/License.txt -text
-install/macosx/resources/ReadMe.txt -text
 install/macosx/resources/postflight -text
 install/makepack -text
 install/makesource -text
@@ -443,7 +441,6 @@ packages/extra/unixutil/Makefile -text
 packages/extra/unzip/Makefile -text
 packages/extra/utmp/Makefile -text
 packages/extra/winunits/Makefile -text
-packages/extra/winunits/jedi.inc -text
 packages/extra/x11/Makefile -text
 packages/extra/zlib/Makefile -text
 rtl/COPYING -text
@@ -592,7 +589,6 @@ rtl/watcom/Makefile -text
 rtl/watcom/prt0.asm -text
 rtl/win32/Makefile -text
 rtl/win32/gprt0.as -text
-rtl/win32/mouse.pp -text
 rtl/win32/wcygprt0.as -text
 rtl/win32/wdllprt0.as -text
 rtl/win32/wininc/Makefile -text
@@ -644,7 +640,7 @@ tests/utils/Makefile -text
 tests/utils/macos/LinkRunDir -text
 tests/utils/macos/LinkRunTests -text
 tests/utils/tests.sql -text
-tests/webtbs/tw1472.pp -text
+tests/webtbs/tw1472.pp svneol=native#unset
 utils/Makefile -text
 utils/README -text
 utils/data2inc.exm -text

File diff suppressed because it is too large
+ 0 - 1
install/macosx/resources/License.txt


File diff suppressed because it is too large
+ 2 - 2
install/macosx/resources/ReadMe.txt


+ 1099 - 1099
packages/extra/winunits/jedi.inc

@@ -1,1102 +1,1102 @@
-{$IFNDEF JEDI_INC}
-{$DEFINE JEDI_INC}
-
-{******************************************************************************}
-{                                                                              }
-{  The contents of this file are subject to the Mozilla Public License         }
-{  Version 1.1 (the "License"); you may not use this file except in            }
-{  compliance with the License. You may obtain a copy of the License at        }
-{  http://www.mozilla.org/MPL/                                                 }
-{                                                                              }
-{  Software distributed under the License is distributed on an "AS IS" basis,  }
-{  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License    }
-{  for the specific language governing rights and limitations under the        }
-{  License.                                                                    }
-{                                                                              }
-{  The Original Code is: jedi.inc.                                             }
-{  The Initial Developer of the Original Code is Project JEDI                  }
-{  http://www.delphi-jedi.org                                                  }
-{                                                                              }
-{  Alternatively, the contents of this file may be used under the terms of     }
-{  the GNU Lesser General Public License (the  "LGPL License"), in which case  }
-{  the provisions of the LGPL License are applicable instead of those above.   }
-{  If you wish to allow use of your version of this file only under the terms  }
-{  of the LGPL License and not to allow others to use your version of this     }
-{  file under the MPL, indicate your decision by deleting the provisions       }
-{  above and replace them with the notice and other provisions required by     }
-{  the LGPL License. If you do not delete the provisions above, a recipient    }
-{  may use your version of this file under either the MPL or the LGPL License. }
-{                                                                              }
-{  For more information about the LGPL:                                        }
-{  http://www.gnu.org/copyleft/lesser.html                                     }
-{                                                                              }
-{******************************************************************************}
-{                                                                              }
-{  This file defines various generic compiler directives used in different     }
-{  libraries, e.g. in the JEDI Code Library (JCL) and JEDI Visual Component    }
-{  Library Library (J-VCL). The directives in this file are of generic nature  }
-{  and consist mostly of mappings from the VERXXX directives defined by        }
-{  Delphi, C++ Builder and FPC to friendly names such as DELPHI5 and           }
-{  SUPPORTS_WIDESTRING. These friendly names are subsequently used in the      }
-{  libraries to test for compiler versions and/or whether the compiler         }
-{  supports certain features (such as widestrings or 64 bit integers. The      }
-{  libraries provide an additional, library specific, include file. For the    }
-{  JCL e.g. this is jcl.inc. These files should be included in source files    }
-{  instead of this file (which is pulled in automatically).                    }
-{                                                                              }
-{******************************************************************************}
-
-// Last modified: $Date: 2005/04/04 07:56:11 $
-// For history see end of file
-
-(*
-
-- Development environment directives
-
-  This file defines two directives to indicate which development environment the
-  library is being compiled with. Currently this can either be Delphi, Kylix,
-  C++ Builder or FPC.
-
-  Directive        Description
-  ------------------------------------------------------------------------------
-  DELPHI           Defined if compiled with Delphi
-  KYLIX            Defined if compiled with Kylix
-  DELPHICOMPILER   Defined if compiled with Delphi or Kylix/Delphi
-  BCB              Defined if compiled with C++ Builder
-  CPPBUILDER       Defined if compiled with C++ Builder (alias for BCB)
-  BCBCOMPILER      Defined if compiled with C++ Builder or Kylix/C++
-  DELPHILANGUAGE   Defined if compiled with Delphi, Kylix or C++ Builder
-  BORLAND          Defined if compiled with Delphi, Kylix or C++ Builder
-  FPC              Defined if compiled with FPC
-
-- Platform Directives
-
-  Platform directives are not all explicitly defined in this file, some are
-  defined by the compiler itself. They are listed here only for completeness.
-
-  Directive    Description
-  ------------------------------------------------------------------------------
-  WIN32        Defined when target platform is 32 bit Windows
-  MSWINDOWS    Defined when target platform is 32 bit Windows
-  LINUX        Defined when target platform is Linux
-  UNIX         Defined when target platform is Linux or Unix
-
-
-- Visual library Directives
-
-  The following directives indicate for a visual library. In a Delphi
-  application you need to define VisualCLX in the project options, if you want
-  to use the VisualCLX. Alternative you can use the IDE expert, which is distributed
-  with the JCL to do this automatically.
-
-  Directive    Description
-  ------------------------------------------------------------------------------
-  COMPLIB_VCL  Defined when application do not define VisualCLX, obsolete, use VCL
-  COMPLIB_CLX  Defined when application use the VisualCLX, obsolete, use VisualCLX
-  VCL          Defined when application do not define VisualCLX
-  VisualCLX    Defined when application use the VisualCLX
-
-
-- Delphi Versions
-
-  The following directives are direct mappings from the VERXXX directives to a
-  friendly name of the associated compiler. These directives are only defined if
-  the compiler is Delphi (ie DELPHI is defined).
-
-  Directive    Description
-  ------------------------------------------------------------------------------
-  DELPHI1      Defined when compiling with Delphi 1
-  DELPHI2      Defined when compiling with Delphi 2
-  DELPHI3      Defined when compiling with Delphi 3
-  DELPHI4      Defined when compiling with Delphi 4
-  DELPHI5      Defined when compiling with Delphi 5
-  DELPHI6      Defined when compiling with Delphi 6
-  DELPHI7      Defined when compiling with Delphi 7
-  DELPHI8      Defined when compiling with Delphi 8
-  DELPHI9      Defined when compiling with Delphi 9
-  DELPHI1_UP   Defined when compiling with Delphi 1 or higher
-  DELPHI2_UP   Defined when compiling with Delphi 2 or higher
-  DELPHI3_UP   Defined when compiling with Delphi 3 or higher
-  DELPHI4_UP   Defined when compiling with Delphi 4 or higher
-  DELPHI5_UP   Defined when compiling with Delphi 5 or higher
-  DELPHI6_UP   Defined when compiling with Delphi 6 or higher
-  DELPHI7_UP   Defined when compiling with Delphi 7 or higher
-  DELPHI8_UP   Defined when compiling with Delphi 8 or higher
-  DELPHI9_UP   Defined when compiling with Delphi 9 or higher
-
-
-- Kylix Versions
-
-  The following directives are direct mappings from the VERXXX directives to a
-  friendly name of the associated compiler. These directives are only defined if
-  the compiler is Kylix (ie KYLIX is defined).
-
-  Directive    Description
-  ------------------------------------------------------------------------------
-  KYLIX1       Defined when compiling with Kylix 1
-  KYLIX2       Defined when compiling with Kylix 2
-  KYLIX3       Defined when compiling with Kylix 3
-  KYLIX1_UP    Defined when compiling with Kylix 1 or higher
-  KYLIX2_UP    Defined when compiling with Kylix 2 or higher
-  KYLIX3_UP    Defined when compiling with Kylix 3 or higher
-
-
-- Delphi Compiler Versions (Delphi / Kylix, not in BCB mode)
-
-  Directive           Description
-  ------------------------------------------------------------------------------
-  DELPHICOMPILER1     Defined when compiling with Delphi 1
-  DELPHICOMPILER2     Defined when compiling with Delphi 2
-  DELPHICOMPILER3     Defined when compiling with Delphi 3
-  DELPHICOMPILER4     Defined when compiling with Delphi 4
-  DELPHICOMPILER5     Defined when compiling with Delphi 5
-  DELPHICOMPILER6     Defined when compiling with Delphi 6 or Kylix 1, 2 or 3
-  DELPHICOMPILER7     Defined when compiling with Delphi 7
-  DELPHICOMPILER8     Defined when compiling with Delphi 8
-  DELPHICOMPILER9     Defined when compiling with Delphi 9
-  DELPHICOMPILER1_UP  Defined when compiling with Delphi 1 or higher
-  DELPHICOMPILER2_UP  Defined when compiling with Delphi 2 or higher
-  DELPHICOMPILER3_UP  Defined when compiling with Delphi 3 or higher
-  DELPHICOMPILER4_UP  Defined when compiling with Delphi 4 or higher
-  DELPHICOMPILER5_UP  Defined when compiling with Delphi 5 or higher
-  DELPHICOMPILER6_UP  Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 or higher
-  DELPHICOMPILER7_UP  Defined when compiling with Delphi 7 or higher
-  DELPHICOMPILER8_UP  Defined when compiling with Delphi 8 or higher
-  DELPHICOMPILER9_UP  Defined when compiling with Delphi 9 or higher
-
-
-- C++ Builder Versions
-
-  The following directives are direct mappings from the VERXXX directives to a
-  friendly name of the associated compiler. These directives are only defined if
-  the compiler is C++ Builder (ie BCB is defined).
-
-  Directive    Description
-  ------------------------------------------------------------------------------
-  BCB1         Defined when compiling with C++ Builder 1
-  BCB3         Defined when compiling with C++ Builder 3
-  BCB4         Defined when compiling with C++ Builder 4
-  BCB5         Defined when compiling with C++ Builder 5
-  BCB6         Defined when compiling with C++ Builder 6
-  BCB1_UP      Defined when compiling with C++ Builder 1 or higher
-  BCB3_UP      Defined when compiling with C++ Builder 3 or higher
-  BCB4_UP      Defined when compiling with C++ Builder 4 or higher
-  BCB5_UP      Defined when compiling with C++ Builder 5 or higher
-  BCB6_UP      Defined when compiling with C++ Builder 6 or higher
-
-
-- Compiler Versions
-
-  The following directives are direct mappings from the VERXXX directives to a
-  friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X
-  directives, these directives are indepedent of the development environment.
-  That is, they are defined regardless of whether compilation takes place using
-  Delphi or C++ Builder.
-
-  Directive     Description
-  ------------------------------------------------------------------------------
-  COMPILER1     Defined when compiling with Delphi 1
-  COMPILER2     Defined when compiling with Delphi 2 or C++ Builder 1
-  COMPILER3     Defined when compiling with Delphi 3
-  COMPILER35    Defined when compiling with C++ Builder 3
-  COMPILER4     Defined when compiling with Delphi 4 or C++ Builder 4
-  COMPILER5     Defined when compiling with Delphi 5 or C++ Builder 5
-  COMPILER6     Defined when compiling with Delphi 6 or C++ Builder 6
-  COMPILER7     Defined when compiling with Delphi 7
-  COMPILER8     Defined when compiling with Delphi 8
-  COMPILER9     Defined when compiling with Delphi 9
-  COMPILER1_UP  Defined when compiling with Delphi 1 or higher
-  COMPILER2_UP  Defined when compiling with Delphi 2 or C++ Builder 1 or higher
-  COMPILER3_UP  Defined when compiling with Delphi 3 or higher
-  COMPILER35_UP Defined when compiling with C++ Builder 3 or higher
-  COMPILER4_UP  Defined when compiling with Delphi 4 or C++ Builder 4 or higher
-  COMPILER5_UP  Defined when compiling with Delphi 5 or C++ Builder 5 or higher
-  COMPILER6_UP  Defined when compiling with Delphi 6 or C++ Builder 6 or higher
-  COMPILER7_UP  Defined when compiling with Delphi 7
-  COMPILER8_UP  Defined when compiling with Delphi 8
-  COMPILER9_UP  Defined when compiling with Delphi 9
-
-
-- RTL Versions
-
-  Use e.g. following to determine the exact RTL version since version 14.0:
-    {$IFDEF CONDITIONALEXPRESSIONS}
-      {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)}
-        // code for Delphi 6.02 or later, Kylix 2 or later, C++ Builder 6 or later
-        ...
-      {$IFEND}
-    {$ENDIF}
-
-  Directive     Description
-  ------------------------------------------------------------------------------
-  RTL80_UP      Defined when compiling with Delphi 1 or later
-  RTL90_UP      Defined when compiling with Delphi 2 or later
-  RTL93_UP      Defined when compiling with C++ Builder 1 or later
-  RTL100_UP     Defined when compiling with Delphi 3 or later
-  RTL110_UP     Defined when compiling with C++ Builder 3 or later
-  RTL120_UP     Defined when compiling with Delphi 4 or later
-  RTL125_UP     Defined when compiling with C++ Builder 4 or later
-  RTL130_UP     Defined when compiling with Delphi 5 or C++ Builder 5 or later
-  RTL140_UP     Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++ Builder 6 or later
-  RTL150_UP     Defined when compiling with Delphi 7 or later
-  RTL160_UP     Defined when compiling with Delphi 8 or later
-  RTL170_UP     Defined when compiling with Delphi 9 or later
-
-
-- Feature Directives
-
-  The features directives are used to test if the compiler supports specific
-  features, such as method overloading, and adjust the sources accordingly. Use
-  of these directives is preferred over the use of the DELPHI and COMPILER
-  directives.
-
-  Directive              Description
-  ------------------------------------------------------------------------------
-  SUPPORTS_CONSTPARAMS          Compiler supports const parameters (D1+)
-  SUPPORTS_SINGLE               Compiler supports the Single type (D1+)
-  SUPPORTS_DOUBLE               Compiler supports the Double type (D1+)
-  SUPPORTS_EXTENDED             Compiler supports the Extended type (D1+)
-  SUPPORTS_CURRENCY             Compiler supports the Currency type (D2+)
-  SUPPORTS_THREADVAR            Compiler supports threadvar declarations (D2+)
-  SUPPORTS_OUTPARAMS            Compiler supports out parameters (D3+)
-  SUPPORTS_VARIANT              Compiler supports variant (D2+)
-  SUPPORTS_WIDECHAR             Compiler supports the WideChar type (D2+)
-  SUPPORTS_WIDESTRING           Compiler supports the WideString type (D3+/BCB3+)
-  SUPPORTS_INTERFACE            Compiler supports interfaces (D3+/BCB3+)
-  SUPPORTS_DISPINTERFACE        Compiler supports dispinterfaces (D3+/BCB3+)
-  SUPPORTS_EXTSYM               Compiler supports the $EXTERNALSYM directive (D4+/BCB3+)
-  SUPPORTS_NODEFINE             Compiler supports the $NODEFINE directive (D4+/BCB3+)
-  SUPPORTS_LONGWORD             Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+)
-  SUPPORTS_INT64                Compiler supports the Int64 type (D4+/BCB4+)
-  SUPPORTS_DYNAMICARRAYS        Compiler supports dynamic arrays (D4+/BCB4+)
-  SUPPORTS_DEFAULTPARAMS        Compiler supports default parameters (D4+/BCB4+)
-  SUPPORTS_OVERLOAD             Compiler supports overloading (D4+/BCB4+)
-  SUPPORTS_IMPLEMENTS           Compiler supports implements (D4+/BCB4+)
-  SUPPORTS_DEPRECATED           Compiler supports the deprecated directive (D6+/BCB6+)
-  SUPPORTS_PLATFORM             Compiler supports the platform directive (D6+/BCB6+)
-  SUPPORTS_LIBRARY              Compiler supports the library directive (D6+/BCB6+)
-  SUPPORTS_LOCAL                Compiler supports the local directive (D6+/BCB6+)
-  ACCEPT_DEPRECATED             Compiler supports or ignore the deprecated directive (D6/BCB6/FPC)
-  ACCEPT_PLATFORM               Compiler supports or ignore the platform directive (D6+/BCB6+)
-  ACCEPT_LIBRARY                Compiler supports or ignore the library directive (D6+/BCB6+)
-  SUPPORTS_CUSTOMVARIANTS       Compiler supports custom variants (D6+/BCB6+)
-  SUPPORTS_VARARGS              Compiler supports varargs (D6+/BCB6+)
-  SUPPORTS_ENUMVALUE            Compiler supports values for enums (D6+/BCB6+)
-  SUPPORTS_DEPRECATED_WARNINGS  Compiler supports deprecated warnings (D6+/BCB6+)
-  SUPPORTS_LIBRARY_WARNINGS     Compiler supports library warnings (D6+/BCB6+)
-  SUPPORTS_PLATFORM_WARNINGS    Compiler supports platform warnings (D6+/BCB6+)
-  SUPPORTS_UNSAFE_WARNINGS      Compiler supports unsafe warnings (D7)
-  SUPPORTS_WEAKPACKAGEUNIT      Compiler supports the WEAKPACKAGEUNIT directive
-  SUPPORTS_COMPILETIME_MESSAGES Compiler supports the MESSAGE directive
-  HAS_UNIT_LIBC                 The unit Libc exists (Kylix, FPC on Linux)
-  HAS_UNIT_RTLCONSTS            The unit RTLConsts exists (D6+/BCB6+)
-  HAS_UNIT_TYPES                The unit Types exists (D6+/BCB6+)
-  HAS_UNIT_VARIANTS             The unit Variants exists (D6+/BCB6+)
-  HAS_UNIT_STRUTILS             The unit StrUtils exists (D6+/BCB6+)
-  XPLATFORM_RTL                 The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC)
-
-- Compiler Settings
-
-  The compiler settings directives indicate whether a specific compiler setting
-  is in effect. This facilitates changing compiler settings locally in a more
-  compact and readible manner.
-
-  Directive              Description
-  ------------------------------------------------------------------------------
-  ALIGN_ON               Compiling in the A+ state (no alignment)
-  BOOLEVAL_ON            Compiling in the B+ state (complete boolean evaluation)
-  ASSERTIONS_ON          Compiling in the C+ state (assertions on)
-  DEBUGINFO_ON           Compiling in the D+ state (debug info generation on)
-  IMPORTEDDATA_ON        Compiling in the G+ state (creation of imported data references)
-  LONGSTRINGS_ON         Compiling in the H+ state (string defined as AnsiString)
-  IOCHECKS_ON            Compiling in the I+ state (I/O checking enabled)
-  WRITEABLECONST_ON      Compiling in the J+ state (typed constants can be modified)
-  LOCALSYMBOLS           Compiling in the L+ state (local symbol generation)
-  TYPEINFO_ON            Compiling in the M+ state (RTTI generation on)
-  OPTIMIZATION_ON        Compiling in the O+ state (code optimization on)
-  OPENSTRINGS_ON         Compiling in the P+ state (variable string parameters are openstrings)
-  OVERFLOWCHECKS_ON      Compiling in the Q+ state (overflow checing on)
-  RANGECHECKS_ON         Compiling in the R+ state (range checking on)
-  TYPEDADDRESS_ON        Compiling in the T+ state (pointers obtained using the @ operator are typed)
-  SAFEDIVIDE_ON          Compiling in the U+ state (save FDIV instruction through RTL emulation)
-  VARSTRINGCHECKS_ON     Compiling in the V+ state (type checking of shortstrings)
-  STACKFRAMES_ON         Compiling in the W+ state (generation of stack frames)
-  EXTENDEDSYNTAX_ON      Compiling in the X+ state (Delphi extended syntax enabled)
-*)
-
-{$DEFINE BORLAND}
-
-{ Set FreePascal to Delphi mode }
-{$IFDEF FPC}
-  {$MODE DELPHI}
-  {$ASMMODE Intel}
-  {$UNDEF BORLAND}
-{$ENDIF}
-
-{$IFDEF BORLAND}
-  {$IFDEF LINUX}
-    {$DEFINE KYLIX}
-  {$ENDIF LINUX}
-{$ENDIF BORLAND}
-
-{------------------------------------------------------------------------------}
-{ VERXXX to COMPILERX, DELPHIX and BCBX mappings                               }
-{------------------------------------------------------------------------------}
-
-{$IFDEF BORLAND}
-  {$IFDEF KYLIX}
-    {$I kylix.inc} // FPC incompatible stuff
-  {$ELSE ~KYLIX}
-
-    {$IFDEF VER170}
-      {$DEFINE COMPILER9}
-      {$DEFINE DELPHI9}
-      {$DEFINE DELPHICOMPILER9}
-      {$DEFINE RTL170_UP}
-    {$ENDIF}
-
-    {$IFDEF VER160}
-      {$DEFINE COMPILER8}
-      {$DEFINE DELPHI8}
-      {$DEFINE DELPHICOMPILER8}
-      {$DEFINE RTL160_UP}
-    {$ENDIF}
-
-    {$IFDEF VER150}
-      {$DEFINE COMPILER7}
-      {$IFDEF BCB}
-        {$DEFINE BCB7}
-      {$ELSE}
-        {$DEFINE DELPHI7}
-        {$DEFINE DELPHICOMPILER7}
-      {$ENDIF}
-      {$DEFINE RTL150_UP}
-    {$ENDIF}
-
-    {$IFDEF VER140}
-      {$DEFINE COMPILER6}
-      {$IFDEF BCB}
-        {$DEFINE BCB6}
-      {$ELSE}
-        {$DEFINE DELPHI6}
-        {$DEFINE DELPHICOMPILER6}
-      {$ENDIF}
-      {$DEFINE RTL140_UP}
-    {$ENDIF}
-
-    {$IFDEF VER130}
-      {$DEFINE COMPILER5}
-      {$IFDEF BCB}
-        {$DEFINE BCB5}
-      {$ELSE}
-        {$DEFINE DELPHI5}
-        {$DEFINE DELPHICOMPILER5}
-      {$ENDIF}
-      {$DEFINE RTL130_UP}
-    {$ENDIF}
-
-    {$IFDEF VER125}
-      {$DEFINE COMPILER4}
-      {$DEFINE BCB4}
-      {$DEFINE BCB}
-      {$DEFINE RTL125_UP}
-    {$ENDIF}
-
-    {$IFDEF VER120}
-      {$DEFINE COMPILER4}
-      {$DEFINE DELPHI4}
-      {$DEFINE DELPHICOMPILER4}
-      {$DEFINE RTL120_UP}
-    {$ENDIF}
-
-    {$IFDEF VER110}
-      {$DEFINE COMPILER35}
-      {$DEFINE BCB3}
-      {$DEFINE RTL110_UP}
-    {$ENDIF}
-
-    {$IFDEF VER100}
-      {$DEFINE COMPILER3}
-      {$DEFINE DELPHI3}
-      {$DEFINE DELPHICOMPILER3}
-      {$DEFINE RTL100_UP}
-    {$ENDIF}
-
-    {$IFDEF VER93}
-      {$DEFINE COMPILER2}
-      {$DEFINE BCB1}
-      {$DEFINE BCB}
-      {$DEFINE RTL93_UP}
-    {$ENDIF}
-
-    {$IFDEF VER90}
-      {$DEFINE COMPILER2}
-      {$DEFINE DELPHI2}
-      {$DEFINE DELPHICOMPILER2}
-      {$DEFINE RTL90_UP}
-    {$ENDIF}
-
-    {$IFDEF VER80}
-      {$DEFINE COMPILER1}
-      {$DEFINE DELPHI1}
-      {$DEFINE DELPHICOMPILER1}
-      {$DEFINE RTL80_UP}
-    {$ENDIF}
-
-  {$ENDIF ~KYLIX}
-
-  {$IFDEF BCB}
-    {$DEFINE CPPBUILDER}
-    {$DEFINE BCBCOMPILER}
-  {$ELSE ~BCB}
-    {$DEFINE DELPHI}
-    {$DEFINE DELPHICOMPILER}
-  {$ENDIF ~BCB}
-
-{$ENDIF BORLAND}
-
-{------------------------------------------------------------------------------}
-{ DELPHIX_UP from DELPHIX mappings                                             }
-{------------------------------------------------------------------------------}
-
-{$IFDEF DELPHI9}
-  {$DEFINE DELPHI9_UP}
-  {$DEFINE DELPHI8_UP}
-  {$DEFINE DELPHI7_UP}
-  {$DEFINE DELPHI6_UP}
-  {$DEFINE DELPHI5_UP}
-  {$DEFINE DELPHI4_UP}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI8}
-  {$DEFINE DELPHI8_UP}
-  {$DEFINE DELPHI7_UP}
-  {$DEFINE DELPHI6_UP}
-  {$DEFINE DELPHI5_UP}
-  {$DEFINE DELPHI4_UP}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI7}
-  {$DEFINE DELPHI7_UP}
-  {$DEFINE DELPHI6_UP}
-  {$DEFINE DELPHI5_UP}
-  {$DEFINE DELPHI4_UP}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI6}
-  {$DEFINE DELPHI6_UP}
-  {$DEFINE DELPHI5_UP}
-  {$DEFINE DELPHI4_UP}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI5}
-  {$DEFINE DELPHI5_UP}
-  {$DEFINE DELPHI4_UP}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI4}
-  {$DEFINE DELPHI4_UP}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI3}
-  {$DEFINE DELPHI3_UP}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI2}
-  {$DEFINE DELPHI2_UP}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHI1}
-  {$DEFINE DELPHI1_UP}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-{ KYLIXX_UP from KYLIXX mappings                                               }
-{------------------------------------------------------------------------------}
-
-{$IFDEF KYLIX3}
-  {$DEFINE KYLIX3_UP}
-  {$DEFINE KYLIX2_UP}
-  {$DEFINE KYLIX1_UP}
-{$ENDIF}
-
-{$IFDEF KYLIX2}
-  {$DEFINE KYLIX2_UP}
-  {$DEFINE KYLIX1_UP}
-{$ENDIF}
-
-{$IFDEF KYLIX1}
-  {$DEFINE KYLIX1_UP}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-{ BCBX_UP from BCBX mappings                                                   }
-{------------------------------------------------------------------------------}
-
-{$IFDEF BCB7}
-  {$DEFINE BCB7_UP}
-  {$DEFINE BCB6_UP}
-  {$DEFINE BCB5_UP}
-  {$DEFINE BCB4_UP}
-  {$DEFINE BCB3_UP}
-  {$DEFINE BCB1_UP}
-{$ENDIF}
-
-{$IFDEF BCB6}
-  {$DEFINE BCB6_UP}
-  {$DEFINE BCB5_UP}
-  {$DEFINE BCB4_UP}
-  {$DEFINE BCB3_UP}
-  {$DEFINE BCB1_UP}
-{$ENDIF}
-
-{$IFDEF BCB5}
-  {$DEFINE BCB5_UP}
-  {$DEFINE BCB4_UP}
-  {$DEFINE BCB3_UP}
-  {$DEFINE BCB1_UP}
-{$ENDIF}
-
-{$IFDEF BCB4}
-  {$DEFINE BCB4_UP}
-  {$DEFINE BCB3_UP}
-  {$DEFINE BCB1_UP}
-{$ENDIF}
-
-{$IFDEF BCB3}
-  {$DEFINE BCB3_UP}
-  {$DEFINE BCB1_UP}
-{$ENDIF}
-
-{$IFDEF BCB1}
-  {$DEFINE BCB1_UP}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-{ DELPHICOMPILERX_UP from DELPHICOMPILERX mappings                             }
-{------------------------------------------------------------------------------}
-
-{$IFDEF DELPHICOMPILER9}
-  {$DEFINE DELPHICOMPILER9_UP}
-  {$DEFINE DELPHICOMPILER8_UP}
-  {$DEFINE DELPHICOMPILER7_UP}
-  {$DEFINE DELPHICOMPILER6_UP}
-  {$DEFINE DELPHICOMPILER5_UP}
-  {$DEFINE DELPHICOMPILER4_UP}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER8}
-  {$DEFINE DELPHICOMPILER8_UP}
-  {$DEFINE DELPHICOMPILER7_UP}
-  {$DEFINE DELPHICOMPILER6_UP}
-  {$DEFINE DELPHICOMPILER5_UP}
-  {$DEFINE DELPHICOMPILER4_UP}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER7}
-  {$DEFINE DELPHICOMPILER7_UP}
-  {$DEFINE DELPHICOMPILER6_UP}
-  {$DEFINE DELPHICOMPILER5_UP}
-  {$DEFINE DELPHICOMPILER4_UP}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER6}
-  {$DEFINE DELPHICOMPILER6_UP}
-  {$DEFINE DELPHICOMPILER5_UP}
-  {$DEFINE DELPHICOMPILER4_UP}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER5}
-  {$DEFINE DELPHICOMPILER5_UP}
-  {$DEFINE DELPHICOMPILER4_UP}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER4}
-  {$DEFINE DELPHICOMPILER4_UP}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER3}
-  {$DEFINE DELPHICOMPILER3_UP}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER2}
-  {$DEFINE DELPHICOMPILER2_UP}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF DELPHICOMPILER1}
-  {$DEFINE DELPHICOMPILER1_UP}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-{ COMPILERX_UP from COMPILERX mappings                                         }
-{------------------------------------------------------------------------------}
-
-{$IFDEF COMPILER9}
-  {$DEFINE COMPILER9_UP}
-  {$DEFINE COMPILER8_UP}
-  {$DEFINE COMPILER7_UP}
-  {$DEFINE COMPILER6_UP}
-  {$DEFINE COMPILER5_UP}
-  {$DEFINE COMPILER4_UP}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER8}
-  {$DEFINE COMPILER8_UP}
-  {$DEFINE COMPILER7_UP}
-  {$DEFINE COMPILER6_UP}
-  {$DEFINE COMPILER5_UP}
-  {$DEFINE COMPILER4_UP}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER7}
-  {$DEFINE COMPILER7_UP}
-  {$DEFINE COMPILER6_UP}
-  {$DEFINE COMPILER5_UP}
-  {$DEFINE COMPILER4_UP}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER6}
-  {$DEFINE COMPILER6_UP}
-  {$DEFINE COMPILER5_UP}
-  {$DEFINE COMPILER4_UP}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER5}
-  {$DEFINE COMPILER5_UP}
-  {$DEFINE COMPILER4_UP}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER4}
-  {$DEFINE COMPILER4_UP}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER35}
-  {$DEFINE COMPILER35_UP}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER3}
-  {$DEFINE COMPILER3_UP}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER2}
-  {$DEFINE COMPILER2_UP}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{$IFDEF COMPILER1}
-  {$DEFINE COMPILER1_UP}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-
-{$IFDEF DELPHICOMPILER}
-  {$DEFINE DELPHILANGUAGE}
-{$ENDIF}
-
-{$IFDEF BCBCOMPILER}
-  {$DEFINE DELPHILANGUAGE}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-{ RTLX_UP from RTLX_UP mappings                                                }
-{------------------------------------------------------------------------------}
-
-{$IFDEF RTL170_UP}
-  {$DEFINE RTL160_UP}
-{$ENDIF}
-
-{$IFDEF RTL160_UP}
-  {$DEFINE RTL150_UP}
-{$ENDIF}
-
-{$IFDEF RTL150_UP}
-  {$DEFINE RTL145_UP}
-{$ENDIF}
-
-{$IFDEF RTL145_UP}
-  {$DEFINE RTL142_UP}
-{$ENDIF}
-
-{$IFDEF RTL142_UP}
-  {$DEFINE RTL140_UP}
-{$ENDIF}
-
-{$IFDEF RTL140_UP}
-  {$DEFINE RTL130_UP}
-{$ENDIF}
-
-{$IFDEF RTL130_UP}
-  {$DEFINE RTL125_UP}
-{$ENDIF}
-
-{$IFDEF RTL125_UP}
-  {$DEFINE RTL120_UP}
-{$ENDIF}
-
-{$IFDEF RTL120_UP}
-  {$DEFINE RTL110_UP}
-{$ENDIF}
-
-{$IFDEF RTL110_UP}
-  {$DEFINE RTL100_UP}
-{$ENDIF}
-
-{$IFDEF RTL100_UP}
-  {$DEFINE RTL93_UP}
-{$ENDIF}
-
-{$IFDEF RTL93_UP}
-  {$DEFINE RTL90_UP}
-{$ENDIF}
-
-{$IFDEF RTL90_UP}
-  {$DEFINE RTL80_UP}
-{$ENDIF}
-
-{------------------------------------------------------------------------------}
-{ Map COMPILERX_UP to friendly feature names                                   }
-{------------------------------------------------------------------------------}
-
-{$IFDEF FPC}
-  {$MODE Delphi}
-  {$IFDEF  VER1_0}
-     Please use FPC 1.1 or later to compile this.
-  {$ELSE}
-    {$DEFINE SUPPORTS_OUTPARAMS}
-    {$DEFINE SUPPORTS_WIDECHAR}
-    {$DEFINE SUPPORTS_WIDESTRING}
-    {$IFDEF HASINTF}
-      {$DEFINE SUPPORTS_INTERFACE}
-    {$ENDIF}
-    {$IFDEF HASVARIANT}
-      {$DEFINE SUPPORTS_VARIANT}
-    {$ENDIF}
-    {$IFDEF FPC_HAS_TYPE_SINGLE}
-      {$DEFINE SUPPORTS_SINGLE}
-    {$ENDIF}
-    {$IFDEF FPC_HAS_TYPE_DOUBLE}
-      {$DEFINE SUPPORTS_DOUBLE}
-    {$ENDIF}
-    {$IFDEF FPC_HAS_TYPE_EXTENDED}
-      {$DEFINE SUPPORTS_EXTENDED}
-    {$ENDIF}
-    {$IFDEF HASCURRENCY}
-      {$DEFINE SUPPORTS_CURRENCY}
-    {$ENDIF}
-    {$DEFINE SUPPORTS_THREADVAR}
-    {$DEFINE SUPPORTS_CONSTPARAMS}
-    {$DEFINE SUPPORTS_LONGWORD}
-    {$DEFINE SUPPORTS_INT64}
-    {$DEFINE SUPPORTS_DYNAMICARRAYS}
-    {$DEFINE SUPPORTS_DEFAULTPARAMS}
-    {$DEFINE SUPPORTS_OVERLOAD}
-    {$DEFINE ACCEPT_DEPRECATED}
-    {$DEFINE ACCEPT_PLATFORM}
-    {$DEFINE ACCEPT_LIBRARY}
-    {$DEFINE SUPPORTS_EXTSYM}
-    {$DEFINE SUPPORTS_NODEFINE}
-
-    {$DEFINE SUPPORTS_CUSTOMVARIANTS}
-    {$DEFINE SUPPORTS_VARARGS}
-    {$DEFINE SUPPORTS_ENUMVALUE}
-    {$IFDEF LINUX}
-      {$DEFINE HAS_UNIT_LIBC}
-    {$ENDIF LINUX}
-    {$DEFINE HAS_UNIT_TYPES}
-    {$DEFINE HAS_UNIT_VARIANTS}
-    {$DEFINE HAS_UNIT_STRUTILS}
-
-    {$DEFINE XPLATFORM_RTL}
-
-    {$UNDEF SUPPORTS_DISPINTERFACE}
-    {$UNDEF SUPPORTS_DISPID} // is used outside of dispinterfaces
-    {$UNDEF SUPPORTS_IMPLEMENTS}
-    {$UNDEF SUPPORTS_UNSAFE_WARNINGS}
-  {$ENDIF}
-{$ENDIF FPC}
-
-{$IFDEF COMPILER1_UP}
-  {$DEFINE SUPPORTS_CONSTPARAMS}
-  {$DEFINE SUPPORTS_SINGLE}
-  {$DEFINE SUPPORTS_DOUBLE}
-  {$DEFINE SUPPORTS_EXTENDED}
-{$ENDIF COMPILER1_UP}
-
-{$IFDEF COMPILER2_UP}
-  {$DEFINE SUPPORTS_CURRENCY}
-  {$DEFINE SUPPORTS_THREADVAR}
-  {$DEFINE SUPPORTS_VARIANT}
-  {$DEFINE SUPPORTS_WIDECHAR}
-{$ENDIF COMPILER2_UP}
-
-{$IFDEF COMPILER3_UP}
-  {$DEFINE SUPPORTS_OUTPARAMS}
-  {$DEFINE SUPPORTS_WIDESTRING}
-  {$DEFINE SUPPORTS_INTERFACE}
-  {$DEFINE SUPPORTS_DISPINTERFACE}
-  {$DEFINE SUPPORTS_DISPID}
-  {$DEFINE SUPPORTS_WEAKPACKAGEUNIT}
-{$ENDIF COMPILER3_UP}
-
-{$IFDEF COMPILER35_UP}
-  {$DEFINE SUPPORTS_EXTSYM}
-  {$DEFINE SUPPORTS_NODEFINE}
-{$ENDIF COMPILER35_UP}
-
-{$IFDEF COMPILER4_UP}
-  {$DEFINE SUPPORTS_LONGWORD}
-  {$DEFINE SUPPORTS_INT64}
-  {$DEFINE SUPPORTS_DYNAMICARRAYS}
-  {$DEFINE SUPPORTS_DEFAULTPARAMS}
-  {$DEFINE SUPPORTS_OVERLOAD}
-  {$DEFINE SUPPORTS_IMPLEMENTS}
-{$ENDIF COMPILER4_UP}
-
-{$IFDEF COMPILER6_UP}
-  {$DEFINE SUPPORTS_DEPRECATED}
-  {$DEFINE SUPPORTS_LIBRARY}
-  {$DEFINE SUPPORTS_PLATFORM}
-  {$DEFINE SUPPORTS_LOCAL}
-  {$DEFINE ACCEPT_DEPRECATED}
-  {$DEFINE ACCEPT_PLATFORM}
-  {$DEFINE ACCEPT_LIBRARY}
-  {$DEFINE SUPPORTS_DEPRECATED_WARNINGS}
-  {$DEFINE SUPPORTS_LIBRARY_WARNINGS}
-  {$DEFINE SUPPORTS_PLATFORM_WARNINGS}
-  {$DEFINE SUPPORTS_CUSTOMVARIANTS}
-  {$DEFINE SUPPORTS_VARARGS}
-  {$DEFINE SUPPORTS_ENUMVALUE}
-  {$DEFINE SUPPORTS_COMPILETIME_MESSAGES}
-{$ENDIF COMPILER6_UP}
-
-{$IFDEF COMPILER7_UP}
-  {$DEFINE SUPPORTS_UNSAFE_WARNINGS}
-{$ENDIF COMPILER7_UP}
-
-{$IFDEF RTL140_UP}
-  {$IFDEF LINUX}
-    {$DEFINE HAS_UNIT_LIBC}
-  {$ENDIF LINUX}
-  {$DEFINE HAS_UNIT_RTLCONSTS}
-  {$DEFINE HAS_UNIT_TYPES}
-  {$DEFINE HAS_UNIT_VARIANTS}
-  {$DEFINE HAS_UNIT_STRUTILS}
-  {$DEFINE XPLATFORM_RTL}
-{$ENDIF RTL140_UP}
-
-{------------------------------------------------------------------------------}
-{ Cross-platform related defines                                               }
-{------------------------------------------------------------------------------}
-
-{$IFDEF WIN32}
-  {$DEFINE MSWINDOWS}
-{$ENDIF}
-
-{$IFDEF DELPHILANGUAGE}
-  {$IFDEF LINUX}
-    {$DEFINE UNIX}
-    {$DEFINE VisualCLX}
-  {$ENDIF}
-
-  {$IFNDEF VisualCLX}
-    {$DEFINE VCL}
-  {$ENDIF}
-
-  {$IFDEF VisualCLX}
-    {$DEFINE COMPLIB_CLX} { kept for backward compatibility, use VisualCLX instead }
-  {$ENDIF}
-
-  {$IFDEF VCL}
-    {$DEFINE COMPLIB_VCL} { kept for backward compatibility, use VCL instead }
-  {$ENDIF}
-{$ENDIF DELPHILANGUAGE}
-
-{------------------------------------------------------------------------------}
-{ Compiler settings                                                            }
-{------------------------------------------------------------------------------}
-
-{$IFOPT A+} {$DEFINE ALIGN_ON} {$ENDIF}
-{$IFOPT B+} {$DEFINE BOOLEVAL_ON} {$ENDIF}
-{$IFDEF COMPILER2_UP}
-  {$IFOPT C+} {$DEFINE ASSERTIONS_ON} {$ENDIF}
-{$ENDIF}
-{$IFOPT D+} {$DEFINE DEBUGINFO_ON} {$ENDIF}
-{$IFOPT G+} {$DEFINE IMPORTEDDATA_ON} {$ENDIF}
-{$IFDEF COMPILER2_UP}
-  {$IFOPT H+} {$DEFINE LONGSTRINGS_ON} {$ENDIF}
-{$ENDIF}
-{ HINTS }
-{$IFOPT I+} {$DEFINE IOCHECKS_ON} {$ENDIF}
-{$IFDEF COMPILER2_UP}
-  {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF}
-{$ENDIF}
-{$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$ENDIF}
-{$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF}
-{$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF}
-{$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF}
-{$IFOPT Q+} {$DEFINE OVERFLOWCHECKS_ON} {$ENDIF}
-{$IFOPT R+} {$DEFINE RANGECHECKS_ON} {$ENDIF}
-{ REALCOMPATIBILITY }
-{$IFOPT T+} {$DEFINE TYPEDADDRESS_ON} {$ENDIF}
-{$IFOPT U+} {$DEFINE SAFEDIVIDE_ON} {$ENDIF}
-{$IFOPT V+} {$DEFINE VARSTRINGCHECKS_ON} {$ENDIF}
-{$IFOPT W+} {$DEFINE STACKFRAMES_ON} {$ENDIF}
-{ WARNINGS }
-{$IFOPT X+} {$DEFINE EXTENDEDSYNTAX_ON} {$ENDIF}
-
-// for Delphi/BCB trial versions remove the point from the line below
-{.$UNDEF SUPPORTS_WEAKPACKAGEUNIT}
-
-// History:
-
+{$IFNDEF JEDI_INC}
+{$DEFINE JEDI_INC}
+
+{******************************************************************************}
+{                                                                              }
+{  The contents of this file are subject to the Mozilla Public License         }
+{  Version 1.1 (the "License"); you may not use this file except in            }
+{  compliance with the License. You may obtain a copy of the License at        }
+{  http://www.mozilla.org/MPL/                                                 }
+{                                                                              }
+{  Software distributed under the License is distributed on an "AS IS" basis,  }
+{  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License    }
+{  for the specific language governing rights and limitations under the        }
+{  License.                                                                    }
+{                                                                              }
+{  The Original Code is: jedi.inc.                                             }
+{  The Initial Developer of the Original Code is Project JEDI                  }
+{  http://www.delphi-jedi.org                                                  }
+{                                                                              }
+{  Alternatively, the contents of this file may be used under the terms of     }
+{  the GNU Lesser General Public License (the  "LGPL License"), in which case  }
+{  the provisions of the LGPL License are applicable instead of those above.   }
+{  If you wish to allow use of your version of this file only under the terms  }
+{  of the LGPL License and not to allow others to use your version of this     }
+{  file under the MPL, indicate your decision by deleting the provisions       }
+{  above and replace them with the notice and other provisions required by     }
+{  the LGPL License. If you do not delete the provisions above, a recipient    }
+{  may use your version of this file under either the MPL or the LGPL License. }
+{                                                                              }
+{  For more information about the LGPL:                                        }
+{  http://www.gnu.org/copyleft/lesser.html                                     }
+{                                                                              }
+{******************************************************************************}
+{                                                                              }
+{  This file defines various generic compiler directives used in different     }
+{  libraries, e.g. in the JEDI Code Library (JCL) and JEDI Visual Component    }
+{  Library Library (J-VCL). The directives in this file are of generic nature  }
+{  and consist mostly of mappings from the VERXXX directives defined by        }
+{  Delphi, C++ Builder and FPC to friendly names such as DELPHI5 and           }
+{  SUPPORTS_WIDESTRING. These friendly names are subsequently used in the      }
+{  libraries to test for compiler versions and/or whether the compiler         }
+{  supports certain features (such as widestrings or 64 bit integers. The      }
+{  libraries provide an additional, library specific, include file. For the    }
+{  JCL e.g. this is jcl.inc. These files should be included in source files    }
+{  instead of this file (which is pulled in automatically).                    }
+{                                                                              }
+{******************************************************************************}
+
+// Last modified: $Date: 2005/04/04 07:56:11 $
+// For history see end of file
+
+(*
+
+- Development environment directives
+
+  This file defines two directives to indicate which development environment the
+  library is being compiled with. Currently this can either be Delphi, Kylix,
+  C++ Builder or FPC.
+
+  Directive        Description
+  ------------------------------------------------------------------------------
+  DELPHI           Defined if compiled with Delphi
+  KYLIX            Defined if compiled with Kylix
+  DELPHICOMPILER   Defined if compiled with Delphi or Kylix/Delphi
+  BCB              Defined if compiled with C++ Builder
+  CPPBUILDER       Defined if compiled with C++ Builder (alias for BCB)
+  BCBCOMPILER      Defined if compiled with C++ Builder or Kylix/C++
+  DELPHILANGUAGE   Defined if compiled with Delphi, Kylix or C++ Builder
+  BORLAND          Defined if compiled with Delphi, Kylix or C++ Builder
+  FPC              Defined if compiled with FPC
+
+- Platform Directives
+
+  Platform directives are not all explicitly defined in this file, some are
+  defined by the compiler itself. They are listed here only for completeness.
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  WIN32        Defined when target platform is 32 bit Windows
+  MSWINDOWS    Defined when target platform is 32 bit Windows
+  LINUX        Defined when target platform is Linux
+  UNIX         Defined when target platform is Linux or Unix
+
+
+- Visual library Directives
+
+  The following directives indicate for a visual library. In a Delphi
+  application you need to define VisualCLX in the project options, if you want
+  to use the VisualCLX. Alternative you can use the IDE expert, which is distributed
+  with the JCL to do this automatically.
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  COMPLIB_VCL  Defined when application do not define VisualCLX, obsolete, use VCL
+  COMPLIB_CLX  Defined when application use the VisualCLX, obsolete, use VisualCLX
+  VCL          Defined when application do not define VisualCLX
+  VisualCLX    Defined when application use the VisualCLX
+
+
+- Delphi Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. These directives are only defined if
+  the compiler is Delphi (ie DELPHI is defined).
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  DELPHI1      Defined when compiling with Delphi 1
+  DELPHI2      Defined when compiling with Delphi 2
+  DELPHI3      Defined when compiling with Delphi 3
+  DELPHI4      Defined when compiling with Delphi 4
+  DELPHI5      Defined when compiling with Delphi 5
+  DELPHI6      Defined when compiling with Delphi 6
+  DELPHI7      Defined when compiling with Delphi 7
+  DELPHI8      Defined when compiling with Delphi 8
+  DELPHI9      Defined when compiling with Delphi 9
+  DELPHI1_UP   Defined when compiling with Delphi 1 or higher
+  DELPHI2_UP   Defined when compiling with Delphi 2 or higher
+  DELPHI3_UP   Defined when compiling with Delphi 3 or higher
+  DELPHI4_UP   Defined when compiling with Delphi 4 or higher
+  DELPHI5_UP   Defined when compiling with Delphi 5 or higher
+  DELPHI6_UP   Defined when compiling with Delphi 6 or higher
+  DELPHI7_UP   Defined when compiling with Delphi 7 or higher
+  DELPHI8_UP   Defined when compiling with Delphi 8 or higher
+  DELPHI9_UP   Defined when compiling with Delphi 9 or higher
+
+
+- Kylix Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. These directives are only defined if
+  the compiler is Kylix (ie KYLIX is defined).
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  KYLIX1       Defined when compiling with Kylix 1
+  KYLIX2       Defined when compiling with Kylix 2
+  KYLIX3       Defined when compiling with Kylix 3
+  KYLIX1_UP    Defined when compiling with Kylix 1 or higher
+  KYLIX2_UP    Defined when compiling with Kylix 2 or higher
+  KYLIX3_UP    Defined when compiling with Kylix 3 or higher
+
+
+- Delphi Compiler Versions (Delphi / Kylix, not in BCB mode)
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  DELPHICOMPILER1     Defined when compiling with Delphi 1
+  DELPHICOMPILER2     Defined when compiling with Delphi 2
+  DELPHICOMPILER3     Defined when compiling with Delphi 3
+  DELPHICOMPILER4     Defined when compiling with Delphi 4
+  DELPHICOMPILER5     Defined when compiling with Delphi 5
+  DELPHICOMPILER6     Defined when compiling with Delphi 6 or Kylix 1, 2 or 3
+  DELPHICOMPILER7     Defined when compiling with Delphi 7
+  DELPHICOMPILER8     Defined when compiling with Delphi 8
+  DELPHICOMPILER9     Defined when compiling with Delphi 9
+  DELPHICOMPILER1_UP  Defined when compiling with Delphi 1 or higher
+  DELPHICOMPILER2_UP  Defined when compiling with Delphi 2 or higher
+  DELPHICOMPILER3_UP  Defined when compiling with Delphi 3 or higher
+  DELPHICOMPILER4_UP  Defined when compiling with Delphi 4 or higher
+  DELPHICOMPILER5_UP  Defined when compiling with Delphi 5 or higher
+  DELPHICOMPILER6_UP  Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 or higher
+  DELPHICOMPILER7_UP  Defined when compiling with Delphi 7 or higher
+  DELPHICOMPILER8_UP  Defined when compiling with Delphi 8 or higher
+  DELPHICOMPILER9_UP  Defined when compiling with Delphi 9 or higher
+
+
+- C++ Builder Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. These directives are only defined if
+  the compiler is C++ Builder (ie BCB is defined).
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  BCB1         Defined when compiling with C++ Builder 1
+  BCB3         Defined when compiling with C++ Builder 3
+  BCB4         Defined when compiling with C++ Builder 4
+  BCB5         Defined when compiling with C++ Builder 5
+  BCB6         Defined when compiling with C++ Builder 6
+  BCB1_UP      Defined when compiling with C++ Builder 1 or higher
+  BCB3_UP      Defined when compiling with C++ Builder 3 or higher
+  BCB4_UP      Defined when compiling with C++ Builder 4 or higher
+  BCB5_UP      Defined when compiling with C++ Builder 5 or higher
+  BCB6_UP      Defined when compiling with C++ Builder 6 or higher
+
+
+- Compiler Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X
+  directives, these directives are indepedent of the development environment.
+  That is, they are defined regardless of whether compilation takes place using
+  Delphi or C++ Builder.
+
+  Directive     Description
+  ------------------------------------------------------------------------------
+  COMPILER1     Defined when compiling with Delphi 1
+  COMPILER2     Defined when compiling with Delphi 2 or C++ Builder 1
+  COMPILER3     Defined when compiling with Delphi 3
+  COMPILER35    Defined when compiling with C++ Builder 3
+  COMPILER4     Defined when compiling with Delphi 4 or C++ Builder 4
+  COMPILER5     Defined when compiling with Delphi 5 or C++ Builder 5
+  COMPILER6     Defined when compiling with Delphi 6 or C++ Builder 6
+  COMPILER7     Defined when compiling with Delphi 7
+  COMPILER8     Defined when compiling with Delphi 8
+  COMPILER9     Defined when compiling with Delphi 9
+  COMPILER1_UP  Defined when compiling with Delphi 1 or higher
+  COMPILER2_UP  Defined when compiling with Delphi 2 or C++ Builder 1 or higher
+  COMPILER3_UP  Defined when compiling with Delphi 3 or higher
+  COMPILER35_UP Defined when compiling with C++ Builder 3 or higher
+  COMPILER4_UP  Defined when compiling with Delphi 4 or C++ Builder 4 or higher
+  COMPILER5_UP  Defined when compiling with Delphi 5 or C++ Builder 5 or higher
+  COMPILER6_UP  Defined when compiling with Delphi 6 or C++ Builder 6 or higher
+  COMPILER7_UP  Defined when compiling with Delphi 7
+  COMPILER8_UP  Defined when compiling with Delphi 8
+  COMPILER9_UP  Defined when compiling with Delphi 9
+
+
+- RTL Versions
+
+  Use e.g. following to determine the exact RTL version since version 14.0:
+    {$IFDEF CONDITIONALEXPRESSIONS}
+      {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)}
+        // code for Delphi 6.02 or later, Kylix 2 or later, C++ Builder 6 or later
+        ...
+      {$IFEND}
+    {$ENDIF}
+
+  Directive     Description
+  ------------------------------------------------------------------------------
+  RTL80_UP      Defined when compiling with Delphi 1 or later
+  RTL90_UP      Defined when compiling with Delphi 2 or later
+  RTL93_UP      Defined when compiling with C++ Builder 1 or later
+  RTL100_UP     Defined when compiling with Delphi 3 or later
+  RTL110_UP     Defined when compiling with C++ Builder 3 or later
+  RTL120_UP     Defined when compiling with Delphi 4 or later
+  RTL125_UP     Defined when compiling with C++ Builder 4 or later
+  RTL130_UP     Defined when compiling with Delphi 5 or C++ Builder 5 or later
+  RTL140_UP     Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++ Builder 6 or later
+  RTL150_UP     Defined when compiling with Delphi 7 or later
+  RTL160_UP     Defined when compiling with Delphi 8 or later
+  RTL170_UP     Defined when compiling with Delphi 9 or later
+
+
+- Feature Directives
+
+  The features directives are used to test if the compiler supports specific
+  features, such as method overloading, and adjust the sources accordingly. Use
+  of these directives is preferred over the use of the DELPHI and COMPILER
+  directives.
+
+  Directive              Description
+  ------------------------------------------------------------------------------
+  SUPPORTS_CONSTPARAMS          Compiler supports const parameters (D1+)
+  SUPPORTS_SINGLE               Compiler supports the Single type (D1+)
+  SUPPORTS_DOUBLE               Compiler supports the Double type (D1+)
+  SUPPORTS_EXTENDED             Compiler supports the Extended type (D1+)
+  SUPPORTS_CURRENCY             Compiler supports the Currency type (D2+)
+  SUPPORTS_THREADVAR            Compiler supports threadvar declarations (D2+)
+  SUPPORTS_OUTPARAMS            Compiler supports out parameters (D3+)
+  SUPPORTS_VARIANT              Compiler supports variant (D2+)
+  SUPPORTS_WIDECHAR             Compiler supports the WideChar type (D2+)
+  SUPPORTS_WIDESTRING           Compiler supports the WideString type (D3+/BCB3+)
+  SUPPORTS_INTERFACE            Compiler supports interfaces (D3+/BCB3+)
+  SUPPORTS_DISPINTERFACE        Compiler supports dispinterfaces (D3+/BCB3+)
+  SUPPORTS_EXTSYM               Compiler supports the $EXTERNALSYM directive (D4+/BCB3+)
+  SUPPORTS_NODEFINE             Compiler supports the $NODEFINE directive (D4+/BCB3+)
+  SUPPORTS_LONGWORD             Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+)
+  SUPPORTS_INT64                Compiler supports the Int64 type (D4+/BCB4+)
+  SUPPORTS_DYNAMICARRAYS        Compiler supports dynamic arrays (D4+/BCB4+)
+  SUPPORTS_DEFAULTPARAMS        Compiler supports default parameters (D4+/BCB4+)
+  SUPPORTS_OVERLOAD             Compiler supports overloading (D4+/BCB4+)
+  SUPPORTS_IMPLEMENTS           Compiler supports implements (D4+/BCB4+)
+  SUPPORTS_DEPRECATED           Compiler supports the deprecated directive (D6+/BCB6+)
+  SUPPORTS_PLATFORM             Compiler supports the platform directive (D6+/BCB6+)
+  SUPPORTS_LIBRARY              Compiler supports the library directive (D6+/BCB6+)
+  SUPPORTS_LOCAL                Compiler supports the local directive (D6+/BCB6+)
+  ACCEPT_DEPRECATED             Compiler supports or ignore the deprecated directive (D6/BCB6/FPC)
+  ACCEPT_PLATFORM               Compiler supports or ignore the platform directive (D6+/BCB6+)
+  ACCEPT_LIBRARY                Compiler supports or ignore the library directive (D6+/BCB6+)
+  SUPPORTS_CUSTOMVARIANTS       Compiler supports custom variants (D6+/BCB6+)
+  SUPPORTS_VARARGS              Compiler supports varargs (D6+/BCB6+)
+  SUPPORTS_ENUMVALUE            Compiler supports values for enums (D6+/BCB6+)
+  SUPPORTS_DEPRECATED_WARNINGS  Compiler supports deprecated warnings (D6+/BCB6+)
+  SUPPORTS_LIBRARY_WARNINGS     Compiler supports library warnings (D6+/BCB6+)
+  SUPPORTS_PLATFORM_WARNINGS    Compiler supports platform warnings (D6+/BCB6+)
+  SUPPORTS_UNSAFE_WARNINGS      Compiler supports unsafe warnings (D7)
+  SUPPORTS_WEAKPACKAGEUNIT      Compiler supports the WEAKPACKAGEUNIT directive
+  SUPPORTS_COMPILETIME_MESSAGES Compiler supports the MESSAGE directive
+  HAS_UNIT_LIBC                 The unit Libc exists (Kylix, FPC on Linux)
+  HAS_UNIT_RTLCONSTS            The unit RTLConsts exists (D6+/BCB6+)
+  HAS_UNIT_TYPES                The unit Types exists (D6+/BCB6+)
+  HAS_UNIT_VARIANTS             The unit Variants exists (D6+/BCB6+)
+  HAS_UNIT_STRUTILS             The unit StrUtils exists (D6+/BCB6+)
+  XPLATFORM_RTL                 The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC)
+
+- Compiler Settings
+
+  The compiler settings directives indicate whether a specific compiler setting
+  is in effect. This facilitates changing compiler settings locally in a more
+  compact and readible manner.
+
+  Directive              Description
+  ------------------------------------------------------------------------------
+  ALIGN_ON               Compiling in the A+ state (no alignment)
+  BOOLEVAL_ON            Compiling in the B+ state (complete boolean evaluation)
+  ASSERTIONS_ON          Compiling in the C+ state (assertions on)
+  DEBUGINFO_ON           Compiling in the D+ state (debug info generation on)
+  IMPORTEDDATA_ON        Compiling in the G+ state (creation of imported data references)
+  LONGSTRINGS_ON         Compiling in the H+ state (string defined as AnsiString)
+  IOCHECKS_ON            Compiling in the I+ state (I/O checking enabled)
+  WRITEABLECONST_ON      Compiling in the J+ state (typed constants can be modified)
+  LOCALSYMBOLS           Compiling in the L+ state (local symbol generation)
+  TYPEINFO_ON            Compiling in the M+ state (RTTI generation on)
+  OPTIMIZATION_ON        Compiling in the O+ state (code optimization on)
+  OPENSTRINGS_ON         Compiling in the P+ state (variable string parameters are openstrings)
+  OVERFLOWCHECKS_ON      Compiling in the Q+ state (overflow checing on)
+  RANGECHECKS_ON         Compiling in the R+ state (range checking on)
+  TYPEDADDRESS_ON        Compiling in the T+ state (pointers obtained using the @ operator are typed)
+  SAFEDIVIDE_ON          Compiling in the U+ state (save FDIV instruction through RTL emulation)
+  VARSTRINGCHECKS_ON     Compiling in the V+ state (type checking of shortstrings)
+  STACKFRAMES_ON         Compiling in the W+ state (generation of stack frames)
+  EXTENDEDSYNTAX_ON      Compiling in the X+ state (Delphi extended syntax enabled)
+*)
+
+{$DEFINE BORLAND}
+
+{ Set FreePascal to Delphi mode }
+{$IFDEF FPC}
+  {$MODE DELPHI}
+  {$ASMMODE Intel}
+  {$UNDEF BORLAND}
+{$ENDIF}
+
+{$IFDEF BORLAND}
+  {$IFDEF LINUX}
+    {$DEFINE KYLIX}
+  {$ENDIF LINUX}
+{$ENDIF BORLAND}
+
+{------------------------------------------------------------------------------}
+{ VERXXX to COMPILERX, DELPHIX and BCBX mappings                               }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BORLAND}
+  {$IFDEF KYLIX}
+    {$I kylix.inc} // FPC incompatible stuff
+  {$ELSE ~KYLIX}
+
+    {$IFDEF VER170}
+      {$DEFINE COMPILER9}
+      {$DEFINE DELPHI9}
+      {$DEFINE DELPHICOMPILER9}
+      {$DEFINE RTL170_UP}
+    {$ENDIF}
+
+    {$IFDEF VER160}
+      {$DEFINE COMPILER8}
+      {$DEFINE DELPHI8}
+      {$DEFINE DELPHICOMPILER8}
+      {$DEFINE RTL160_UP}
+    {$ENDIF}
+
+    {$IFDEF VER150}
+      {$DEFINE COMPILER7}
+      {$IFDEF BCB}
+        {$DEFINE BCB7}
+      {$ELSE}
+        {$DEFINE DELPHI7}
+        {$DEFINE DELPHICOMPILER7}
+      {$ENDIF}
+      {$DEFINE RTL150_UP}
+    {$ENDIF}
+
+    {$IFDEF VER140}
+      {$DEFINE COMPILER6}
+      {$IFDEF BCB}
+        {$DEFINE BCB6}
+      {$ELSE}
+        {$DEFINE DELPHI6}
+        {$DEFINE DELPHICOMPILER6}
+      {$ENDIF}
+      {$DEFINE RTL140_UP}
+    {$ENDIF}
+
+    {$IFDEF VER130}
+      {$DEFINE COMPILER5}
+      {$IFDEF BCB}
+        {$DEFINE BCB5}
+      {$ELSE}
+        {$DEFINE DELPHI5}
+        {$DEFINE DELPHICOMPILER5}
+      {$ENDIF}
+      {$DEFINE RTL130_UP}
+    {$ENDIF}
+
+    {$IFDEF VER125}
+      {$DEFINE COMPILER4}
+      {$DEFINE BCB4}
+      {$DEFINE BCB}
+      {$DEFINE RTL125_UP}
+    {$ENDIF}
+
+    {$IFDEF VER120}
+      {$DEFINE COMPILER4}
+      {$DEFINE DELPHI4}
+      {$DEFINE DELPHICOMPILER4}
+      {$DEFINE RTL120_UP}
+    {$ENDIF}
+
+    {$IFDEF VER110}
+      {$DEFINE COMPILER35}
+      {$DEFINE BCB3}
+      {$DEFINE RTL110_UP}
+    {$ENDIF}
+
+    {$IFDEF VER100}
+      {$DEFINE COMPILER3}
+      {$DEFINE DELPHI3}
+      {$DEFINE DELPHICOMPILER3}
+      {$DEFINE RTL100_UP}
+    {$ENDIF}
+
+    {$IFDEF VER93}
+      {$DEFINE COMPILER2}
+      {$DEFINE BCB1}
+      {$DEFINE BCB}
+      {$DEFINE RTL93_UP}
+    {$ENDIF}
+
+    {$IFDEF VER90}
+      {$DEFINE COMPILER2}
+      {$DEFINE DELPHI2}
+      {$DEFINE DELPHICOMPILER2}
+      {$DEFINE RTL90_UP}
+    {$ENDIF}
+
+    {$IFDEF VER80}
+      {$DEFINE COMPILER1}
+      {$DEFINE DELPHI1}
+      {$DEFINE DELPHICOMPILER1}
+      {$DEFINE RTL80_UP}
+    {$ENDIF}
+
+  {$ENDIF ~KYLIX}
+
+  {$IFDEF BCB}
+    {$DEFINE CPPBUILDER}
+    {$DEFINE BCBCOMPILER}
+  {$ELSE ~BCB}
+    {$DEFINE DELPHI}
+    {$DEFINE DELPHICOMPILER}
+  {$ENDIF ~BCB}
+
+{$ENDIF BORLAND}
+
+{------------------------------------------------------------------------------}
+{ DELPHIX_UP from DELPHIX mappings                                             }
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHI9}
+  {$DEFINE DELPHI9_UP}
+  {$DEFINE DELPHI8_UP}
+  {$DEFINE DELPHI7_UP}
+  {$DEFINE DELPHI6_UP}
+  {$DEFINE DELPHI5_UP}
+  {$DEFINE DELPHI4_UP}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI8}
+  {$DEFINE DELPHI8_UP}
+  {$DEFINE DELPHI7_UP}
+  {$DEFINE DELPHI6_UP}
+  {$DEFINE DELPHI5_UP}
+  {$DEFINE DELPHI4_UP}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI7}
+  {$DEFINE DELPHI7_UP}
+  {$DEFINE DELPHI6_UP}
+  {$DEFINE DELPHI5_UP}
+  {$DEFINE DELPHI4_UP}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI6}
+  {$DEFINE DELPHI6_UP}
+  {$DEFINE DELPHI5_UP}
+  {$DEFINE DELPHI4_UP}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI5}
+  {$DEFINE DELPHI5_UP}
+  {$DEFINE DELPHI4_UP}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI4}
+  {$DEFINE DELPHI4_UP}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI3}
+  {$DEFINE DELPHI3_UP}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI2}
+  {$DEFINE DELPHI2_UP}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI1}
+  {$DEFINE DELPHI1_UP}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ KYLIXX_UP from KYLIXX mappings                                               }
+{------------------------------------------------------------------------------}
+
+{$IFDEF KYLIX3}
+  {$DEFINE KYLIX3_UP}
+  {$DEFINE KYLIX2_UP}
+  {$DEFINE KYLIX1_UP}
+{$ENDIF}
+
+{$IFDEF KYLIX2}
+  {$DEFINE KYLIX2_UP}
+  {$DEFINE KYLIX1_UP}
+{$ENDIF}
+
+{$IFDEF KYLIX1}
+  {$DEFINE KYLIX1_UP}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ BCBX_UP from BCBX mappings                                                   }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BCB7}
+  {$DEFINE BCB7_UP}
+  {$DEFINE BCB6_UP}
+  {$DEFINE BCB5_UP}
+  {$DEFINE BCB4_UP}
+  {$DEFINE BCB3_UP}
+  {$DEFINE BCB1_UP}
+{$ENDIF}
+
+{$IFDEF BCB6}
+  {$DEFINE BCB6_UP}
+  {$DEFINE BCB5_UP}
+  {$DEFINE BCB4_UP}
+  {$DEFINE BCB3_UP}
+  {$DEFINE BCB1_UP}
+{$ENDIF}
+
+{$IFDEF BCB5}
+  {$DEFINE BCB5_UP}
+  {$DEFINE BCB4_UP}
+  {$DEFINE BCB3_UP}
+  {$DEFINE BCB1_UP}
+{$ENDIF}
+
+{$IFDEF BCB4}
+  {$DEFINE BCB4_UP}
+  {$DEFINE BCB3_UP}
+  {$DEFINE BCB1_UP}
+{$ENDIF}
+
+{$IFDEF BCB3}
+  {$DEFINE BCB3_UP}
+  {$DEFINE BCB1_UP}
+{$ENDIF}
+
+{$IFDEF BCB1}
+  {$DEFINE BCB1_UP}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ DELPHICOMPILERX_UP from DELPHICOMPILERX mappings                             }
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHICOMPILER9}
+  {$DEFINE DELPHICOMPILER9_UP}
+  {$DEFINE DELPHICOMPILER8_UP}
+  {$DEFINE DELPHICOMPILER7_UP}
+  {$DEFINE DELPHICOMPILER6_UP}
+  {$DEFINE DELPHICOMPILER5_UP}
+  {$DEFINE DELPHICOMPILER4_UP}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER8}
+  {$DEFINE DELPHICOMPILER8_UP}
+  {$DEFINE DELPHICOMPILER7_UP}
+  {$DEFINE DELPHICOMPILER6_UP}
+  {$DEFINE DELPHICOMPILER5_UP}
+  {$DEFINE DELPHICOMPILER4_UP}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER7}
+  {$DEFINE DELPHICOMPILER7_UP}
+  {$DEFINE DELPHICOMPILER6_UP}
+  {$DEFINE DELPHICOMPILER5_UP}
+  {$DEFINE DELPHICOMPILER4_UP}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER6}
+  {$DEFINE DELPHICOMPILER6_UP}
+  {$DEFINE DELPHICOMPILER5_UP}
+  {$DEFINE DELPHICOMPILER4_UP}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER5}
+  {$DEFINE DELPHICOMPILER5_UP}
+  {$DEFINE DELPHICOMPILER4_UP}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER4}
+  {$DEFINE DELPHICOMPILER4_UP}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER3}
+  {$DEFINE DELPHICOMPILER3_UP}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER2}
+  {$DEFINE DELPHICOMPILER2_UP}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF DELPHICOMPILER1}
+  {$DEFINE DELPHICOMPILER1_UP}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ COMPILERX_UP from COMPILERX mappings                                         }
+{------------------------------------------------------------------------------}
+
+{$IFDEF COMPILER9}
+  {$DEFINE COMPILER9_UP}
+  {$DEFINE COMPILER8_UP}
+  {$DEFINE COMPILER7_UP}
+  {$DEFINE COMPILER6_UP}
+  {$DEFINE COMPILER5_UP}
+  {$DEFINE COMPILER4_UP}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER8}
+  {$DEFINE COMPILER8_UP}
+  {$DEFINE COMPILER7_UP}
+  {$DEFINE COMPILER6_UP}
+  {$DEFINE COMPILER5_UP}
+  {$DEFINE COMPILER4_UP}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER7}
+  {$DEFINE COMPILER7_UP}
+  {$DEFINE COMPILER6_UP}
+  {$DEFINE COMPILER5_UP}
+  {$DEFINE COMPILER4_UP}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER6}
+  {$DEFINE COMPILER6_UP}
+  {$DEFINE COMPILER5_UP}
+  {$DEFINE COMPILER4_UP}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER5}
+  {$DEFINE COMPILER5_UP}
+  {$DEFINE COMPILER4_UP}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER4}
+  {$DEFINE COMPILER4_UP}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER35}
+  {$DEFINE COMPILER35_UP}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER3}
+  {$DEFINE COMPILER3_UP}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER2}
+  {$DEFINE COMPILER2_UP}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{$IFDEF COMPILER1}
+  {$DEFINE COMPILER1_UP}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHICOMPILER}
+  {$DEFINE DELPHILANGUAGE}
+{$ENDIF}
+
+{$IFDEF BCBCOMPILER}
+  {$DEFINE DELPHILANGUAGE}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ RTLX_UP from RTLX_UP mappings                                                }
+{------------------------------------------------------------------------------}
+
+{$IFDEF RTL170_UP}
+  {$DEFINE RTL160_UP}
+{$ENDIF}
+
+{$IFDEF RTL160_UP}
+  {$DEFINE RTL150_UP}
+{$ENDIF}
+
+{$IFDEF RTL150_UP}
+  {$DEFINE RTL145_UP}
+{$ENDIF}
+
+{$IFDEF RTL145_UP}
+  {$DEFINE RTL142_UP}
+{$ENDIF}
+
+{$IFDEF RTL142_UP}
+  {$DEFINE RTL140_UP}
+{$ENDIF}
+
+{$IFDEF RTL140_UP}
+  {$DEFINE RTL130_UP}
+{$ENDIF}
+
+{$IFDEF RTL130_UP}
+  {$DEFINE RTL125_UP}
+{$ENDIF}
+
+{$IFDEF RTL125_UP}
+  {$DEFINE RTL120_UP}
+{$ENDIF}
+
+{$IFDEF RTL120_UP}
+  {$DEFINE RTL110_UP}
+{$ENDIF}
+
+{$IFDEF RTL110_UP}
+  {$DEFINE RTL100_UP}
+{$ENDIF}
+
+{$IFDEF RTL100_UP}
+  {$DEFINE RTL93_UP}
+{$ENDIF}
+
+{$IFDEF RTL93_UP}
+  {$DEFINE RTL90_UP}
+{$ENDIF}
+
+{$IFDEF RTL90_UP}
+  {$DEFINE RTL80_UP}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ Map COMPILERX_UP to friendly feature names                                   }
+{------------------------------------------------------------------------------}
+
+{$IFDEF FPC}
+  {$MODE Delphi}
+  {$IFDEF  VER1_0}
+     Please use FPC 1.1 or later to compile this.
+  {$ELSE}
+    {$DEFINE SUPPORTS_OUTPARAMS}
+    {$DEFINE SUPPORTS_WIDECHAR}
+    {$DEFINE SUPPORTS_WIDESTRING}
+    {$IFDEF HASINTF}
+      {$DEFINE SUPPORTS_INTERFACE}
+    {$ENDIF}
+    {$IFDEF HASVARIANT}
+      {$DEFINE SUPPORTS_VARIANT}
+    {$ENDIF}
+    {$IFDEF FPC_HAS_TYPE_SINGLE}
+      {$DEFINE SUPPORTS_SINGLE}
+    {$ENDIF}
+    {$IFDEF FPC_HAS_TYPE_DOUBLE}
+      {$DEFINE SUPPORTS_DOUBLE}
+    {$ENDIF}
+    {$IFDEF FPC_HAS_TYPE_EXTENDED}
+      {$DEFINE SUPPORTS_EXTENDED}
+    {$ENDIF}
+    {$IFDEF HASCURRENCY}
+      {$DEFINE SUPPORTS_CURRENCY}
+    {$ENDIF}
+    {$DEFINE SUPPORTS_THREADVAR}
+    {$DEFINE SUPPORTS_CONSTPARAMS}
+    {$DEFINE SUPPORTS_LONGWORD}
+    {$DEFINE SUPPORTS_INT64}
+    {$DEFINE SUPPORTS_DYNAMICARRAYS}
+    {$DEFINE SUPPORTS_DEFAULTPARAMS}
+    {$DEFINE SUPPORTS_OVERLOAD}
+    {$DEFINE ACCEPT_DEPRECATED}
+    {$DEFINE ACCEPT_PLATFORM}
+    {$DEFINE ACCEPT_LIBRARY}
+    {$DEFINE SUPPORTS_EXTSYM}
+    {$DEFINE SUPPORTS_NODEFINE}
+
+    {$DEFINE SUPPORTS_CUSTOMVARIANTS}
+    {$DEFINE SUPPORTS_VARARGS}
+    {$DEFINE SUPPORTS_ENUMVALUE}
+    {$IFDEF LINUX}
+      {$DEFINE HAS_UNIT_LIBC}
+    {$ENDIF LINUX}
+    {$DEFINE HAS_UNIT_TYPES}
+    {$DEFINE HAS_UNIT_VARIANTS}
+    {$DEFINE HAS_UNIT_STRUTILS}
+
+    {$DEFINE XPLATFORM_RTL}
+
+    {$UNDEF SUPPORTS_DISPINTERFACE}
+    {$UNDEF SUPPORTS_DISPID} // is used outside of dispinterfaces
+    {$UNDEF SUPPORTS_IMPLEMENTS}
+    {$UNDEF SUPPORTS_UNSAFE_WARNINGS}
+  {$ENDIF}
+{$ENDIF FPC}
+
+{$IFDEF COMPILER1_UP}
+  {$DEFINE SUPPORTS_CONSTPARAMS}
+  {$DEFINE SUPPORTS_SINGLE}
+  {$DEFINE SUPPORTS_DOUBLE}
+  {$DEFINE SUPPORTS_EXTENDED}
+{$ENDIF COMPILER1_UP}
+
+{$IFDEF COMPILER2_UP}
+  {$DEFINE SUPPORTS_CURRENCY}
+  {$DEFINE SUPPORTS_THREADVAR}
+  {$DEFINE SUPPORTS_VARIANT}
+  {$DEFINE SUPPORTS_WIDECHAR}
+{$ENDIF COMPILER2_UP}
+
+{$IFDEF COMPILER3_UP}
+  {$DEFINE SUPPORTS_OUTPARAMS}
+  {$DEFINE SUPPORTS_WIDESTRING}
+  {$DEFINE SUPPORTS_INTERFACE}
+  {$DEFINE SUPPORTS_DISPINTERFACE}
+  {$DEFINE SUPPORTS_DISPID}
+  {$DEFINE SUPPORTS_WEAKPACKAGEUNIT}
+{$ENDIF COMPILER3_UP}
+
+{$IFDEF COMPILER35_UP}
+  {$DEFINE SUPPORTS_EXTSYM}
+  {$DEFINE SUPPORTS_NODEFINE}
+{$ENDIF COMPILER35_UP}
+
+{$IFDEF COMPILER4_UP}
+  {$DEFINE SUPPORTS_LONGWORD}
+  {$DEFINE SUPPORTS_INT64}
+  {$DEFINE SUPPORTS_DYNAMICARRAYS}
+  {$DEFINE SUPPORTS_DEFAULTPARAMS}
+  {$DEFINE SUPPORTS_OVERLOAD}
+  {$DEFINE SUPPORTS_IMPLEMENTS}
+{$ENDIF COMPILER4_UP}
+
+{$IFDEF COMPILER6_UP}
+  {$DEFINE SUPPORTS_DEPRECATED}
+  {$DEFINE SUPPORTS_LIBRARY}
+  {$DEFINE SUPPORTS_PLATFORM}
+  {$DEFINE SUPPORTS_LOCAL}
+  {$DEFINE ACCEPT_DEPRECATED}
+  {$DEFINE ACCEPT_PLATFORM}
+  {$DEFINE ACCEPT_LIBRARY}
+  {$DEFINE SUPPORTS_DEPRECATED_WARNINGS}
+  {$DEFINE SUPPORTS_LIBRARY_WARNINGS}
+  {$DEFINE SUPPORTS_PLATFORM_WARNINGS}
+  {$DEFINE SUPPORTS_CUSTOMVARIANTS}
+  {$DEFINE SUPPORTS_VARARGS}
+  {$DEFINE SUPPORTS_ENUMVALUE}
+  {$DEFINE SUPPORTS_COMPILETIME_MESSAGES}
+{$ENDIF COMPILER6_UP}
+
+{$IFDEF COMPILER7_UP}
+  {$DEFINE SUPPORTS_UNSAFE_WARNINGS}
+{$ENDIF COMPILER7_UP}
+
+{$IFDEF RTL140_UP}
+  {$IFDEF LINUX}
+    {$DEFINE HAS_UNIT_LIBC}
+  {$ENDIF LINUX}
+  {$DEFINE HAS_UNIT_RTLCONSTS}
+  {$DEFINE HAS_UNIT_TYPES}
+  {$DEFINE HAS_UNIT_VARIANTS}
+  {$DEFINE HAS_UNIT_STRUTILS}
+  {$DEFINE XPLATFORM_RTL}
+{$ENDIF RTL140_UP}
+
+{------------------------------------------------------------------------------}
+{ Cross-platform related defines                                               }
+{------------------------------------------------------------------------------}
+
+{$IFDEF WIN32}
+  {$DEFINE MSWINDOWS}
+{$ENDIF}
+
+{$IFDEF DELPHILANGUAGE}
+  {$IFDEF LINUX}
+    {$DEFINE UNIX}
+    {$DEFINE VisualCLX}
+  {$ENDIF}
+
+  {$IFNDEF VisualCLX}
+    {$DEFINE VCL}
+  {$ENDIF}
+
+  {$IFDEF VisualCLX}
+    {$DEFINE COMPLIB_CLX} { kept for backward compatibility, use VisualCLX instead }
+  {$ENDIF}
+
+  {$IFDEF VCL}
+    {$DEFINE COMPLIB_VCL} { kept for backward compatibility, use VCL instead }
+  {$ENDIF}
+{$ENDIF DELPHILANGUAGE}
+
+{------------------------------------------------------------------------------}
+{ Compiler settings                                                            }
+{------------------------------------------------------------------------------}
+
+{$IFOPT A+} {$DEFINE ALIGN_ON} {$ENDIF}
+{$IFOPT B+} {$DEFINE BOOLEVAL_ON} {$ENDIF}
+{$IFDEF COMPILER2_UP}
+  {$IFOPT C+} {$DEFINE ASSERTIONS_ON} {$ENDIF}
+{$ENDIF}
+{$IFOPT D+} {$DEFINE DEBUGINFO_ON} {$ENDIF}
+{$IFOPT G+} {$DEFINE IMPORTEDDATA_ON} {$ENDIF}
+{$IFDEF COMPILER2_UP}
+  {$IFOPT H+} {$DEFINE LONGSTRINGS_ON} {$ENDIF}
+{$ENDIF}
+{ HINTS }
+{$IFOPT I+} {$DEFINE IOCHECKS_ON} {$ENDIF}
+{$IFDEF COMPILER2_UP}
+  {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF}
+{$ENDIF}
+{$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$ENDIF}
+{$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF}
+{$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF}
+{$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF}
+{$IFOPT Q+} {$DEFINE OVERFLOWCHECKS_ON} {$ENDIF}
+{$IFOPT R+} {$DEFINE RANGECHECKS_ON} {$ENDIF}
+{ REALCOMPATIBILITY }
+{$IFOPT T+} {$DEFINE TYPEDADDRESS_ON} {$ENDIF}
+{$IFOPT U+} {$DEFINE SAFEDIVIDE_ON} {$ENDIF}
+{$IFOPT V+} {$DEFINE VARSTRINGCHECKS_ON} {$ENDIF}
+{$IFOPT W+} {$DEFINE STACKFRAMES_ON} {$ENDIF}
+{ WARNINGS }
+{$IFOPT X+} {$DEFINE EXTENDEDSYNTAX_ON} {$ENDIF}
+
+// for Delphi/BCB trial versions remove the point from the line below
+{.$UNDEF SUPPORTS_WEAKPACKAGEUNIT}
+
+// History:
+
 // $Log: jedi.inc,v $
 // Revision 1.1  2005/04/04 07:56:11  marco
 //  * Jedi Windows Api initial import
-//
-// Revision 1.1  2004/11/11 09:39:29  marquardt
-// added several directory trees, added jedi.inc to files, misc style changes
-//
-// Revision 1.19  2004/11/06 02:11:20  mthoma
-// history cleaning.
-//
-// Revision 1.18  2004/08/10 02:52:02  rrossmair
-// - moved {$ENDIF ~JEDI_INC} to EOF.
-//
-// Revision 1.17  2004/08/09 06:38:08  peter3
-// - D8 support added
-// - D9 support added (guesswork)
-//
-// Revision 1.16  2004/07/29 17:12:28  rrossmair
-// fixed comment ("KYLIXX_UP from KYLIXX mappings")
-//
-// Revision 1.15  2004/07/29 07:58:21  marquardt
-// inc files updated
-//
-// Revision 1.14  2004/06/21 01:10:17  rrossmair
-// - $IFDEFed contents (to prevent from repeated inclusion)
-// - introduced symbols SUPPORTS_DEPRECATED_WARNINGS, SUPPORTS_LIBRARY_WARNINGS, SUPPORTS_PLATFORM_WARNINGS, SUPPORTS_COMPILETIME_MESSAGES
-// - reordered pre-CVS history
-//
-// Revision 1.13  2004/05/08 08:44:20  rrossmair
-// introduced & applied symbol HAS_UNIT_LIBC
-//
-// Revision 1.12  2004/05/06 05:03:59  rrossmair
-// SUPPORTS_ENUMVALUE definition fixed for Free Pascal Compiler
-//
-// Revision 1.11  2004/05/05 03:20:13  rrossmair
-// jedi.inc: moved FPC-incompatible Kylix-related code to separate include file "kylix.inc", disposed of FPC-related TODOs
-//
-// Revision 1.10  2004/05/01 00:03:59  rrossmair
-// FPC workaround removed; didn't work with Kylix
-//
-// Revision 1.9  2004/04/30 18:25:15  rrossmair
-// added symbols BORLAND, CPPBUILDER, BCBCOMPILER
-// removed symbol NONBORLAND
-// cleanup (reduced redundancy)
-// corrected embarrassing typo "widestring's" (for the 3rd time, I believe)
-//
-// Revision 1.8  2004/04/14 20:26:33  mthoma
-// Changed data to date
-// Local is Delphi 6 - removed todo comment
-// Replaced CLX with VisualCLX to be consistent with Borlands current definition of what "CLX" is.
-//
-// Revision 1.7  2004/04/06 05:06:12
-// add support for Kylix, FPC, RTL, versions, some speaking directives
-//
-// 2004-03-22,
-//  - add SUPPORTS_WEAKPACKAGEUNIT
-//
-// 2004-03-20,
-//  - add SUPPORTS_LOCAL
-//
-// 2004-03-18,
-//  - add SUPPORTS_LONGWORD
-//
-// 2004-03-16,
-//  - add HAS_UNIT_STRUTILS
-//  - add XPLATFORM_RTL
-//
-// 2003-12-03,
-//  - add SUPPORTS_ENUMVALUE
-//
-// 2003-11-14,
-//  - add SUPPORTS_VARARGS
-//
-// 2003-10-30,
-//  - correct and complete comments
-//  - add Kylix definitions
-//  - add RTL definitions
-//  - add FPC definitions
-
-{$ENDIF ~JEDI_INC}
+//
+// Revision 1.1  2004/11/11 09:39:29  marquardt
+// added several directory trees, added jedi.inc to files, misc style changes
+//
+// Revision 1.19  2004/11/06 02:11:20  mthoma
+// history cleaning.
+//
+// Revision 1.18  2004/08/10 02:52:02  rrossmair
+// - moved {$ENDIF ~JEDI_INC} to EOF.
+//
+// Revision 1.17  2004/08/09 06:38:08  peter3
+// - D8 support added
+// - D9 support added (guesswork)
+//
+// Revision 1.16  2004/07/29 17:12:28  rrossmair
+// fixed comment ("KYLIXX_UP from KYLIXX mappings")
+//
+// Revision 1.15  2004/07/29 07:58:21  marquardt
+// inc files updated
+//
+// Revision 1.14  2004/06/21 01:10:17  rrossmair
+// - $IFDEFed contents (to prevent from repeated inclusion)
+// - introduced symbols SUPPORTS_DEPRECATED_WARNINGS, SUPPORTS_LIBRARY_WARNINGS, SUPPORTS_PLATFORM_WARNINGS, SUPPORTS_COMPILETIME_MESSAGES
+// - reordered pre-CVS history
+//
+// Revision 1.13  2004/05/08 08:44:20  rrossmair
+// introduced & applied symbol HAS_UNIT_LIBC
+//
+// Revision 1.12  2004/05/06 05:03:59  rrossmair
+// SUPPORTS_ENUMVALUE definition fixed for Free Pascal Compiler
+//
+// Revision 1.11  2004/05/05 03:20:13  rrossmair
+// jedi.inc: moved FPC-incompatible Kylix-related code to separate include file "kylix.inc", disposed of FPC-related TODOs
+//
+// Revision 1.10  2004/05/01 00:03:59  rrossmair
+// FPC workaround removed; didn't work with Kylix
+//
+// Revision 1.9  2004/04/30 18:25:15  rrossmair
+// added symbols BORLAND, CPPBUILDER, BCBCOMPILER
+// removed symbol NONBORLAND
+// cleanup (reduced redundancy)
+// corrected embarrassing typo "widestring's" (for the 3rd time, I believe)
+//
+// Revision 1.8  2004/04/14 20:26:33  mthoma
+// Changed data to date
+// Local is Delphi 6 - removed todo comment
+// Replaced CLX with VisualCLX to be consistent with Borlands current definition of what "CLX" is.
+//
+// Revision 1.7  2004/04/06 05:06:12
+// add support for Kylix, FPC, RTL, versions, some speaking directives
+//
+// 2004-03-22,
+//  - add SUPPORTS_WEAKPACKAGEUNIT
+//
+// 2004-03-20,
+//  - add SUPPORTS_LOCAL
+//
+// 2004-03-18,
+//  - add SUPPORTS_LONGWORD
+//
+// 2004-03-16,
+//  - add HAS_UNIT_STRUTILS
+//  - add XPLATFORM_RTL
+//
+// 2003-12-03,
+//  - add SUPPORTS_ENUMVALUE
+//
+// 2003-11-14,
+//  - add SUPPORTS_VARARGS
+//
+// 2003-10-30,
+//  - correct and complete comments
+//  - add Kylix definitions
+//  - add RTL definitions
+//  - add FPC definitions
+
+{$ENDIF ~JEDI_INC}

+ 252 - 252
rtl/win32/mouse.pp

@@ -1,255 +1,255 @@
-{
-    $Id: mouse.pp,v 1.11 2005/03/31 14:43:03 marco Exp $
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2000 by Florian Klaempfl
-    member of the Free Pascal development team
-
-    Mouse unit for linux
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-unit Mouse;
-interface
-
-{$i mouseh.inc}
-
-implementation
-
-uses
-   windows,dos,Winevent;
-
-{$i mouse.inc}
-
-var
-   ChangeMouseEvents : TCriticalSection;
-   LastHandlerMouseEvent : TMouseEvent;
-
-procedure MouseEventHandler(var ir:INPUT_RECORD);
-
-  var
-     e : TMouseEvent;
-
-  begin
-          EnterCriticalSection(ChangeMouseEvents);
-          e.x:=ir.Event.MouseEvent.dwMousePosition.x;
-          e.y:=ir.Event.MouseEvent.dwMousePosition.y;
-          e.buttons:=0;
-          e.action:=0;
-          if (ir.Event.MouseEvent.dwButtonState and FROM_LEFT_1ST_BUTTON_PRESSED<>0) then
-            e.buttons:=e.buttons or MouseLeftButton;
-          if (ir.Event.MouseEvent.dwButtonState and FROM_LEFT_2ND_BUTTON_PRESSED<>0) then
-            e.buttons:=e.buttons or MouseMiddleButton;
-          if (ir.Event.MouseEvent.dwButtonState and RIGHTMOST_BUTTON_PRESSED<>0) then
-            e.buttons:=e.buttons or MouseRightButton;
-
-          if (Lasthandlermouseevent.x<>e.x) or (LasthandlerMouseEvent.y<>e.y) then
-            e.Action:=MouseActionMove;
-          if (LastHandlerMouseEvent.Buttons<>e.Buttons) then
-           begin
-            if (LasthandlerMouseEvent.Buttons and e.buttons<>LasthandlerMouseEvent.Buttons) then
-              e.Action:=MouseActionUp
-            else
-              e.Action:=MouseActionDown;
-           end;
-
-
-//
-//  The mouse event compression here was flawed and could lead
-//  to "zero" mouse actions if the new (x,y) was the same as the
-//  previous one. (bug 2312)
-//
-
-           { can we compress the events? }
-         if (PendingMouseEvents>0) and
-            (e.buttons=PendingMouseTail^.buttons) and
-            (e.action=PendingMouseTail^.action) then
-            begin
-               PendingMouseTail^.x:=e.x;
-               PendingMouseTail^.y:=e.y;
-            end
-          else
-            begin
-
-               if e.action<>0 then
-                 begin
-                   LastHandlermouseEvent:=e;
-                   PutMouseEvent(e);
-                 end;
-               // this should be done in PutMouseEvent, now it is PM
-               // inc(PendingMouseEvents);
-            end;
-          LastMouseEvent:=e;
-          LeaveCriticalSection(ChangeMouseEvents);
-  end;
-
-procedure SysInitMouse;
-
-var
-   mode : dword;
-
-begin
-  // enable mouse events
-  GetConsoleMode(StdInputHandle,@mode);
-  mode:=mode or ENABLE_MOUSE_INPUT;
-  SetConsoleMode(StdInputHandle,mode);
-
-  PendingMouseHead:=@PendingMouseEvent;
-  PendingMouseTail:=@PendingMouseEvent;
-  PendingMouseEvents:=0;
-  FillChar(LastMouseEvent,sizeof(TMouseEvent),0);
-  InitializeCriticalSection(ChangeMouseEvents);
-  SetMouseEventHandler(@MouseEventHandler);
-  ShowMouse;
-end;
-
-
-procedure SysDoneMouse;
-var
-   mode : dword;
-begin
-  HideMouse;
-  // disable mouse events
-  GetConsoleMode(StdInputHandle,@mode);
-  mode:=mode and (not ENABLE_MOUSE_INPUT);
-  SetConsoleMode(StdInputHandle,mode);
-
-  SetMouseEventHandler(nil);
-  DeleteCriticalSection(ChangeMouseEvents);
-end;
-
-
-function SysDetectMouse:byte;
-var
-  num : dword;
-begin
-  GetNumberOfConsoleMouseButtons(@num);
-  SysDetectMouse:=num;
-end;
-
-
-procedure SysGetMouseEvent(var MouseEvent: TMouseEvent);
-
-var
-   b : byte;
-
-begin
-  repeat
-    EnterCriticalSection(ChangeMouseEvents);
-    b:=PendingMouseEvents;
-    LeaveCriticalSection(ChangeMouseEvents);
-    if b>0 then
-      break
-    else
-      sleep(50);
-  until false;
-  EnterCriticalSection(ChangeMouseEvents);
-  MouseEvent:=PendingMouseHead^;
-  inc(PendingMouseHead);
-  if longint(PendingMouseHead)=longint(@PendingMouseEvent)+sizeof(PendingMouseEvent) then
-   PendingMouseHead:=@PendingMouseEvent;
-  dec(PendingMouseEvents);
-  if (LastMouseEvent.x<>MouseEvent.x) or (LastMouseEvent.y<>MouseEvent.y) then
-   MouseEvent.Action:=MouseActionMove;
-  if (LastMouseEvent.Buttons<>MouseEvent.Buttons) then
-   begin
-     if (LastMouseEvent.Buttons and MouseEvent.buttons<>LastMouseEvent.Buttons) then
-       MouseEvent.Action:=MouseActionUp
-     else
-       MouseEvent.Action:=MouseActionDown;
-   end;
-  if MouseEvent.action=0 then MousEevent.action:=MouseActionMove; // can sometimes happen due to compression of events.
-  LastMouseEvent:=MouseEvent;
-  LeaveCriticalSection(ChangeMouseEvents);
-end;
-
-
-function SysPollMouseEvent(var MouseEvent: TMouseEvent):boolean;
-begin
-  EnterCriticalSection(ChangeMouseEvents);
-  if PendingMouseEvents>0 then
-   begin
-     MouseEvent:=PendingMouseHead^;
-     SysPollMouseEvent:=true;
-   end
-  else
-   SysPollMouseEvent:=false;
-  LeaveCriticalSection(ChangeMouseEvents);
-end;
-
-
-procedure SysPutMouseEvent(const MouseEvent: TMouseEvent);
-begin
-  if PendingMouseEvents<MouseEventBufSize then
-   begin
-     PendingMouseTail^:=MouseEvent;
-     inc(PendingMouseTail);
-     if longint(PendingMouseTail)=longint(@PendingMouseEvent)+sizeof(PendingMouseEvent) then
-      PendingMouseTail:=@PendingMouseEvent;
-      { why isn't this done here ?
-        so the win32 version do this by hand:}
-       inc(PendingMouseEvents);
-   end;
-end;
-
-
-function SysGetMouseX:word;
-begin
-  EnterCriticalSection(ChangeMouseEvents);
-  SysGetMouseX:=LastMouseEvent.x;
-  LeaveCriticalSection(ChangeMouseEvents);
-end;
-
-
-function SysGetMouseY:word;
-begin
-  EnterCriticalSection(ChangeMouseEvents);
-  SysGetMouseY:=LastMouseEvent.y;
-  LeaveCriticalSection(ChangeMouseEvents);
-end;
-
-
-function SysGetMouseButtons:word;
-begin
-  EnterCriticalSection(ChangeMouseEvents);
-  SysGetMouseButtons:=LastMouseEvent.Buttons;
-  LeaveCriticalSection(ChangeMouseEvents);
-end;
-
-Const
-  SysMouseDriver : TMouseDriver = (
-    UseDefaultQueue : False;
-    InitDriver      : @SysInitMouse;
-    DoneDriver      : @SysDoneMouse;
-    DetectMouse     : @SysDetectMouse;
-    ShowMouse       : Nil;
-    HideMouse       : Nil;
-    GetMouseX       : @SysGetMouseX;
-    GetMouseY       : @SysGetMouseY;
-    GetMouseButtons : @SysGetMouseButtons;
-    SetMouseXY      : Nil;
-    GetMouseEvent   : @SysGetMouseEvent;
-    PollMouseEvent  : @SysPollMouseEvent;
-    PutMouseEvent   : @SysPutMouseEvent;
-  );
-
-Begin
-  SetMouseDriver(SysMouseDriver);
-end.
-{
+{
+    $Id: mouse.pp,v 1.11 2005/03/31 14:43:03 marco Exp $
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 1999-2000 by Florian Klaempfl
+    member of the Free Pascal development team
+
+    Mouse unit for linux
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+unit Mouse;
+interface
+
+{$i mouseh.inc}
+
+implementation
+
+uses
+   windows,dos,Winevent;
+
+{$i mouse.inc}
+
+var
+   ChangeMouseEvents : TCriticalSection;
+   LastHandlerMouseEvent : TMouseEvent;
+
+procedure MouseEventHandler(var ir:INPUT_RECORD);
+
+  var
+     e : TMouseEvent;
+
+  begin
+          EnterCriticalSection(ChangeMouseEvents);
+          e.x:=ir.Event.MouseEvent.dwMousePosition.x;
+          e.y:=ir.Event.MouseEvent.dwMousePosition.y;
+          e.buttons:=0;
+          e.action:=0;
+          if (ir.Event.MouseEvent.dwButtonState and FROM_LEFT_1ST_BUTTON_PRESSED<>0) then
+            e.buttons:=e.buttons or MouseLeftButton;
+          if (ir.Event.MouseEvent.dwButtonState and FROM_LEFT_2ND_BUTTON_PRESSED<>0) then
+            e.buttons:=e.buttons or MouseMiddleButton;
+          if (ir.Event.MouseEvent.dwButtonState and RIGHTMOST_BUTTON_PRESSED<>0) then
+            e.buttons:=e.buttons or MouseRightButton;
+
+          if (Lasthandlermouseevent.x<>e.x) or (LasthandlerMouseEvent.y<>e.y) then
+            e.Action:=MouseActionMove;
+          if (LastHandlerMouseEvent.Buttons<>e.Buttons) then
+           begin
+            if (LasthandlerMouseEvent.Buttons and e.buttons<>LasthandlerMouseEvent.Buttons) then
+              e.Action:=MouseActionUp
+            else
+              e.Action:=MouseActionDown;
+           end;
+
+
+//
+//  The mouse event compression here was flawed and could lead
+//  to "zero" mouse actions if the new (x,y) was the same as the
+//  previous one. (bug 2312)
+//
+
+           { can we compress the events? }
+         if (PendingMouseEvents>0) and
+            (e.buttons=PendingMouseTail^.buttons) and
+            (e.action=PendingMouseTail^.action) then
+            begin
+               PendingMouseTail^.x:=e.x;
+               PendingMouseTail^.y:=e.y;
+            end
+          else
+            begin
+
+               if e.action<>0 then
+                 begin
+                   LastHandlermouseEvent:=e;
+                   PutMouseEvent(e);
+                 end;
+               // this should be done in PutMouseEvent, now it is PM
+               // inc(PendingMouseEvents);
+            end;
+          LastMouseEvent:=e;
+          LeaveCriticalSection(ChangeMouseEvents);
+  end;
+
+procedure SysInitMouse;
+
+var
+   mode : dword;
+
+begin
+  // enable mouse events
+  GetConsoleMode(StdInputHandle,@mode);
+  mode:=mode or ENABLE_MOUSE_INPUT;
+  SetConsoleMode(StdInputHandle,mode);
+
+  PendingMouseHead:=@PendingMouseEvent;
+  PendingMouseTail:=@PendingMouseEvent;
+  PendingMouseEvents:=0;
+  FillChar(LastMouseEvent,sizeof(TMouseEvent),0);
+  InitializeCriticalSection(ChangeMouseEvents);
+  SetMouseEventHandler(@MouseEventHandler);
+  ShowMouse;
+end;
+
+
+procedure SysDoneMouse;
+var
+   mode : dword;
+begin
+  HideMouse;
+  // disable mouse events
+  GetConsoleMode(StdInputHandle,@mode);
+  mode:=mode and (not ENABLE_MOUSE_INPUT);
+  SetConsoleMode(StdInputHandle,mode);
+
+  SetMouseEventHandler(nil);
+  DeleteCriticalSection(ChangeMouseEvents);
+end;
+
+
+function SysDetectMouse:byte;
+var
+  num : dword;
+begin
+  GetNumberOfConsoleMouseButtons(@num);
+  SysDetectMouse:=num;
+end;
+
+
+procedure SysGetMouseEvent(var MouseEvent: TMouseEvent);
+
+var
+   b : byte;
+
+begin
+  repeat
+    EnterCriticalSection(ChangeMouseEvents);
+    b:=PendingMouseEvents;
+    LeaveCriticalSection(ChangeMouseEvents);
+    if b>0 then
+      break
+    else
+      sleep(50);
+  until false;
+  EnterCriticalSection(ChangeMouseEvents);
+  MouseEvent:=PendingMouseHead^;
+  inc(PendingMouseHead);
+  if longint(PendingMouseHead)=longint(@PendingMouseEvent)+sizeof(PendingMouseEvent) then
+   PendingMouseHead:=@PendingMouseEvent;
+  dec(PendingMouseEvents);
+  if (LastMouseEvent.x<>MouseEvent.x) or (LastMouseEvent.y<>MouseEvent.y) then
+   MouseEvent.Action:=MouseActionMove;
+  if (LastMouseEvent.Buttons<>MouseEvent.Buttons) then
+   begin
+     if (LastMouseEvent.Buttons and MouseEvent.buttons<>LastMouseEvent.Buttons) then
+       MouseEvent.Action:=MouseActionUp
+     else
+       MouseEvent.Action:=MouseActionDown;
+   end;
+  if MouseEvent.action=0 then MousEevent.action:=MouseActionMove; // can sometimes happen due to compression of events.
+  LastMouseEvent:=MouseEvent;
+  LeaveCriticalSection(ChangeMouseEvents);
+end;
+
+
+function SysPollMouseEvent(var MouseEvent: TMouseEvent):boolean;
+begin
+  EnterCriticalSection(ChangeMouseEvents);
+  if PendingMouseEvents>0 then
+   begin
+     MouseEvent:=PendingMouseHead^;
+     SysPollMouseEvent:=true;
+   end
+  else
+   SysPollMouseEvent:=false;
+  LeaveCriticalSection(ChangeMouseEvents);
+end;
+
+
+procedure SysPutMouseEvent(const MouseEvent: TMouseEvent);
+begin
+  if PendingMouseEvents<MouseEventBufSize then
+   begin
+     PendingMouseTail^:=MouseEvent;
+     inc(PendingMouseTail);
+     if longint(PendingMouseTail)=longint(@PendingMouseEvent)+sizeof(PendingMouseEvent) then
+      PendingMouseTail:=@PendingMouseEvent;
+      { why isn't this done here ?
+        so the win32 version do this by hand:}
+       inc(PendingMouseEvents);
+   end;
+end;
+
+
+function SysGetMouseX:word;
+begin
+  EnterCriticalSection(ChangeMouseEvents);
+  SysGetMouseX:=LastMouseEvent.x;
+  LeaveCriticalSection(ChangeMouseEvents);
+end;
+
+
+function SysGetMouseY:word;
+begin
+  EnterCriticalSection(ChangeMouseEvents);
+  SysGetMouseY:=LastMouseEvent.y;
+  LeaveCriticalSection(ChangeMouseEvents);
+end;
+
+
+function SysGetMouseButtons:word;
+begin
+  EnterCriticalSection(ChangeMouseEvents);
+  SysGetMouseButtons:=LastMouseEvent.Buttons;
+  LeaveCriticalSection(ChangeMouseEvents);
+end;
+
+Const
+  SysMouseDriver : TMouseDriver = (
+    UseDefaultQueue : False;
+    InitDriver      : @SysInitMouse;
+    DoneDriver      : @SysDoneMouse;
+    DetectMouse     : @SysDetectMouse;
+    ShowMouse       : Nil;
+    HideMouse       : Nil;
+    GetMouseX       : @SysGetMouseX;
+    GetMouseY       : @SysGetMouseY;
+    GetMouseButtons : @SysGetMouseButtons;
+    SetMouseXY      : Nil;
+    GetMouseEvent   : @SysGetMouseEvent;
+    PollMouseEvent  : @SysPollMouseEvent;
+    PutMouseEvent   : @SysPutMouseEvent;
+  );
+
+Begin
+  SetMouseDriver(SysMouseDriver);
+end.
+{
   $Log: mouse.pp,v $
   Revision 1.11  2005/03/31 14:43:03  marco
    * fix to lastmouseevent update
-
-  Revision 1.10  2005/02/14 17:13:32  peter
-    * truncate log
-
-  Revision 1.9  2005/01/12 10:25:48  armin
-  * Patch for bug 3548 from Peter
-
-}
+
+  Revision 1.10  2005/02/14 17:13:32  peter
+    * truncate log
+
+  Revision 1.9  2005/01/12 10:25:48  armin
+  * Patch for bug 3548 from Peter
+
+}

Some files were not shown because too many files changed in this diff