A free Macintosh Port of Info-ZIP's
Zip and UnZip
By Dirk Haase, d_haase@sitec.net
Home page: www.sitec.net/maczip
Mirror page:
www.haase-online.de/dirk/maczip
================================






Release MacZip ver1.06 beta 1
05. August 2000
------------

2) CHG: {zip} switch to latest beta release
         unzip 2.30

3) CHG: {unzip} switch to latest beta release
         unzip 5.42c





Release MacZip ver1.05 final
05. August 2000
------------

1) CHG: {unzip} switch to latest final release
         unzip 5.41

2) FIX: {unzip} Fixed "unique unzip folder" foldername handling

3) FIX: {unzip} added prototype crc32() in macbin3.c

4) CHG: {unzip/zip} added exported Codewarrior project-file in xml-format

5) FIX: {unzip} added extra-field recognition for Mac SmartZip in
	    zipinfo.c and unzpriv.h.





Release MacZip ver1.04 final
25. January 2000
----------------


Final release of MacZip. All parts now
in final release state !!

1) Switch to MW Codewarrior pro 5.3

2) CHG: {zip} switch (back) to latest final release
         unzip 2.30

3) CHG: {unzip} switch (back) to latest final release
         unzip 5.40




Release MacZip ver1.04 beta 3
05. October 1999
----------------

1) CHG: {zip} switch to latest source level
         unzip 2.30o beta release

2) CHG: {unzip} switch to latest source level
         unzip 5.41c beta release

3) ADD: {console} added menu to print the license




Release MacZip ver1.04 beta 2
02. June 1999
--------------

1) FIX: {unzip} added one more criteria to make the recognition
         of macbinary more save.

2) FIX: {unzip} sometimes, archive entries without any extra field
         caused problems; the default setting of the extra field
         was not set back to 'unknown' properly.

3) FIX: {zip} Archive filename with invalid characters like '/' gets
         renamed. However, I do not check the complete path - needs
         some more work here.

4) FIX: {zip} Filename match was case sensitive.

6) CHG: {zip} switch to latest source level
         unzip 2.30m beta release

7) CHG: {unzip} switch to latest source level
         unzip 5.41b beta release

8) FIX: {zip/unzip 68k only) I have found a wrong compiler setting
         for the 68k version. Because of this wrong setting the 68k
         version crashed.




Release MacZip ver1.04 beta 1
30. March 1999
--------------

1) CHG: {unzip) switch to latest source level
         unzip 5.41a beta release

2) ADD: {all} Added message logging support for Syslogd
        by Brian Bergstrand. Syslogd can be found at
        http://www.classicalguitar.net/brian/apps/syslogd/
        This feature is 'under construction'.

3) FIX: {all} many small fixes and code cleanups




Release MacZip ver1.03
27. March 1999
--------------

1) CHG: {console} Like Stuffit Expander MacZip quits automatically when
         used with drag'n drop or as Helper App (Web-Browser).

2) CHG: {console} Since Macintosh users are used to be guided by their
        software in order not to do something stupid, I added a check
        to post an extra warning if the options -m and data fork only
        are both checked.
        This behavior can be disabled: See Applescript example and
        "maczip.env".

3) CHG: {zip} switch from immediate deletion to moving to the
        trash. Immediate deletion is now an option in "maczip.env".

4) CHG: {zip} enhanced progress display.

5) CHG: {zip) switch to latest source level
         zip 2.3l beta release

6) CHG: {unzip} The zip archive contains file names greater than
        31 characters. When MacZip tries to unzip the file, the
        FSpCreate command fails because the filename length is to
        long. MacZip correct this problem by trying to truncate
        the file names to the 31 character limit.

7) FIX: {zip/console} A couple of minor fixes

8) CHG: {zip} Switched file-globbing to the Info-ZIP version.




Release MacZip ver1.02
14. February 1999
-----------------

1) CHG: {zip} Changed the rule of file inclusion if switch '-X'
        is set. Following conditions are checked:
        a) if length of resource-fork is equal zero *and* the
              length of     data-fork is equal zero include the file.
        b) if length of resource-fork  greater zero *and* the
              length of     data-fork is equal zero don't include the file.
        c) if length of     data-fork  greater zero include the file.

2) CHG: {Console} Some users are very confused by the buttons "START PATH"
        and "ZIP ARCHIVE". Somehow, it wasn't clear what the intended
        meaning was. I changed the buttons to more clear labels on
        them like: "file or folder to compress" and "location of
        compressed file"

3) CHG: {Console} I changed the menu structure to be more intuitive.

4) FIX: {Console} Found a nasty bug which sometimes caused crashes
        when the Zip / Unzip Dialogbox was used.

5) CHG: {Console} Handling of file dialog is now a bit more restricted:
        e.g: it's not possible to select a file if you have to select
        a folder.




Release MacZip ver1.01
30. January 1999
----------------------

1) CHG: {console} The use of the "Current App" mechanism was clumsy
        and forces the user into the Zip or Unzip modes. This kind
        of modality is not so good for the command line. It's now
        neccessary to enter zip or unzip to choose the action.

2) FIX: {console} When Applescript sends quit to MacZip the script
        that is running shows a spinning cursor and MacZip
        does not quit.

3) FIX: {console} MacZip gots accidentally the wrong creator code
        (from BBedit)




Final Release MacZip ver1.0
---------------------------

Released 21. January 1999




9. Beta release 06.December.1998
---------------------------------

1) CHG: {console} The checkbox of Filedialog (for extract path and file path)
        "Show all files" is now selected by default.

2) CHG: {unzip/standalone} changed prototypes of mac[f]printf() to return
        an int number (better ANSI conformance);

3) FIX: {unzip} repaired "stdout/stderr" mode of macwrite(). So func
        MacMessagePrnt() is now obsolete and removed.

4) ADD: {zip/unzip} Compressed Mac3 extra-fields are now supported
        (Thanks to Christian Spieler)

5) ADD: {unzip} Extraction of ZipIt archive are now supported. This support
        is not complete: Filenames are correct but folder names are only
        restored with the public directory names.

6) ADD: {zip/unzip} Improved documentation.

7) FIX: {unzip} Function isZipfile() is completely rewritten.

8) CHG: {zip/unzip) switch to latest source level
        zip 2.3i beta and unzip 5.4 final release

9) ADD: Applescript event "do_cmd".

Unless there are big bugs found, this release will be the last
beta release. The final release will come out in January 1999.




8. Beta release 20.November.1998
---------------------------------

1) CHG: {zip/unzip) switch to latest source level
        zip 2.3h beta and unzip 5.4 final release

2) ADD: {zip} Zip finds "namelocked" files also, if switch "-S"
        is set.

3) FIX: {unzip} Function isZipfile() fails if the zip archive
        has a comment.

4) CHG: {zip} added some small speed improvements to pattern matching and
        isZipFile() function.

5) FIX: {unzip} Display of comments is fixed.
        UzpMessagePrnt() is replaced by MacMessagePrnt(). I do not care
        about ansi-bombs. I'm not sure, so this fix may be changed later.

6) RMV: {unzip} Buildin More capability is removed since it's already built
        into the GUI-App.



7. Beta release 09.November.1998
---------------------------------

1) CHG: {all} switched to Metrowerks Codewarrior Pro 4

2) FIX: {unzip} Display of comments stored in the zip-file is
        now fixed

3) FIX: {zip} Fixed display of the zip help-screen.

4) CHG: {zip/unzip} Changed special dir 'Re$0urce.Fk' to 'XtraStuf.mac'
        (see entry at 13.June.1998 item 3). I found it more descriptive for
        users outside the mac-community.

5) CHG: {all} switched to MoreFiles 1.4.9.

6) CHG: {console} changed behaivor of the file open dialog: The select
        button is now always enabled.

7) ADD: {all} Environment variables are now supported.
         Basically, it is possible to add timezone (= TZ environment variable)
         support here, but it's not yet implemented.
         See "MacZip.Env" for further info.

8) RMV: {console} Targets "zip only" and "unzip only" are removed.



6. Beta release 09.September.1998
---------------------------------


1) CHG: {Zip/Unzip} Metrowerks Standardlibrary time funktions are
        rather broken and incomplete so I was forced to rewrite the
        funktions: mktime(), localtime(), gmtime() and time().

2) ADD: {Console} Added Pause Funktion for screen output.
        The Pause-Function is selfadjusting: Count of lines is depending
        on the window size.

3) CHG: Extra-Field layout is changed: All datas are now in little-endian
        format (see appnote)

4) ADD: {Console} Added an option to test the archive automatically
        after zipping. This option is only via Zip-Dialogbox available
        because it needs the unzip-module also.

5) CHG: {Zip} code is now up to date with the latest beta 2.3f.

6) ADD: {Console} Added (drag'n) drop support. Drop on the MacZip icon.
        The following situations are supported:
                    1. drop of one or more zipfiles (action = unzip)
                       each archive will be extracted in a separate folder
                    2. drop of a folder (action = zip -r )
                       The complete folder (inclusive sub-folders)
                       will be zipped
        Not (yet) supported is currently: dropping more than one file
        to compress. Workaround: Put all your files in one folder and
        drop that folder on MacZip.
        MacZip recognize zip-archives automatically.


5. Beta release 21.Aug.1998
----------------------------


1) ADD: {Console} Userinterface has now a Statusbar to show the
        Progress.

2) ADD: {Console} It's now possible to stop the run of Zip/Unzip
        with the well known shortcut [Command] + [.]

3) CHG: {Console} Improved user-entry routine.

4) ADD: {Zip/Unzip} Crypt-code added. It's now possible to
        encrypt/decrypt archives.

5) RMV: {Unzip} Removed the warning of PKZip/Mac archive.
        Unzip gets confused with the extra field of PKZip/Mac. So I assume
        the extra field isn't compatible with Info-ZIP's definition.

6) CHG: switched to Metrowerks Codewarrior Pro 3
        this includes:
        - new Universal Interfaces 3.1 Headers
        - improved codegeneration

7) CHG: {Zip} code is now up to date with the latest beta 2.3e.

8) CHG: {Unzip} changed function names wprintf, wgets .. to macprintf, macgets ..
        to avoid naming conflict standart library.

9) ADD: {Zip/Unzip} FXinfo, Mac-Pathname, file-dates and Finder-Comments
        are now stored in the extra-field. Extra-field layout is
        changed accordingly. Unzip uses now the filename stored in the
        extra-field when unzipping.

10) CHG: {Unzip} code is now up to date with the latest beta 5.33g.

11) CHG: {Unzip} code is (again) up to date with the latest beta 5.33h.

12) ADD: {Unzip} following switches were added:
       -J     [MacOS  only] ignore mac extra info. All macintosh
              info are not restored. Datafork and resource-fork
              are restored separatly.

       -i     [MacOS  only] ignore filenames stored in mac extra
              field. Use the most compatible filename stored in
              the public field.

       -E     [MacOS  only] show mac extra field during restoring

13) ADD: {Zip/Unzip} Charset MacRoman to ISO8859 Latin and vice versa

14) RMV: {Zip} -N option removed. This MacZip crashes using this option.
         I will fix it later.


I think I'm very close for a final release of "MacZip 1.0" :-)



4. Beta release 27.June.1998
----------------------------

26.June.1998
------------

1) FIX: {Zip} extra field size value was wrong.



25.June.1998
------------

1) CHG: {Zip} code is now up to date with the latest beta 2.3d.
        So both modules, zip & unzip, uses now latest beta.

2) ADD: {Zip} added a UT extra-field for better compatibility.

3) CHG: {Unzip} changed the code to find the mac extra-field.
        Unzip has to look for a mac extra-field because
        mac-archives has now two extra-fields (UT + M3).

4) CHG: {Unzip} changed the method to move extra-field data to
        the internal extra-structure.
        Old method was just BlockMove of the ef_structptr to ef_memptr.
        This method was dangerous because not all members of the
        structure seamless aligned. There are may be some fill
        bytes in the structure depending on the compiler setting.

5) ADD: {Unzip} added a warning if unzipping a ZipIt/PKZip archive.
        ZipIt/PKZip archives are usually additionally coded somehow.
        InfoZip's Unzip will *not* decode the files. So extracted
        files are may be not decoded. (see also 6. and 7.)

6) ADD: ZipIt (the Shareware Tool) has now a new extra-field signature:
        0x2705. Found in "ZipIt 1.3.8". I added a new macro: EF_ZIPIT2

7) ADD: Added PKWare's extra-field signature: 0xCF77.
        Found in "PKZIP v2.03". I added a new macro: EF_PKMAC

8) ADD: {console} It's now possible to save all screen outputs
        to the disk.

9) RMV: {console} this is the first beta without expire-date.


16.June.1998
------------

1) FIX: {Unzip/console} Extract path now defaults to current-dir if
        no path is given.

2> CHG: {Unzip} creates now a extract-folder by default. This behavior
        differs to the commandline tool of Unzip on other platforms.
        However, for a mac-user is this behavior more convenient.


3. Beta release 15.June.1998
----------------------------

15.June.1998
------------

1) CHG: {unzip/zip} I changed the layout of the extra field
        to support more data.


14.June.1998
------------

1) FIX: {Unzip} adjusted time_t value with an correct offset value.

2) FIX: {Unzip} removed all unused code based on unfinished ideas by
        former porter(s).

3) CHG: use of shared code izshr 032.

13.June.1998
------------

1) FIX: {Unzip} Filenames are only converted when needed. When zipping
        with the switch 'datafork only' the filenames are shorted which
        was wrong.

2) CHG: {Unzip} code is now up to date with the latest beta 5.33f.

3) CHG: {Zip} Changed the naming rule of filenames from old Johnny Lee's
        to my implementation. Johnny Lee's idea is based on change of the
        filenames which cases several problems when unziping on a non mac
        plattform. My idea is to add a special directory: 'Re$0urce.Fk'.
        For the future: Zip will create archives according the new nameing
        rule. However unzip will be compatible with old nameing rule.
        See also 4.

4} ADD: {Unzip} Added a new nameing rule for resource forks filename.
        Resource forks are now stored in a special directory: 'Re$0urce.Fk'.
        This naming rule make it easier to for other platforms to use
        mac zip-files.



11.June.1998
------------
1) FIX: {Zip} Internal file attribute is set to BINARY by default
        when zipping resource forks otherwise Unzip will create
        sometimes wrong resource-forks.

2) CHG: {Unzip} code is now up to date with the latest beta 5.33e.




2. Beta release 10.June.1998
--------------------------

1) FIX: {Unzip} Long pathname fix solved. Unzip is now able to extract
        archives with path longer than 256 chars.

2) CHG: {Unzip} removed all conversion from c-style string to
        pascal-string (see fix 1)

3) ADD: {Unzip} Finderinfo of folders are also restored.

4) ADD: {Console} Added info about current path in the command-line box.

5) FIX: {Console} Construction of the command-line of the unzip-dialog
        box fixed.



First beta release 06.June.1998
-----------------------------

no history.
Just to many code was neccessary to build the first mac-port.


Start of the port MacZip
February 1998


--------------------------------------------------------------------------------
Legende:

FIX: fixes a bug
CHG: inform about changed items.
ADD: added feature
RMV: removed Item

{Unzip}   -> only related to the Unzip-module
{Zip}     -> only related to the Zip-module
             These are just libraries and are linked into the console-app.

{Console} -> only related to the Userinterface (not SIOUX)
             MacOS has no tool like a command-line. So it's neccessary
             to write wrapper around the command-line tools.




Dirk Haase
