Description

The patches here will update Zip 2.0 to use the Quetzal save-format. Once this has been done, the new version will not be able to load or save the old format files. The Quetzal patches require certain bugs in Zip which prevent it compiling on some versions of UNIX to have been fixed: suitable patches are included in the archives as "bugfix.diff".

Important!

Earlier versions of these patches had a bug in quetzal.c resulting in saved files having an incorrect stack segment. If you got the patches from here before 11 September 1997 then you have this bug. The versions below are fixed, or you can make the change yourself.
The last version had another bug in quetzal.c meaning that interpreters would crash when restoring games saved from a story of release exactly 6. This has now been fixed in the versions below. If you got the patches from here before 12 January 1998 then you have this bug.
Also, a further bug has been found in Zip, which may affect Quetzal behaviour. Details of this bug, and a fix, can be found here.

Contents of the archives

Instructions

To use the patches, download your preferred format and unpack it in the same directory as the main Zip source. Then apply the bug-fixes with (on UNIX):
patch -p0 bugfix.diff
Apply the Quetzal patches with (again, on UNIX):
patch -p0 quetzal.diff
Check if there are any files ending in ".rej": if there are, you'll have to do the patching yourself (this is very likely if you've changed the source yourself or if your source is not the same version I used to make the patches).
Now you must select your system type if you are using UNIX, by removing the hash sign from the beginning of a line in the Makefile, where indicated. You have three choices; one for BSD derivatives (such as SunOS3.x, SunOS4.x, OpenBSD, FreeBSD, NetBSD, Ultrix and the like); one for System-V derivatives (such as Solaris 2.x, IRIX 5.x, HP-UX 10.x, Digital UNIX and the like); and one for POSIX-compliant systems (which includes several of the above and also most versions of Linux).
Once you've done this, you must recompile, and then you can start using Quetzal save files.

How to get the patches

The patches are available in two different archive formats:
  • tar/gzip (.tgz) (7899 bytes)
  • zip (.zip) (9058 bytes)
  • Portability

    Zip has been patched, compiled and run successfully on SunOS 4.1.3 with Sun CC and GCC 2.7.2 (using BSD option), Solaris 2.5.1 with GCC 2.7.2.1 (using System V option), and Linux 2.0.0 with GCC 2.7.2.2 (using POSIX option).
    The version of quetzal.c here is the new, improved portability version. Previous versions included the "unistd.h" header file unnecessarily (this file is not a standard header file and is not present on all systems). The file compiles correctly without it, so it has been removed.

    Zip source code

    If you do not have the Zip source code, you can get it from the Interactive Fiction Archive. The patches were based on the UNIX, Amiga, VMS and MS-DOS compatible baseline version, but the slightly modified source code for Borland C under MS-DOS should work without too many changes. Other ports should be able to use the patches (and most should not need the bugfix.diff file) but the code may need patching by hand (use the patch files as a guide).

    Back to Home Page 1