From: shrinkit@Apple.COM (Andrew Nicholas)
Newsgroups: comp.sys.apple2
Subject: GSHK v1.1 on comp.binaries
Keywords: shrinkit
Date: 11 Oct 92 18:25:34 GMT
Organization: Apple Computer Inc., Cupertino, CA

I have uploaded GSHK v1.1 to comp.binaries.apple2.  It should appear at a
site near you very soon.  I'll see what I can do about getting it put on
ftp.apple.com.

GS-ShrinkIt Changes
 
--GS-ShrinkIt v1.1
 
System Disk 5.0.4 or later is now required.
 
GSHK v1.1 can create self-extracting archives (SEA).  SEA files are
12K larger than regular archives and can ONLY be extracted on a IIGS (ie,
DO NOT give SEA files to people with IIe's or IIc's because SEA files are
GS/OS applications: S16 files).
 
GSHK v1.1 now has a resource fork.
 
Optimized the unpack code a bit.  These are some minor tweeks that might
make a few percent difference in speed (15-18%).  The same optimizations were
done to the SEA unpack code so making and unpacking some SEA archives is
advised.
 
GSHK no longer delays immediately after reading a file when compressing in
order to calculate a CRC on the file.  The CRC is instead calculated as the
data is compressed.  This pause was very noticable if you'd pack a very large
(>100K) file.
 
GSHK v1.1 is now approximately 25-30% faster compressing than GSHK v1.0.6.
This is entirely due to the ideas of Andy McFadden.  He has yet more ideas
about how to get GSHK to go faster, but I haven't had time to implement all
of them.  In order to achieve the speedups I've had to rewrite large sections
of the compression code.  One of the speedups includes a new hashing
algorithm.
 
               GSHK v1.0.6     GSHK v1.1
 Finder         0:48            0:33
 Moria          2:10            1:36
 
I resegmented another large chunk of GSHK so that the unzoo, unarc, unstuff,
usq, and uncompress segments share a single segment.  This saves some memory,
reduces the load time slightly, and saves some disk space.
 
Added a call to HandleDiskInsert to GSHK's main event loop.  You can just
insert an unformatted disk and GSHK will do the right thing.
 
GSHK no longer makes the "operation complete" sound under System 6.0 if
you cancel extracting or if something goes wrong with extracting.
 
If you click the <Update> button and GSHK is unable to write the comment
back to the disk the Update button will not be dimmed.
 
GSHK can now open Binary II files inside of MacBinary files.
 
In the "shrink to" dialog, if the name supplied ends with a period and
one of the checkboxes is checked which causes GSHK to change or add a suffix,
GSHK will no longer add a second period to the archive name. (ie, you'll no
longer end up with "Archive..SHK" if you started with "Archive.").
 
When pasting text into the comment area, the <Update> button undims (Jon!).
 
Added additional information on Apple-clicking to the prompt when asking
what files to archive, delete, or add to an archive.
 
GSHK can now open NuFX archives which are enclosed within MacBinary files.
 
Added a new preference, "Display warning dialogs" which enables or disables
showing the preceding dialogs.
 
Added a dialog before making a disk archive which explains what it is, why
you would want to make one and why you -wouldn't- want to make one.  This is
to help out the online services a bit and try to make people -think- before
packing the entire disk.
 
When creating a file archive if the user has selected "Add Binary II to
this..." I added a dialog which tells the user that their communications
program normally adds Binary II, not GSHK.  This is to lessen the number of
uploads to online services which are double-BNY'd (ie, one Binary II header
added by GSHK and then another by the user's comm program).  Clicking
<Cancel> only backs you up a single level so that you can either uncheck
"Add Binary II" and/or rename the archive.
 
Added a confirmation dialog before actually deleting files.
 
Added a confirmation dialog before actually deleting items from an archive.
 
Added a confirmation dialog before sorting an archive.
 
Changed the text for the prompt for GSHK & SEA when extracting to say "Extract
the (enclosed) files ("blah" etc.) where?" instead of "Put the files..."
"Extract" better describes what's actually going to happen.
 
Fixed a problem where archiving from an AppleShare volume resulted in archives
which GSHK and ShrinkIt thought were damaged.
 
GSHK now strips the high bits off of names of old-style shrinkit disk archives
(archives which were made with Shrinkit 2.1 and earlier have the high bits set
in the disk names).
 
If you get a CRC error, something should actually be displayed (the dialog 
routine was trying to read a non-existent resource).
 
Added filename of current filename being extracted to the prompt string.  If
you've got "Prompt on every extraction" on, this is a crude way to find out
what files are actually in the SEA file.
 
Added "Prompt on every extraction" to SEA wrapper and GSHK core.  This allows
you to prompt for a few files and then turn the prompting off rather than
always have prompting on or always off.  I removed the "Prompt on every
extraction" popup menu from GSHK's preferences dialog.  I hope this is a trend
as that dialog is -way- overloaded.
 
You can now set "Add Comment to: No Files" and when archiving or adding, GSHK
won't add comments.  This is useful to make sure that no space is wasted when
making SEAs.
 
Changed routines which deal with dates to use the 5.0.3 (and later) toolbox
call ConvSeconds which does date/time conversion to various formats.  This
saves a few K in the main segment (and leaves me with less code to actually
maintain). The time format is the same time format as in the control panel.
 
Dave and I converted the GSHK source code to MPW IIGS in one (grueling) weekend
(5/10/92).

-- 
Andy Nicholas                 GEnie & America-Online: shrinkit
Apple Computer, Inc.                        InterNET: shrinkit@apple.com
Newsgroups: comp.sys.apple2