Browse Source

* enabled libxml2 for win32 (hope it's still working for linux)

git-svn-id: trunk@11753 -
ivost 17 years ago
parent
commit
2e1f993232

+ 3 - 2
packages/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/08/04]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/09/12]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
@@ -265,7 +265,7 @@ ifeq ($(FULL_TARGET),i386-go32v2)
 override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-xml fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-fpcunit fcl-json  fcl-process unzip regexpr chm fcl-res libgd symbolic  fv graph unzip gdbint
 override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-xml fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-fpcunit fcl-json  fcl-process unzip regexpr chm fcl-res libgd symbolic  fv graph unzip gdbint
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-xml fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-fpcunit fcl-json  fcl-process unzip regexpr chm fcl-res libgd symbolic  fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib winceunits cairo
+override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-xml fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-fpcunit fcl-json  fcl-process unzip regexpr chm fcl-res libgd symbolic  fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib winceunits cairo libxml
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
 override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-xml fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-fpcunit fcl-json  fcl-process unzip regexpr chm fcl-res libgd symbolic  fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
 override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-xml fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-fpcunit fcl-json  fcl-process unzip regexpr chm fcl-res libgd symbolic  fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
@@ -1685,6 +1685,7 @@ TARGET_DIRS_PXLIB=1
 TARGET_DIRS_NUMLIB=1
 TARGET_DIRS_NUMLIB=1
 TARGET_DIRS_WINCEUNITS=1
 TARGET_DIRS_WINCEUNITS=1
 TARGET_DIRS_CAIRO=1
 TARGET_DIRS_CAIRO=1
+TARGET_DIRS_LIBXML=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
 TARGET_DIRS_HASH=1
 TARGET_DIRS_HASH=1

+ 2 - 1
packages/Makefile.fpc

@@ -1,3 +1,4 @@
+
 #
 #
 #   Makefile.fpc for Free Pascal Packages
 #   Makefile.fpc for Free Pascal Packages
 #
 #
@@ -42,7 +43,7 @@ dirs_linux=fv fcl-web fcl-async ibase mysql ncurses unzip zlib oracle dbus odbc
                imlib utmp  fpgtk openal lua oggvorbis xforms fftw pcap ggi sdl openssl gnome1 httpd13 httpd20 httpd22 pxlib numlib
                imlib utmp  fpgtk openal lua oggvorbis xforms fftw pcap ggi sdl openssl gnome1 httpd13 httpd20 httpd22 pxlib numlib
 dirs_win32=fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick \
 dirs_win32=fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick \
                gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua \
                gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua \
-               oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib winceunits cairo
+               oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib winceunits cairo libxml
 dirs_win64=fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick \
 dirs_win64=fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick \
                 tcl opengl gtk1 gtk2 fpgtk fftw sdl openssl cdrom numlib
                 tcl opengl gtk1 gtk2 fpgtk fftw sdl openssl cdrom numlib
 dirs_wince=winceunits fcl-web tcl fftw unzip zlib sqlite mysql ibase postgres oracle odbc sdl openssl oggvorbis numlib
 dirs_wince=winceunits fcl-web tcl fftw unzip zlib sqlite mysql ibase postgres oracle odbc sdl openssl oggvorbis numlib

+ 45 - 2
packages/libxml/src/chvalid.inc

@@ -62,8 +62,14 @@ function xmlIsBaseChar_ch(c: cint): cbool;
  *)
  *)
 function xmlIsBaseCharQ(c: cint): cbool;
 function xmlIsBaseCharQ(c: cint): cbool;
 
 
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIsBaseCharGroup: xmlChRangeGroup; XMLPUBVAR;
   xmlIsBaseCharGroup: xmlChRangeGroup; XMLPUBVAR;
+  __xmlIsBaseCharGroup: xmlChRangeGroupPtr = @xmlIsBaseCharGroup;
+{$ELSE}
+var
+  __xmlIsBaseCharGroup: xmlChRangeGroupPtr;
+{$ENDIF}
 
 
 (**
 (**
  * xmlIsBlank_ch:
  * xmlIsBlank_ch:
@@ -97,8 +103,14 @@ function xmlIsChar_ch(c: cint): cbool;
  *)
  *)
 function xmlIsCharQ(c: cint): cbool;
 function xmlIsCharQ(c: cint): cbool;
 
 
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIsCharGroup: xmlChRangeGroup; XMLPUBVAR;
   xmlIsCharGroup: xmlChRangeGroup; XMLPUBVAR;
+  __xmlIsCharGroup: xmlChRangeGroupPtr = @xmlIsCharGroup;
+{$ELSE}
+var
+  __xmlIsCharGroup: xmlChRangeGroupPtr;
+{$ENDIF}
 
 
 (**
 (**
  * xmlIsCombiningQ:
  * xmlIsCombiningQ:
@@ -108,8 +120,14 @@ var
  *)
  *)
 function xmlIsCombiningQ(c: cint): cbool;
 function xmlIsCombiningQ(c: cint): cbool;
 
 
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIsCombiningGroup: xmlChRangeGroup; XMLPUBVAR;
   xmlIsCombiningGroup: xmlChRangeGroup; XMLPUBVAR;
+  __xmlIsCombiningGroup: xmlChRangeGroupPtr = @xmlIsCombiningGroup;
+{$ELSE}
+var
+  __xmlIsCombiningGroup: xmlChRangeGroupPtr;
+{$ENDIF}
 
 
 (**
 (**
  * xmlIsDigit_ch:
  * xmlIsDigit_ch:
@@ -127,8 +145,14 @@ function xmlIsDigit_ch(c: cint): cbool;
  *)
  *)
 function xmlIsDigitQ(c: cint): cbool;
 function xmlIsDigitQ(c: cint): cbool;
 
 
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIsDigitGroup: xmlChRangeGroup; XMLPUBVAR;
   xmlIsDigitGroup: xmlChRangeGroup; XMLPUBVAR;
+  __xmlIsDigitGroup: xmlChRangeGroupPtr = @xmlIsDigitGroup;
+{$ELSE}
+var
+  __xmlIsDigitGroup: xmlChRangeGroupPtr;
+{$ENDIF}
 
 
 (**
 (**
  * xmlIsExtender_ch:
  * xmlIsExtender_ch:
@@ -146,8 +170,14 @@ function xmlIsExtender_ch(c: cint): cbool;
  *)
  *)
 function xmlIsExtenderQ(c: cint): cbool;
 function xmlIsExtenderQ(c: cint): cbool;
 
 
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIsExtenderGroup: xmlChRangeGroup; XMLPUBVAR;
   xmlIsExtenderGroup: xmlChRangeGroup; XMLPUBVAR;
+  __xmlIsExtenderGroup: xmlChRangeGroupPtr = @xmlIsExtenderGroup;
+{$ELSE}
+var
+  __xmlIsExtenderGroup: xmlChRangeGroupPtr;
+{$ENDIF}
 
 
 (**
 (**
  * xmlIsIdeographicQ:
  * xmlIsIdeographicQ:
@@ -157,9 +187,22 @@ var
  *)
  *)
 function xmlIsIdeographicQ(c: cint): cbool;
 function xmlIsIdeographicQ(c: cint): cbool;
 
 
+type
+  pchar_tab = ^char_tab;
+  char_tab = array[0..255] of cbool;
+
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIsIdeographicGroup: xmlChRangeGroup; XMLPUBVAR;
   xmlIsIdeographicGroup: xmlChRangeGroup; XMLPUBVAR;
-  xmlIsPubidChar_tab: array[0..255] of cbool;
+  __xmlIsIdeographicGroup: xmlChRangeGroupPtr = @xmlIsIdeographicGroup;
+  
+  xmlIsPubidChar_tab: char_tab; XMLPUBVAR;
+  __xmlIsPubidChar_tab: pchar_tab = @xmlIsPubidChar_tab;
+{$ELSE}
+var
+  __xmlIsIdeographicGroup: xmlChRangeGroupPtr;
+  __xmlIsPubidChar_tab: pchar_tab;
+{$ENDIF}
 
 
 (**
 (**
  * xmlIsPubidChar_ch:
  * xmlIsPubidChar_ch:
@@ -185,4 +228,4 @@ function xmlIsDigit(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
 function xmlIsExtender(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
 function xmlIsExtender(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
 function xmlIsIdeographic(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
 function xmlIsIdeographic(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
 function xmlIsPubidChar(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
 function xmlIsPubidChar(ch: cuint): cbool; XMLCALL; XMLPUBFUN;
-{$ENDIF}
+{$ENDIF}

+ 64 - 10
packages/libxml/src/globals.inc

@@ -119,7 +119,7 @@ function __xmlMalloc: xmlMallocFuncPtr; XMLCALL; XMLPUBFUN;
 {$DEFINE xmlMalloc := __xmlMalloc()^ }
 {$DEFINE xmlMalloc := __xmlMalloc()^ }
 {$ELSE}
 {$ELSE}
 var
 var
-  xmlMalloc: xmlMallocFunc; XMLPUBVAR;
+  xmlMalloc: xmlMallocFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
@@ -127,7 +127,7 @@ function __xmlMallocAtomic: xmlMallocFuncPtr; XMLCALL; XMLPUBFUN;
 #define xmlMallocAtomic ( *(__xmlMallocAtomic()))
 #define xmlMallocAtomic ( *(__xmlMallocAtomic()))
 {$ELSE}
 {$ELSE}
 var
 var
-  xmlMallocAtomic: xmlMallocFunc; XMLPUBVAR;
+  xmlMallocAtomic: xmlMallocFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
@@ -135,7 +135,7 @@ function __xmlRealloc: xmlReallocFuncPtr; XMLCALL; XMLPUBFUN;
 #define xmlRealloc ( *(__xmlRealloc()))
 #define xmlRealloc ( *(__xmlRealloc()))
 {$ELSE}
 {$ELSE}
 var
 var
-  xmlRealloc: xmlReallocFunc; XMLPUBVAR;
+  xmlRealloc: xmlReallocFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
@@ -143,7 +143,7 @@ function __xmlFree: xmlFreeFuncPtr; XMLCALL; XMLPUBFUN;
 #define xmlFree ( *(__xmlFree()))
 #define xmlFree ( *(__xmlFree()))
 {$ELSE}
 {$ELSE}
 var
 var
-  xmlFree: xmlFreeFunc; XMLPUBVAR;
+  xmlFree: xmlFreeFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
@@ -151,16 +151,16 @@ function __xmlMemStrdup: xmlStrdupFuncPtr; XMLCALL; XMLPUBFUN;
 #define xmlMemStrdup ( *(__xmlMemStrdup()))
 #define xmlMemStrdup ( *(__xmlMemStrdup()))
 {$ELSE}
 {$ELSE}
 var
 var
-  xmlMemStrdup: xmlStrdupFunc; XMLPUBVAR;
+  xmlMemStrdup: xmlStrdupFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 {$ELSE} (* !LIBXML_THREAD_ALLOC_ENABLED *)
 {$ELSE} (* !LIBXML_THREAD_ALLOC_ENABLED *)
 var
 var
-  xmlMalloc: xmlMallocFunc; XMLPUBVAR;
-  xmlMallocAtomic: xmlMallocFunc; XMLPUBVAR;
-  xmlRealloc: xmlReallocFunc; XMLPUBVAR;
-  xmlFree: xmlFreeFunc; XMLPUBVAR;
-  xmlMemStrdup: xmlStrdupFunc; XMLPUBVAR;
+  xmlMalloc: xmlMallocFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
+  xmlMallocAtomic: xmlMallocFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
+  xmlRealloc: xmlReallocFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
+  xmlFree: xmlFreeFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
+  xmlMemStrdup: xmlStrdupFunc; {$IFNDEF NO_EXTERNAL_VARS}XMLPUBVAR;{$ENDIF}
 {$ENDIF} (* LIBXML_THREAD_ALLOC_ENABLED *)
 {$ENDIF} (* LIBXML_THREAD_ALLOC_ENABLED *)
 
 
 {$IFDEF LIBXML_DOCB_ENABLED}
 {$IFDEF LIBXML_DOCB_ENABLED}
@@ -168,28 +168,34 @@ function __docbDefaultSAXHandler: xmlSAXHandlerV1Ptr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE docbDefaultSAXHandler := __docbDefaultSAXHandler()^ }
 {$DEFINE docbDefaultSAXHandler := __docbDefaultSAXHandler()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   docbDefaultSAXHandler: xmlSAXHandlerV1; XMLPUBVAR;
   docbDefaultSAXHandler: xmlSAXHandlerV1; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 {$IFDEF LIBXML_HTML_ENABLED}
 {$IFDEF LIBXML_HTML_ENABLED}
 function __htmlDefaultSAXHandler: xmlSAXHandlerV1Ptr; XMLCALL; XMLPUBFUN;
 function __htmlDefaultSAXHandler: xmlSAXHandlerV1Ptr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE htmlDefaultSAXHandler := __htmlDefaultSAXHandler()^ }
 {$DEFINE htmlDefaultSAXHandler := __htmlDefaultSAXHandler()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   htmlDefaultSAXHandler: xmlSAXHandlerV1; XMLPUBVAR;
   htmlDefaultSAXHandler: xmlSAXHandlerV1; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlLastError: xmlErrorPtr; XMLCALL; XMLPUBFUN;
 function __xmlLastError: xmlErrorPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlLastError := __xmlLastError()^ }
 {$DEFINE xmlLastError := __xmlLastError()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlLastError: xmlError; XMLPUBVAR;
   xmlLastError: xmlError; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 (*
 (*
  * Everything starting from the line below is
  * Everything starting from the line below is
@@ -201,205 +207,253 @@ function __oldXMLWDcompatibility: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE oldXMLWDcompatibility := __oldXMLWDcompatibility()^ }
 {$DEFINE oldXMLWDcompatibility := __oldXMLWDcompatibility()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   oldXMLWDcompatibility: cint; XMLPUBVAR;
   oldXMLWDcompatibility: cint; XMLPUBVAR;
+  {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 function __xmlBufferAllocScheme: xmlBufferAllocationSchemePtr; XMLCALL; XMLPUBFUN;
 function __xmlBufferAllocScheme: xmlBufferAllocationSchemePtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlBufferAllocScheme := __xmlBufferAllocScheme()^ }
 {$DEFINE xmlBufferAllocScheme := __xmlBufferAllocScheme()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlBufferAllocScheme: xmlBufferAllocationScheme; XMLPUBVAR;
   xmlBufferAllocScheme: xmlBufferAllocationScheme; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefBufferAllocScheme(v: xmlBufferAllocationScheme): xmlBufferAllocationScheme; XMLCALL; XMLPUBFUN;
 function xmlThrDefBufferAllocScheme(v: xmlBufferAllocationScheme): xmlBufferAllocationScheme; XMLCALL; XMLPUBFUN;
 
 
 function __xmlDefaultBufferSize: pcint; XMLCALL; XMLPUBFUN;
 function __xmlDefaultBufferSize: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlDefaultBufferSize := __xmlDefaultBufferSize()^ }
 {$DEFINE xmlDefaultBufferSize := __xmlDefaultBufferSize()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlDefaultBufferSize: cint; XMLPUBVAR;
   xmlDefaultBufferSize: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefDefaultBufferSize(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefDefaultBufferSize(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlDefaultSAXHandler: xmlSAXHandlerV1Ptr; XMLCALL; XMLPUBFUN;
 function __xmlDefaultSAXHandler: xmlSAXHandlerV1Ptr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlDefaultSAXHandler := __xmlDefaultSAXHandler()^ }
 {$DEFINE xmlDefaultSAXHandler := __xmlDefaultSAXHandler()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlDefaultSAXHandler: xmlSAXHandlerV1; XMLPUBVAR;
   xmlDefaultSAXHandler: xmlSAXHandlerV1; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlDefaultSAXLocator: xmlSAXLocatorPtr; XMLCALL; XMLPUBFUN;
 function __xmlDefaultSAXLocator: xmlSAXLocatorPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlDefaultSAXLocator := __xmlDefaultSAXLocator()^ }
 {$DEFINE xmlDefaultSAXLocator := __xmlDefaultSAXLocator()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlDefaultSAXLocator: xmlSAXLocator; XMLPUBVAR;
   xmlDefaultSAXLocator: xmlSAXLocator; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlDoValidityCheckingDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlDoValidityCheckingDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlDoValidityCheckingDefaultValue := __xmlDoValidityCheckingDefaultValue()^ }
 {$DEFINE xmlDoValidityCheckingDefaultValue := __xmlDoValidityCheckingDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlDoValidityCheckingDefaultValue: cint; XMLPUBVAR;
   xmlDoValidityCheckingDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefDoValidityCheckingDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefDoValidityCheckingDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlGenericError: xmlGenericErrorFuncPtr; XMLCALL; XMLPUBFUN;
 function __xmlGenericError: xmlGenericErrorFuncPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlGenericError := __xmlGenericError()^ }
 {$DEFINE xmlGenericError := __xmlGenericError()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlGenericError: xmlGenericErrorFunc; XMLPUBVAR;
   xmlGenericError: xmlGenericErrorFunc; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlStructuredError: xmlStructuredErrorFuncPtr; XMLCALL; XMLPUBFUN;
 function __xmlStructuredError: xmlStructuredErrorFuncPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlStructuredError := __xmlStructuredError()^ }
 {$DEFINE xmlStructuredError := __xmlStructuredError()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlStructuredError: xmlStructuredErrorFunc; XMLPUBVAR;
   xmlStructuredError: xmlStructuredErrorFunc; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlGenericErrorContext: ppointer; XMLCALL; XMLPUBFUN;
 function __xmlGenericErrorContext: ppointer; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlGenericErrorContext := __xmlGenericErrorContext()^ }
 {$DEFINE xmlGenericErrorContext := __xmlGenericErrorContext()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlGenericErrorContext: pointer; XMLPUBVAR;
   xmlGenericErrorContext: pointer; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlGetWarningsDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlGetWarningsDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlGetWarningsDefaultValue := __xmlGetWarningsDefaultValue()^ }
 {$DEFINE xmlGetWarningsDefaultValue := __xmlGetWarningsDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlGetWarningsDefaultValue: cint; XMLPUBVAR;
   xmlGetWarningsDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefGetWarningsDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefGetWarningsDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlIndentTreeOutput: pcint; XMLCALL; XMLPUBFUN;
 function __xmlIndentTreeOutput: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlIndentTreeOutput := __xmlIndentTreeOutput()^ }
 {$DEFINE xmlIndentTreeOutput := __xmlIndentTreeOutput()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlIndentTreeOutput: cint; XMLPUBVAR;
   xmlIndentTreeOutput: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefIndentTreeOutput(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefIndentTreeOutput(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlTreeIndentString: ppchar; XMLCALL; XMLPUBFUN;
 function __xmlTreeIndentString: ppchar; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlTreeIndentString := __xmlTreeIndentString()^ }
 {$DEFINE xmlTreeIndentString := __xmlTreeIndentString()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlTreeIndentString: pchar; XMLPUBVAR;
   xmlTreeIndentString: pchar; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefTreeIndentString(v: pchar): pchar; XMLCALL; XMLPUBFUN;
 function xmlThrDefTreeIndentString(v: pchar): pchar; XMLCALL; XMLPUBFUN;
 
 
 function __xmlKeepBlanksDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlKeepBlanksDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlKeepBlanksDefaultValue := __xmlKeepBlanksDefaultValue()^ }
 {$DEFINE xmlKeepBlanksDefaultValue := __xmlKeepBlanksDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlKeepBlanksDefaultValue: cint; XMLPUBVAR;
   xmlKeepBlanksDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefKeepBlanksDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefKeepBlanksDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlLineNumbersDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlLineNumbersDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlLineNumbersDefaultValue := __xmlLineNumbersDefaultValue()^ }
 {$DEFINE xmlLineNumbersDefaultValue := __xmlLineNumbersDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlLineNumbersDefaultValue: cint; XMLPUBVAR;
   xmlLineNumbersDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefLineNumbersDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefLineNumbersDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlLoadExtDtdDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlLoadExtDtdDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlLoadExtDtdDefaultValue := __xmlLoadExtDtdDefaultValue()^ }
 {$DEFINE xmlLoadExtDtdDefaultValue := __xmlLoadExtDtdDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlLoadExtDtdDefaultValue: cint; XMLPUBVAR;
   xmlLoadExtDtdDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefLoadExtDtdDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefLoadExtDtdDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlParserDebugEntities: pcint; XMLCALL; XMLPUBFUN;
 function __xmlParserDebugEntities: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlParserDebugEntities := __xmlParserDebugEntities()^ }
 {$DEFINE xmlParserDebugEntities := __xmlParserDebugEntities()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlParserDebugEntities: cint; XMLPUBVAR;
   xmlParserDebugEntities: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefParserDebugEntities(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefParserDebugEntities(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlParserVersion: ppchar; XMLCALL; XMLPUBFUN;
 function __xmlParserVersion: ppchar; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlParserVersion := __xmlParserVersion()^ }
 {$DEFINE xmlParserVersion := __xmlParserVersion()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlParserVersion: pchar; XMLPUBVAR;
   xmlParserVersion: pchar; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlPedanticParserDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlPedanticParserDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlPedanticParserDefaultValue := __xmlPedanticParserDefaultValue()^ }
 {$DEFINE xmlPedanticParserDefaultValue := __xmlPedanticParserDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlPedanticParserDefaultValue: cint; XMLPUBVAR;
   xmlPedanticParserDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefPedanticParserDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefPedanticParserDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlSaveNoEmptyTags: pcint; XMLCALL; XMLPUBFUN;
 function __xmlSaveNoEmptyTags: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlSaveNoEmptyTags := __xmlSaveNoEmptyTags()^ }
 {$DEFINE xmlSaveNoEmptyTags := __xmlSaveNoEmptyTags()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlSaveNoEmptyTags: cint; XMLPUBVAR;
   xmlSaveNoEmptyTags: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefSaveNoEmptyTags(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefSaveNoEmptyTags(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlSubstituteEntitiesDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 function __xmlSubstituteEntitiesDefaultValue: pcint; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlSubstituteEntitiesDefaultValue := __xmlSubstituteEntitiesDefaultValue()^ }
 {$DEFINE xmlSubstituteEntitiesDefaultValue := __xmlSubstituteEntitiesDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlSubstituteEntitiesDefaultValue: cint; XMLPUBVAR;
   xmlSubstituteEntitiesDefaultValue: cint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 function xmlThrDefSubstituteEntitiesDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 function xmlThrDefSubstituteEntitiesDefaultValue(v: cint): cint; XMLCALL; XMLPUBFUN;
 
 
 function __xmlRegisterNodeDefaultValue: xmlRegisterNodeFuncPtr; XMLCALL; XMLPUBFUN;
 function __xmlRegisterNodeDefaultValue: xmlRegisterNodeFuncPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlRegisterNodeDefaultValue := __xmlRegisterNodeDefaultValue()^ }
 {$DEFINE xmlRegisterNodeDefaultValue := __xmlRegisterNodeDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlRegisterNodeDefaultValue: xmlRegisterNodeFunc; XMLPUBVAR;
   xmlRegisterNodeDefaultValue: xmlRegisterNodeFunc; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlDeregisterNodeDefaultValue: xmlDeregisterNodeFuncPtr; XMLCALL; XMLPUBFUN;
 function __xmlDeregisterNodeDefaultValue: xmlDeregisterNodeFuncPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlDeregisterNodeDefaultValue := __xmlDeregisterNodeDefaultValue()^ }
 {$DEFINE xmlDeregisterNodeDefaultValue := __xmlDeregisterNodeDefaultValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlDeregisterNodeDefaultValue: xmlDeregisterNodeFunc; XMLPUBVAR;
   xmlDeregisterNodeDefaultValue: xmlDeregisterNodeFunc; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlParserInputBufferCreateFilenameValue: xmlParserInputBufferCreateFilenameFuncPtr; XMLCALL; XMLPUBFUN;
 function __xmlParserInputBufferCreateFilenameValue: xmlParserInputBufferCreateFilenameFuncPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlParserInputBufferCreateFilenameValue := __xmlParserInputBufferCreateFilenameValue()^ }
 {$DEFINE xmlParserInputBufferCreateFilenameValue := __xmlParserInputBufferCreateFilenameValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlParserInputBufferCreateFilenameValue: xmlParserInputBufferCreateFilenameFunc; XMLPUBVAR;
   xmlParserInputBufferCreateFilenameValue: xmlParserInputBufferCreateFilenameFunc; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 function __xmlOutputBufferCreateFilenameValue: xmlOutputBufferCreateFilenameFuncPtr; XMLCALL; XMLPUBFUN;
 function __xmlOutputBufferCreateFilenameValue: xmlOutputBufferCreateFilenameFuncPtr; XMLCALL; XMLPUBFUN;
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$IFDEF LIBXML_THREAD_ENABLED}
 {$DEFINE xmlOutputBufferCreateFilenameValue := __xmlOutputBufferCreateFilenameValue()^ }
 {$DEFINE xmlOutputBufferCreateFilenameValue := __xmlOutputBufferCreateFilenameValue()^ }
 {$ELSE}
 {$ELSE}
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlOutputBufferCreateFilenameValue: xmlOutputBufferCreateFilenameFunc; XMLPUBVAR;
   xmlOutputBufferCreateFilenameValue: xmlOutputBufferCreateFilenameFunc; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 {$ENDIF}
 {$ENDIF}

+ 59 - 7
packages/libxml/src/libxml2.pas

@@ -10,6 +10,9 @@ unit libxml2;
 interface
 interface
 
 
 uses
 uses
+{$IFDEF WINDOWS}
+  windows,
+{$ENDIF}
   ctypes;
   ctypes;
 
 
 //{$IF Sizeof(cbool) <> Sizeof(cint)}
 //{$IF Sizeof(cbool) <> Sizeof(cint)}
@@ -37,10 +40,9 @@ const
 {$i xmlversion.inc}
 {$i xmlversion.inc}
 
 
 type
 type
-  iconv_t = pointer;
   PFILE = pointer;
   PFILE = pointer;
   va_list = pointer;
   va_list = pointer;
-  size_t = {$IF Sizeof(pointer) = 8}qword{$ELSE}longword{$IFEND};
+  iconv_t = pointer;
 
 
 (*
 (*
   include pointers (forwarding)
   include pointers (forwarding)
@@ -312,7 +314,7 @@ begin
   if c < $100 then
   if c < $100 then
     Result := xmlIsBaseChar_ch(c)
     Result := xmlIsBaseChar_ch(c)
   else
   else
-    Result := xmlCharInRange(c, @xmlIsBaseCharGroup);
+    Result := xmlCharInRange(c, __xmlIsBaseCharGroup);
 end;
 end;
 
 
 function xmlIsBlank_ch(c: cint): cbool;
 function xmlIsBlank_ch(c: cint): cbool;
@@ -349,7 +351,7 @@ begin
     if c < $100 then
     if c < $100 then
     Result := false
     Result := false
   else
   else
-    Result := xmlCharInRange(c, @xmlIsCombiningGroup);
+    Result := xmlCharInRange(c, __xmlIsCombiningGroup);
 end;
 end;
 
 
 function xmlIsDigit_ch(c: cint): cbool;
 function xmlIsDigit_ch(c: cint): cbool;
@@ -362,7 +364,7 @@ begin
   if c < $100 then
   if c < $100 then
     Result := xmlIsDigit_ch(c)
     Result := xmlIsDigit_ch(c)
   else
   else
-    Result := xmlCharInRange(c, @xmlIsDigitGroup);
+    Result := xmlCharInRange(c, __xmlIsDigitGroup);
 end;
 end;
 
 
 function xmlIsExtender_ch(c: cint): cbool;
 function xmlIsExtender_ch(c: cint): cbool;
@@ -375,7 +377,7 @@ begin
   if c < $100 then
   if c < $100 then
     Result := xmlIsExtender_ch(c)
     Result := xmlIsExtender_ch(c)
   else
   else
-    Result := xmlCharInRange(c, @xmlIsExtenderGroup);
+    Result := xmlCharInRange(c, __xmlIsExtenderGroup);
 end;
 end;
 
 
 function xmlIsIdeographicQ(c: cint): cbool;
 function xmlIsIdeographicQ(c: cint): cbool;
@@ -392,7 +394,7 @@ end;
 function xmlIsPubidChar_ch(c: cint): cbool;
 function xmlIsPubidChar_ch(c: cint): cbool;
 begin
 begin
   if (c >= 0) and (c <= 255) then
   if (c >= 0) and (c <= 255) then
-    Result := xmlIsPubidChar_tab[c]
+    Result := __xmlIsPubidChar_tab^[c]
   else
   else
     Result := false;
     Result := false;
 end;
 end;
@@ -464,7 +466,57 @@ begin
   Result := not assigned(ns) or (ns^.nodeNr = 0) or (ns^.nodeTab = nil);
   Result := not assigned(ns) or (ns^.nodeNr = 0) or (ns^.nodeTab = nil);
 end;
 end;
 
 
+{$IFDEF WINDOWS}
+procedure LoadExternalVariables;
+var
+  libHandle: THandle;
+begin
+  libHandle := LoadLibrary(libxml2lib);
+  if libHandle <> 0 then
+  begin
+  { xmlregexp.inc }
+   {__emptyExp := xmlExpNodePtrPtr(GetProcAddress(libHandle, 'emptyExp'));
+    __forbiddenExp := xmlExpNodePtrPtr(GetProcAddress(libHandle, 'forbiddenExp'));}
+
+  { paserInternals.inc }
+    //__xmlParserMaxDepth := PCardinal(GetProcAddress(libHandle, 'xmlParserMaxDepth'));
+   
+  {  }
+   {xmlStringComment := PChar(GetProcAddress(libHandle, 'xmlStringComment'));
+    xmlStringText := PChar(GetProcAddress(libHandle, 'xmlStringText'));
+    xmlStringTextNoenc := PChar(GetProcAddress(libHandle, 'xmlStringTextNoenc'));}
+
+  { chvalid.inc }
+    __xmlIsBaseCharGroup := xmlChRangeGroupPtr(GetProcAddress(libHandle, 'xmlIsBaseCharGroup'));
+    __xmlIsCharGroup := xmlChRangeGroupPtr(GetProcAddress(libHandle, 'xmlIsCharGroup'));
+    __xmlIsCombiningGroup := xmlChRangeGroupPtr(GetProcAddress(libHandle, 'xmlIsCombiningGroup'));
+    __xmlIsDigitGroup := xmlChRangeGroupPtr(GetProcAddress(libHandle, 'xmlIsDigitGroup'));
+    __xmlIsExtenderGroup := xmlChRangeGroupPtr(GetProcAddress(libHandle, 'xmlIsExtenderGroup'));
+    __xmlIsIdeographicGroup := xmlChRangeGroupPtr(GetProcAddress(libHandle, 'xmlIsIdeographicGroup'));
+    __xmlIsPubidChar_tab := GetProcAddress(libHandle, 'xmlIsPubidChar_tab');
+    
+  { globals.inc }
+    xmlMalloc := xmlMallocFunc(GetProcAddress(libHandle, 'xmlMalloc'));
+    xmlMallocAtomic := xmlMallocFunc(GetProcAddress(libHandle, 'xmlMallocAtomic'));
+    xmlRealloc := xmlReallocFunc(GetProcAddress(libHandle, 'xmlRealloc'));
+    xmlFree := xmlFreeFunc(GetProcAddress(libHandle, 'xmlFree'));
+    xmlMemStrdup := xmlStrdupFunc(GetProcAddress(libHandle, 'xmlMemStrdup'));
+    
+  { xpath.inc }
+   {__xmlXPathNAN := PDouble(GetProcAddress(libHandle, 'xmlXPathNAN'));
+    __xmlXPathNINF := PDouble(GetProcAddress(libHandle, 'xmlXPathNINF'));
+    __xmlXPathPINF := PDouble(GetProcAddress(libHandle, 'xmlXPathPINF'));}
+    
+    FreeLibrary(libHandle);
+  end;
+end;
+{$ENDIF}
+
 initialization
 initialization
+{$IFDEF WINDOWS}
+  LoadExternalVariables;
+{$ENDIF}
+
 (*
 (*
  * this initialize the library and check potential ABI mismatches
  * this initialize the library and check potential ABI mismatches
  * between the version it was compiled for and the actual shared
  * between the version it was compiled for and the actual shared

+ 3 - 1
packages/libxml/src/parserInternals.inc

@@ -17,9 +17,11 @@
  * process. This is not a limitation of the parser but a safety 
  * process. This is not a limitation of the parser but a safety 
  * boundary feature.
  * boundary feature.
  *)
  *)
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlParserMaxDepth: cuint; XMLPUBVAR;
   xmlParserMaxDepth: cuint; XMLPUBVAR;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF}
 
 
 {$IFDEF CONST}
 {$IFDEF CONST}
  (**
  (**
@@ -598,4 +600,4 @@ XMLPUBFUN void XMLCALL
 	xmlErrMemory		(xmlParserCtxtPtr ctxt,
 	xmlErrMemory		(xmlParserCtxtPtr ctxt,
 				 char *extra);
 				 char *extra);
 {$ENDIF}
 {$ENDIF}
-{$ENDIF}
+{$ENDIF}

+ 5 - 0
packages/libxml/src/xmlexports.inc

@@ -31,7 +31,12 @@
  *
  *
  * Macros which declare an exportable variable
  * Macros which declare an exportable variable
  *)
  *)
+{$IFDEF UNIX}
 {$DEFINE XMLPUBVAR := cvar; external}
 {$DEFINE XMLPUBVAR := cvar; external}
+{$ELSE}
+{$DEFINE XMLPUBVAR := not_supported}
+{$DEFINE NO_EXTERNAL_VARS}
+{$ENDIF}
 
 
 (**
 (**
  * XMLCALL:
  * XMLCALL:

+ 2 - 0
packages/libxml/src/xmlregexp.inc

@@ -94,9 +94,11 @@ function xmlExpCtxtNbCons(ctxt: xmlExpCtxtPtr): cint; XMLCALL; XMLPUBFUN;
  * 2 core expressions shared by all for the empty language set
  * 2 core expressions shared by all for the empty language set
  * and for the set with just the empty token
  * and for the set with just the empty token
  *)
  *)
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   forbiddenExp: xmlExpNodePtr; XMLPUBVAR;
   forbiddenExp: xmlExpNodePtr; XMLPUBVAR;
   emptyExp: xmlExpNodePtr; XMLPUBVAR;
   emptyExp: xmlExpNodePtr; XMLPUBVAR;
+{$ENDIF}
 
 
 (*
 (*
  * Expressions are reference counted internally
  * Expressions are reference counted internally

+ 2 - 0
packages/libxml/src/xpath.inc

@@ -365,10 +365,12 @@
  * Objects and Nodesets handling
  * Objects and Nodesets handling
  *)
  *)
 
 
+{$IFNDEF NO_EXTERNAL_VARS}
 var
 var
   xmlXPathNAN: cdouble; XMLPUBVAR;
   xmlXPathNAN: cdouble; XMLPUBVAR;
   xmlXPathPINF: cdouble; XMLPUBVAR;
   xmlXPathPINF: cdouble; XMLPUBVAR;
   xmlXPathNINF: cdouble; XMLPUBVAR;
   xmlXPathNINF: cdouble; XMLPUBVAR;
+{$ENDIF}
 
 
 (* These macros may later turn into functions *)
 (* These macros may later turn into functions *)
 (**
 (**