daanjj@neabbs.UUCP (DAAN JITTA) (05/11/89)
Zoo Status Update ================= A couple of weeks ago I posted Zoo/ST to the moderator of comp.binaries.atari.st. In the meantime, several bugs and remarks were reported to me; here is my reaction on these various topics mentioned in chronological order. o Problem: the expert-level commands are not working when Zoo is started from the desktop. Explanation: old versions of the desktop convert command-line arguments to upper case before passing them to Zoo. This is a unresolvable problem because Zoo's expert-level commands are case-sensitive and I'm not going to change these bindings, as Zoo implementations running on different machines (PC's, ST's, UNIX boxes) should use an equivalent command set. Fix: a direct solution is not possible; blame Atari/DR. But there are work-arounds available. Every decent shell I know off passes arguments the way they were typed in, without the uppercase conversion "feature". I strongly recommend desktop/mouse lovers and keyboard haters to use the graphical shell ZooBoy. This excellent shell (a ARCSH-like utility) talks to Zoo in the right case- you don't even have to remember any Zoo command, just select the appropriate button. See below for more details. (O yes, another possibility: wait for TOS 1.4 ... 8-) Note: as I have the Mega ROMs, I never noticed this behaviour during testing. And all beta testers use shells and/or have TOS versions >= 2... o Problem: Zoo runs out of memory. Explanation: Zoo has no special memory requirements. It uses quite a big stack (40 Kb at the moment) and malloc()s about 20-40 Kb for various buffers, dependant on the type of work done and the amount of files handled. As I already said, no extreme memoru usage so I suppose the guy who reported this problem has other problems (i.e., outside Zoo). Fix: no bug, no fix. o Problem: Zoo P in the Mark Williams shell (msh) results in an address error. Explanation: as I have not yet succeeded reproducing this problem, I ask anyone who *can* reproduce it (renn@atari, are you listening?) to send me more information. o Problem: Zoo gives a "Error reading input file during compression." error when one tries to add files with specific sizes to a Zoo archive. Explanation: it took me some time to reproduce this error, although the bug itself was easily found. A tiny bug in the fread() implementation of the propriary stdio library I used causes fread() to sometimes return -1 upon EOF in stead of 0. Fix: if possible, change the size of the input file with a reasonable amount of bytes (clumsy, I admit) or use a newer version of Zoo (see below). Note: it is important to emphasize that this bug can only give problems when trying to _add_ files of certain critical lengths: it is *impossible* that this particular bug will cause any other harm than not being able to store this file in a Zoo archive. o Problem: Zoo gives a "x command not available" error when the -retrieve option is specified. Explanation: shame shame shame on me!! A big typo caused Zoo to call the internal routine zooadd() when the -restore option was specified. Zoo should off course call the extract routine zooext() instead. Fix: use the corresponding expert-level command 'x//' instead. See also the note about case-sensivity above. Note that the beautiful ZooBoy shell passes 'x//' to Zoo, not '-restore'. o Problem: someone tries to extract files to a specific target directory by specifying the pathname before the file wanted, because that works for ARC. e.g zoo x my_archive a:\my_dir\*.* (extract all files) or zoo x my_archive a:\my_dir\my_file (extract single file) Why doesn't this work in Zoo? Explanation: this does not work in Zoo mainly because the path part of the argument has a specific meaning to Zoo (remember, Zoo can store both path and file name). And I expect that this will not work in the future as well. Sorry. Fix: make the target directory the current directory and extract the files specified using a command like zoo x d:\my_archive *.* (the *.* is optional) so specify the full pathname of the archive itself. o Problem: Zoo starts looping forever when one tries to extract a member from a Zoo archive which is not present in the archive. Explanation: I have so far failed to reproduce this; I always get the proper "No files match." message. The Bad News ============ The bugs mentioned above cannot be fixed by applying a patch to the original version of Zoo/ST, because a very little bit of code had to be inserted for the fread() problem. A pity! The Good News ============= All the bugs mentioned above are fixed in version 2.01STg. I'll wait 2-3 days before sending this Zoo/ST version to comp.binaries.atari.st (you never know what other bugs will be reported in these couple of days...). And for you desktop lovers, I have another announcement: ZooBoy, the excellent graphical shell by Ernst Blok, will be accompanying Zoo/ST on its way to comp.binaries.atari.st. It definetely is worth using it! Source Code =========== As soon as Zoo/ST is stable enough, I will distribute the source code (or the diffs, that's up to Rahul Dhesi). Zoo sources for other operating systems (MS-DOS, VMS, UNIX) can be found in many archives, or just ask Rahul (dhesi@bsu-cs). Anyway, I hereby apologize for the bugs mentioned above -- it really was my intention to release a bugfree program! I hope everybody will continue to use Zoo/ST with the same enthusiasm as I use it! Daan* / . . __ / ( / / / (__/ / / (Daan Josephus Jitta) / / __/ __/ old-fashioned: modern: -------------- ------- Bos en Lommerweg 10 ii UUCP: ...!hp4nl!neabbs!daanjj OR daanjj@neabbs NL-1055 EB Amsterdam Fido: 2:280/1 -- daan jitta Holland Fax: (+31) 020-763706 -- daan jitta Tel. (+31) 020-820521 Telex: 12969, NEABS NL, attn: daan jitta