mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-08 09:23:48 +02:00
* remove obsolete 2.0.x files
git-svn-id: trunk@9255 -
This commit is contained in:
parent
dc33a9bc87
commit
f3e3ca1086
5
.gitattributes
vendored
5
.gitattributes
vendored
@ -8866,11 +8866,6 @@ utils/fpmc/test.mc -text
|
|||||||
utils/fppkg/Makefile svneol=native#text/plain
|
utils/fppkg/Makefile svneol=native#text/plain
|
||||||
utils/fppkg/Makefile.fpc svneol=native#text/plain
|
utils/fppkg/Makefile.fpc svneol=native#text/plain
|
||||||
utils/fppkg/README svneol=native#text/plain
|
utils/fppkg/README svneol=native#text/plain
|
||||||
utils/fppkg/fcl20/contnrs.pp svneol=native#text/plain
|
|
||||||
utils/fppkg/fcl20/streamcoll.pp svneol=native#text/plain
|
|
||||||
utils/fppkg/fcl20/uriparser.pp svneol=native#text/plain
|
|
||||||
utils/fppkg/fcl20/zipper.pp svneol=native#text/plain
|
|
||||||
utils/fppkg/fcl20/zstream.pp svneol=native#text/plain
|
|
||||||
utils/fppkg/fpmkunitsrc.inc svneol=native#text/plain
|
utils/fppkg/fpmkunitsrc.inc svneol=native#text/plain
|
||||||
utils/fppkg/fppkg.lpi svneol=native#text/plain
|
utils/fppkg/fppkg.lpi svneol=native#text/plain
|
||||||
utils/fppkg/fppkg.pp svneol=native#text/plain
|
utils/fppkg/fppkg.pp svneol=native#text/plain
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
|
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/13]
|
||||||
#
|
#
|
||||||
default: all
|
default: all
|
||||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
|
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
|
||||||
@ -242,12 +242,6 @@ endif
|
|||||||
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
|
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
|
||||||
override PACKAGE_NAME=fppkg
|
override PACKAGE_NAME=fppkg
|
||||||
override PACKAGE_VERSION=2.0.0
|
override PACKAGE_VERSION=2.0.0
|
||||||
ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
|
|
||||||
FCL20=fcl20
|
|
||||||
FCL20UNITS=zstream contnrs streamcoll zipper
|
|
||||||
else
|
|
||||||
PKGCURL=pkglibcurl
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_PROGRAMS+=fppkg
|
override TARGET_PROGRAMS+=fppkg
|
||||||
endif
|
endif
|
||||||
@ -408,85 +402,85 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
|
|||||||
override TARGET_PROGRAMS+=fppkg
|
override TARGET_PROGRAMS+=fppkg
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-win32)
|
ifeq ($(FULL_TARGET),i386-win32)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet
|
override TARGET_UNITS+=pkgwget pkglnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-beos)
|
ifeq ($(FULL_TARGET),i386-beos)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-solaris)
|
ifeq ($(FULL_TARGET),i386-solaris)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-darwin)
|
ifeq ($(FULL_TARGET),i386-darwin)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet
|
override TARGET_UNITS+=pkgwget pkglnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-linux)
|
ifeq ($(FULL_TARGET),m68k-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet
|
override TARGET_UNITS+=pkgwget pkglnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-linux)
|
ifeq ($(FULL_TARGET),arm-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet
|
override TARGET_UNITS+=pkgwget pkglnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||||
override TARGET_UNITS+=pkgwget pkglnet $(PKGCURL)
|
override TARGET_UNITS+=pkgwget pkglnet pkgcurl
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_IMPLICITUNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands
|
override TARGET_IMPLICITUNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands
|
||||||
@ -966,163 +960,163 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
|
|||||||
override TARGET_EXAMPLES+=rep2xml
|
override TARGET_EXAMPLES+=rep2xml
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-win32)
|
ifeq ($(FULL_TARGET),i386-win32)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-os2)
|
ifeq ($(FULL_TARGET),i386-os2)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-beos)
|
ifeq ($(FULL_TARGET),i386-beos)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-solaris)
|
ifeq ($(FULL_TARGET),i386-solaris)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-qnx)
|
ifeq ($(FULL_TARGET),i386-qnx)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netware)
|
ifeq ($(FULL_TARGET),i386-netware)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-darwin)
|
ifeq ($(FULL_TARGET),i386-darwin)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-emx)
|
ifeq ($(FULL_TARGET),i386-emx)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-watcom)
|
ifeq ($(FULL_TARGET),i386-watcom)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-embedded)
|
ifeq ($(FULL_TARGET),i386-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-symbian)
|
ifeq ($(FULL_TARGET),i386-symbian)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-linux)
|
ifeq ($(FULL_TARGET),m68k-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-atari)
|
ifeq ($(FULL_TARGET),m68k-atari)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-linux)
|
ifeq ($(FULL_TARGET),arm-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-palmos)
|
ifeq ($(FULL_TARGET),arm-palmos)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-gba)
|
ifeq ($(FULL_TARGET),arm-gba)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-nds)
|
ifeq ($(FULL_TARGET),arm-nds)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-embedded)
|
ifeq ($(FULL_TARGET),arm-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-symbian)
|
ifeq ($(FULL_TARGET),arm-symbian)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||||
override CLEAN_UNITS+=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
override CLEAN_UNITS+=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
endif
|
endif
|
||||||
override INSTALL_FPCPACKAGE=y
|
override INSTALL_FPCPACKAGE=y
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
@ -1285,163 +1279,163 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
|
|||||||
override COMPILER_INCLUDEDIR+=lnet/sys
|
override COMPILER_INCLUDEDIR+=lnet/sys
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-win32)
|
ifeq ($(FULL_TARGET),i386-win32)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-os2)
|
ifeq ($(FULL_TARGET),i386-os2)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-beos)
|
ifeq ($(FULL_TARGET),i386-beos)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-solaris)
|
ifeq ($(FULL_TARGET),i386-solaris)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-qnx)
|
ifeq ($(FULL_TARGET),i386-qnx)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netware)
|
ifeq ($(FULL_TARGET),i386-netware)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-darwin)
|
ifeq ($(FULL_TARGET),i386-darwin)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-emx)
|
ifeq ($(FULL_TARGET),i386-emx)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-watcom)
|
ifeq ($(FULL_TARGET),i386-watcom)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-embedded)
|
ifeq ($(FULL_TARGET),i386-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-symbian)
|
ifeq ($(FULL_TARGET),i386-symbian)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-linux)
|
ifeq ($(FULL_TARGET),m68k-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-atari)
|
ifeq ($(FULL_TARGET),m68k-atari)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-linux)
|
ifeq ($(FULL_TARGET),arm-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-palmos)
|
ifeq ($(FULL_TARGET),arm-palmos)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-gba)
|
ifeq ($(FULL_TARGET),arm-gba)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-nds)
|
ifeq ($(FULL_TARGET),arm-nds)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-embedded)
|
ifeq ($(FULL_TARGET),arm-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-symbian)
|
ifeq ($(FULL_TARGET),arm-symbian)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||||
override COMPILER_UNITDIR+=$(FCL20) lnet
|
override COMPILER_UNITDIR+=lnet
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_UNITSDIR
|
ifdef REQUIRE_UNITSDIR
|
||||||
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
||||||
|
@ -9,13 +9,13 @@ version=2.0.0
|
|||||||
[target]
|
[target]
|
||||||
programs=fppkg
|
programs=fppkg
|
||||||
implicitunits=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands
|
implicitunits=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands
|
||||||
units_linux=pkgwget pkglnet $(PKGCURL)
|
units_linux=pkgwget pkglnet pkgcurl
|
||||||
units_beos=pkgwget pkglnet $(PKGCURL)
|
units_beos=pkgwget pkglnet pkgcurl
|
||||||
units_freebsd=pkgwget pkglnet $(PKGCURL)
|
units_freebsd=pkgwget pkglnet pkgcurl
|
||||||
units_netbsd=pkgwget pkglnet $(PKGCURL)
|
units_netbsd=pkgwget pkglnet pkgcurl
|
||||||
units_openbsd=pkgwget pkglnet $(PKGCURL)
|
units_openbsd=pkgwget pkglnet pkgcurl
|
||||||
units_darwin=pkgwget pkglnet $(PKGCURL)
|
units_darwin=pkgwget pkglnet pkgcurl
|
||||||
units_solaris=pkgwget pkglnet $(PKGCURL)
|
units_solaris=pkgwget pkglnet pkgcurl
|
||||||
units_win32=pkgwget pkglnet
|
units_win32=pkgwget pkglnet
|
||||||
units_win64=pkgwget pkglnet
|
units_win64=pkgwget pkglnet
|
||||||
units_wince=pkgwget pkglnet
|
units_wince=pkgwget pkglnet
|
||||||
@ -23,11 +23,11 @@ examples=rep2xml
|
|||||||
rsts=fprepos fpxmlrep pkgmessages
|
rsts=fprepos fpxmlrep pkgmessages
|
||||||
|
|
||||||
[compiler]
|
[compiler]
|
||||||
unitdir=$(FCL20) lnet
|
unitdir=lnet
|
||||||
includedir=lnet/sys
|
includedir=lnet/sys
|
||||||
|
|
||||||
[clean]
|
[clean]
|
||||||
units=$(FCL20UNITS) lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
units=lCommon lControlStack lEvents lTelnet lftp lhttp lhttputil lnet lstrbuffer
|
||||||
|
|
||||||
[install]
|
[install]
|
||||||
fpcpackage=y
|
fpcpackage=y
|
||||||
@ -39,15 +39,6 @@ fpcdir=../..
|
|||||||
packages=fcl-base fcl-xml fcl-process paszlib libcurl
|
packages=fcl-base fcl-xml fcl-process paszlib libcurl
|
||||||
tools=data2inc
|
tools=data2inc
|
||||||
|
|
||||||
[prerules]
|
|
||||||
# Compatibility to compile with 2.0.x
|
|
||||||
ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
|
|
||||||
FCL20=fcl20
|
|
||||||
FCL20UNITS=zstream contnrs streamcoll zipper
|
|
||||||
else
|
|
||||||
PKGCURL=pkglibcurl
|
|
||||||
endif
|
|
||||||
|
|
||||||
[rules]
|
[rules]
|
||||||
.NOTPARALLEL:
|
.NOTPARALLEL:
|
||||||
ifneq ($(DATA2INC),)
|
ifneq ($(DATA2INC),)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,363 +0,0 @@
|
|||||||
{
|
|
||||||
This file is part of the Free Component Library (FCL)
|
|
||||||
Copyright (c) 1999-2000 by the Free Pascal development team
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
**********************************************************************}
|
|
||||||
|
|
||||||
{$ifndef ver2_0}
|
|
||||||
{$fatal This unit is only for compiling with 2.0.x, use the streamcoll from the FCL}
|
|
||||||
{$endif}
|
|
||||||
|
|
||||||
{$mode objfpc}
|
|
||||||
{$h+}
|
|
||||||
unit streamcoll;
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
Classes,SysUtils;
|
|
||||||
|
|
||||||
type
|
|
||||||
TStreamCollectionItem = Class(TCollectionItem)
|
|
||||||
Protected
|
|
||||||
Procedure WriteInteger(S : TStream; AValue : Integer);
|
|
||||||
Procedure WriteBoolean(S : TStream; AValue : Boolean);
|
|
||||||
Procedure WriteString(S : TStream; AValue : String);
|
|
||||||
Procedure WriteCurrency(S : TStream; AValue : Currency);
|
|
||||||
Procedure WriteDateTime(S : TStream; AValue : TDateTime);
|
|
||||||
Procedure WriteFloat(S : TStream; AValue : Double);
|
|
||||||
Function ReadInteger(S : TStream) : Integer;
|
|
||||||
Function ReadBoolean(S : TStream) : Boolean;
|
|
||||||
Function ReadString(S : TStream) : String;
|
|
||||||
Function ReadCurrency(S : TStream) : Currency;
|
|
||||||
Function ReadDateTime(S : TStream) : TDateTime;
|
|
||||||
Function ReadFloat(S : TStream) : Double;
|
|
||||||
Procedure LoadFromStream(S : TStream; Streamversion : Integer); virtual; abstract;
|
|
||||||
Procedure SaveToStream(S : TStream); virtual; abstract;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TStreamCollection = Class(TCollection)
|
|
||||||
Private
|
|
||||||
FStreaming : Boolean;
|
|
||||||
Protected
|
|
||||||
Procedure WriteInteger(S : TStream; AValue : Integer);
|
|
||||||
Procedure WriteBoolean(S : TStream; AValue : Boolean);
|
|
||||||
Procedure WriteString(S : TStream; AValue : String);
|
|
||||||
Procedure WriteCurrency(S : TStream; AValue : Currency);
|
|
||||||
Procedure WriteDateTime(S : TStream; AValue : TDateTime);
|
|
||||||
Procedure WriteFloat(S : TStream; AValue : Double);
|
|
||||||
Function ReadInteger(S : TStream) : Integer;
|
|
||||||
Function ReadBoolean(S : TStream) : Boolean;
|
|
||||||
Function ReadString(S : TStream) : String;
|
|
||||||
Function ReadCurrency(S : TStream) : Currency;
|
|
||||||
Function ReadDateTime(S : TStream) : TDateTime;
|
|
||||||
Function ReadFloat(S : TStream) : Double;
|
|
||||||
Procedure DoSaveToStream(S : TStream); virtual;
|
|
||||||
Function CurrentStreamVersion : Integer; Virtual;
|
|
||||||
Procedure DoLoadFromStream(S : TStream; Streamversion : Integer); virtual;
|
|
||||||
Public
|
|
||||||
Procedure LoadFromStream(S : TStream);
|
|
||||||
Procedure SaveToStream(S : TStream);
|
|
||||||
Property Streaming : Boolean Read FStreaming;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
EStreamColl = Class(Exception);
|
|
||||||
|
|
||||||
Procedure ColWriteInteger(S : TStream; AValue : Integer);
|
|
||||||
Procedure ColWriteBoolean(S : TStream; AValue : Boolean);
|
|
||||||
Procedure ColWriteString(S : TStream; AValue : String);
|
|
||||||
Procedure ColWriteCurrency(S : TStream; AValue : Currency);
|
|
||||||
Procedure ColWriteDateTime(S : TStream; AValue : TDateTime);
|
|
||||||
Procedure ColWriteFloat(S : TStream; AValue : Double);
|
|
||||||
Function ColReadInteger(S : TStream) : Integer;
|
|
||||||
Function ColReadBoolean(S : TStream) : Boolean;
|
|
||||||
Function ColReadString(S : TStream) : String;
|
|
||||||
Function ColReadCurrency(S : TStream) : Currency;
|
|
||||||
Function ColReadDateTime(S : TStream) : TDateTime;
|
|
||||||
Function ColReadFloat(S : TStream) : Double;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
Resourcestring
|
|
||||||
SErrIllegalStreamVersion = 'Illegal stream version: %d > %d.';
|
|
||||||
|
|
||||||
Procedure ColWriteInteger(S : TStream; AValue : Integer);
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.WriteBuffer(AValue,SizeOf(Integer));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure ColWriteBoolean(S : TStream; AValue : Boolean);
|
|
||||||
|
|
||||||
begin
|
|
||||||
ColWriteInteger(S,Ord(AValue));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure ColWriteString(S : TStream; AValue : String);
|
|
||||||
|
|
||||||
Var
|
|
||||||
L : Integer;
|
|
||||||
|
|
||||||
begin
|
|
||||||
L:=Length(AValue);
|
|
||||||
ColWriteInteger(S,L);
|
|
||||||
If (L>0) then
|
|
||||||
S.WriteBuffer(AValue[1],L);
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure ColWriteCurrency(S : TStream; AValue : Currency);
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.WriteBuffer(AValue,SizeOf(Currency));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure ColWriteDateTime(S : TStream; AValue : TDateTime);
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.WriteBuffer(AValue,SizeOf(TDateTime));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure ColWriteFloat(S : TStream; AValue : Double);
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.WriteBuffer(AValue,SizeOf(Double));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function ColReadInteger(S : TStream) : Integer;
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.ReadBuffer(Result,SizeOf(Integer));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function ColReadBoolean(S : TStream) : Boolean;
|
|
||||||
|
|
||||||
Var
|
|
||||||
I : Integer;
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.ReadBuffer(I,SizeOf(Integer));
|
|
||||||
Result:=(I<>0);
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function ColReadString(S : TStream) : String;
|
|
||||||
|
|
||||||
Var
|
|
||||||
L : Integer;
|
|
||||||
|
|
||||||
begin
|
|
||||||
L:=ColReadInteger(S);
|
|
||||||
SetLength(Result,L);
|
|
||||||
If (L>0) then
|
|
||||||
S.ReadBuffer(Result[1],L);
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function ColReadCurrency(S : TStream) : Currency;
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.ReadBuffer(Result,SizeOf(Currency));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function ColReadDateTime(S : TStream) : TDateTime;
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.ReadBuffer(Result,SizeOf(TDateTime));
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function ColReadFloat(S : TStream) : Double;
|
|
||||||
|
|
||||||
begin
|
|
||||||
S.ReadBuffer(Result,SizeOf(Double));
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ TStreamCollectionItem }
|
|
||||||
|
|
||||||
function TStreamCollectionItem.ReadBoolean(S: TStream): Boolean;
|
|
||||||
begin
|
|
||||||
Result:=ColReadBoolean(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollectionItem.ReadCurrency(S: TStream): Currency;
|
|
||||||
begin
|
|
||||||
Result:=ColReadCurrency(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollectionItem.ReadDateTime(S: TStream): TDateTime;
|
|
||||||
begin
|
|
||||||
Result:=ColReadDateTime(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollectionItem.ReadFloat(S: TStream): Double;
|
|
||||||
begin
|
|
||||||
Result:=ColReadFloat(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollectionItem.ReadInteger(S: TStream): Integer;
|
|
||||||
begin
|
|
||||||
Result:=ColReadinteger(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollectionItem.ReadString(S: TStream): String;
|
|
||||||
begin
|
|
||||||
Result:=ColReadString(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollectionItem.WriteBoolean(S: TStream; AValue: Boolean);
|
|
||||||
begin
|
|
||||||
ColWriteBoolean(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollectionItem.WriteCurrency(S: TStream;
|
|
||||||
AValue: Currency);
|
|
||||||
begin
|
|
||||||
ColWriteCurrency(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollectionItem.WriteDateTime(S: TStream;
|
|
||||||
AValue: TDateTime);
|
|
||||||
begin
|
|
||||||
ColWriteDateTime(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollectionItem.WriteFloat(S: TStream; AValue: Double);
|
|
||||||
begin
|
|
||||||
ColWriteFloat(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollectionItem.WriteInteger(S: TStream; AValue: Integer);
|
|
||||||
begin
|
|
||||||
ColWriteInteger(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollectionItem.WriteString(S: TStream; AValue: String);
|
|
||||||
begin
|
|
||||||
ColWriteString(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ TStreamCollection }
|
|
||||||
|
|
||||||
function TStreamCollection.CurrentStreamVersion: Integer;
|
|
||||||
begin
|
|
||||||
Result:=0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.DoLoadFromStream(S: TStream;
|
|
||||||
Streamversion: Integer);
|
|
||||||
begin
|
|
||||||
If (Streamversion>CurrentStreamVersion) then
|
|
||||||
Raise EStreamColl.CreateFmt(SErrIllegalStreamVersion,[Streamversion,CurrentStreamVersion]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.DoSaveToStream(S: TStream);
|
|
||||||
begin
|
|
||||||
// Do nothing.
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.LoadFromStream(S: TStream);
|
|
||||||
|
|
||||||
Var
|
|
||||||
I,V,C : Integer;
|
|
||||||
|
|
||||||
begin
|
|
||||||
FStreaming:=True;
|
|
||||||
Try
|
|
||||||
V:=ReadInteger(S);
|
|
||||||
DoLoadFromStream(S,V);
|
|
||||||
Clear;
|
|
||||||
C:=ReadInteger(S);
|
|
||||||
For I:=1 to C do
|
|
||||||
With Add as TStreamCollectionItem do
|
|
||||||
LoadFromStream(S,V);
|
|
||||||
Finally
|
|
||||||
FStreaming:=False;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollection.ReadBoolean(S: TStream): Boolean;
|
|
||||||
begin
|
|
||||||
Result:=ColReadBoolean(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollection.ReadCurrency(S: TStream): Currency;
|
|
||||||
begin
|
|
||||||
Result:=ColReadCurrency(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollection.ReadDateTime(S: TStream): TDateTime;
|
|
||||||
begin
|
|
||||||
Result:=ColReadDateTime(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollection.ReadFloat(S: TStream): Double;
|
|
||||||
begin
|
|
||||||
Result:=ColReadFloat(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollection.ReadInteger(S: TStream): Integer;
|
|
||||||
begin
|
|
||||||
Result:=ColReadInteger(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TStreamCollection.ReadString(S: TStream): String;
|
|
||||||
begin
|
|
||||||
Result:=ColReadString(S);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.SaveToStream(S: TStream);
|
|
||||||
|
|
||||||
Var
|
|
||||||
I : Integer;
|
|
||||||
|
|
||||||
begin
|
|
||||||
FStreaming:=True;
|
|
||||||
Try
|
|
||||||
WriteInteger(S,CurrentStreamVersion);
|
|
||||||
DoSaveToStream(S);
|
|
||||||
WriteInteger(S,Count);
|
|
||||||
For I:=0 to Count-1 do
|
|
||||||
With TStreamCollectionItem(Items[i]) do
|
|
||||||
SaveToStream(S);
|
|
||||||
Finally
|
|
||||||
FStreaming:=False;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.WriteBoolean(S: TStream; AValue: Boolean);
|
|
||||||
begin
|
|
||||||
ColWriteBoolean(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.WriteCurrency(S: TStream; AValue: Currency);
|
|
||||||
begin
|
|
||||||
ColWriteCurrency(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.WriteDateTime(S: TStream; AValue: TDateTime);
|
|
||||||
begin
|
|
||||||
ColWriteDateTime(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.WriteFloat(S: TStream; AValue: Double);
|
|
||||||
begin
|
|
||||||
ColWriteFloat(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.WriteInteger(S: TStream; AValue: Integer);
|
|
||||||
begin
|
|
||||||
ColWriteInteger(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TStreamCollection.WriteString(S: TStream; AValue: String);
|
|
||||||
begin
|
|
||||||
ColWriteString(S,AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
|
@ -1,425 +0,0 @@
|
|||||||
{
|
|
||||||
This file is part of the Free Pascal run time library.
|
|
||||||
Copyright (c) 2003 by the Free Pascal development team
|
|
||||||
Original author: Sebastian Guenther
|
|
||||||
|
|
||||||
Unit to parse complete URI in its parts or to reassemble an URI
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
**********************************************************************}
|
|
||||||
{$IFDEF FPC}
|
|
||||||
{$MODE objfpc}
|
|
||||||
{$H+}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
unit URIParser;
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
type
|
|
||||||
TURI = record
|
|
||||||
Protocol: String;
|
|
||||||
Username: String;
|
|
||||||
Password: String;
|
|
||||||
Host: String;
|
|
||||||
Port: Word;
|
|
||||||
Path: String;
|
|
||||||
Document: String;
|
|
||||||
Params: String;
|
|
||||||
Bookmark: String;
|
|
||||||
HasAuthority: Boolean;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EncodeURI(const URI: TURI): String;
|
|
||||||
function ParseURI(const URI: String): TURI; overload;
|
|
||||||
function ParseURI(const URI, DefaultProtocol: String; DefaultPort: Word): TURI; overload;
|
|
||||||
|
|
||||||
function ResolveRelativeURI(const BaseUri, RelUri: WideString;
|
|
||||||
out ResultUri: WideString): Boolean; overload;
|
|
||||||
|
|
||||||
function ResolveRelativeURI(const BaseUri, RelUri: UTF8String;
|
|
||||||
out ResultUri: UTF8String): Boolean; overload;
|
|
||||||
|
|
||||||
function URIToFilename(const URI: string; out Filename: string): Boolean;
|
|
||||||
function FilenameToURI(const Filename: string): string;
|
|
||||||
|
|
||||||
function IsAbsoluteURI(const UriReference: string): Boolean;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
uses SysUtils;
|
|
||||||
|
|
||||||
const
|
|
||||||
GenDelims = [':', '/', '?', '#', '[', ']', '@'];
|
|
||||||
SubDelims = ['!', '$', '&', '''', '(', ')', '*', '+', ',', ';', '='];
|
|
||||||
ALPHA = ['A'..'Z', 'a'..'z'];
|
|
||||||
DIGIT = ['0'..'9'];
|
|
||||||
Unreserved = ALPHA + DIGIT + ['-', '.', '_', '~'];
|
|
||||||
ValidPathChars = Unreserved + SubDelims + ['@', ':', '/'];
|
|
||||||
|
|
||||||
function Escape(const s: String; const Allowed: TSysCharSet): String;
|
|
||||||
var
|
|
||||||
i: Integer;
|
|
||||||
begin
|
|
||||||
SetLength(Result, 0);
|
|
||||||
for i := 1 to Length(s) do
|
|
||||||
if not (s[i] in Allowed) then
|
|
||||||
Result := Result + '%' + IntToHex(ord(s[i]), 2)
|
|
||||||
else
|
|
||||||
Result := Result + s[i];
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EncodeURI(const URI: TURI): String;
|
|
||||||
// ! if no scheme then first colon in path should be escaped
|
|
||||||
begin
|
|
||||||
SetLength(Result, 0);
|
|
||||||
if Length(URI.Protocol) > 0 then
|
|
||||||
Result := LowerCase(URI.Protocol) + ':';
|
|
||||||
if URI.HasAuthority then
|
|
||||||
begin
|
|
||||||
Result := Result + '//';
|
|
||||||
if Length(URI.Username) > 0 then
|
|
||||||
begin
|
|
||||||
Result := Result + URI.Username;
|
|
||||||
if Length(URI.Password) > 0 then
|
|
||||||
Result := Result + ':' + URI.Password;
|
|
||||||
Result := Result + '@';
|
|
||||||
end;
|
|
||||||
Result := Result + URI.Host;
|
|
||||||
end;
|
|
||||||
if URI.Port <> 0 then
|
|
||||||
Result := Result + ':' + IntToStr(URI.Port);
|
|
||||||
Result := Result + Escape(URI.Path, ValidPathChars);
|
|
||||||
if Length(URI.Document) > 0 then
|
|
||||||
begin
|
|
||||||
if (Length(URI.Path) > 0) and ((Length(Result) = 0) or (Result[Length(Result)] <> '/')) then
|
|
||||||
Result := Result + '/';
|
|
||||||
Result := Result + Escape(URI.Document, ValidPathChars);
|
|
||||||
end;
|
|
||||||
if Length(URI.Params) > 0 then
|
|
||||||
Result := Result + '?' + Escape(URI.Params, ValidPathChars);
|
|
||||||
if Length(URI.Bookmark) > 0 then
|
|
||||||
Result := Result + '#' + Escape(URI.Bookmark, ValidPathChars);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ParseURI(const URI: String): TURI;
|
|
||||||
begin
|
|
||||||
Result := ParseURI(URI, '', 0);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function HexValue(c: Char): Integer;
|
|
||||||
begin
|
|
||||||
case c of
|
|
||||||
'0'..'9': Result := ord(c) - ord('0');
|
|
||||||
'A'..'F': Result := ord(c) - (ord('A') - 10);
|
|
||||||
'a'..'f': Result := ord(c) - (ord('a') - 10);
|
|
||||||
else
|
|
||||||
Result := 0;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function Unescape(const s: String): String;
|
|
||||||
var
|
|
||||||
i, RealLength: Integer;
|
|
||||||
begin
|
|
||||||
SetLength(Result, Length(s));
|
|
||||||
i := 1;
|
|
||||||
RealLength := 0;
|
|
||||||
while i <= Length(s) do
|
|
||||||
begin
|
|
||||||
Inc(RealLength);
|
|
||||||
if s[i] = '%' then
|
|
||||||
begin
|
|
||||||
Result[RealLength] := Chr(HexValue(s[i + 1]) shl 4 or HexValue(s[i + 2]));
|
|
||||||
Inc(i, 3);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
Result[RealLength] := s[i];
|
|
||||||
Inc(i);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
SetLength(Result, RealLength);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ParseURI(const URI, DefaultProtocol: String; DefaultPort: Word): TURI;
|
|
||||||
var
|
|
||||||
s, Authority: String;
|
|
||||||
i: Integer;
|
|
||||||
begin
|
|
||||||
Result.Protocol := LowerCase(DefaultProtocol);
|
|
||||||
Result.Port := DefaultPort;
|
|
||||||
|
|
||||||
s := URI;
|
|
||||||
|
|
||||||
// Extract scheme
|
|
||||||
|
|
||||||
for i := 1 to Length(s) do
|
|
||||||
if s[i] = ':' then
|
|
||||||
begin
|
|
||||||
Result.Protocol := Copy(s, 1, i - 1);
|
|
||||||
s := Copy(s, i + 1, MaxInt);
|
|
||||||
break;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if not (((i=1) and (s[i] in ALPHA)) or (s[i] in ALPHA + DIGIT + ['+', '-', '.'])) then
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Extract the bookmark
|
|
||||||
|
|
||||||
i := LastDelimiter('#', s);
|
|
||||||
if i > 0 then
|
|
||||||
begin
|
|
||||||
Result.Bookmark := Unescape(Copy(s, i + 1, MaxInt));
|
|
||||||
s := Copy(s, 1, i - 1);
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Extract the params
|
|
||||||
|
|
||||||
i := LastDelimiter('?', s);
|
|
||||||
if i > 0 then
|
|
||||||
begin
|
|
||||||
Result.Params := Unescape(Copy(s, i + 1, MaxInt));
|
|
||||||
s := Copy(s, 1, i - 1);
|
|
||||||
end;
|
|
||||||
|
|
||||||
// extract authority
|
|
||||||
|
|
||||||
if (Length(s) > 1) and (s[1] = '/') and (s[2] = '/') then
|
|
||||||
begin
|
|
||||||
i := 3;
|
|
||||||
while (i <= Length(s)) and (s[i] <> '/') do
|
|
||||||
Inc(i);
|
|
||||||
Authority := Copy(s, 3, i-3);
|
|
||||||
s := Copy(s, i, MaxInt);
|
|
||||||
Result.HasAuthority := True; // even if Authority is empty
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Result.HasAuthority := False;
|
|
||||||
Authority := '';
|
|
||||||
end;
|
|
||||||
|
|
||||||
// now s is 'hier-part' per RFC3986
|
|
||||||
// Extract the document name (nasty...)
|
|
||||||
|
|
||||||
for i := Length(s) downto 1 do
|
|
||||||
if s[i] = '/' then
|
|
||||||
begin
|
|
||||||
Result.Document := Unescape(Copy(s, i + 1, Length(s)));
|
|
||||||
if (Result.Document <> '.') and (Result.Document <> '..') then
|
|
||||||
s := Copy(s, 1, i)
|
|
||||||
else
|
|
||||||
Result.Document := '';
|
|
||||||
break;
|
|
||||||
end else if s[i] = ':' then
|
|
||||||
break
|
|
||||||
else if i = 1 then
|
|
||||||
begin
|
|
||||||
Result.Document := Unescape(s);
|
|
||||||
if (Result.Document <> '.') and (Result.Document <> '..') then
|
|
||||||
s := ''
|
|
||||||
else
|
|
||||||
Result.Document := '';
|
|
||||||
// break - not needed, last iteration
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Everything left is a path
|
|
||||||
|
|
||||||
Result.Path := Unescape(s);
|
|
||||||
|
|
||||||
// Extract the port number
|
|
||||||
|
|
||||||
i := LastDelimiter(':@', Authority);
|
|
||||||
if (i > 0) and (Authority[i] = ':') then
|
|
||||||
begin
|
|
||||||
Result.Port := StrToInt(Copy(Authority, i + 1, MaxInt));
|
|
||||||
Authority := Copy(Authority, 1, i - 1);
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Extract the hostname
|
|
||||||
|
|
||||||
i := Pos('@', Authority);
|
|
||||||
if i > 0 then
|
|
||||||
begin
|
|
||||||
Result.Host := Copy(Authority, i+1, MaxInt);
|
|
||||||
Delete(Authority, i, MaxInt);
|
|
||||||
|
|
||||||
// Extract username and password
|
|
||||||
if Length(Authority) > 0 then
|
|
||||||
begin
|
|
||||||
i := Pos(':', Authority);
|
|
||||||
if i = 0 then
|
|
||||||
Result.Username := Authority
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Result.Username := Copy(Authority, 1, i - 1);
|
|
||||||
Result.Password := Copy(Authority, i + 1, MaxInt);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Result.Host := Authority;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure RemoveDotSegments(var s: string);
|
|
||||||
var
|
|
||||||
Cur, Prev: Integer;
|
|
||||||
begin
|
|
||||||
Prev := Pos('/', s);
|
|
||||||
while (Prev > 0) and (Prev < Length(s)) do
|
|
||||||
begin
|
|
||||||
Cur := Prev+1;
|
|
||||||
while (Cur <= Length(s)) and (s[Cur] <> '/') do
|
|
||||||
Inc(Cur);
|
|
||||||
if (Cur - Prev = 2) and (s[Prev+1] = '.') then
|
|
||||||
Delete(s, Prev+1, 2)
|
|
||||||
else if (Cur - Prev = 3) and (s[Prev+1] = '.') and (s[Prev+2] = '.') then
|
|
||||||
begin
|
|
||||||
while (Prev > 1) and (s[Prev-1] <> '/') do
|
|
||||||
Dec(Prev);
|
|
||||||
if Prev > 1 then
|
|
||||||
Dec(Prev);
|
|
||||||
Delete(s, Prev+1, Cur-Prev);
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Prev := Cur;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// TODO: this probably must NOT percent-encode the result...
|
|
||||||
function ResolveRelativeURI(const BaseUri, RelUri: UTF8String;
|
|
||||||
out ResultUri: UTF8String): Boolean;
|
|
||||||
var
|
|
||||||
Base, Rel: TUri;
|
|
||||||
begin
|
|
||||||
Base := ParseUri(BaseUri);
|
|
||||||
Rel := ParseUri(RelUri);
|
|
||||||
|
|
||||||
Result := (Base.Protocol <> '') or (Rel.Protocol <> '');
|
|
||||||
if not Result then
|
|
||||||
Exit;
|
|
||||||
with Rel do
|
|
||||||
begin
|
|
||||||
if (Path = '') and (Document = '') then
|
|
||||||
begin
|
|
||||||
if (Protocol = '') and (Host = '') then
|
|
||||||
begin
|
|
||||||
if Params <> '' then
|
|
||||||
Base.Params := Params;
|
|
||||||
Base.Bookmark := Bookmark;
|
|
||||||
ResultUri := EncodeUri(Base);
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if (Protocol <> '') then // RelURI is absolute - return it...
|
|
||||||
begin
|
|
||||||
ResultUri := RelUri;
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
// Inherit protocol
|
|
||||||
Protocol := Base.Protocol;
|
|
||||||
if (Host = '') then // TODO: or "not HasAuthority"?
|
|
||||||
begin
|
|
||||||
// Inherit Authority (host, port, username, password)
|
|
||||||
Host := Base.Host;
|
|
||||||
Port := Base.Port;
|
|
||||||
Username := Base.Username;
|
|
||||||
Password := Base.Password;
|
|
||||||
HasAuthority := Base.HasAuthority;
|
|
||||||
if (Path = '') or (Path[1] <> '/') then // path is empty or relative
|
|
||||||
Path := Base.Path + Path;
|
|
||||||
RemoveDotSegments(Path);
|
|
||||||
end;
|
|
||||||
end; // with
|
|
||||||
ResultUri := EncodeUri(Rel);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ResolveRelativeURI(const BaseUri, RelUri: WideString;
|
|
||||||
out ResultUri: WideString): Boolean;
|
|
||||||
var
|
|
||||||
rslt: UTF8String;
|
|
||||||
begin
|
|
||||||
Result := ResolveRelativeURI(UTF8Encode(BaseUri), UTF8Encode(RelUri), rslt);
|
|
||||||
if Result then
|
|
||||||
ResultURI := UTF8Decode(rslt);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function URIToFilename(const URI: string; out Filename: string): Boolean;
|
|
||||||
var
|
|
||||||
U: TURI;
|
|
||||||
I: Integer;
|
|
||||||
begin
|
|
||||||
Result := False;
|
|
||||||
U := ParseURI(URI);
|
|
||||||
if SameText(U.Protocol, 'file') then
|
|
||||||
begin
|
|
||||||
if (Length(U.Path) > 2) and (U.Path[1] = '/') and (U.Path[3] = ':') then
|
|
||||||
Filename := Copy(U.Path, 2, MaxInt)
|
|
||||||
else
|
|
||||||
Filename := U.Path;
|
|
||||||
Filename := Filename + U.Document;
|
|
||||||
Result := True;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if U.Protocol = '' then // fire and pray?
|
|
||||||
begin
|
|
||||||
Filename := U.Path + U.Document;
|
|
||||||
Result := True;
|
|
||||||
end;
|
|
||||||
if PathDelim <> '/' then
|
|
||||||
begin
|
|
||||||
I := Pos('/', Filename);
|
|
||||||
while I > 0 do
|
|
||||||
begin
|
|
||||||
Filename[I] := PathDelim;
|
|
||||||
I := Pos('/', Filename);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function FilenameToURI(const Filename: string): string;
|
|
||||||
var
|
|
||||||
I: Integer;
|
|
||||||
begin
|
|
||||||
// TODO: seems implemented, but not tested well
|
|
||||||
Result := 'file://';
|
|
||||||
if (Length(Filename) > 2) and (Filename[1] <> PathDelim) and (Filename[2] = ':') then
|
|
||||||
Result := Result + '/';
|
|
||||||
Result := Result + Filename;
|
|
||||||
if PathDelim <> '/' then
|
|
||||||
begin
|
|
||||||
I := Pos(PathDelim, Result);
|
|
||||||
while I <> 0 do
|
|
||||||
begin
|
|
||||||
Result[I] := '/';
|
|
||||||
I := Pos(PathDelim, Result);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
function IsAbsoluteURI(const UriReference: string): Boolean;
|
|
||||||
var
|
|
||||||
I: Integer;
|
|
||||||
begin
|
|
||||||
Result := True;
|
|
||||||
for I := 1 to Length(UriReference) do
|
|
||||||
begin
|
|
||||||
if UriReference[I] = ':' then
|
|
||||||
Exit
|
|
||||||
else
|
|
||||||
if not (((I=1) and (UriReference[I] in ALPHA)) or
|
|
||||||
(UriReference[i] in ALPHA + DIGIT + ['+', '-', '.'])) then
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
Result := False;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
|
File diff suppressed because it is too large
Load Diff
@ -1,440 +0,0 @@
|
|||||||
{
|
|
||||||
This file is part of the Free Pascal run time library.
|
|
||||||
Copyright (c) 1999-2000 by the Free Pascal development team
|
|
||||||
|
|
||||||
Implementation of compression streams.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
**********************************************************************}
|
|
||||||
{$mode objfpc}
|
|
||||||
|
|
||||||
unit zstream;
|
|
||||||
|
|
||||||
|
|
||||||
{ ---------------------------------------------------------------------
|
|
||||||
For linux and freebsd it's also possible to use ZLib instead
|
|
||||||
of paszlib. You need to undefine 'usepaszlib'.
|
|
||||||
---------------------------------------------------------------------}
|
|
||||||
|
|
||||||
{$define usepaszlib}
|
|
||||||
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
Sysutils, Classes
|
|
||||||
{$ifdef usepaszlib}
|
|
||||||
,paszlib,zbase
|
|
||||||
{$else}
|
|
||||||
,zlib
|
|
||||||
{$endif}
|
|
||||||
;
|
|
||||||
|
|
||||||
{$H+}
|
|
||||||
|
|
||||||
type
|
|
||||||
// Error reporting.
|
|
||||||
EZlibError = class(EStreamError);
|
|
||||||
ECompressionError = class(EZlibError);
|
|
||||||
EDecompressionError = class(EZlibError);
|
|
||||||
|
|
||||||
TCustomZlibStream = class(TOwnerStream)
|
|
||||||
private
|
|
||||||
FStrmPos: Integer;
|
|
||||||
FOnProgress: TNotifyEvent;
|
|
||||||
FZRec: TZStream;
|
|
||||||
FBuffer: array [Word] of Byte;
|
|
||||||
protected
|
|
||||||
procedure Progress(Sender: TObject); dynamic;
|
|
||||||
property OnProgress: TNotifyEvent read FOnProgress write FOnProgress;
|
|
||||||
public
|
|
||||||
constructor Create(Strm: TStream);
|
|
||||||
end;
|
|
||||||
|
|
||||||
TCompressionLevel = (clNone, clFastest, clDefault, clMax);
|
|
||||||
|
|
||||||
TCompressionStream = class(TCustomZlibStream)
|
|
||||||
private
|
|
||||||
function GetCompressionRate: extended;
|
|
||||||
function CompressionCheck(code: Integer): Integer;
|
|
||||||
procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
|
|
||||||
var OutBuf: Pointer; var OutBytes: Integer);
|
|
||||||
public
|
|
||||||
constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream; ASkipHeader : Boolean = False);
|
|
||||||
destructor Destroy; override;
|
|
||||||
function Read(var Buffer; Count: Longint): Longint; override;
|
|
||||||
function Write(const Buffer; Count: Longint): Longint; override;
|
|
||||||
function Seek(Offset: Longint; Origin: Word): Longint; override;
|
|
||||||
property CompressionRate: extended read GetCompressionRate;
|
|
||||||
property OnProgress;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TDecompressionStream = class(TCustomZlibStream)
|
|
||||||
private
|
|
||||||
function DecompressionCheck(code: Integer): Integer;
|
|
||||||
procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
|
|
||||||
OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer);
|
|
||||||
public
|
|
||||||
constructor Create(ASource: TStream; ASkipHeader : Boolean = False);
|
|
||||||
destructor Destroy; override;
|
|
||||||
function Read(var Buffer; Count: Longint): Longint; override;
|
|
||||||
function Write(const Buffer; Count: Longint): Longint; override;
|
|
||||||
function Seek(Offset: Longint; Origin: Word): Longint; override;
|
|
||||||
property OnProgress;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TGZOpenMode = (gzOpenRead,gzOpenWrite);
|
|
||||||
|
|
||||||
TGZFileStream = Class(TStream)
|
|
||||||
Private
|
|
||||||
FOpenMode : TGZOpenmode;
|
|
||||||
FFIle : gzfile;
|
|
||||||
Public
|
|
||||||
Constructor Create(FileName: String;FileMode: TGZOpenMode);
|
|
||||||
Destructor Destroy;override;
|
|
||||||
Function Read(Var Buffer; Count : longint): longint;override;
|
|
||||||
function Write(const Buffer; Count: Longint): Longint; override;
|
|
||||||
function Seek(Offset: Longint; Origin: Word): Longint; override;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
Const
|
|
||||||
ErrorStrings : array [0..6] of string =
|
|
||||||
('Unknown error %d','Z_ERRNO','Z_STREAM_ERROR',
|
|
||||||
'Z_DATA_ERROR','Z_MEM_ERROR','Z_BUF_ERROR','Z_VERSION_ERROR');
|
|
||||||
SCouldntOpenFile = 'Couldn''t open file : %s';
|
|
||||||
SReadOnlyStream = 'Decompression streams are read-only';
|
|
||||||
SWriteOnlyStream = 'Compression streams are write-only';
|
|
||||||
SSeekError = 'Compression stream seek error';
|
|
||||||
SInvalidSeek = 'Invalid Compression seek operation';
|
|
||||||
|
|
||||||
procedure TCompressionStream.CompressBuf(const InBuf: Pointer; InBytes: Integer;
|
|
||||||
var OutBuf: Pointer; var OutBytes: Integer);
|
|
||||||
var
|
|
||||||
strm: TZStream;
|
|
||||||
P: Pointer;
|
|
||||||
begin
|
|
||||||
FillChar(strm, sizeof(strm), 0);
|
|
||||||
OutBytes := ((InBytes + (InBytes div 10) + 12) + 255) and not 255;
|
|
||||||
OutBuf:=GetMem(OutBytes);
|
|
||||||
try
|
|
||||||
strm.next_in := InBuf;
|
|
||||||
strm.avail_in := InBytes;
|
|
||||||
strm.next_out := OutBuf;
|
|
||||||
strm.avail_out := OutBytes;
|
|
||||||
CompressionCheck(deflateInit(strm, Z_BEST_COMPRESSION));
|
|
||||||
try
|
|
||||||
while CompressionCheck(deflate(strm, Z_FINISH)) <> Z_STREAM_END do
|
|
||||||
begin
|
|
||||||
P := OutBuf;
|
|
||||||
Inc(OutBytes, 256);
|
|
||||||
ReallocMem(OutBuf,OutBytes);
|
|
||||||
strm.next_out := PByte(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
|
|
||||||
strm.avail_out := 256;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
CompressionCheck(deflateEnd(strm));
|
|
||||||
end;
|
|
||||||
ReallocMem(OutBuf,strm.total_out);
|
|
||||||
OutBytes := strm.total_out;
|
|
||||||
except
|
|
||||||
FreeMem(OutBuf);
|
|
||||||
raise;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure TDecompressionStream.DecompressBuf(const InBuf: Pointer; InBytes: Integer;
|
|
||||||
OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer);
|
|
||||||
var
|
|
||||||
strm: TZStream;
|
|
||||||
P: Pointer;
|
|
||||||
BufInc: Integer;
|
|
||||||
Type
|
|
||||||
PByte = ^Byte;
|
|
||||||
begin
|
|
||||||
FillChar(strm, sizeof(strm), 0);
|
|
||||||
BufInc := (InBytes + 255) and not 255;
|
|
||||||
if OutEstimate = 0 then
|
|
||||||
OutBytes := BufInc
|
|
||||||
else
|
|
||||||
OutBytes := OutEstimate;
|
|
||||||
OutBuf:=GetMem(OutBytes);
|
|
||||||
try
|
|
||||||
strm.next_in := InBuf;
|
|
||||||
strm.avail_in := InBytes;
|
|
||||||
strm.next_out := OutBuf;
|
|
||||||
strm.avail_out := OutBytes;
|
|
||||||
DecompressionCheck(inflateInit(strm));
|
|
||||||
try
|
|
||||||
while DecompressionCheck(inflate(strm, Z_FINISH)) <> Z_STREAM_END do
|
|
||||||
begin
|
|
||||||
P := OutBuf;
|
|
||||||
Inc(OutBytes, BufInc);
|
|
||||||
ReallocMem(OutBuf, OutBytes);
|
|
||||||
strm.next_out := PByte(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
|
|
||||||
strm.avail_out := BufInc;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
DecompressionCheck(inflateEnd(strm));
|
|
||||||
end;
|
|
||||||
ReallocMem(OutBuf, strm.total_out);
|
|
||||||
OutBytes := strm.total_out;
|
|
||||||
except
|
|
||||||
FreeMem(OutBuf);
|
|
||||||
raise;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
// TCustomZlibStream
|
|
||||||
|
|
||||||
constructor TCustomZLibStream.Create(Strm: TStream);
|
|
||||||
begin
|
|
||||||
inherited Create(Strm);
|
|
||||||
FStrmPos := Strm.Position;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCustomZLibStream.Progress(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if Assigned(FOnProgress) then FOnProgress(Sender);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
// TCompressionStream
|
|
||||||
|
|
||||||
constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel;
|
|
||||||
Dest: TStream; ASkipHeader : Boolean = False);
|
|
||||||
const
|
|
||||||
Levels: array [TCompressionLevel] of ShortInt =
|
|
||||||
(Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);
|
|
||||||
begin
|
|
||||||
inherited Create(Dest);
|
|
||||||
FZRec.next_out := @FBuffer[0];
|
|
||||||
FZRec.avail_out := sizeof(FBuffer);
|
|
||||||
If ASkipHeader then
|
|
||||||
CompressionCheck(deflateInit2(FZRec, Levels[CompressionLevel],Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, 0))
|
|
||||||
else
|
|
||||||
CompressionCheck(deflateInit(FZRec, Levels[CompressionLevel]));
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TCompressionStream.Destroy;
|
|
||||||
begin
|
|
||||||
FZRec.next_in := nil;
|
|
||||||
FZRec.avail_in := 0;
|
|
||||||
try
|
|
||||||
if Source.Position <> FStrmPos then Source.Position := FStrmPos;
|
|
||||||
while (CompressionCheck(deflate(FZRec, Z_FINISH)) <> Z_STREAM_END)
|
|
||||||
and (FZRec.avail_out = 0) do
|
|
||||||
begin
|
|
||||||
Source.WriteBuffer(FBuffer, sizeof(FBuffer));
|
|
||||||
FZRec.next_out := @FBuffer[0];
|
|
||||||
FZRec.avail_out := sizeof(FBuffer);
|
|
||||||
end;
|
|
||||||
if FZRec.avail_out < sizeof(FBuffer) then
|
|
||||||
Source.WriteBuffer(FBuffer, sizeof(FBuffer) - FZRec.avail_out);
|
|
||||||
finally
|
|
||||||
deflateEnd(FZRec);
|
|
||||||
end;
|
|
||||||
inherited Destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TCompressionStream.CompressionCheck(code: Integer): Integer;
|
|
||||||
begin
|
|
||||||
Result := code;
|
|
||||||
if (code < 0) then
|
|
||||||
if code < -6 then
|
|
||||||
raise ECompressionError.CreateFmt(Errorstrings[0],[Code])
|
|
||||||
else
|
|
||||||
raise ECompressionError.Create(ErrorStrings[Abs(Code)]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
function TCompressionStream.Read(var Buffer; Count: Longint): Longint;
|
|
||||||
begin
|
|
||||||
raise ECompressionError.Create('Invalid stream operation');
|
|
||||||
result:=0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TCompressionStream.Write(const Buffer; Count: Longint): Longint;
|
|
||||||
begin
|
|
||||||
FZRec.next_in := @Buffer;
|
|
||||||
FZRec.avail_in := Count;
|
|
||||||
if Source.Position <> FStrmPos then Source.Position := FStrmPos;
|
|
||||||
while (FZRec.avail_in > 0) do
|
|
||||||
begin
|
|
||||||
CompressionCheck(deflate(FZRec, 0));
|
|
||||||
if FZRec.avail_out = 0 then
|
|
||||||
begin
|
|
||||||
Source.WriteBuffer(FBuffer, sizeof(FBuffer));
|
|
||||||
FZRec.next_out := @FBuffer[0];
|
|
||||||
FZRec.avail_out := sizeof(FBuffer);
|
|
||||||
FStrmPos := Source.Position;
|
|
||||||
Progress(Self);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Result := Count;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TCompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
|
|
||||||
begin
|
|
||||||
if (Offset = 0) and (Origin = soFromCurrent) then
|
|
||||||
Result := FZRec.total_in
|
|
||||||
else
|
|
||||||
raise ECompressionError.Create(SInvalidSeek);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TCompressionStream.GetCompressionRate: extended;
|
|
||||||
begin
|
|
||||||
Result:=0.0;
|
|
||||||
{ With FZrec do
|
|
||||||
if total_in = 0 then
|
|
||||||
GetCompressionRate:=0.0
|
|
||||||
else
|
|
||||||
GetCompressionRate:=1.0E2*(1.0E0-(total_out/total_in));
|
|
||||||
}
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
// TDecompressionStream
|
|
||||||
|
|
||||||
constructor TDecompressionStream.Create(ASource: TStream; ASkipHeader : Boolean = False);
|
|
||||||
begin
|
|
||||||
inherited Create(ASource);
|
|
||||||
FZRec.next_in := @FBuffer[0];
|
|
||||||
If ASkipHeader then
|
|
||||||
DeCompressionCheck(inflateInit2(FZRec,-MAX_WBITS))
|
|
||||||
else
|
|
||||||
DeCompressionCheck(inflateInit(FZRec));
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TDecompressionStream.Destroy;
|
|
||||||
begin
|
|
||||||
if FZRec.avail_in <> 0 then
|
|
||||||
Source.Seek(-FZRec.avail_in, soFromCurrent);
|
|
||||||
inflateEnd(FZRec);
|
|
||||||
inherited Destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TDecompressionStream.DecompressionCheck(code: Integer): Integer;
|
|
||||||
begin
|
|
||||||
Result := code;
|
|
||||||
If Code<0 then
|
|
||||||
if code < -6 then
|
|
||||||
raise EDecompressionError.CreateFmt(Errorstrings[0],[Code])
|
|
||||||
else
|
|
||||||
raise EDecompressionError.Create(ErrorStrings[Abs(Code)]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TDecompressionStream.Read(var Buffer; Count: Longint): Longint;
|
|
||||||
begin
|
|
||||||
FZRec.next_out := @Buffer;
|
|
||||||
FZRec.avail_out := Count;
|
|
||||||
if Source.Position <> FStrmPos then Source.Position := FStrmPos;
|
|
||||||
while (FZRec.avail_out > 0) do
|
|
||||||
begin
|
|
||||||
if FZRec.avail_in = 0 then
|
|
||||||
begin
|
|
||||||
FZRec.avail_in := Source.Read(FBuffer, sizeof(FBuffer));
|
|
||||||
if FZRec.avail_in = 0 then
|
|
||||||
begin
|
|
||||||
Result := Count - FZRec.avail_out;
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
FZRec.next_in := @FBuffer[0];
|
|
||||||
FStrmPos := Source.Position;
|
|
||||||
Progress(Self);
|
|
||||||
end;
|
|
||||||
if DeCompressionCheck(inflate(FZRec, 0)) = Z_STREAM_END then
|
|
||||||
begin
|
|
||||||
Result := Count - FZRec.avail_out;
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Result := Count;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TDecompressionStream.Write(const Buffer; Count: Longint): Longint;
|
|
||||||
begin
|
|
||||||
raise EDecompressionError.Create('Invalid stream operation');
|
|
||||||
result:=0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
|
|
||||||
var
|
|
||||||
I: Integer;
|
|
||||||
Buf: array [0..4095] of Char;
|
|
||||||
begin
|
|
||||||
if (Offset = 0) and (Origin = soFromBeginning) then
|
|
||||||
begin
|
|
||||||
DecompressionCheck(inflateReset(FZRec));
|
|
||||||
FZRec.next_in := @FBuffer[0];
|
|
||||||
FZRec.avail_in := 0;
|
|
||||||
Source.Position := 0;
|
|
||||||
FStrmPos := 0;
|
|
||||||
end
|
|
||||||
else if ( (Offset >= 0) and (Origin = soFromCurrent)) or
|
|
||||||
( ((Offset - FZRec.total_out) > 0) and (Origin = soFromBeginning)) then
|
|
||||||
begin
|
|
||||||
if Origin = soFromBeginning then Dec(Offset, FZRec.total_out);
|
|
||||||
if Offset > 0 then
|
|
||||||
begin
|
|
||||||
for I := 1 to Offset div sizeof(Buf) do
|
|
||||||
ReadBuffer(Buf, sizeof(Buf));
|
|
||||||
ReadBuffer(Buf, Offset mod sizeof(Buf));
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
raise EDecompressionError.Create(SInvalidSeek);
|
|
||||||
Result := FZRec.total_out;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// TGZFileStream
|
|
||||||
|
|
||||||
Constructor TGZFileStream.Create(FileName: String;FileMode: TGZOpenMode);
|
|
||||||
|
|
||||||
Const OpenStrings : array[TGZOpenMode] of pchar = ('rb','wb');
|
|
||||||
|
|
||||||
begin
|
|
||||||
FOpenMode:=FileMode;
|
|
||||||
FFile:=gzopen (PChar(FileName),Openstrings[FileMode]);
|
|
||||||
If FFile=Nil then
|
|
||||||
Raise ezlibError.CreateFmt (SCouldntOpenFIle,[FileName]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
Destructor TGZFileStream.Destroy;
|
|
||||||
begin
|
|
||||||
gzclose(FFile);
|
|
||||||
Inherited Destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
Function TGZFileStream.Read(Var Buffer; Count : longint): longint;
|
|
||||||
begin
|
|
||||||
If FOpenMode=gzOpenWrite then
|
|
||||||
Raise ezliberror.create(SWriteOnlyStream);
|
|
||||||
Result:=gzRead(FFile,@Buffer,Count);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TGZFileStream.Write(const Buffer; Count: Longint): Longint;
|
|
||||||
begin
|
|
||||||
If FOpenMode=gzOpenRead then
|
|
||||||
Raise EzlibError.Create(SReadonlyStream);
|
|
||||||
Result:=gzWrite(FFile,@Buffer,Count);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TGZFileStream.Seek(Offset: Longint; Origin: Word): Longint;
|
|
||||||
begin
|
|
||||||
Result:=gzseek(FFile,Offset,Origin);
|
|
||||||
If Result=-1 then
|
|
||||||
Raise eZlibError.Create(SSeekError);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end.
|
|
Loading…
Reference in New Issue
Block a user