From 6a236a0f584a88482e40ae65a0cbb9d95f767627 Mon Sep 17 00:00:00 2001 From: Tomas Hajny Date: Thu, 10 Jun 1999 07:28:27 +0000 Subject: [PATCH] * compilable with TP again --- install/fpinst/install.pas | 10 +++-- install/fpinst/unzip.pas | 76 ++++++++++++++++++++++++++++++++++++- install/fpinst/unzipdll.pas | 6 ++- install/fpinst/ziptypes.pas | 7 +++- 4 files changed, 90 insertions(+), 9 deletions(-) diff --git a/install/fpinst/install.pas b/install/fpinst/install.pas index 6e3df19b5e..a81db31615 100644 --- a/install/fpinst/install.pas +++ b/install/fpinst/install.pas @@ -4,7 +4,7 @@ Copyright (c) 1993-98 by Florian Klaempfl member of the Free Pascal development team - This is the install program for the DOS version of Free Pascal + This is the install program for the DOS and OS/2 versions of Free Pascal See the file COPYING.FPC, included in this distribution, for details about the copyright. @@ -17,7 +17,7 @@ program install; {$DEFINE FV} (* TH - added to make use of the original Turbo Vision possible. *) -{ $DEFINE DLL} (* TH - if defined, UNZIP32.DLL library is used to unpack. *) +{$DEFINE DLL} (* TH - if defined, UNZIP32.DLL library is used to unpack. *) { $DEFINE DOSSTUB} (* TH - should _not_ be defined unless creating a bound DOS and OS/2 installer!!! *) (* Defining DOSSTUB causes adding a small piece of code *) (* for starting the OS/2 part from the DOS part of a bound *) @@ -930,7 +930,10 @@ begin end. { $Log$ - Revision 1.1 1999-02-19 16:45:26 peter + Revision 1.2 1999-06-10 07:28:27 hajny + * compilable with TP again + + Revision 1.1 1999/02/19 16:45:26 peter * moved to fpinst/ directory + makefile @@ -981,4 +984,3 @@ end. + version/release/patch numbers as string added } - \ No newline at end of file diff --git a/install/fpinst/unzip.pas b/install/fpinst/unzip.pas index 2fce4ad278..06cefc5fd0 100644 --- a/install/fpinst/unzip.pas +++ b/install/fpinst/unzip.pas @@ -2,6 +2,49 @@ $Id$ } 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 (OS/2, Win32) + * Free Pascal Compiler (DOS, OS/2, Win32, Linux) +} + +{ + 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) + v2.01a: December 1998: Tomas Hajny, XHajT03@mbox.vol.cz + * extended to support other 32-bit compilers/platforms (OS/2, GO32, ...); + search for (* TH ... *) + v2.01b: December 1998: Peter Vreman + * modifications needed for Linux +} + INTERFACE {$IFDEF FPC} @@ -285,6 +328,7 @@ CONST {Error codes returned by huft_build} huft_incomplete = 1; {Incomplete tree <- sufficient in some cases!} huft_error = 2; {bad tree constructed} huft_outofmem = 3; {not enough memory} +(* TH - use of the new BIT32 conditional (was WIN32 only previously) *) MaxMax = {$ifdef BIT32}256 * 1024 {BIT32 = 256kb buffer} {$else}Maxint -1{$endif}; {16-bit = 32kb buffer} @@ -718,7 +762,11 @@ BEGIN b := ( n = w ) AND ( ioresult = 0 ); {True-> alles ok} UpdateCRC ( iobuf ( pointer ( @slide [ 0 ] ) ^ ), w ); {--} +{$IFDEF FPC} IF ( b = TRUE ) AND Assigned(ZipReport) {callback report for high level functions} +{$ELSE} + IF ( b = TRUE ) AND ( @ZipReport <> NIL ) {callback report for high level functions} +{$ENDIF} THEN BEGIN WITH ZipRec DO BEGIN Status := file_unzipping; @@ -2083,7 +2131,11 @@ BEGIN b := ( n = write_ptr ) AND ( ioresult = 0 ); {True-> alles ok} UpdateCRC ( iobuf ( pointer ( @writebuf^ [ 0 ] ) ^ ), write_ptr ); {--} +{$IFDEF FPC} IF ( b = TRUE ) AND Assigned(ZipReport) {callback report for high level functions} +{$ELSE} + IF ( b = TRUE ) AND ( @ZipReport <> NIL ) {callback report for high level functions} +{$ENDIF} THEN BEGIN WITH ZipRec DO BEGIN Status := file_unzipping; @@ -2980,10 +3032,17 @@ VAR s : string [ 255 ]; BEGIN +{$IFDEF FPC} IF not assigned(Report) THEN Report := DummyReport; IF not assigned(Question) THEN Question := DummyQuestion; +{$ELSE} + IF @Report = nil THEN + Report := DummyReport; + IF @Question = nil THEN + Question := DummyQuestion; +{$ENDIF} Count := 0; rSize := 0; @@ -3135,9 +3194,13 @@ BEGIN rSize := 0; cSize := 0; Viewzip := unzip_MissingParameter; +{$IFDEF FPC} IF ( StrPas ( SourceZipFile ) = '' ) or not assigned(Report) THEN exit; +{$ELSE} + IF ( StrPas ( SourceZipFile ) = '' ) OR ( @Report = NIL ) THEN Exit; +{$ENDIF} Strcopy ( thename, SourceZipFile ); ViewZip := unzip_NotZipFile; @@ -3221,13 +3284,21 @@ END; { UnZipSize } {***************************************************************************} FUNCTION SetUnZipReportProc ( aProc : UnzipReportProc ) : Pointer; BEGIN +{$IFDEF FPC} SetUnZipReportProc := ZipReport; {save and return original} +{$ELSE} + SetUnZipReportProc := @ZipReport; {save and return original} +{$ENDIF} ZipReport := aProc; END; { SetUnZipReportProc } {***************************************************************************} FUNCTION SetUnZipQuestionProc ( aProc : UnzipQuestionProc ) : Pointer; BEGIN +{$IFDEF FPC} SetUnZipQuestionProc := ZipQuestion; {save and return original} +{$ELSE} + SetUnZipQuestionProc := @ZipQuestion; {save and return original} +{$ENDIF} ZipQuestion := aProc; END; { SetUnZipQuestionProc } {***************************************************************************} @@ -3257,7 +3328,10 @@ BEGIN END. { $Log$ - Revision 1.1 1999-02-19 16:45:26 peter + Revision 1.2 1999-06-10 07:28:28 hajny + * compilable with TP again + + Revision 1.1 1999/02/19 16:45:26 peter * moved to fpinst/ directory + makefile diff --git a/install/fpinst/unzipdll.pas b/install/fpinst/unzipdll.pas index d1569a3bc3..6ae731f8c6 100644 --- a/install/fpinst/unzipdll.pas +++ b/install/fpinst/unzipdll.pas @@ -41,7 +41,6 @@ uses type UzpMainFunc = function (ArgC: longint; var ArgV: TArgV): longint; -(* var ArgV ??? *) const {$IFDEF OS2} @@ -175,7 +174,10 @@ begin end. { $Log$ - Revision 1.1 1999-02-19 16:45:26 peter + Revision 1.2 1999-06-10 07:28:29 hajny + * compilable with TP again + + Revision 1.1 1999/02/19 16:45:26 peter * moved to fpinst/ directory + makefile diff --git a/install/fpinst/ziptypes.pas b/install/fpinst/ziptypes.pas index 865b12fa8b..0f43b7daf2 100644 --- a/install/fpinst/ziptypes.pas +++ b/install/fpinst/ziptypes.pas @@ -9,7 +9,7 @@ Type definitions for UNZIP and amended for Win32 by Dr Abimbola Olowofoyeku (The African Chief) Homepage: http://ourworld.compuserve.com/homepages/African_Chief - * extended to by Tomas Hajny, XHajT03@mbox.vol.cz to support other 32-bit + * extended by Tomas Hajny, XHajT03@mbox.vol.cz to support other 32-bit compilers/platforms (OS/2, GO32, ...); search for (* TH ... *) } @@ -202,7 +202,10 @@ END; END. { $Log$ - Revision 1.1 1999-02-19 16:45:26 peter + Revision 1.2 1999-06-10 07:28:30 hajny + * compilable with TP again + + Revision 1.1 1999/02/19 16:45:26 peter * moved to fpinst/ directory + makefile