mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 16:29:19 +02:00
+ dos unit was added to wince port.
git-svn-id: trunk@968 -
This commit is contained in:
parent
ca1bb2b633
commit
b38ba1640f
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -4192,6 +4192,7 @@ rtl/win64/system.pp svneol=native#text/plain
|
|||||||
rtl/wince/Makefile svneol=native#text/plain
|
rtl/wince/Makefile svneol=native#text/plain
|
||||||
rtl/wince/Makefile.fpc svneol=native#text/plain
|
rtl/wince/Makefile.fpc svneol=native#text/plain
|
||||||
rtl/wince/arm/wprt0.as svneol=native#text/plain
|
rtl/wince/arm/wprt0.as svneol=native#text/plain
|
||||||
|
rtl/wince/dos.pp -text
|
||||||
rtl/wince/i386/wprt0.as svneol=native#text/plain
|
rtl/wince/i386/wprt0.as svneol=native#text/plain
|
||||||
rtl/wince/readme-winceapi-port -text
|
rtl/wince/readme-winceapi-port -text
|
||||||
rtl/wince/system.pp svneol=native#text/plain
|
rtl/wince/system.pp svneol=native#text/plain
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/27]
|
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/28]
|
||||||
#
|
#
|
||||||
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-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
|
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-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
|
||||||
@ -245,221 +245,223 @@ override FPCOPT+=-Ur
|
|||||||
endif
|
endif
|
||||||
OBJPASDIR=$(RTL)/objpas
|
OBJPASDIR=$(RTL)/objpas
|
||||||
GRAPHDIR=$(INC)/graph
|
GRAPHDIR=$(INC)/graph
|
||||||
|
include $(WININC)/makefile.inc
|
||||||
|
WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-win32)
|
ifeq ($(FULL_TARGET),i386-win32)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-os2)
|
ifeq ($(FULL_TARGET),i386-os2)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-beos)
|
ifeq ($(FULL_TARGET),i386-beos)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-solaris)
|
ifeq ($(FULL_TARGET),i386-solaris)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-qnx)
|
ifeq ($(FULL_TARGET),i386-qnx)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netware)
|
ifeq ($(FULL_TARGET),i386-netware)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-emx)
|
ifeq ($(FULL_TARGET),i386-emx)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-watcom)
|
ifeq ($(FULL_TARGET),i386-watcom)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-linux)
|
ifeq ($(FULL_TARGET),m68k-linux)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-atari)
|
ifeq ($(FULL_TARGET),m68k-atari)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-linux)
|
ifeq ($(FULL_TARGET),arm-linux)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings windows rtlconsts sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings lineinfo windows dos rtlconsts sysconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-win32)
|
ifeq ($(FULL_TARGET),i386-win32)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-os2)
|
ifeq ($(FULL_TARGET),i386-os2)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-beos)
|
ifeq ($(FULL_TARGET),i386-beos)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-solaris)
|
ifeq ($(FULL_TARGET),i386-solaris)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-qnx)
|
ifeq ($(FULL_TARGET),i386-qnx)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netware)
|
ifeq ($(FULL_TARGET),i386-netware)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-emx)
|
ifeq ($(FULL_TARGET),i386-emx)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-watcom)
|
ifeq ($(FULL_TARGET),i386-watcom)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-linux)
|
ifeq ($(FULL_TARGET),m68k-linux)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-atari)
|
ifeq ($(FULL_TARGET),m68k-atari)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-linux)
|
ifeq ($(FULL_TARGET),arm-linux)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override TARGET_LOADERS+=wprt0 #wdllprt0 gprt0 wcygprt0
|
override TARGET_LOADERS+=wprt0 #wdllprt0
|
||||||
endif
|
endif
|
||||||
override INSTALL_FPCPACKAGE=y
|
override INSTALL_FPCPACKAGE=y
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
@ -1891,9 +1893,6 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
|
|||||||
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
||||||
wprt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
|
wprt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
|
||||||
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)wprt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
|
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)wprt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
|
||||||
gprt0$(OEXT) : gprt0.as
|
|
||||||
wdllprt0$(OEXT) : wdllprt0.as
|
|
||||||
wcygprt0$(OEXT) : wcygprt0.as
|
|
||||||
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
|
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
|
||||||
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp
|
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp
|
||||||
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT) softfpu$(PPUEXT)
|
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT) softfpu$(PPUEXT)
|
||||||
@ -1903,6 +1902,7 @@ strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
|
|||||||
$(SYSTEMUNIT)$(PPUEXT)
|
$(SYSTEMUNIT)$(PPUEXT)
|
||||||
windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMUNIT)$(PPUEXT)
|
windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMUNIT)$(PPUEXT)
|
||||||
$(COMPILER) -I$(WININC) windows.pp
|
$(COMPILER) -I$(WININC) windows.pp
|
||||||
|
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) windows$(PPUEXT)
|
||||||
rtlconsts$(PPUEXT) : objpas$(PPUEXT) $(OBJPASDIR)/rtlconsts.pp
|
rtlconsts$(PPUEXT) : objpas$(PPUEXT) $(OBJPASDIR)/rtlconsts.pp
|
||||||
$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
|
$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
|
||||||
sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
||||||
|
@ -6,13 +6,15 @@
|
|||||||
main=rtl
|
main=rtl
|
||||||
|
|
||||||
[target]
|
[target]
|
||||||
loaders= wprt0 #wdllprt0 gprt0 wcygprt0
|
loaders= wprt0 #wdllprt0
|
||||||
units=$(SYSTEMUNIT) objpas strings \
|
units=$(SYSTEMUNIT) objpas strings \
|
||||||
# ctypes macpas
|
# ctypes macpas
|
||||||
# lineinfo heaptrc matrix \
|
lineinfo \
|
||||||
|
# heaptrc matrix \
|
||||||
windows \
|
windows \
|
||||||
# winsock initc cmem dynlibs signals \
|
# winsock initc cmem dynlibs signals \
|
||||||
# dos crt objects graph messages \
|
dos \
|
||||||
|
# crt objects graph messages \
|
||||||
rtlconsts sysconst \
|
rtlconsts sysconst \
|
||||||
# sysutils \
|
# sysutils \
|
||||||
# math types \
|
# math types \
|
||||||
@ -62,9 +64,9 @@ OBJPASDIR=$(RTL)/objpas
|
|||||||
GRAPHDIR=$(INC)/graph
|
GRAPHDIR=$(INC)/graph
|
||||||
|
|
||||||
# Files used by windows.pp
|
# Files used by windows.pp
|
||||||
# include $(WININC)/makefile.inc
|
include $(WININC)/makefile.inc
|
||||||
|
|
||||||
#WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
|
WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
|
||||||
|
|
||||||
|
|
||||||
[rules]
|
[rules]
|
||||||
@ -86,10 +88,6 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
|
|||||||
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Loaders
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Loaders
|
# Loaders
|
||||||
#
|
#
|
||||||
@ -97,14 +95,7 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
|||||||
wprt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
|
wprt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
|
||||||
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)wprt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
|
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)wprt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
|
||||||
|
|
||||||
#wprt0$(OEXT) : $(PRT0).as
|
#wdllprt0$(OEXT) : wdllprt0.as
|
||||||
# $(AS) -o $(UNITTARGETDIRPREFIX)wprt0$(OEXT) $(PRT0).as
|
|
||||||
|
|
||||||
gprt0$(OEXT) : gprt0.as
|
|
||||||
|
|
||||||
wdllprt0$(OEXT) : wdllprt0.as
|
|
||||||
|
|
||||||
wcygprt0$(OEXT) : wcygprt0.as
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# System Units (System, Objpas, Strings)
|
# System Units (System, Objpas, Strings)
|
||||||
@ -149,7 +140,7 @@ windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMUNIT)$(PPUEXT)
|
|||||||
# TP7 Compatible RTL Units
|
# TP7 Compatible RTL Units
|
||||||
#
|
#
|
||||||
|
|
||||||
#dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) windows$(PPUEXT)
|
||||||
|
|
||||||
#crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) dos$(PPUEXT) windows$(PPUEXT)
|
#crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) dos$(PPUEXT) windows$(PPUEXT)
|
||||||
|
|
||||||
|
595
rtl/wince/dos.pp
Normal file
595
rtl/wince/dos.pp
Normal file
@ -0,0 +1,595 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 1999-2004 by the Free Pascal development team.
|
||||||
|
|
||||||
|
Dos unit for BP7 compatible RTL
|
||||||
|
|
||||||
|
See the file COPYING.FPC, included in this distribution,
|
||||||
|
for details about the copyright.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
unit dos;
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses windows;
|
||||||
|
|
||||||
|
Const
|
||||||
|
Max_Path = MaxPathLen;
|
||||||
|
|
||||||
|
Type
|
||||||
|
Searchrec = Packed Record
|
||||||
|
FindHandle : THandle;
|
||||||
|
W32FindData : TWin32FindData;
|
||||||
|
ExcludeAttr : longint;
|
||||||
|
time : longint;
|
||||||
|
size : longint;
|
||||||
|
attr : longint;
|
||||||
|
name : string;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$i dosh.inc}
|
||||||
|
|
||||||
|
//Const
|
||||||
|
{ allow EXEC to inherited handles from calling process,
|
||||||
|
needed for FPREDIR in ide/text
|
||||||
|
now set to true by default because
|
||||||
|
other OS also pass open handles to childs
|
||||||
|
finally reset to false after Florian's response PM }
|
||||||
|
// ExecInheritsHandles : Longbool = false;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$DEFINE HAS_GETMSCOUNT}
|
||||||
|
|
||||||
|
{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS}
|
||||||
|
{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *)
|
||||||
|
|
||||||
|
{$I dos.inc}
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- Conversion ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
function GetMsCount: int64;
|
||||||
|
begin
|
||||||
|
GetMsCount := cardinal (GetTickCount);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function Last2DosError(d:dword):integer;
|
||||||
|
begin
|
||||||
|
case d of
|
||||||
|
87 : { Parameter invalid -> Data invalid }
|
||||||
|
Last2DosError:=13;
|
||||||
|
else
|
||||||
|
Last2DosError:=integer(d);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Function DosToWinAttr (Const Attr : Longint) : longint;
|
||||||
|
begin
|
||||||
|
DosToWinAttr:=Attr;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Function WinToDosAttr (Const Attr : Longint) : longint;
|
||||||
|
begin
|
||||||
|
WinToDosAttr:=Attr;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Function DosToWinTime (DTime:longint;Var Wtime : TFileTime):longbool;
|
||||||
|
begin
|
||||||
|
DosToWinTime:=False; //!!! fixme
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Function WinToDosTime (Const Wtime : TFileTime;var DTime:longint):longbool;
|
||||||
|
begin
|
||||||
|
WinToDosTime:=False; //!!! fixme
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- Info / Date / Time ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
function dosversion : word;
|
||||||
|
var
|
||||||
|
versioninfo : OSVERSIONINFO;
|
||||||
|
begin
|
||||||
|
versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo);
|
||||||
|
GetVersionEx(versioninfo);
|
||||||
|
dosversion:=versioninfo.dwMajorVersion and $FF or versioninfo.dwMinorVersion and $FF shl 8;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure getdate(var year,month,mday,wday : word);
|
||||||
|
var
|
||||||
|
t : TSystemTime;
|
||||||
|
begin
|
||||||
|
GetLocalTime(t);
|
||||||
|
year:=t.wYear;
|
||||||
|
month:=t.wMonth;
|
||||||
|
mday:=t.wDay;
|
||||||
|
wday:=t.wDayOfWeek;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure setdate(year,month,day : word);
|
||||||
|
var
|
||||||
|
t : TSystemTime;
|
||||||
|
begin
|
||||||
|
GetLocalTime(t);
|
||||||
|
t.wYear:=year;
|
||||||
|
t.wMonth:=month;
|
||||||
|
t.wDay:=day;
|
||||||
|
{ only a quite good solution, we can loose some ms }
|
||||||
|
SetLocalTime(t);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure gettime(var hour,minute,second,sec100 : word);
|
||||||
|
var
|
||||||
|
t : TSystemTime;
|
||||||
|
begin
|
||||||
|
GetLocalTime(t);
|
||||||
|
hour:=t.wHour;
|
||||||
|
minute:=t.wMinute;
|
||||||
|
second:=t.wSecond;
|
||||||
|
sec100:=t.wMilliSeconds div 10;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure settime(hour,minute,second,sec100 : word);
|
||||||
|
var
|
||||||
|
t : TSystemTime;
|
||||||
|
begin
|
||||||
|
GetLocalTime(t);
|
||||||
|
t.wHour:=hour;
|
||||||
|
t.wMinute:=minute;
|
||||||
|
t.wSecond:=second;
|
||||||
|
t.wMilliSeconds:=sec100*10;
|
||||||
|
SetLocalTime(t);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- Exec ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
procedure exec(const path : pathstr;const comline : comstr);
|
||||||
|
var
|
||||||
|
PI: TProcessInformation;
|
||||||
|
Proc : THandle;
|
||||||
|
l : LongInt;
|
||||||
|
PathW : array[0..FileNameLen] of WideChar;
|
||||||
|
CmdLineW : array[0..FileNameLen] of WideChar;
|
||||||
|
begin
|
||||||
|
DosError := 0;
|
||||||
|
AnsiToWideBuf(@path[1], Length(path), PathW, SizeOf(PathW));
|
||||||
|
AnsiToWideBuf(@comline[1], Length(comline), CmdLineW, SizeOf(CmdLineW));
|
||||||
|
if not CreateProcess(PathW, CmdLineW,
|
||||||
|
nil, nil, FALSE, 0, nil, nil, nil, PI) then
|
||||||
|
begin
|
||||||
|
DosError:=Last2DosError(GetLastError);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
Proc:=PI.hProcess;
|
||||||
|
CloseHandle(PI.hThread);
|
||||||
|
if WaitForSingleObject(Proc, dword($ffffffff)) <> $ffffffff then
|
||||||
|
GetExitCodeProcess(Proc, @l)
|
||||||
|
else
|
||||||
|
l:=-1;
|
||||||
|
CloseHandle(Proc);
|
||||||
|
LastDosExitCode:=l;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- Disk ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
var
|
||||||
|
DriveNames: array[1..24] of PWideChar;
|
||||||
|
|
||||||
|
function GetDriveName(drive: byte): PWideChar;
|
||||||
|
const
|
||||||
|
dev_attr = FILE_ATTRIBUTE_TEMPORARY or FILE_ATTRIBUTE_DIRECTORY;
|
||||||
|
|
||||||
|
var
|
||||||
|
h: THandle;
|
||||||
|
fd: TWin32FindData;
|
||||||
|
i, len: LongInt;
|
||||||
|
begin
|
||||||
|
GetDriveName:=nil;
|
||||||
|
if (drive < 3) or (drive > 26) then
|
||||||
|
exit;
|
||||||
|
if DriveNames[1] = nil then
|
||||||
|
begin
|
||||||
|
GetMem(DriveNames[1], 2*SizeOf(WideChar));
|
||||||
|
DriveNames[1][0]:='\';
|
||||||
|
DriveNames[1][1]:=#0;
|
||||||
|
|
||||||
|
h:=FindFirstFile('\*', @fd);
|
||||||
|
if h <> 0 then
|
||||||
|
begin
|
||||||
|
i:=2;
|
||||||
|
repeat
|
||||||
|
if fd.dwFileAttributes and dev_attr = dev_attr then begin
|
||||||
|
len:=0;
|
||||||
|
while fd.cFileName[len] <> 0 do
|
||||||
|
Inc(len);
|
||||||
|
len:=(len + 2)*SizeOf(WideChar);
|
||||||
|
GetMem(DriveNames[i], len);
|
||||||
|
DriveNames[i]^:='\';
|
||||||
|
Move(fd.cFileName, DriveNames[i][1], len - SizeOf(WideChar));
|
||||||
|
Inc(i);
|
||||||
|
end;
|
||||||
|
until (i > 24) or not FindNextFile(h, fd);
|
||||||
|
Windows.FindClose(h);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
GetDriveName:=DriveNames[drive - 2];
|
||||||
|
end;
|
||||||
|
|
||||||
|
function diskfree(drive : byte) : int64;
|
||||||
|
var
|
||||||
|
disk: PWideChar;
|
||||||
|
qwtotal,qwfree,qwcaller : int64;
|
||||||
|
begin
|
||||||
|
disk:=GetDriveName(drive);
|
||||||
|
if (disk <> nil) and GetDiskFreeSpaceEx(disk, @qwcaller, @qwtotal, @qwfree) then
|
||||||
|
diskfree:=qwfree
|
||||||
|
else
|
||||||
|
diskfree:=-1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function disksize(drive : byte) : int64;
|
||||||
|
var
|
||||||
|
disk : PWideChar;
|
||||||
|
qwtotal,qwfree,qwcaller : int64;
|
||||||
|
begin
|
||||||
|
disk:=GetDriveName(drive);
|
||||||
|
if (disk <> nil) and GetDiskFreeSpaceEx(disk, @qwcaller, @qwtotal, @qwfree) then
|
||||||
|
disksize:=qwtotal
|
||||||
|
else
|
||||||
|
disksize:=-1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- Findfirst FindNext ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
Procedure StringToPchar (Var S : String);
|
||||||
|
Var L : Longint;
|
||||||
|
begin
|
||||||
|
L:=ord(S[0]);
|
||||||
|
Move (S[1],S[0],L);
|
||||||
|
S[L]:=#0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Procedure PCharToString (Var S : String);
|
||||||
|
Var L : Longint;
|
||||||
|
begin
|
||||||
|
L:=strlen(pchar(@S[0]));
|
||||||
|
Move (S[0],S[1],L);
|
||||||
|
S[0]:=char(l);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure FindMatch(var f:searchrec);
|
||||||
|
var
|
||||||
|
buf: array[0..MaxPathLen] of char;
|
||||||
|
begin
|
||||||
|
{ Find file with correct attribute }
|
||||||
|
While (F.W32FindData.dwFileAttributes and cardinal(F.ExcludeAttr))<>0 do
|
||||||
|
begin
|
||||||
|
if not FindNextFile (F.FindHandle, F.W32FindData) then
|
||||||
|
begin
|
||||||
|
DosError:=Last2DosError(GetLastError);
|
||||||
|
if DosError=2 then
|
||||||
|
DosError:=18;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ Convert some attributes back }
|
||||||
|
f.size:=F.W32FindData.NFileSizeLow;
|
||||||
|
f.attr:=WinToDosAttr(F.W32FindData.dwFileAttributes);
|
||||||
|
WinToDosTime(F.W32FindData.ftLastWriteTime,f.Time);
|
||||||
|
WideToAnsiBuf(@F.W32FindData.cFileName, -1, buf, SizeOf(buf));
|
||||||
|
f.Name:=StrPas(@buf);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure findfirst(const path : pathstr;attr : word;var f : searchRec);
|
||||||
|
var
|
||||||
|
buf: array[0..MaxPathLen] of WideChar;
|
||||||
|
begin
|
||||||
|
fillchar(f,sizeof(f),0);
|
||||||
|
{ no error }
|
||||||
|
doserror:=0;
|
||||||
|
F.Name:=Path;
|
||||||
|
F.Attr:=attr;
|
||||||
|
F.ExcludeAttr:=(not Attr) and ($1e); {hidden,sys,dir,volume}
|
||||||
|
StringToPchar(f.name);
|
||||||
|
|
||||||
|
{ FindFirstFile is a Win32 Call }
|
||||||
|
F.W32FindData.dwFileAttributes:=DosToWinAttr(f.attr);
|
||||||
|
AnsiToWideBuf(@f.Name, -1, buf, SizeOf(buf));
|
||||||
|
F.FindHandle:=FindFirstFile (buf, F.W32FindData);
|
||||||
|
|
||||||
|
If F.FindHandle = Invalid_Handle_value then
|
||||||
|
begin
|
||||||
|
DosError:=Last2DosError(GetLastError);
|
||||||
|
if DosError=2 then
|
||||||
|
DosError:=18;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
{ Find file with correct attribute }
|
||||||
|
FindMatch(f);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure findnext(var f : searchRec);
|
||||||
|
begin
|
||||||
|
{ no error }
|
||||||
|
doserror:=0;
|
||||||
|
if not FindNextFile (F.FindHandle, F.W32FindData) then
|
||||||
|
begin
|
||||||
|
DosError:=Last2DosError(GetLastError);
|
||||||
|
if DosError=2 then
|
||||||
|
DosError:=18;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
{ Find file with correct attribute }
|
||||||
|
FindMatch(f);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Procedure FindClose(Var f: SearchRec);
|
||||||
|
begin
|
||||||
|
If F.FindHandle <> Invalid_Handle_value then
|
||||||
|
Windows.FindClose(F.FindHandle);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- File ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
Function FSearch(path: pathstr; dirlist: string): pathstr;
|
||||||
|
var
|
||||||
|
i,p1 : longint;
|
||||||
|
s : searchrec;
|
||||||
|
newdir : pathstr;
|
||||||
|
begin
|
||||||
|
{ check if the file specified exists }
|
||||||
|
findfirst(path,anyfile and not(directory),s);
|
||||||
|
if doserror=0 then
|
||||||
|
begin
|
||||||
|
findclose(s);
|
||||||
|
fsearch:=path;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
{ No wildcards allowed in these things }
|
||||||
|
if (pos('?',path)<>0) or (pos('*',path)<>0) then
|
||||||
|
fsearch:=''
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
{ allow slash as backslash }
|
||||||
|
for i:=1 to length(dirlist) do
|
||||||
|
if dirlist[i]='/' then dirlist[i]:='\';
|
||||||
|
repeat
|
||||||
|
p1:=pos(';',dirlist);
|
||||||
|
if p1<>0 then
|
||||||
|
begin
|
||||||
|
newdir:=copy(dirlist,1,p1-1);
|
||||||
|
delete(dirlist,1,p1);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
newdir:=dirlist;
|
||||||
|
dirlist:='';
|
||||||
|
end;
|
||||||
|
if (newdir<>'') and (not (newdir[length(newdir)] in ['\',':'])) then
|
||||||
|
newdir:=newdir+'\';
|
||||||
|
findfirst(newdir+path,anyfile and not(directory),s);
|
||||||
|
if doserror=0 then
|
||||||
|
newdir:=newdir+path
|
||||||
|
else
|
||||||
|
newdir:='';
|
||||||
|
until (dirlist='') or (newdir<>'');
|
||||||
|
fsearch:=newdir;
|
||||||
|
end;
|
||||||
|
findclose(s);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ </immobilizer> }
|
||||||
|
|
||||||
|
procedure getftime(var f;var time : longint);
|
||||||
|
var
|
||||||
|
ft : TFileTime;
|
||||||
|
begin
|
||||||
|
doserror:=0;
|
||||||
|
if GetFileTime(filerec(f).Handle,nil,nil,@ft) and
|
||||||
|
WinToDosTime(ft,time) then
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
DosError:=Last2DosError(GetLastError);
|
||||||
|
time:=0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure setftime(var f;time : longint);
|
||||||
|
var
|
||||||
|
ft : TFileTime;
|
||||||
|
begin
|
||||||
|
doserror:=0;
|
||||||
|
if DosToWinTime(time,ft) and
|
||||||
|
SetFileTime(filerec(f).Handle,nil,nil,@ft) then
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
DosError:=Last2DosError(GetLastError);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure getfattr(var f;var attr : word);
|
||||||
|
var
|
||||||
|
l : longint;
|
||||||
|
buf: array[0..MaxPathLen] of WideChar;
|
||||||
|
begin
|
||||||
|
doserror:=0;
|
||||||
|
AnsiToWideBuf(@filerec(f).name, -1, buf, SizeOf(buf));
|
||||||
|
l:=GetFileAttributes(buf);
|
||||||
|
if l=longint($ffffffff) then
|
||||||
|
begin
|
||||||
|
doserror:=Last2DosError(GetLastError);
|
||||||
|
attr:=0;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
attr:=l and $ffff;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure setfattr(var f;attr : word);
|
||||||
|
var
|
||||||
|
buf: array[0..MaxPathLen] of WideChar;
|
||||||
|
begin
|
||||||
|
{ Fail for setting VolumeId }
|
||||||
|
if (attr and VolumeID)<>0 then
|
||||||
|
doserror:=5
|
||||||
|
else
|
||||||
|
AnsiToWideBuf(@filerec(f).name, -1, buf, SizeOf(buf));
|
||||||
|
if SetFileAttributes(buf,attr) then
|
||||||
|
doserror:=0
|
||||||
|
else
|
||||||
|
doserror:=Last2DosError(GetLastError);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{******************************************************************************
|
||||||
|
--- Environment ---
|
||||||
|
******************************************************************************}
|
||||||
|
|
||||||
|
// WinCE does not have environment. It can be emulated via registry or file. (YS)
|
||||||
|
|
||||||
|
function envcount : longint;
|
||||||
|
begin
|
||||||
|
envcount:=0; //!!! fixme
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function EnvStr (Index: longint): string;
|
||||||
|
begin
|
||||||
|
EnvStr:=''; //!!! fixme
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function GetEnv(envvar: string): string;
|
||||||
|
begin
|
||||||
|
GetEnv:=''; //!!! fixme
|
||||||
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
|
The environment is a block of zero terminated strings
|
||||||
|
terminated by a #0
|
||||||
|
}
|
||||||
|
(*
|
||||||
|
function envcount : longint;
|
||||||
|
var
|
||||||
|
hp,p : pchar;
|
||||||
|
count : longint;
|
||||||
|
begin
|
||||||
|
p:=GetEnvironmentStrings;
|
||||||
|
hp:=p;
|
||||||
|
count:=0;
|
||||||
|
while hp^<>#0 do
|
||||||
|
begin
|
||||||
|
{ next string entry}
|
||||||
|
hp:=hp+strlen(hp)+1;
|
||||||
|
inc(count);
|
||||||
|
end;
|
||||||
|
FreeEnvironmentStrings(p);
|
||||||
|
envcount:=count;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Function EnvStr (Index: longint): string;
|
||||||
|
var
|
||||||
|
hp,p : pchar;
|
||||||
|
count,i : longint;
|
||||||
|
begin
|
||||||
|
{ envcount takes some time in win32 }
|
||||||
|
count:=envcount;
|
||||||
|
|
||||||
|
{ range checking }
|
||||||
|
if (index<=0) or (index>count) then
|
||||||
|
begin
|
||||||
|
envstr:='';
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
p:=GetEnvironmentStrings;
|
||||||
|
hp:=p;
|
||||||
|
|
||||||
|
{ retrive the string with the given index }
|
||||||
|
for i:=2 to index do
|
||||||
|
hp:=hp+strlen(hp)+1;
|
||||||
|
|
||||||
|
envstr:=strpas(hp);
|
||||||
|
FreeEnvironmentStrings(p);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Function GetEnv(envvar: string): string;
|
||||||
|
var
|
||||||
|
s : string;
|
||||||
|
i : longint;
|
||||||
|
hp,p : pchar;
|
||||||
|
begin
|
||||||
|
getenv:='';
|
||||||
|
p:=GetEnvironmentStrings;
|
||||||
|
hp:=p;
|
||||||
|
while hp^<>#0 do
|
||||||
|
begin
|
||||||
|
s:=strpas(hp);
|
||||||
|
i:=pos('=',s);
|
||||||
|
if upcase(copy(s,1,i-1))=upcase(envvar) then
|
||||||
|
begin
|
||||||
|
getenv:=copy(s,i+1,length(s)-i);
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
{ next string entry}
|
||||||
|
hp:=hp+strlen(hp)+1;
|
||||||
|
end;
|
||||||
|
FreeEnvironmentStrings(p);
|
||||||
|
end;
|
||||||
|
*)
|
||||||
|
|
||||||
|
var
|
||||||
|
oldexitproc : pointer;
|
||||||
|
|
||||||
|
procedure dosexitproc;
|
||||||
|
var
|
||||||
|
i: LongInt;
|
||||||
|
begin
|
||||||
|
exitproc:=oldexitproc;
|
||||||
|
if DriveNames[1] <> nil then
|
||||||
|
for i:=1 to 24 do
|
||||||
|
if DriveNames[i] <> nil then
|
||||||
|
FreeMem(DriveNames[i])
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
oldexitproc:=exitproc;
|
||||||
|
exitproc:=@dosexitproc;
|
||||||
|
end.
|
@ -183,11 +183,31 @@ function WideCharToMultiByte(CodePage:UINT; dwFlags:DWORD; lpWideCharStr:PWideCh
|
|||||||
function AnsiToWideBuf(AnsiBuf: PChar; AnsiBufLen: longint; WideBuf: PWideChar; WideBufLen: longint): longint;
|
function AnsiToWideBuf(AnsiBuf: PChar; AnsiBufLen: longint; WideBuf: PWideChar; WideBufLen: longint): longint;
|
||||||
begin
|
begin
|
||||||
Result := MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, AnsiBuf, AnsiBufLen, WideBuf, WideBufLen);
|
Result := MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, AnsiBuf, AnsiBufLen, WideBuf, WideBufLen);
|
||||||
|
if ((AnsiBufLen <> -1) or (Result = 0)) and (WideBuf <> nil) then
|
||||||
|
begin
|
||||||
|
if (Result + 1)*SizeOf(WideChar) > WideBufLen then
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
if WideBufLen < SizeOf(WideChar) then
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
WideBuf[Result] := #0;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WideToAnsiBuf(WideBuf: PWideChar; WideBufLen: longint; AnsiBuf: PChar; AnsiBufLen: longint): longint;
|
function WideToAnsiBuf(WideBuf: PWideChar; WideBufLen: longint; AnsiBuf: PChar; AnsiBufLen: longint): longint;
|
||||||
begin
|
begin
|
||||||
Result := WideCharToMultiByte(CP_ACP, 0, WideBuf, WideBufLen, AnsiBuf, AnsiBufLen, nil, nil);
|
Result := WideCharToMultiByte(CP_ACP, 0, WideBuf, WideBufLen, AnsiBuf, AnsiBufLen, nil, nil);
|
||||||
|
if ((WideBufLen <> -1) or (Result = 0)) and (AnsiBuf <> nil) then
|
||||||
|
begin
|
||||||
|
if Result + 1 > AnsiBufLen then
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
if AnsiBufLen < 1 then
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
AnsiBuf[Result] := #0;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
@ -1186,7 +1206,7 @@ begin
|
|||||||
res := 218;
|
res := 218;
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if ((ExceptionRecord^.ExceptionCode and SEVERITY_ERROR) = SEVERITY_ERROR) then
|
if ((cardinal(ExceptionRecord^.ExceptionCode) and SEVERITY_ERROR) = SEVERITY_ERROR) then
|
||||||
res := 217
|
res := 217
|
||||||
else
|
else
|
||||||
res := 255;
|
res := 255;
|
||||||
|
Loading…
Reference in New Issue
Block a user