[email protected] wrote:
A new class for the New Year...
99 classes done
797 classes remaining
Continuing in Compression...
Today: GZipConstants
Comment Of The Day Contest - One Day One Comment
Rules:
#1: Each day a not commented class is elected. Each day the best comment will be integrated with name of the author(s).
#2: If you cannot comment it, deprecate it.
Results: http://code.google.com/p/pharo/wiki/CommentOfTheDayContest
p.s. this message was sent from a pharo image. Did you know you could easily do
that?!
Well again this is something I can respond to without a great knowledge
of Smalltalk.
RFC1952 is short and clear enough that extracts from probably don't need
to be included it like the last one I did.
-------------8<----snip---------------
This class defines magic numbers taken from the RFC1952 GZIP file format
specification version 4.3 (1996) [1]. A class imports these constants
as 'class variables' by including the following in its class definition:
poolDictionaries: 'GZipConstants'
A method on the class side initialises the values.
[1] http://www.ietf.org/rfc/rfc1952.txt (Section 2.3.1 Member header
and trailer)
-------------8<----snip---------------
As an aside the following in [GzipConstants class >> initialize] does
not match the specification for bit 5 as "reserved".
GZipEncryptFlag := 16r20. "Archive is encrypted"
I did find it defined here [2] & [3] however the FAQ [4] specifically
says encryption is NOT part of the standard.
This constant is only used in [GzipReadStream >> on:from:to] as...
(flags anyMask: GZipEncryptFlag)
ifTrue:[^self error:'Cannot decompress encrypted stream'].
So perhaps its okay to leave but maybe some slight benefit from amending
the text as follows..
GZipEncryptFlag := 16r20. "Archive is encrypted. Not supported.
Not part of the standard."
ifTrue:[^self error:'Cannot decompress encrypted stream. Encryption
is not part of RFC1952'].
It is a better presentation to a user if you can indicate that it is
someone else's fault that their decompress failed, and not Pharo.
[2] http://www.onicos.com/staff/iz/formats/gzip.html
[3] http://research.cs.wisc.edu/wpis/examples/pcca/gzip/gzip.h
[3] http://www.gzip.org/#faq15