diff options
author | Jean-loup Gailly <jloup@chorus.fr> | 1993-03-19 10:37:46 +0000 |
---|---|---|
committer | Jean-loup Gailly <jloup@chorus.fr> | 1993-03-19 10:37:46 +0000 |
commit | d78b129a70b2220d97388e96d55e112cc98d53ac (patch) | |
tree | b74756147d771e288b36ccb5f77f7b6768192cbf /lzw.h | |
parent | cdb7b3011e496edcfb5068ff866b95bbed57083e (diff) | |
download | gzip-d78b129a70b2220d97388e96d55e112cc98d53ac.tar.gz |
Initial revision
Diffstat (limited to 'lzw.h')
-rw-r--r-- | lzw.h | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -0,0 +1,42 @@ +/* lzw.h -- define the lzw functions. + * Copyright (C) 1992-1993 Jean-loup Gailly. + * This is free software; you can redistribute it and/or modify it under the + * terms of the GNU General Public License, see the file COPYING. + */ + +#if !defined(OF) && defined(lint) +# include "gzip.h" +#endif + +#ifndef BITS +# define BITS 16 +#endif +#define INIT_BITS 9 /* Initial number of bits per code */ + +#define LZW_MAGIC "\037\235" /* Magic header for lzw files, 1F 9D */ + +#define BIT_MASK 0x1f /* Mask for 'number of compression bits' */ +/* Mask 0x20 is reserved to mean a fourth header byte, and 0x40 is free. + * It's a pity that old uncompress does not check bit 0x20. That makes + * extension of the format actually undesirable because old compress + * would just crash on the new format instead of giving a meaningful + * error message. It does check the number of bits, but it's more + * helpful to say "unsupported format, get a new version" than + * "can only handle 16 bits". + */ + +#define BLOCK_MODE 0x80 +/* Block compression: if table is full and compression rate is dropping, + * clear the dictionary. + */ + +#define LZW_RESERVED 0x60 /* reserved bits */ + +#define CLEAR 256 /* flush the dictionary */ +#define FIRST (CLEAR+1) /* first free entry */ + +extern int maxbits; /* max bits per code for LZW */ +extern int block_mode; /* block compress mode -C compatible with 2.0 */ + +extern int lzw OF((int in, int out)); +extern int unlzw OF((int in, int out)); |