# HG changeset patch # User ca # Date 1168964511 -3600 # Node ID 47cd819e24af51f8e34b8759cb48ec92cb96fd44 # Parent b635239b983c3db5f3c7989f11985bbfecf708f1 *** empty log message *** diff -r b635239b983c -r 47cd819e24af ZipStream.st --- a/ZipStream.st Tue Jan 16 17:21:14 2007 +0100 +++ b/ZipStream.st Tue Jan 16 17:21:51 2007 +0100 @@ -86,7 +86,7 @@ examples " - [exBegin] + [exBegin] |compressed zipStream| self halt. @@ -98,7 +98,7 @@ self halt. zipStream := self readOpenOn:compressed contents readStream. self information:zipStream contents. - [exEnd] + [exEnd] " ! ! @@ -130,10 +130,10 @@ compress: aUncompressedByteArray into: aCompressedByteArray ^ self flatBytesIn: aUncompressedByteArray - from: 1 - to: (aUncompressedByteArray size) - into: aCompressedByteArray - doCompress: true. + from: 1 + to: (aUncompressedByteArray size) + into: aCompressedByteArray + doCompress: true. ! flatBytesIn:bytesIn from:start to:stop into:bytesOut doCompress:doCompress @@ -149,7 +149,7 @@ and:[bytesIn size >= stop and:[bytesOut size > 0]]] ) ifFalse:[ - ^ self error:'invalid argument size' + ^ self error:'invalid argument size' ]. %{ @@ -160,42 +160,42 @@ if( (__isSmallInteger(start)) && (__isSmallInteger(stop)) && (__isSmallInteger(size)) ) { - __countIn = __intVal( size ); + __countIn = __intVal( size ); - if (__isBytes(bytesIn)) { - __bytesIn = __ByteArrayInstPtr(bytesIn)->ba_element; - } else { - if (__isString(bytesIn)) { - __bytesIn = __stringVal( bytesIn ); - } - } + if (__isBytes(bytesIn)) { + __bytesIn = __ByteArrayInstPtr(bytesIn)->ba_element; + } else { + if (__isString(bytesIn)) { + __bytesIn = __stringVal( bytesIn ); + } + } - if (__isBytes(bytesOut)) { - __bytesOut = __ByteArrayInstPtr(bytesOut)->ba_element; - __countOut = __byteArraySize( bytesOut ); - } else { - if (__isString(bytesOut)) { - __bytesOut = __stringVal( bytesOut ); - __countOut = __stringSize( bytesOut ); - } - } + if (__isBytes(bytesOut)) { + __bytesOut = __ByteArrayInstPtr(bytesOut)->ba_element; + __countOut = __byteArraySize( bytesOut ); + } else { + if (__isString(bytesOut)) { + __bytesOut = __stringVal( bytesOut ); + __countOut = __stringSize( bytesOut ); + } + } } if( __bytesOut && __bytesIn ) { - int __result = Z_OK; + int __result = Z_OK; - __bytesIn += (__intVal( start)) - 1; + __bytesIn += (__intVal( start)) - 1; - if( doCompress == true ) - __result = compress ( (Byte *) __bytesOut, & __countOut, (Byte *) __bytesIn, __countIn ); - else - __result = uncompress( (Byte *) __bytesOut, & __countOut, (Byte *) __bytesIn, __countIn ); + if( doCompress == true ) + __result = compress ( (Byte *) __bytesOut, & __countOut, (Byte *) __bytesIn, __countIn ); + else + __result = uncompress( (Byte *) __bytesOut, & __countOut, (Byte *) __bytesIn, __countIn ); - if( __result == Z_OK ) - { RETURN(__MKSMALLINT(__countOut)); } + if( __result == Z_OK ) + { RETURN(__MKSMALLINT(__countOut)); } - errorNr = __MKSMALLINT( __result ); + errorNr = __MKSMALLINT( __result ); } %}. @@ -210,10 +210,10 @@ uncompress: aCompressedByteArray into: aUncompressedByteArray ^ self flatBytesIn: aCompressedByteArray - from: 1 - to: (aCompressedByteArray size) - into: aUncompressedByteArray - doCompress: false. + from: 1 + to: (aCompressedByteArray size) + into: aUncompressedByteArray + doCompress: false. ! ! !ZipStream class methodsFor:'ZipInterface compatibility - crc'! @@ -306,18 +306,18 @@ if( _zstreamObj != nil ) { - zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); + zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); - __INST(zstream) = nil; + __INST(zstream) = nil; - if( _zstream->stream.state != NULL ) - { - if( _zstream->op_mode == e_opmode_inflate ) - inflateEnd( & _zstream->stream ); - else - deflateEnd( & _zstream->stream ); - } - free( _zstream ); + if( _zstream->stream.state != NULL ) + { + if( _zstream->op_mode == e_opmode_inflate ) + inflateEnd( & _zstream->stream ); + else + deflateEnd( & _zstream->stream ); + } + free( _zstream ); } %}. ! @@ -333,62 +333,60 @@ if( _zstreamObj != nil ) { - int _errorNo, _action; - uLong _bfsize; - zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); + int _errorNo, _action; + uLong _bfsize; + zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); - if( _zstream->op_mode != e_opmode_deflate ) - RETURN( false ); + if( _zstream->op_mode != e_opmode_deflate ) + RETURN( false ); - _bfsize = _zstream->out_total; + _bfsize = _zstream->out_total; - if( _zstream->stream.state == NULL ) - { - /* processing finished; write crc_32 and the total size - */ - uLong v, i; - Bytef * p = _zstream->out_ref; + if( _zstream->stream.state == NULL ) + { + /* processing finished; write crc_32 and the total size + */ + uLong v, i; + Bytef * p = _zstream->out_ref; - v = _zstream->crc_32; - for( i = 0; i < 4; ++i ) { p[i] = v & 0xff; v >>= 8; } + v = _zstream->crc_32; + for( i = 0; i < 4; ++i ) { p[i] = v & 0xff; v >>= 8; } - v = _zstream->stream.total_in; - for( i = 4; i < 8; ++i ) { p[i] = v & 0xff; v >>= 8; } + v = _zstream->stream.total_in; + for( i = 4; i < 8; ++i ) { p[i] = v & 0xff; v >>= 8; } - _zstream->op_mode = e_opmode_unspecified; - _zstream->stream.avail_in = 0; - _zstream->stream.next_in = Z_NULL; - _zstream->stream.avail_out = _bfsize - 8; - RETURN( true ); - } - _zstream->stream.avail_out = _bfsize; - _zstream->stream.next_out = _zstream->out_ref; + _zstream->op_mode = e_opmode_unspecified; + _zstream->stream.avail_in = 0; + _zstream->stream.next_in = Z_NULL; + _zstream->stream.avail_out = _bfsize - 8; + RETURN( true ); + } + _zstream->stream.avail_out = _bfsize; + _zstream->stream.next_out = _zstream->out_ref; - _action = (__INST(hitEOF) == true) ? Z_FINISH : Z_NO_FLUSH; - _errorNo = deflate( & _zstream->stream, _action ); + _action = (__INST(hitEOF) == true) ? Z_FINISH : Z_NO_FLUSH; + _errorNo = deflate( & _zstream->stream, _action ); - if( _errorNo == Z_STREAM_END ) - { - _zstream->stream.avail_in = 0; - _zstream->stream.next_in = Z_NULL; - _errorNo = deflateEnd( & _zstream->stream ); - } + if( _errorNo == Z_STREAM_END ) + { + _zstream->stream.avail_in = 0; + _zstream->stream.next_in = Z_NULL; + _errorNo = deflateEnd( & _zstream->stream ); + } - if( _errorNo == Z_OK ) - { - if( (_zstream->stream.avail_out != _bfsize) - || (_zstream->stream.avail_in != 0) - ) - RETURN( true ); + if( _errorNo == Z_OK ) + { + if( _zstream->stream.avail_out == 0 ) + RETURN( true ); - RETURN( false ); - } - errorNo = __MKSMALLINT( _errorNo ); + RETURN( false ); + } + errorNo = __MKSMALLINT( _errorNo ); } %}. errorNo ifNil:[ - zstream ifNil:[self errorNotOpen]. - self invalidArgument. + zstream ifNil:[self errorNotOpen]. + self invalidArgument. ]. self zerror:errorNo. ! @@ -405,28 +403,28 @@ if( (_zstreamObj != nil) && __isSmallInteger(level) ) { - int _errorNo; - zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); + int _errorNo; + zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); - _zstream->op_mode = e_opmode_deflate; + _zstream->op_mode = e_opmode_deflate; - _errorNo = deflateInit2( & _zstream->stream - , __intVal( level ) - , Z_DEFLATED - , -MAX_WBITS - , DEF_MEM_LEVEL - , Z_DEFAULT_STRATEGY - ); + _errorNo = deflateInit2( & _zstream->stream + , __intVal( level ) + , Z_DEFLATED + , -MAX_WBITS + , DEF_MEM_LEVEL + , Z_DEFAULT_STRATEGY + ); - if( _errorNo == Z_OK ) - RETURN( self ); + if( _errorNo == Z_OK ) + RETURN( self ); - errorNo = __MKSMALLINT( _errorNo ); + errorNo = __MKSMALLINT( _errorNo ); } %}. errorNo ifNil:[ - zstream ifNil:[ self errorNotOpen ]. - self invalidArgument . + zstream ifNil:[ self errorNotOpen ]. + self invalidArgument . ]. self zerror:errorNo. ! @@ -627,23 +625,23 @@ if( (_zstreamObj != nil) && __isSmallInteger(count) ) { - int _count; - zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); + int _count; + zstream_s * _zstream = (zstream_s *) __externalBytesAddress( _zstreamObj ); - if( (_count = __intVal( count )) > 0 ) - { - Bytef * _in_ref = _zstream->in_ref; + if( (_count = __intVal( count )) > 0 ) + { + Bytef * _in_ref = _zstream->in_ref; - _zstream->stream.avail_in = _count; - _zstream->stream.next_in = _in_ref; + _zstream->stream.avail_in = _count; + _zstream->stream.next_in = _in_ref; - if( _zstream->op_mode == e_opmode_deflate ) - _zstream->crc_32 = crc32( _zstream->crc_32, _in_ref, _count ); - } else { - _zstream->stream.avail_in = 0; - _zstream->stream.next_in = Z_NULL; - } - RETURN( self ); + if( _zstream->op_mode == e_opmode_deflate ) + _zstream->crc_32 = crc32( _zstream->crc_32, _in_ref, _count ); + } else { + _zstream->stream.avail_in = 0; + _zstream->stream.next_in = Z_NULL; + } + RETURN( self ); } %}. zstream ifNil:[ self errorNotOpen ]. @@ -715,7 +713,7 @@ !ZipStream class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic2/ZipStream.st,v 1.25 2006-03-28 21:02:16 stefan Exp $' + ^ '$Header: /cvs/stx/stx/libbasic2/ZipStream.st,v 1.26 2007-01-16 16:21:51 ca Exp $' ! ! ZipStream initialize!