Browse Source

* updates for 0.99.10

peter 27 years ago
parent
commit
9bc939fdd1

+ 7 - 6
install/debian/Makefile

@@ -3,21 +3,22 @@
 # Copyright (c) 1998 by the Free Pascal Development Team
 # Copyright (c) 1998 by the Free Pascal Development Team
 #############################################################################
 #############################################################################
 
 
+RELEASE=1 
+
+export RELEASE
+
 all:
 all:
-	make -C compiler cycle RELEASE=1
-	make -C rtl/linux all RELEASE=1
-	make -C rtl/utils all RELEASE=1
-#	make -C docs html
+	make -C compiler cycle
+	make -C rtl/linux all
+	make -C rtl/utils all
 
 
 install:
 install:
 	make -C compiler installlib
 	make -C compiler installlib
 	make -C rtl/linux install
 	make -C rtl/linux install
 	make -C rtl/linux libinstall PPUMOVE=../utils/ppumove
 	make -C rtl/linux libinstall PPUMOVE=../utils/ppumove
 	make -C rtl/utils install
 	make -C rtl/utils install
-#	make -C docs install
 
 
 clean:
 clean:
 	make -C compiler clean
 	make -C compiler clean
 	make -C rtl/utils clean
 	make -C rtl/utils clean
 	make -C rtl/linux libsclean
 	make -C rtl/linux libsclean
-#	make -C docs clean

+ 1 - 4
install/debian/README.debian

@@ -1,9 +1,6 @@
 Free Pascal for DEBIAN
 Free Pascal for DEBIAN
 ----------------------
 ----------------------
 
 
-This package is from the Free Pascal CVS:
-  :pserver:[email protected]:/usr/local/CVS
-
 The home page is http://tfdec1.fys.kuleuven.ac.be/~michael/fpc/
 The home page is http://tfdec1.fys.kuleuven.ac.be/~michael/fpc/
 
 
-Peter Vreman <[email protected]>, Tue, 10 Nov 1998 12:00:00 +0200
+Peter Vreman <[email protected]>, Tue, 20 Nov 1998 12:00:00 +0200

+ 2 - 2
install/debian/changelog

@@ -1,8 +1,8 @@
-fpc (0.99.9-1) unstable; urgency=low
+fpc (0.99.10-1) unstable; urgency=low
 
 
   * Initial Release.
   * Initial Release.
 
 
- -- Peter Vreman <[email protected]>  Tue, 10 Nov 1998 12:00:00 +0200
+ -- Peter Vreman <[email protected]>  Tue, 20 Dec 1998 12:00:00 +0200
 
 
 Local variables:
 Local variables:
 mode: debian-changelog
 mode: debian-changelog

+ 1 - 1
install/debian/control

@@ -1,7 +1,7 @@
 Source: fpc
 Source: fpc
 Section: devel
 Section: devel
 Priority: optional
 Priority: optional
-Maintainer: root <root@cooldown.demon.nl>
+Maintainer: Peter Vreman <pfv@cooldown.demon.nl>
 Standards-Version: 2.4.1.2
 Standards-Version: 2.4.1.2
 
 
 Package: fpc
 Package: fpc

+ 1 - 1
install/debian/copyright

@@ -2,7 +2,7 @@ The package was originally put together by:
   Peter Vreman <[email protected]>
   Peter Vreman <[email protected]>
 
 
 From sources obtained from:
 From sources obtained from:
-  tflily.fys.kuleuven.ac.be/pub/fpc/dist/linux/fpc-0.99.9.tar.gz
+  tflily.fys.kuleuven.ac.be/pub/fpc/dist/linux/fpc-0.99.10.tar.gz
 
 
 
 
    This program is free software; you can redistribute it and/or modify
    This program is free software; you can redistribute it and/or modify

+ 2 - 2
install/debian/postinst

@@ -1,10 +1,10 @@
 #! /bin/sh
 #! /bin/sh
 
 
 # create link
 # create link
-ln -sf /usr/lib/fpc/0.99.9/ppc386 /usr/bin/ppc386
+ln -sf /usr/lib/fpc/0.99.10/ppc386 /usr/bin/ppc386
 
 
 # create /etc/ppc386.cfg
 # create /etc/ppc386.cfg
-/usr/lib/fpc/0.99.9/samplecfg `dirname \`find /usr/lib/gcc-lib/ -name libgcc.a -print | grep -v egcs \``
+/usr/lib/fpc/0.99.10/samplecfg /usr/lib/fpc/0.99.10 `dirname \`find /usr/lib/gcc-lib/ -name libgcc.a -print | grep -v egcs \``
 
 
 # update ld.so cache
 # update ld.so cache
 ldconfig
 ldconfig

+ 1 - 1
install/fpc-0.99.10.spec

@@ -41,7 +41,7 @@ make -C rtl/utils clean
 make -C rtl/linux libsclean
 make -C rtl/linux libsclean
 
 
 %post
 %post
-%{vlibdir}/samplecfg `dirname \`find /usr/lib/gcc-lib/ -name libgcc.a -print | grep -v egcs \``
+%{vlibdir}/samplecfg %{vlibdir} `dirname \`find /usr/lib/gcc-lib/ -name libgcc.a -print | grep -v egcs \``
 ldconfig
 ldconfig
 
 
 %files
 %files

+ 0 - 59
install/fpc-0.99.8.spec

@@ -1,59 +0,0 @@
-Name: fpc
-Version: 0.99.8
-Release: 2
-ExclusiveArch: i386
-Copyright: GPL
-Group: Development/Languages
-Source: fpc-0.99.8-src.tar.gz
-Summary: Free Pascal Compiler
-Packager: Michael Van Canneyt ([email protected])
-URL: http://tfdec1.fys.kuleuven.ac.be/~michael/fpc/fpc.html
-
-%description	
-The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi II compatible
-32bit Pascal Compiler. It comes with fully TP 7.0 compatible run-time library.
-Some extensions are added to the language, like function overloading. Shared
-and static libraries can be linked and created. Linking with C libraries is
-easy, so interfaces can be written fast. 
-
-%define package fpc-%{PACKAGE_VERSION}
-%define bindir /usr/bin
-%define libdir /usr/lib/fpc
-%define vlibdir %{libdir}/%{PACKAGE_VERSION}
-%define unitdir %{vlibdir}/linuxunits
-%define docdir /usr/doc/%{package}
-
-%prep
-%setup -c
-
-%build
-make -C compiler cycle RELEASE=1
-make -C rtl/utils all RELEASE=1
-make -C docs html
-
-%install
-make -C compiler install BININSTALLDIR=%{bindir} LIBINSTALLDIR=%{vlibdir}
-make -C rtl/linux install UNITINSTALLDIR=%{unitdir}
-make -C rtl/linux libinstall UNITINSTALLDIR=%{unitdir} PPUMOVE=../utils/ppumove
-make -C rtl/utils install BININSTALLDIR=%{bindir} UNITINSTALLDIR=%{unitdir}
-make -C docs install DOCINSTALLDIR=%{docdir}
-
-%clean
-make -C compiler clean
-make -C rtl/utils clean
-make -C rtl/linux libsclean
-make -C docs clean
-
-%post
-%{vlibdir}/samplecfg `dirname \`find /usr/lib/gcc-lib/ -name libgcc.a -print | grep -v egcs \``
-ldconfig
-
-%files
-%{bindir}/ppc386
-%{bindir}/ppudump
-%{bindir}/ppumove
-%{bindir}/h2pas
-%{vlibdir}
-/usr/lib/libfpc.so
-%dir %{libdir}
-%doc %{docdir}

+ 30 - 4
install/install.pas

@@ -170,7 +170,10 @@ program install;
 
 
   function createdir(var s : string) : boolean;
   function createdir(var s : string) : boolean;
     var
     var
-      result : longint;
+      start,
+      s1 : string;
+      i,result : longint;
+      err : boolean;
       dir : searchrec;
       dir : searchrec;
       params : array[0..0] of pointer;
       params : array[0..0] of pointer;
     begin
     begin
@@ -186,10 +189,30 @@ program install;
             createdir:=(result=cmNo);
             createdir:=(result=cmNo);
             exit;
             exit;
          end;
          end;
+       err:=false;
        {$I-}
        {$I-}
-        mkdir(s);
+       getdir(0,start);	 
+       repeat
+         i:=Pos(DirSep,s);
+	 if i=0 then
+	  i:=255;
+         s1:=Copy(s,1,i-1);
+	 Delete(s,1,i);
+	 ChDir(s1);
+	 if ioresult<>0 then
+	  begin
+	    mkdir(s1);
+	    chdir(s1);
+	    if ioresult<>0 then
+	     begin
+	       err:=true;
+  	       break;
+	     end;  
+	  end;
+       until s='';
+       chdir(start);	 
        {$I+}
        {$I+}
-       if ioresult<>0 then
+       if err then
          begin
          begin
             params[0]:=@s;
             params[0]:=@s;
             messagebox('The installation directory %s couldn''t be created',
             messagebox('The installation directory %s couldn''t be created',
@@ -597,7 +620,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.12  1998-12-16 00:25:34  peter
+  Revision 1.13  1998-12-21 13:11:39  peter
+    * updates for 0.99.10
+
+  Revision 1.12  1998/12/16 00:25:34  peter
     * updated for 0.99.10
     * updated for 0.99.10
     * new end dialogbox
     * new end dialogbox
 
 

+ 17 - 22
install/makecfg

@@ -8,18 +8,11 @@
 #
 #
 #   Needs 4 Arguments:
 #   Needs 4 Arguments:
 #    $1 = filename to create
 #    $1 = filename to create
-#    $2 = Path to the RTL Units (with subdirs /linuxunits /sharedunits /staticunits)
-#    $3 = Path to the .msg files
-#    $4 = Path to the GCC lib
 #
 #
-if [ $# != 4 ]; then
+if [ $# != 1 ]; then
   echo 'Usage :'
   echo 'Usage :'
-  echo 'makecfg filename rtlpath msgpath libgccpath'
+  echo 'makecfg filename'
   echo 'filename   = filename to create'
   echo 'filename   = filename to create'
-  echo 'rtlpath    = Path to the RTL Units'
-  echo '             (with subdirs /linuxunits /sharedunits /staticunits)'
-  echo 'msgpath    = Path to the .msg files'
-  echo 'libgccpath = Path to the GCC lib'
   exit 1
   exit 1
 fi
 fi
 cat <<EOFCREATE >$1
 cat <<EOFCREATE >$1
@@ -27,6 +20,13 @@ cat <<EOFCREATE >$1
 #
 #
 #  Generate Free Pascal configuration file
 #  Generate Free Pascal configuration file
 #
 #
+if [ \$# != 2 ]; then
+  echo 'Usage :'
+  echo 'samplecfg basepath libgccpath'
+  echo 'basepath   = Path where FPC is installed'
+  echo 'libgccpath = Path to the GCC lib'
+  exit 1
+fi
 if [ -f /etc/ppc386.cfg ] ; then
 if [ -f /etc/ppc386.cfg ] ; then
   mv /etc/ppc386.cfg /etc/ppc386.orig  >/dev/null 2>&1
   mv /etc/ppc386.cfg /etc/ppc386.orig  >/dev/null 2>&1
   if [ \$? == 0 ]; then
   if [ \$? == 0 ]; then
@@ -38,10 +38,7 @@ fi
 echo Writing sample configuration file to /etc/ppc386.cfg
 echo Writing sample configuration file to /etc/ppc386.cfg
 cat <<EOFCFG > /etc/ppc386.cfg
 cat <<EOFCFG > /etc/ppc386.cfg
 #
 #
-# Example ppc386.cfg for Free Pascal Compiler Version 0.99.8
-#
-# Possible argument:
-#  \$1 = path to libgcc.a
+# Example ppc386.cfg for Free Pascal Compiler Version 0.99.10
 #
 #
 
 
 # ----------------------
 # ----------------------
@@ -99,10 +96,9 @@ cat <<EOFCFG > /etc/ppc386.cfg
 # -So   tries to be TP/BP 7.0 compatible
 # -So   tries to be TP/BP 7.0 compatible
 # -Ss   constructor name must be init (destructor must be done)
 # -Ss   constructor name must be init (destructor must be done)
 # -St   allows static keyword in objects
 # -St   allows static keyword in objects
-# -Sv   allow C-variablen
 
 
 # Allow goto, inline, C-operators, C-vars
 # Allow goto, inline, C-operators, C-vars
--Sgicv
+-Sgic
 
 
 # ---------------
 # ---------------
 # Code generation
 # Code generation
@@ -147,12 +143,11 @@ cat <<EOFCFG > /etc/ppc386.cfg
 
 
 # path to the messagefile, not necessary anymore but can be used to override
 # path to the messagefile, not necessary anymore but can be used to override
 # the default language
 # the default language
-#-Fr$3/errore.msg
-#-Fr$3/errorn.msg
+#-Fr\$2/msg/errore.msg
+#-Fr\$2/msg/errorn.msg
 
 
 # path to the gcclib
 # path to the gcclib
-#-Fg$4
--Fg\$1
+-Fg\$2
 
 
 # searchpath for includefiles
 # searchpath for includefiles
 #-Fi/pp/inc;/pp/rtl/inc
 #-Fi/pp/inc;/pp/rtl/inc
@@ -160,14 +155,14 @@ cat <<EOFCFG > /etc/ppc386.cfg
 # searchpath for units (does the same as -Up)
 # searchpath for units (does the same as -Up)
 # For statically, smartlinked units
 # For statically, smartlinked units
 #IFDEF FPC_LINK_STATIC
 #IFDEF FPC_LINK_STATIC
--Fu$2/staticunits
+-Fu\$1/staticunits
 #ENDIF
 #ENDIF
 # For Dynamically linked units
 # For Dynamically linked units
 #IFDEF FPC_LINK_DYNAMIC
 #IFDEF FPC_LINK_DYNAMIC
--Fu$2/sharedunits
+-Fu\$1/sharedunits
 #ENDIF
 #ENDIF
 # For normal units
 # For normal units
--Fu$2/linuxunits
+-Fu\$1/linuxunits
 #-Fu/pp/units;/pp/rtl/dos/go32v2
 #-Fu/pp/units;/pp/rtl/dos/go32v2
 #-Fu/usr/lib/ppc/units;/usr/lib/ppc/linuxunits
 #-Fu/usr/lib/ppc/units;/usr/lib/ppc/linuxunits
 
 

+ 9 - 9
install/readme.txt

@@ -1,7 +1,7 @@
 
 
                             Free Pascal Compiler
                             Free Pascal Compiler
 
 
-                               Version 0.99.8
+                               Version 0.99.10
 
 
 
 
 ****************************************************************************
 ****************************************************************************
@@ -35,7 +35,7 @@ The current version is only an evaluation version.
 
 
 Quick start
 Quick start
 -----------
 -----------
-Download dos09908.zip and unzip it into a temporary directory.
+Download dos09910.zip and unzip it into a temporary directory.
 
 
 Start the install program INSTALL.EXE and follow the instructions.
 Start the install program INSTALL.EXE and follow the instructions.
 
 
@@ -55,7 +55,7 @@ All standard packages contain a part that is specific for the target platform
 and a few files which are target independent. All files are also available
 and a few files which are target independent. All files are also available
 as separate files to reduce file size if the default file is too big.
 as separate files to reduce file size if the default file is too big.
 
 
-dos09908.zip specific:
+dos09910.zip specific:
 ----------------------
 ----------------------
   basego32.zip    contains a DOS (Go32V2) compiler, run time library and
   basego32.zip    contains a DOS (Go32V2) compiler, run time library and
                   additional files.
                   additional files.
@@ -66,7 +66,7 @@ dos09908.zip specific:
       Strip 2.8.1 for Go32V2
       Strip 2.8.1 for Go32V2
   gdbgo32.zip     contains the GNU Debugger 4.16 for Go32V2
   gdbgo32.zip     contains the GNU Debugger 4.16 for Go32V2
 
 
-w3209908.zip specific:
+w3209910.zip specific:
 ----------------------
 ----------------------
   basew32.zip     contains a Win32 compiler, run time library and
   basew32.zip     contains a Win32 compiler, run time library and
                   additional files.
                   additional files.
@@ -78,7 +78,7 @@ w3209908.zip specific:
       Strip 980119 for Win32
       Strip 980119 for Win32
   gdbw32.zip      contains the GNU Debugger 4.16.1 for Win32
   gdbw32.zip      contains the GNU Debugger 4.16.1 for Win32
 
 
-common files in dos09908.zip and w3209908.zip:
+common files in dos09910.zip and w3209910.zip:
 ----------------------------------------------
 ----------------------------------------------
   gnuutils.zip    contains additional GNU utilities which are neccessary to
   gnuutils.zip    contains additional GNU utilities which are neccessary to
                   compile the run time library:
                   compile the run time library:
@@ -96,11 +96,11 @@ common files in dos09908.zip and w3209908.zip:
   readme.txt      this readme file
   readme.txt      this readme file
   whatsnew.txt    what's been changed
   whatsnew.txt    what's been changed
 
 
-Optional source package src09908.zip:
+Optional source package src09910.zip:
 -------------------------------------
 -------------------------------------
-  pp09908s.zip    contains the compiler sources
-  rl09908s.zip    contains the run time library sources
-  doc110s.zip     contains the TeX sources of the doc
+  pp09910s.zip    contains the compiler sources
+  rl09910s.zip    contains the run time library sources
+  doc120s.zip     contains the TeX sources of the doc
 
 
 
 
 ****************************************************************************
 ****************************************************************************

+ 20 - 48
install/unzip.pas

@@ -1,41 +1,4 @@
 UNIT Unzip;
 UNIT Unzip;
-{
-Unzips deflated, imploded, shrunk and stored files
-  ** COMPATIBLE WITH
-        * Turbo Pascal v7.x     (DOS)
-        * Borland Pascal v7.x   (Dos, DPMI, and Windows)
-        * Delphi v1.x
-        * Delphi v2.x
-        * Delphi v3.x
-        * Virtual Pascal v2.0   (Win32)
-}
-
-{
-  Original version (1.x): Christian Ghisler
-   C code by info-zip group, translated to pascal by Christian Ghisler
-   based on unz51g.zip;
-   Special thanks go to Mark Adler,who wrote the main inflate and
-   explode code, and did NOT copyright it!!!
-
- v2.00: March 1998: Dr Abimbola Olowofoyeku (The African Chief)
-        Homepage: http://ourworld.compuserve.com/homepages/African_Chief
-   * modified to compile for Delphi v2.x and Delphi v3.x
-
- v2.01: April 1998: Dr Abimbola Olowofoyeku (The African Chief)
-   * source files merged into a single source (this) file
-   * several high level functions added - i.e.,
-              FileUnzip()
-              FileUnzipEx()
-              ViewZip()
-              UnzipSize()
-              SetUnzipReportProc()
-              SetUnzipQuestionProc()
-              ChfUnzip_Init()
-   * callbacks added
-   * modified to support Virtual Pascal v2.0 (Win32)
-   * Delphi component added (chfunzip.pas)
-}
-
 INTERFACE
 INTERFACE
 
 
 {$IFNDEF FPC}
 {$IFNDEF FPC}
@@ -2297,7 +2260,9 @@ FUNCTION unzipfile ( in_name : pchar;out_name : pchar;offset : longint;
 VAR err : integer;
 VAR err : integer;
     header : plocalheader;
     header : plocalheader;
     buf : ARRAY [ 0..80 ] of char;
     buf : ARRAY [ 0..80 ] of char;
+{$ifndef linux}
     buf0 : ARRAY [ 0..3 ] of char;
     buf0 : ARRAY [ 0..3 ] of char;
+{$endif}
     timedate : longint;
     timedate : longint;
     originalcrc : longint;    {crc from zip-header}
     originalcrc : longint;    {crc from zip-header}
     ziptype, aResult : integer;
     ziptype, aResult : integer;
@@ -2403,17 +2368,17 @@ BEGIN
   {$I+}
   {$I+}
   err := ioresult;
   err := ioresult;
   {create directories not yet in path}
   {create directories not yet in path}
-  isadir := ( out_name [ strlen ( out_name ) -1 ] = '/' )
-       OR ( out_name [ strlen ( out_name ) -1 ] = '\' );
+  isadir := ( out_name [ strlen ( out_name ) -1 ] in ['/','\'] );
   IF ( err = 3 ) OR isadir THEN BEGIN  {path not found}
   IF ( err = 3 ) OR isadir THEN BEGIN  {path not found}
     {$I-}
     {$I-}
     getdir ( 0, oldcurdir );
     getdir ( 0, oldcurdir );
     {$I+}
     {$I+}
     err := ioresult;
     err := ioresult;
     strcopy ( buf, out_name );
     strcopy ( buf, out_name );
-    p1 := strrscan ( buf, '\' );
+    p1 := strrscan ( buf, DirSep );
     IF p1 <> NIL THEN inc ( p1 );  {pointer to filename}
     IF p1 <> NIL THEN inc ( p1 );  {pointer to filename}
-    p := strtok ( buf, '\' );
+    p := strtok ( buf, DirSep );
+{$ifndef linux}
     IF ( p <> NIL ) AND ( p [ 1 ] = ':' ) THEN BEGIN
     IF ( p <> NIL ) AND ( p [ 1 ] = ':' ) THEN BEGIN
       strcopy ( buf0, 'c:\' );    {set drive}
       strcopy ( buf0, 'c:\' );    {set drive}
       buf0 [ 0 ] := p [ 0 ];
       buf0 [ 0 ] := p [ 0 ];
@@ -2425,8 +2390,9 @@ BEGIN
       {$I+}
       {$I+}
       err := ioresult;
       err := ioresult;
       {$endif}
       {$endif}
-      p := strtok ( NIL, '\' );
+      p := strtok ( p, '\' );
     END;
     END;
+{$endif}
     WHILE ( p <> NIL ) AND ( p <> p1 ) DO BEGIN
     WHILE ( p <> NIL ) AND ( p <> p1 ) DO BEGIN
       {$ifdef windows}
       {$ifdef windows}
        {$ifdef Delphi}
        {$ifdef Delphi}
@@ -2461,7 +2427,7 @@ BEGIN
           err := ioresult;
           err := ioresult;
       END;
       END;
       IF err = 0 THEN
       IF err = 0 THEN
-        p := strtok ( NIL, '\' )
+        p := strtok ( p, DirSep )
       ELSE
       ELSE
         p := NIL;
         p := NIL;
     END;
     END;
@@ -2649,11 +2615,17 @@ BEGIN
   buf^ [ offs ] := #0;  {Repair signature of next block!}
   buf^ [ offs ] := #0;  {Repair signature of next block!}
   strlcopy ( filename, pchar ( @buf^ [ localstart + sizeof ( header^ ) ] ), sizeof ( filename ) -1 );
   strlcopy ( filename, pchar ( @buf^ [ localstart + sizeof ( header^ ) ] ), sizeof ( filename ) -1 );
   buf^ [ offs ] := old;
   buf^ [ offs ] := old;
+{$ifndef linux}
   REPEAT           {Convert slash to backslash!}
   REPEAT           {Convert slash to backslash!}
     p := strscan ( filename, '/' );
     p := strscan ( filename, '/' );
     IF p <> NIL THEN p [ 0 ] := '\';
     IF p <> NIL THEN p [ 0 ] := '\';
   UNTIL p = NIL;
   UNTIL p = NIL;
-
+{$else}
+  REPEAT           {Convert backslash to slash!}
+    p := strscan ( filename, '\' );
+    IF p <> NIL THEN p [ 0 ] := '/';
+  UNTIL p = NIL;
+{$endif}
   incr := header^.filename_len + header^.extra_field_len +
   incr := header^.filename_len + header^.extra_field_len +
         header^.file_comment_len + sizeof ( header^ );
         header^.file_comment_len + sizeof ( header^ );
   IF incr <= 0 THEN BEGIN
   IF incr <= 0 THEN BEGIN
@@ -2847,7 +2819,7 @@ BEGIN
     AND ( strpos ( filename, '.exe' ) = NIL ) THEN BEGIN
     AND ( strpos ( filename, '.exe' ) = NIL ) THEN BEGIN
     strcopy ( myname, filename );
     strcopy ( myname, filename );
     l := strlen ( myname );
     l := strlen ( myname );
-    IF myname [ l -1 ] = '\' THEN myname [ l -1 ] := #0;
+    IF myname [ l -1 ] = DirSep THEN myname [ l -1 ] := #0;
     {$I-}
     {$I-}
     chdir ( Strpas ( myname ) );
     chdir ( Strpas ( myname ) );
     {$I+}
     {$I+}
@@ -2995,8 +2967,8 @@ BEGIN
 
 
   Strcopy ( thename, SourceZipFile );
   Strcopy ( thename, SourceZipFile );
   Strcopy ( target, TargetDirectory );
   Strcopy ( target, TargetDirectory );
-  IF ( target [ 0 ] <> #0 ) AND ( target [ strlen ( target ) -1 ] <> '\' )
-  THEN strcat ( target, '\' );
+  IF ( target [ 0 ] <> #0 ) AND ( target [ strlen ( target ) -1 ] <> DirSep )
+  THEN strcat ( target, DirSep );
   FileUnzip := unzip_NotZipFile;
   FileUnzip := unzip_NotZipFile;
   IF NOT iszip ( thename ) THEN exit;
   IF NOT iszip ( thename ) THEN exit;
 
 
@@ -3034,7 +3006,7 @@ BEGIN
 
 
       WITH ZipRec DO BEGIN { report start of file }
       WITH ZipRec DO BEGIN { report start of file }
            s := StrPas ( Buf );
            s := StrPas ( Buf );
-           IsaDir := s [ length ( s ) ] = '\';
+           IsaDir := s [ length ( s ) ] = DirSep;
            Time := r.Time;
            Time := r.Time;
            Size := r.Size;
            Size := r.Size;
            CompressSize := r.CompressSize;
            CompressSize := r.CompressSize;

+ 33 - 1
install/whatsnew.txt

@@ -1,9 +1,41 @@
 
 
                             Free Pascal Compiler
                             Free Pascal Compiler
 
 
-                               Version 0.99.8
+                               Version 0.99.10
 
 
+******************************************************************************
+                            Whats New in 0.99.10
+******************************************************************************
+
+Compiler:
+  + better optimizer
+  + ansistring support
+  + array of const support for FormatStr
+  + automatic heaptrc unit including with the -gh option
+  + open strings ($P+) support
+  + DLL generation for Win32
+  + printf support for cdecl using array of const
+  * exceptions are finally working
+  * fixed some ppu problems
+  * fixed unit interdependency problems
+  * better range checking, also for enums
+  * size of objects without virtuals is now the same as tp7
+  * lot of fixes for the assembler readers
+  * more constant expression evalutations
+  * removed all memoryleaks
+  * almost all reported bugs are fixed
+  
+RTL:
+  + heaptrc unit to detect memoryleaks and other problems with the heap
+  + graph unit works and some missing functions are added
+  * objects unit fully works
+  * more functions for the classes,sysutils unit
 
 
+Utils:
+  * ppudump updated for new ppu entries  
+  * h2pas updated to write new cdecl declaration
+  
+  
 ******************************************************************************
 ******************************************************************************
                             Whats New in 0.99.8
                             Whats New in 0.99.8
 ******************************************************************************
 ******************************************************************************

+ 35 - 47
install/ziptypes.pas

@@ -1,35 +1,26 @@
 UNIT ziptypes;
 UNIT ziptypes;
-{
-Type definitions for UNZIP
-  * original version by Christian Ghisler
-  * extended
-    and
-    amended for Win32 by Dr Abimbola Olowofoyeku (The African Chief)
- Homepage: http://ourworld.compuserve.com/homepages/African_Chief
-}
-
 INTERFACE
 INTERFACE
 
 
-{$ifdef Win32}
-TYPE
-nWord   = longint;
-{$else Win32}
-TYPE
-nWord = Word;
-{$endif Win32}
-
-{$ifdef VirtualPascal}
 TYPE
 TYPE
-Integer = Longint; // Default Integer is 16 bit!
-{$endif VirtualPascal}
+  nWord = Longint;
+  Integer = Longint;
 
 
 CONST
 CONST
-tBufSize = {$ifdef Win32}256{$else}63{$endif} * 1024;   {buffer size}
-tFSize   = {$ifdef Win32}259{$else}79{$endif};          {filename length}
+  tBufSize = 256*1024;     {buffer size}
+  tFSize   = 255;          {filename length}
+
+{$ifdef linux}
+  DirSep = '/';
+{$else}
+  DirSep = '\';
+{$endif}
+
 
 
 { Record for UNZIP }
 { Record for UNZIP }
-TYPE buftype  = ARRAY [ 0..tBufSize ] of char;
-TYPE TDirtype = ARRAY [ 0..tFSize ] of char;
+TYPE
+     buftype  = ARRAY [ 0..tBufSize ] of char;
+     TDirtype = ARRAY [ 0..tFSize ] of char;
+
      TZipRec = PACKED RECORD
      TZipRec = PACKED RECORD
        buf : ^buftype;        {please}         {buffer containing central dir}
        buf : ^buftype;        {please}         {buffer containing central dir}
        bufsize,               {do not}         {size of buffer}
        bufsize,               {do not}         {size of buffer}
@@ -44,9 +35,8 @@ TYPE TDirtype = ARRAY [ 0..tFSize ] of char;
      END; { TZipRec }
      END; { TZipRec }
 
 
 { record for callback progress Reports, etc. }
 { record for callback progress Reports, etc. }
-TYPE
-pReportRec = ^TReportRec;     {passed to callback functions}
-TReportRec = PACKED RECORD
+     pReportRec = ^TReportRec;     {passed to callback functions}
+     TReportRec = PACKED RECORD
        FileName : tdirtype;   {name of individual file}
        FileName : tdirtype;   {name of individual file}
        Time,                  {date and time stamp of individual file}
        Time,                  {date and time stamp of individual file}
        Size,                  {uncompressed and time stamp of individual file}
        Size,                  {uncompressed and time stamp of individual file}
@@ -56,22 +46,21 @@ TReportRec = PACKED RECORD
        Ratio : byte;          {compression ratio of individual file}
        Ratio : byte;          {compression ratio of individual file}
        Status : longint;      {callback status code to show where we are}
        Status : longint;      {callback status code to show where we are}
        IsaDir : Boolean;      {is this file a directory?}
        IsaDir : Boolean;      {is this file a directory?}
-END; {TReportRec}
+     END; {TReportRec}
 
 
 { callback status codes }
 { callback status codes }
 CONST
 CONST
-file_starting    = -1000;  {beginning the unzip process; file}
-file_unzipping   = -1001;  {continuing the unzip process; file}
-file_completed   = -1002;  {completed the unzip process; file}
-file_Failure     = -1003;  {failure in unzipping file}
-unzip_starting   = -1004;  {starting with a new ZIP file}
-unzip_completed  = -1005;  {completed this ZIP file}
+  file_starting    = -1000;  {beginning the unzip process; file}
+  file_unzipping   = -1001;  {continuing the unzip process; file}
+  file_completed   = -1002;  {completed the unzip process; file}
+  file_Failure     = -1003;  {failure in unzipping file}
+  unzip_starting   = -1004;  {starting with a new ZIP file}
+  unzip_completed  = -1005;  {completed this ZIP file}
 
 
 
 
 { procedural types for callbacks }
 { procedural types for callbacks }
 TYPE
 TYPE
-UnzipReportProc  = PROCEDURE ( Retcode : longint;Rec : pReportRec );
-{$ifdef Delphi32}STDCALL;{$endif}
+  UnzipReportProc  = PROCEDURE ( Retcode : longint;Rec : pReportRec );
 { procedural type for "Report" callback: the callback function
 { procedural type for "Report" callback: the callback function
   (if any) is called several times during the unzip process
   (if any) is called several times during the unzip process
 
 
@@ -96,7 +85,6 @@ UnzipReportProc  = PROCEDURE ( Retcode : longint;Rec : pReportRec );
 }
 }
 
 
 UnzipQuestionProc = FUNCTION ( Rec : pReportRec ) : Boolean;
 UnzipQuestionProc = FUNCTION ( Rec : pReportRec ) : Boolean;
-{$ifdef Delphi32}STDCALL;{$endif}
 { procedural type for "Question" callback:if a file already
 { procedural type for "Question" callback:if a file already
   exists, the callback (if any) will be called to ask whether
   exists, the callback (if any) will be called to ask whether
   the file should be overwritten by the one in the ZIP file;
   the file should be overwritten by the one in the ZIP file;
@@ -131,28 +119,28 @@ CONST
 
 
 { the various unzip methods }
 { the various unzip methods }
 CONST
 CONST
-Unzipmethods : ARRAY [ 0..9 ] of pchar =
-  ( 'stored', 'shrunk', 'reduced 1', 'reduced 2', 'reduced 3',
-   'reduced 4', 'imploded', 'tokenized', 'deflated', 'skipped' );
+  Unzipmethods : ARRAY [ 0..9 ] of pchar =
+   ( 'stored', 'shrunk', 'reduced 1', 'reduced 2', 'reduced 3',
+     'reduced 4', 'imploded', 'tokenized', 'deflated', 'skipped' );
 
 
 { unzip actions being undertaken }
 { unzip actions being undertaken }
-CONST
-UnzipActions : ARRAY [ 0..9 ] of pchar =
-  ( 'copying', 'unshrinking', 'unreducing 1', 'unreducing 2', 'unreducing 3',
-   'unreducing 4', 'exploding', 'un-tokenizing', 'inflating', 'skipping' );
+  UnzipActions : ARRAY [ 0..9 ] of pchar =
+   ( 'copying', 'unshrinking', 'unreducing 1', 'unreducing 2', 'unreducing 3',
+     'unreducing 4', 'exploding', 'un-tokenizing', 'inflating', 'skipping' );
 
 
 { rudimentary "uppercase" function }
 { rudimentary "uppercase" function }
-FUNCTION Upper ( s : String ) : String;
+FUNCTION Upper (s : String ) : String;
 
 
 { remove path and return filename only }
 { remove path and return filename only }
 FUNCTION StripPath ( CONST s : String ) : String;
 FUNCTION StripPath ( CONST s : String ) : String;
 
 
 IMPLEMENTATION
 IMPLEMENTATION
 
 
-FUNCTION Upper ( s : String ) : String;
+FUNCTION Upper (s : String ) : String;
 VAR i : integer;
 VAR i : integer;
 BEGIN
 BEGIN
-   FOR i := 1 TO length ( s ) DO s [ i ] := Upcase ( s [ i ] );
+   FOR i := 1 TO length ( s ) DO
+     s [ i ] := Upcase ( s [ i ] );
    Upper := s;
    Upper := s;
 END;
 END;