Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_unix/sys/src/cmd/gs/src/slzwx.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1993, 1995, 1998, 1999 Aladdin Enterprises.  All rights reserved.
2
 
3
  This software is provided AS-IS with no warranty, either express or
4
  implied.
5
 
6
  This software is distributed under license and may not be copied,
7
  modified or distributed except as expressly authorized under the terms
8
  of the license contained in the file LICENSE in this distribution.
9
 
10
  For more information about licensing, please refer to
11
  http://www.ghostscript.com/licensing/. For information on
12
  commercial licensing, go to http://www.artifex.com/licensing/ or
13
  contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
  San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
*/
16
 
17
/* $Id: slzwx.h,v 1.5 2002/06/16 05:00:54 lpd Exp $ */
18
/* Definitions for LZW filters */
19
/* Requires strimpl.h */
20
 
21
#ifndef slzwx_INCLUDED
22
#  define slzwx_INCLUDED
23
 
24
typedef struct lzw_decode_s lzw_decode;
25
typedef struct lzw_encode_table_s lzw_encode_table;
26
typedef struct stream_LZW_state_s {
27
    stream_state_common;
28
    /* The following are set before initialization. */
29
    int InitialCodeLength;	/* decoding only */
30
    /*
31
     * Adobe calls FirstBitLowOrder LowBitFirst.  Either one will work
32
     * in PostScript code.
33
     */
34
    bool FirstBitLowOrder;	/* decoding only */
35
    bool BlockData;		/* decoding only */
36
    int EarlyChange;		/* decoding only */
37
    /* The following are updated dynamically. */
38
    uint bits;			/* buffer for input bits */
39
    int bits_left;		/* Decode: # of valid bits left, [0..7] */
40
				/* (low-order bits if !FirstBitLowOrder, */
41
				/* high-order bits if FirstBitLowOrder) */
42
    int bytes_left;		/* # of bytes left in current block */
43
				/* (arbitrary large # if not GIF) */
44
    union _lzt {
45
	lzw_decode *decode;
46
	lzw_encode_table *encode;
47
    } table;
48
    uint next_code;		/* next code to be assigned */
49
    int code_size;		/* current # of bits per code */
50
    int prev_code;		/* previous code recognized or assigned */
51
    uint prev_len;		/* length of prev_code */
52
    int copy_code;		/* code whose string is being */
53
				/* copied, -1 if none */
54
    uint copy_len;		/* length of copy_code */
55
    int copy_left;		/* amount of string left to copy */
56
    bool first;			/* true if no output yet */
57
} stream_LZW_state;
58
 
59
extern_st(st_LZW_state);
60
#define public_st_LZW_state()	/* in slzwc.c */\
61
  gs_public_st_ptrs1(st_LZW_state, stream_LZW_state,\
62
    "LZWDecode state", lzwd_enum_ptrs, lzwd_reloc_ptrs, table.decode)
63
#define s_LZW_set_defaults_inline(ss)\
64
  ((ss)->InitialCodeLength = 8,\
65
   (ss)->FirstBitLowOrder = false,\
66
   (ss)->BlockData = false,\
67
   (ss)->EarlyChange = 1,\
68
   /* Clear pointers */\
69
   (ss)->table.decode /*=encode*/ = 0)
70
extern const stream_template s_LZWD_template;
71
extern const stream_template s_LZWE_template;
72
 
73
/* Shared procedures */
74
void s_LZW_set_defaults(stream_state *);
75
void s_LZW_release(stream_state *);
76
 
77
#endif /* slzwx_INCLUDED */