diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-01-02 20:34:49 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-01-02 20:34:49 (GMT) |
commit | 89c1ac99d375fbd73892aa659f06ef5e2c5ea56e (patch) | |
tree | e76ce80d68d11f1ea137bc33a42f71a1d1f32028 /tcl8.6/doc/TclZlib.3 | |
parent | 01e4cd2ef2ff59418766b2259fbc99771646aba6 (diff) | |
download | blt-89c1ac99d375fbd73892aa659f06ef5e2c5ea56e.zip blt-89c1ac99d375fbd73892aa659f06ef5e2c5ea56e.tar.gz blt-89c1ac99d375fbd73892aa659f06ef5e2c5ea56e.tar.bz2 |
upgrade to tcl/tk 8.6.8
Diffstat (limited to 'tcl8.6/doc/TclZlib.3')
-rw-r--r-- | tcl8.6/doc/TclZlib.3 | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/tcl8.6/doc/TclZlib.3 b/tcl8.6/doc/TclZlib.3 deleted file mode 100644 index c6a6417..0000000 --- a/tcl8.6/doc/TclZlib.3 +++ /dev/null @@ -1,276 +0,0 @@ -'\" -'\" Copyright (c) 2008 Donal K. Fellows -'\" -'\" See the file "license.terms" for information on usage and redistribution -'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. -'\" -.TH TclZlib 3 8.6 Tcl "Tcl Library Procedures" -.so man.macros -.BS -'\" Note: do not modify the .SH NAME line immediately below! -.SH NAME -Tcl_ZlibAdler32, Tcl_ZlibCRC32, Tcl_ZlibDeflate, Tcl_ZlibInflate, Tcl_ZlibStreamChecksum, Tcl_ZlibStreamClose, Tcl_ZlibStreamEof, Tcl_ZlibStreamGet, Tcl_ZlibStreamGetCommandName, Tcl_ZlibStreamInit, Tcl_ZlibStreamPut \- compression and decompression functions -.SH SYNOPSIS -.nf -#include <tcl.h> -.sp -int -\fBTcl_ZlibDeflate\fR(\fIinterp, format, dataObj, level, dictObj\fR) -.sp -int -\fBTcl_ZlibInflate\fR(\fIinterp, format, dataObj, dictObj\fR) -.sp -unsigned int -\fBTcl_ZlibCRC32\fR(\fIinitValue, bytes, length\fR) -.sp -unsigned int -\fBTcl_ZlibAdler32\fR(\fIinitValue, bytes, length\fR) -.sp -int -\fBTcl_ZlibStreamInit\fR(\fIinterp, mode, format, level, dictObj, zshandlePtr\fR) -.sp -Tcl_Obj * -\fBTcl_ZlibStreamGetCommandName\fR(\fIzshandle\fR) -.sp -int -\fBTcl_ZlibStreamEof\fR(\fIzshandle\fR) -.sp -int -\fBTcl_ZlibStreamClose\fR(\fIzshandle\fR) -.sp -int -\fBTcl_ZlibStreamReset\fR(\fIzshandle\fR) -.sp -int -\fBTcl_ZlibStreamChecksum\fR(\fIzshandle\fR) -.sp -int -\fBTcl_ZlibStreamPut\fR(\fIzshandle, dataObj, flush\fR) -.sp -int -\fBTcl_ZlibStreamGet\fR(\fIzshandle, dataObj, count\fR) -.sp -\fBTcl_ZlibStreamSetCompressionDictionary\fR(\fIzshandle, compDict\fR) -.fi -.SH ARGUMENTS -.AS Tcl_ZlibStream zshandle in -.AP Tcl_Interp *interp in -The interpreter to store resulting compressed or uncompressed data in. Also -where any error messages are written. For \fBTcl_ZlibStreamInit\fR, this can -be NULL to create a stream that is not bound to a command. -.AP int format in -What format of compressed data to work with. Must be one of -\fBTCL_ZLIB_FORMAT_ZLIB\fR for zlib-format data, \fBTCL_ZLIB_FORMAT_GZIP\fR -for gzip-format data, or \fBTCL_ZLIB_FORMAT_RAW\fR for raw compressed data. In -addition, for decompression only, \fBTCL_ZLIB_FORMAT_AUTO\fR may also be -chosen which can automatically detect whether the compressed data was in zlib -or gzip format. -.AP Tcl_Obj *dataObj in/out -A byte-array value containing the data to be compressed or decompressed, or -to which the data extracted from the stream is appended when passed to -\fBTcl_ZlibStreamGet\fR. -.AP int level in -What level of compression to use. Should be a number from 0 to 9 or one of the -following: \fBTCL_ZLIB_COMPRESS_NONE\fR for no compression, -\fBTCL_ZLIB_COMPRESS_FAST\fR for fast but inefficient compression, -\fBTCL_ZLIB_COMPRESS_BEST\fR for slow but maximal compression, or -\fBTCL_ZLIB_COMPRESS_DEFAULT\fR for the level recommended by the zlib library. -.AP Tcl_Obj *dictObj in/out -A dictionary that contains, or which will be updated to contain, a description -of the gzip header associated with the compressed data. Only useful when the -\fIformat\fR is \fBTCL_ZLIB_FORMAT_GZIP\fR or \fBTCL_ZLIB_FORMAT_AUTO\fR. If -a NULL is passed, a default header will be used on compression and the header -will be ignored (apart from integrity checks) on decompression. See the -section \fBGZIP OPTIONS DICTIONARY\fR for details about the contents of this -dictionary. -.AP "unsigned int" initValue in -The initial value for the checksum algorithm. -.AP "unsigned char" *bytes in -An array of bytes to run the checksum algorithm over, or NULL to get the -recommended initial value for the checksum algorithm. -.AP int length in -The number of bytes in the array. -.AP int mode in -What mode to operate the stream in. Should be either -\fBTCL_ZLIB_STREAM_DEFLATE\fR for a compressing stream or -\fBTCL_ZLIB_STREAM_INFLATE\fR for a decompressing stream. -.AP Tcl_ZlibStream *zshandlePtr out -A pointer to a variable in which to write the abstract token for the stream -upon successful creation. -.AP Tcl_ZlibStream zshandle in -The abstract token for the stream to operate on. -.AP int flush in -Whether and how to flush the stream after writing the data to it. Must be one -of: \fBTCL_ZLIB_NO_FLUSH\fR if no flushing is to be done, \fBTCL_ZLIB_FLUSH\fR -if the currently compressed data must be made available for access using -\fBTcl_ZlibStreamGet\fR, \fBTCL_ZLIB_FULLFLUSH\fR if the stream must be put -into a state where the decompressor can recover from on corruption, or -\fBTCL_ZLIB_FINALIZE\fR to ensure that the stream is finished and that any -trailer demanded by the format is written. -.AP int count in -The maximum number of bytes to get from the stream, or -1 to get all remaining -bytes from the stream's buffers. -.AP Tcl_Obj *compDict in -A byte array value that is the compression dictionary to use with the stream. -Note that this is \fInot a Tcl dictionary\fR, and it is recommended that this -only ever be used with streams that were created with their \fIformat\fR set -to \fBTCL_ZLIB_FORMAT_ZLIB\fR because the other formats have no mechanism to -indicate whether a compression dictionary was present other than to fail on -decompression. -.BE -.SH DESCRIPTION -These functions form the interface from the Tcl library to the Zlib -library by Jean-loup Gailly and Mark Adler. -.PP -\fBTcl_ZlibDeflate\fR and \fBTcl_ZlibInflate\fR respectively compress and -decompress the data contained in the \fIdataObj\fR argument, according to the -\fIformat\fR and, for compression, \fIlevel\fR arguments. The dictionary in -the \fIdictObj\fR parameter is used to convey additional header information -about the compressed data when the compression format supports it; currently, -the dictionary is only used when the \fIformat\fR parameter is -\fBTCL_ZLIB_FORMAT_GZIP\fR or \fBTCL_ZLIB_FORMAT_AUTO\fR. For details of the -contents of the dictionary, see the \fBGZIP OPTIONS DICTIONARY\fR section -below. Upon success, both functions leave the resulting compressed or -decompressed data in a byte-array value that is the Tcl interpreter's result; -the returned value is a standard Tcl result code. -.PP -\fBTcl_ZlibAdler32\fR and \fBTcl_ZlibCRC32\fR compute checksums on arrays of -bytes, returning the computed checksum. Checksums are computed incrementally, -allowing data to be processed one block at a time, but this requires the -caller to maintain the current checksum and pass it in as the \fIinitValue\fR -parameter; the initial value to use for this can be obtained by using NULL for -the \fIbytes\fR parameter instead of a pointer to the array of bytes to -compute the checksum over. Thus, typical usage in the single data block case -is like this: -.PP -.CS -checksum = \fBTcl_ZlibCRC32\fR(\fBTcl_ZlibCRC32\fR(0,NULL,0), data, length); -.CE -.PP -Note that the Adler-32 algorithm is not a real checksum, but instead is a -related type of hash that works best on longer data. -.SS "ZLIB STREAMS" -.PP -\fBTcl_ZlibStreamInit\fR creates a compressing or decompressing stream that is -linked to a Tcl command, according to its arguments, and provides an abstract -token for the stream and returns a normal Tcl result code; -\fBTcl_ZlibStreamGetCommandName\fR returns the name of that command given the -stream token, or NULL if the stream has no command. Streams are not designed -to be thread-safe; each stream should only ever be used from the thread that -created it. When working with gzip streams, a dictionary (fields as given in -the \fBGZIP OPTIONS DICTIONARY\fR section below) can be given via the -\fIdictObj\fR parameter that on compression allows control over the generated -headers, and on decompression allows discovery of the existing headers. Note -that the dictionary will be written to on decompression once sufficient data -has been read to have a complete header. This means that the dictionary must -be an unshared value in that case; a blank value created with -\fBTcl_NewObj\fR is suggested. -.PP -Once a stream has been constructed, \fBTcl_ZlibStreamPut\fR is used to add -data to the stream and \fBTcl_ZlibStreamGet\fR is used to retrieve data from -the stream after processing. Both return normal Tcl result codes and leave an -error message in the result of the interpreter that the stream is registered -with in the error case (if such a registration has been performed). With -\fBTcl_ZlibStreamPut\fR, the data buffer value passed to it should not be -modified afterwards. With \fBTcl_ZlibStreamGet\fR, the data buffer value -passed to it will have the data bytes appended to it. Internally to the -stream, data is kept compressed so as to minimize the cost of buffer space. -.PP -\fBTcl_ZlibStreamChecksum\fR returns the checksum computed over the -uncompressed data according to the format, and \fBTcl_ZlibStreamEof\fR returns -a boolean value indicating whether the end of the uncompressed data has been -reached. -.PP -\fBTcl_ZlibStreamSetCompressionDictionary\fR is used to control the -compression dictionary used with the stream, a compression dictionary being an -array of bytes (such as might be created with \fBTcl_NewByteArrayObj\fR) that -is used to initialize the compression engine rather than leaving it to create -it on the fly from the data being compressed. Setting a compression dictionary -allows for more efficient compression in the case where the start of the data -is highly regular, but it does require both the compressor and the -decompressor to agreee on the value to use. Compression dictionaries are only -fully supported for zlib-format data; on compression, they must be set before -any data is sent in with \fBTcl_ZlibStreamPut\fR, and on decompression they -should be set when \fBTcl_ZlibStreamGet\fR produces an \fBerror\fR with its -\fB\-errorcode\fR set to -.QW "\fBZLIB NEED_DICT\fI code\fR" ; -the \fIcode\fR will be the Adler-32 checksum (see \fBTcl_ZlibAdler32\fR) of -the compression dictionary sought. (Note that this is only true for -zlib-format streams; gzip streams ignore compression dictionaries as the -format specification doesn't permit them, and raw streams just produce a data -error if the compression dictionary is missing or incorrect.) -.PP -If you wish to clear a stream and reuse it for a new compression or -decompression action, \fBTcl_ZlibStreamReset\fR will do this and return a -normal Tcl result code to indicate whether it was successful; if the stream is -registered with an interpreter, an error message will be left in the -interpreter result when this function returns TCL_ERROR. -Finally, \fBTcl_ZlibStreamClose\fR will clean up the stream and delete the -associated command: using \fBTcl_DeleteCommand\fR on the stream's command is -equivalent (when such a command exists). -.SH "GZIP OPTIONS DICTIONARY" -.PP -The \fIdictObj\fR parameter to \fBTcl_ZlibDeflate\fR, \fBTcl_ZlibInflate\fR -and \fBTcl_ZlibStreamInit\fR is used to pass a dictionary of options about -that is used to describe the gzip header in the compressed data. When creating -compressed data, the dictionary is read and when unpacking compressed data the -dictionary is written (in which case the \fIdictObj\fR parameter must refer to -an unshared dictionary value). -.PP -The following fields in the dictionary value are understood. All other fields -are ignored. No field is required when creating a gzip-format stream. -.TP -\fBcomment\fR -. -This holds the comment field of the header, if present. If absent, no comment -was supplied (on decompression) or will be created (on compression). -.TP -\fBcrc\fR -. -A boolean value describing whether a CRC of the header is computed. Note that -the \fBgzip\fR program does \fInot\fR use or allow a CRC on the header. -.TP -\fBfilename\fR -. -The name of the file that held the uncompressed data. This should not contain -any directory separators, and should be sanitized before use on decompression -with \fBfile tail\fR. -.TP -\fBos\fR -. -The operating system type code field from the header (if not the -.QW unknown -value). See RFC 1952 for the meaning of these codes. On compression, if this -is absent then the field will be set to the -.QW unknown -value. -.TP -\fBsize\fR -. -The size of the uncompressed data. This is ignored on compression; the size -of the data compressed depends on how much data is supplied to the -compression engine. -.TP -\fBtime\fR -. -The time field from the header if non-zero, expected to be the time that the -file named by the \fBfilename\fR field was modified. Suitable for use with -\fBclock format\fR. On creation, the right value to use is that from -\fBclock seconds\fR or \fBfile mtime\fR. -.TP -\fBtype\fR -. -The type of the uncompressed data (either \fBbinary\fR or \fBtext\fR) if -known. -.SH "PORTABILITY NOTES" -These functions will fail gracefully if Tcl is not linked with the zlib -library. -.SH "SEE ALSO" -Tcl_NewByteArrayObj(3), zlib(n) -'\"Tcl_StackChannel(3) -.SH "KEYWORDS" -compress, decompress, deflate, gzip, inflate -'\" Local Variables: -'\" mode: nroff -'\" fill-column: 78 -'\" End: |