~ubuntu-branches/ubuntu/lucid/perl-tk/lucid

« back to all changes in this revision

Viewing changes to PNG/zlib/contrib/infback9/inflate9.h

  • Committer: Bazaar Package Importer
  • Author(s): Colin Tuckley
  • Date: 2008-02-15 13:56:59 UTC
  • mfrom: (1.1.3 upstream) (4.1.1 hardy)
  • Revision ID: james.westby@ubuntu.com-20080215135659-ru2oqlykuju20fav
Tags: 1:804.028-1
* New Upstream Release (Closes: #463080).
* Update to Debhelper v5.
* Build with XFT=1 (Closes: #411129).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* inflate9.h -- internal inflate state definition
 
2
 * Copyright (C) 1995-2003 Mark Adler
 
3
 * For conditions of distribution and use, see copyright notice in zlib.h
 
4
 */
 
5
 
 
6
/* WARNING: this file should *not* be used by applications. It is
 
7
   part of the implementation of the compression library and is
 
8
   subject to change. Applications should only use zlib.h.
 
9
 */
 
10
 
 
11
/* Possible inflate modes between inflate() calls */
 
12
typedef enum {
 
13
        TYPE,       /* i: waiting for type bits, including last-flag bit */
 
14
        STORED,     /* i: waiting for stored size (length and complement) */
 
15
        TABLE,      /* i: waiting for dynamic block table lengths */
 
16
            LEN,        /* i: waiting for length/lit code */
 
17
    DONE,       /* finished check, done -- remain here until reset */
 
18
    BAD         /* got a data error -- remain here until reset */
 
19
} inflate_mode;
 
20
 
 
21
/*
 
22
    State transitions between above modes -
 
23
 
 
24
    (most modes can go to the BAD mode -- not shown for clarity)
 
25
 
 
26
    Read deflate blocks:
 
27
            TYPE -> STORED or TABLE or LEN or DONE
 
28
            STORED -> TYPE
 
29
            TABLE -> LENLENS -> CODELENS -> LEN
 
30
    Read deflate codes:
 
31
                LEN -> LEN or TYPE
 
32
 */
 
33
 
 
34
/* state maintained between inflate() calls.  Approximately 7K bytes. */
 
35
struct inflate_state {
 
36
        /* sliding window */
 
37
    unsigned char FAR *window;  /* allocated sliding window, if needed */
 
38
        /* dynamic table building */
 
39
    unsigned ncode;             /* number of code length code lengths */
 
40
    unsigned nlen;              /* number of length code lengths */
 
41
    unsigned ndist;             /* number of distance code lengths */
 
42
    unsigned have;              /* number of code lengths in lens[] */
 
43
    code FAR *next;             /* next available space in codes[] */
 
44
    unsigned short lens[320];   /* temporary storage for code lengths */
 
45
    unsigned short work[288];   /* work area for code table building */
 
46
    code codes[ENOUGH];         /* space for code tables */
 
47
};