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