1A free Macintosh Port of Info-ZIP's 2Zip and UnZip 3By Dirk Haase, d_haase@sitec.net 4Home page: www.sitec.net/maczip 5Mirror page: 6www.haase-online.de/dirk/maczip 7================================ 8 9 10 11 12 13Release MacZip ver1.07 beta 1 1422. Februray 2001 15----------------- 16 171) CHG: {unzip} switch to latest final release 18 unzip 5.42 19 202) CHG: {zip} switch to latest beta release 21 zip 2.40a 22 23 24 25 26 27Release MacZip ver1.06 final 2822. Februray 2001 29----------------- 30 311) CHG: {unzip} switch to latest final release 32 unzip 5.42 33 342) CHG: switch to latest release of Apples 35 Universal Interfaces 3.3.2 36 373) CHG: switch to latest release of 38 Morefiles 1.5 39 40 41 42 43Release MacZip ver1.06 beta 2 4402. August 2000 45--------------- 46 471) CHG: {unzip} switch to latest beta release 48 unzip 5.42d 49 50 51 52 53 54Release MacZip ver1.06 beta 1 5527. July 2000 56------------- 57 581) CHG: {zip} switch to latest beta release 59 unzip 2.30 60 612) CHG: {unzip} switch to latest beta release 62 unzip 5.42c 63 64 65 66 67 68Release MacZip ver1.05 final 6927. July 2000 70------------- 71 721) CHG: {unzip} switch to latest final release 73 unzip 5.41 74 752) FIX: {unzip} Fixed "unique unzip folder" foldername handling 76 773) FIX: {unzip} added prototype crc32() in macbin3.c 78 794) CHG: {unzip/zip} added exported Codewarrior project-file in xml-format 80 815) ADD: {unzip} added extra-field recognition for Mac SmartZip in 82 zipinfo.c and unzpriv.h. 83 84 85 86 87 88Release MacZip ver1.04 final 8925. January 2000 90---------------- 91 92 93Final release of MacZip. All parts now 94in final release state !! 95 961) Switch to MW Codewarrior pro 5.3 97 982) CHG: {zip} switch (back) to latest final release 99 unzip 2.30 100 1013) CHG: {unzip} switch (back) to latest final release 102 unzip 5.40 103 104 105 106 107Release MacZip ver1.04 beta 3 10805. October 1999 109---------------- 110 1111) CHG: {zip} switch to latest source level 112 unzip 2.30o beta release 113 1142) CHG: {unzip} switch to latest source level 115 unzip 5.41c beta release 116 1173) ADD: {console} added menu to print the license 118 119 120 121 122Release MacZip ver1.04 beta 2 12302. June 1999 124-------------- 125 1261) FIX: {unzip} added one more criteria to make the recognition 127 of macbinary more save. 128 1292) FIX: {unzip} sometimes, archive entries without any extra field 130 caused problems; the default setting of the extra field 131 was not set back to 'unknown' properly. 132 1333) FIX: {zip} Archive filename with invalid characters like '/' gets 134 renamed. However, I do not check the complete path - needs 135 some more work here. 136 1374) FIX: {zip} Filename match was case sensitive. 138 1396) CHG: {zip} switch to latest source level 140 unzip 2.30m beta release 141 1427) CHG: {unzip} switch to latest source level 143 unzip 5.41b beta release 144 1458) FIX: {zip/unzip 68k only) I have found a wrong compiler setting 146 for the 68k version. Because of this wrong setting the 68k 147 version crashed. 148 149 150 151 152Release MacZip ver1.04 beta 1 15330. March 1999 154-------------- 155 1561) CHG: {unzip) switch to latest source level 157 unzip 5.41a beta release 158 1592) ADD: {all} Added message logging support for Syslogd 160 by Brian Bergstrand. Syslogd can be found at 161 http://www.classicalguitar.net/brian/apps/syslogd/ 162 This feature is 'under construction'. 163 1643) FIX: {all} many small fixes and code cleanups 165 166 167 168 169Release MacZip ver1.03 17027. March 1999 171-------------- 172 1731) CHG: {console} Like Stuffit Expander MacZip quits automatically when 174 used with drag'n drop or as Helper App (Web-Browser). 175 1762) CHG: {console} Since Macintosh users are used to be guided by their 177 software in order not to do something stupid, I added a check 178 to post an extra warning if the options -m and data fork only 179 are both checked. 180 This behavior can be disabled: See Applescript example and 181 "maczip.env". 182 1833) CHG: {zip} switch from immediate deletion to moving to the 184 trash. Immediate deletion is now an option in "maczip.env". 185 1864) CHG: {zip} enhanced progress display. 187 1885) CHG: {zip) switch to latest source level 189 zip 2.3l beta release 190 1916) CHG: {unzip} The zip archive contains file names greater than 192 31 characters. When MacZip tries to unzip the file, the 193 FSpCreate command fails because the filename length is to 194 long. MacZip correct this problem by trying to truncate 195 the file names to the 31 character limit. 196 1977) FIX: {zip/console} A couple of minor fixes 198 1998) CHG: {zip} Switched file-globbing to the Info-ZIP version. 200 201 202 203 204Release MacZip ver1.02 20514. February 1999 206----------------- 207 2081) CHG: {zip} Changed the rule of file inclusion if switch '-X' 209 is set. Following conditions are checked: 210 a) if length of resource-fork is equal zero *and* the 211 length of data-fork is equal zero include the file. 212 b) if length of resource-fork greater zero *and* the 213 length of data-fork is equal zero don't include the file. 214 c) if length of data-fork greater zero include the file. 215 2162) CHG: {Console} Some users are very confused by the buttons "START PATH" 217 and "ZIP ARCHIVE". Somehow, it wasn't clear what the intended 218 meaning was. I changed the buttons to more clear labels on 219 them like: "file or folder to compress" and "location of 220 compressed file" 221 2223) CHG: {Console} I changed the menu structure to be more intuitive. 223 2244) FIX: {Console} Found a nasty bug which sometimes caused crashes 225 when the Zip / Unzip Dialogbox was used. 226 2275) CHG: {Console} Handling of file dialog is now a bit more restricted: 228 e.g: it's not possible to select a file if you have to select 229 a folder. 230 231 232 233 234Release MacZip ver1.01 23530. January 1999 236---------------------- 237 2381) CHG: {console} The use of the "Current App" mechanism was clumsy 239 and forces the user into the Zip or Unzip modes. This kind 240 of modality is not so good for the command line. It's now 241 neccessary to enter zip or unzip to choose the action. 242 2432) FIX: {console} When Applescript sends quit to MacZip the script 244 that is running shows a spinning cursor and MacZip 245 does not quit. 246 2473) FIX: {console} MacZip gots accidentally the wrong creator code 248 (from BBedit) 249 250 251 252 253Final Release MacZip ver1.0 254--------------------------- 255 256Released 21. January 1999 257 258 259 260 2619. Beta release 06.December.1998 262--------------------------------- 263 2641) CHG: {console} The checkbox of Filedialog (for extract path and file path) 265 "Show all files" is now selected by default. 266 2672) CHG: {unzip/standalone} changed prototypes of mac[f]printf() to return 268 an int number (better ANSI conformance); 269 2703) FIX: {unzip} repaired "stdout/stderr" mode of macwrite(). So func 271 MacMessagePrnt() is now obsolete and removed. 272 2734) ADD: {zip/unzip} Compressed Mac3 extra-fields are now supported 274 (Thanks to Christian Spieler) 275 2765) ADD: {unzip} Extraction of ZipIt archive are now supported. This support 277 is not complete: Filenames are correct but folder names are only 278 restored with the public directory names. 279 2806) ADD: {zip/unzip} Improved documentation. 281 2827) FIX: {unzip} Function isZipfile() is completely rewritten. 283 2848) CHG: {zip/unzip) switch to latest source level 285 zip 2.3i beta and unzip 5.4 final release 286 2879) ADD: Applescript event "do_cmd". 288 289Unless there are big bugs found, this release will be the last 290beta release. The final release will come out in January 1999. 291 292 293 294 2958. Beta release 20.November.1998 296--------------------------------- 297 2981) CHG: {zip/unzip) switch to latest source level 299 zip 2.3h beta and unzip 5.4 final release 300 3012) ADD: {zip} Zip finds "namelocked" files also, if switch "-S" 302 is set. 303 3043) FIX: {unzip} Function isZipfile() fails if the zip archive 305 has a comment. 306 3074) CHG: {zip} added some small speed improvements to pattern matching and 308 isZipFile() function. 309 3105) FIX: {unzip} Display of comments is fixed. 311 UzpMessagePrnt() is replaced by MacMessagePrnt(). I do not care 312 about ansi-bombs. I'm not sure, so this fix may be changed later. 313 3146) RMV: {unzip} Buildin More capability is removed since it's already built 315 into the GUI-App. 316 317 318 3197. Beta release 09.November.1998 320--------------------------------- 321 3221) CHG: {all} switched to Metrowerks Codewarrior Pro 4 323 3242) FIX: {unzip} Display of comments stored in the zip-file is 325 now fixed 326 3273) FIX: {zip} Fixed display of the zip help-screen. 328 3294) CHG: {zip/unzip} Changed special dir 'Re$0urce.Fk' to 'XtraStuf.mac' 330 (see entry at 13.June.1998 item 3). I found it more descriptive for 331 users outside the mac-community. 332 3335) CHG: {all} switched to MoreFiles 1.4.9. 334 3356) CHG: {console} changed behaivor of the file open dialog: The select 336 button is now always enabled. 337 3387) ADD: {all} Environment variables are now supported. 339 Basically, it is possible to add timezone (= TZ environment variable) 340 support here, but it's not yet implemented. 341 See "MacZip.Env" for further info. 342 3438) RMV: {console} Targets "zip only" and "unzip only" are removed. 344 345 346 3476. Beta release 09.September.1998 348--------------------------------- 349 350 3511) CHG: {Zip/Unzip} Metrowerks Standardlibrary time funktions are 352 rather broken and incomplete so I was forced to rewrite the 353 funktions: mktime(), localtime(), gmtime() and time(). 354 3552) ADD: {Console} Added Pause Funktion for screen output. 356 The Pause-Function is selfadjusting: Count of lines is depending 357 on the window size. 358 3593) CHG: Extra-Field layout is changed: All datas are now in little-endian 360 format (see appnote) 361 3624) ADD: {Console} Added an option to test the archive automatically 363 after zipping. This option is only via Zip-Dialogbox available 364 because it needs the unzip-module also. 365 3665) CHG: {Zip} code is now up to date with the latest beta 2.3f. 367 3686) ADD: {Console} Added (drag'n) drop support. Drop on the MacZip icon. 369 The following situations are supported: 370 1. drop of one or more zipfiles (action = unzip) 371 each archive will be extracted in a separate folder 372 2. drop of a folder (action = zip -r ) 373 The complete folder (inclusive sub-folders) 374 will be zipped 375 Not (yet) supported is currently: dropping more than one file 376 to compress. Workaround: Put all your files in one folder and 377 drop that folder on MacZip. 378 MacZip recognize zip-archives automatically. 379 380 3815. Beta release 21.Aug.1998 382---------------------------- 383 384 3851) ADD: {Console} Userinterface has now a Statusbar to show the 386 Progress. 387 3882) ADD: {Console} It's now possible to stop the run of Zip/Unzip 389 with the well known shortcut [Command] + [.] 390 3913) CHG: {Console} Improved user-entry routine. 392 3934) ADD: {Zip/Unzip} Crypt-code added. It's now possible to 394 encrypt/decrypt archives. 395 3965) RMV: {Unzip} Removed the warning of PKZip/Mac archive. 397 Unzip gets confused with the extra field of PKZip/Mac. So I assume 398 the extra field isn't compatible with Info-ZIP's definition. 399 4006) CHG: switched to Metrowerks Codewarrior Pro 3 401 this includes: 402 - new Universal Interfaces 3.1 Headers 403 - improved codegeneration 404 4057) CHG: {Zip} code is now up to date with the latest beta 2.3e. 406 4078) CHG: {Unzip} changed function names wprintf, wgets .. to macprintf, macgets .. 408 to avoid naming conflict standart library. 409 4109) ADD: {Zip/Unzip} FXinfo, Mac-Pathname, file-dates and Finder-Comments 411 are now stored in the extra-field. Extra-field layout is 412 changed accordingly. Unzip uses now the filename stored in the 413 extra-field when unzipping. 414 41510) CHG: {Unzip} code is now up to date with the latest beta 5.33g. 416 41711) CHG: {Unzip} code is (again) up to date with the latest beta 5.33h. 418 41912) ADD: {Unzip} following switches were added: 420 -J [MacOS only] ignore mac extra info. All macintosh 421 info are not restored. Datafork and resource-fork 422 are restored separatly. 423 424 -i [MacOS only] ignore filenames stored in mac extra 425 field. Use the most compatible filename stored in 426 the public field. 427 428 -E [MacOS only] show mac extra field during restoring 429 43013) ADD: {Zip/Unzip} Charset MacRoman to ISO8859 Latin and vice versa 431 43214) RMV: {Zip} -N option removed. This MacZip crashes using this option. 433 I will fix it later. 434 435 436I think I'm very close for a final release of "MacZip 1.0" :-) 437 438 439 4404. Beta release 27.June.1998 441---------------------------- 442 44326.June.1998 444------------ 445 4461) FIX: {Zip} extra field size value was wrong. 447 448 449 45025.June.1998 451------------ 452 4531) CHG: {Zip} code is now up to date with the latest beta 2.3d. 454 So both modules, zip & unzip, uses now latest beta. 455 4562) ADD: {Zip} added a UT extra-field for better compatibility. 457 4583) CHG: {Unzip} changed the code to find the mac extra-field. 459 Unzip has to look for a mac extra-field because 460 mac-archives has now two extra-fields (UT + M3). 461 4624) CHG: {Unzip} changed the method to move extra-field data to 463 the internal extra-structure. 464 Old method was just BlockMove of the ef_structptr to ef_memptr. 465 This method was dangerous because not all members of the 466 structure seamless aligned. There are may be some fill 467 bytes in the structure depending on the compiler setting. 468 4695) ADD: {Unzip} added a warning if unzipping a ZipIt/PKZip archive. 470 ZipIt/PKZip archives are usually additionally coded somehow. 471 InfoZip's Unzip will *not* decode the files. So extracted 472 files are may be not decoded. (see also 6. and 7.) 473 4746) ADD: ZipIt (the Shareware Tool) has now a new extra-field signature: 475 0x2705. Found in "ZipIt 1.3.8". I added a new macro: EF_ZIPIT2 476 4777) ADD: Added PKWare's extra-field signature: 0xCF77. 478 Found in "PKZIP v2.03". I added a new macro: EF_PKMAC 479 4808) ADD: {console} It's now possible to save all screen outputs 481 to the disk. 482 4839) RMV: {console} this is the first beta without expire-date. 484 485 48616.June.1998 487------------ 488 4891) FIX: {Unzip/console} Extract path now defaults to current-dir if 490 no path is given. 491 4922> CHG: {Unzip} creates now a extract-folder by default. This behavior 493 differs to the commandline tool of Unzip on other platforms. 494 However, for a mac-user is this behavior more convenient. 495 496 4973. Beta release 15.June.1998 498---------------------------- 499 50015.June.1998 501------------ 502 5031) CHG: {unzip/zip} I changed the layout of the extra field 504 to support more data. 505 506 50714.June.1998 508------------ 509 5101) FIX: {Unzip} adjusted time_t value with an correct offset value. 511 5122) FIX: {Unzip} removed all unused code based on unfinished ideas by 513 former porter(s). 514 5153) CHG: use of shared code izshr 032. 516 51713.June.1998 518------------ 519 5201) FIX: {Unzip} Filenames are only converted when needed. When zipping 521 with the switch 'datafork only' the filenames are shorted which 522 was wrong. 523 5242) CHG: {Unzip} code is now up to date with the latest beta 5.33f. 525 5263) CHG: {Zip} Changed the naming rule of filenames from old Johnny Lee's 527 to my implementation. Johnny Lee's idea is based on change of the 528 filenames which cases several problems when unziping on a non mac 529 plattform. My idea is to add a special directory: 'Re$0urce.Fk'. 530 For the future: Zip will create archives according the new nameing 531 rule. However unzip will be compatible with old nameing rule. 532 See also 4. 533 5344} ADD: {Unzip} Added a new nameing rule for resource forks filename. 535 Resource forks are now stored in a special directory: 'Re$0urce.Fk'. 536 This naming rule make it easier to for other platforms to use 537 mac zip-files. 538 539 540 54111.June.1998 542------------ 5431) FIX: {Zip} Internal file attribute is set to BINARY by default 544 when zipping resource forks otherwise Unzip will create 545 sometimes wrong resource-forks. 546 5472) CHG: {Unzip} code is now up to date with the latest beta 5.33e. 548 549 550 551 5522. Beta release 10.June.1998 553-------------------------- 554 5551) FIX: {Unzip} Long pathname fix solved. Unzip is now able to extract 556 archives with path longer than 256 chars. 557 5582) CHG: {Unzip} removed all conversion from c-style string to 559 pascal-string (see fix 1) 560 5613) ADD: {Unzip} Finderinfo of folders are also restored. 562 5634) ADD: {Console} Added info about current path in the command-line box. 564 5655) FIX: {Console} Construction of the command-line of the unzip-dialog 566 box fixed. 567 568 569 570First beta release 06.June.1998 571----------------------------- 572 573no history. 574Just to many code was neccessary to build the first mac-port. 575 576 577Start of the port MacZip 578February 1998 579 580 581-------------------------------------------------------------------------------- 582Legende: 583 584FIX: fixes a bug 585CHG: inform about changed items. 586ADD: added feature 587RMV: removed Item 588 589{Unzip} -> only related to the Unzip-module 590{Zip} -> only related to the Zip-module 591 These are just libraries and are linked into the console-app. 592 593{Console} -> only related to the Userinterface (not SIOUX) 594 MacOS has no tool like a command-line. So it's neccessary 595 to write wrapper around the command-line tools. 596 597 598 599 600Dirk Haase 601