[comp.sys.atari.st] Zoo/ST bugs; announcing ZooBoy graphical shell

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