~ubuntu-branches/ubuntu/trusty/freeimage/trusty-proposed

« back to all changes in this revision

Viewing changes to Source/LibTIFF/t4.h

  • Committer: Bazaar Package Importer
  • Author(s): Julien Cristau
  • Date: 2010-10-29 14:46:46 UTC
  • Revision ID: james.westby@ubuntu.com-20101029144646-7bq2g444s3ip34p6
Tags: 3.10.0-3
* Don't use embedded copies of various libraries, add build-deps on their
  packaged versions (closes: #595560):
  - libjpeg 6b
  - libmng 1.0.9
  - libopenjpeg 1.2.0
  - libpng 1.2.23
    + CVE-2010-2249, CVE-2010-1205, CVE-2010-0205, CVE-2009-2042,
      CVE-2008-6218, CVE-2008-5907, CVE-2009-0040, CVE-2008-3964,
      CVE-2008-1382
  - openexr 1.6.1
    + CVE-2009-1720, CVE-2009-1721
  - zlib 1.2.3
* The embedded libtiff copy is still used, because freeimage uses its
  internals and I couldn't figure out how to unentangle this.  Update the
  tiff copy to 3.9.4-5, though:
  CVE-2010-3087, CVE-2010-2483, CVE-2010-2482, CVE-2010-2481, CVE-2010-2443,
  CVE-2010-2233, CVE-2010-2067, CVE-2010-2065, CVE-2010-1411, CVE-2009-2347,
  CVE-2008-2327.
* Add tiff copyright and license to debian/copyright (closes: #601002)
* Link with -lm (closes: #558857).
* Try to avoid arch-specific values in our copy of tif_config.h and
  tiffconf.h (closes: #601762)
* Set LFS CFLAGS in Makefile.gnu.
* Orphan package (closes: #595559).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $Id: t4.h,v 1.20 2007/11/10 18:40:44 drolon Exp $ */
2
 
 
3
 
/*
4
 
 * Copyright (c) 1988-1997 Sam Leffler
5
 
 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
6
 
 *
7
 
 * Permission to use, copy, modify, distribute, and sell this software and 
8
 
 * its documentation for any purpose is hereby granted without fee, provided
9
 
 * that (i) the above copyright notices and this permission notice appear in
10
 
 * all copies of the software and related documentation, and (ii) the names of
11
 
 * Sam Leffler and Silicon Graphics may not be used in any advertising or
12
 
 * publicity relating to the software without the specific, prior written
13
 
 * permission of Sam Leffler and Silicon Graphics.
14
 
 * 
15
 
 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
16
 
 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
17
 
 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
18
 
 * 
19
 
 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
20
 
 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
21
 
 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
22
 
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
23
 
 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
24
 
 * OF THIS SOFTWARE.
25
 
 */
26
 
 
27
 
#ifndef _T4_
28
 
#define _T4_
29
 
/*
30
 
 * CCITT T.4 1D Huffman runlength codes and
31
 
 * related definitions.  Given the small sizes
32
 
 * of these tables it does not seem
33
 
 * worthwhile to make code & length 8 bits.
34
 
 */
35
 
typedef struct tableentry {
36
 
    unsigned short length;      /* bit length of g3 code */
37
 
    unsigned short code;        /* g3 code */
38
 
    short       runlen;         /* run length in bits */
39
 
} tableentry;
40
 
 
41
 
#define EOL     0x001   /* EOL code value - 0000 0000 0000 1 */
42
 
 
43
 
/* status values returned instead of a run length */
44
 
#define G3CODE_EOL      -1      /* NB: ACT_EOL - ACT_WRUNT */
45
 
#define G3CODE_INVALID  -2      /* NB: ACT_INVALID - ACT_WRUNT */
46
 
#define G3CODE_EOF      -3      /* end of input data */
47
 
#define G3CODE_INCOMP   -4      /* incomplete run code */
48
 
 
49
 
/*
50
 
 * Note that these tables are ordered such that the
51
 
 * index into the table is known to be either the
52
 
 * run length, or (run length / 64) + a fixed offset.
53
 
 *
54
 
 * NB: The G3CODE_INVALID entries are only used
55
 
 *     during state generation (see mkg3states.c).
56
 
 */
57
 
#ifdef G3CODES
58
 
const tableentry TIFFFaxWhiteCodes[] = {
59
 
    { 8, 0x35, 0 },     /* 0011 0101 */
60
 
    { 6, 0x7, 1 },      /* 0001 11 */
61
 
    { 4, 0x7, 2 },      /* 0111 */
62
 
    { 4, 0x8, 3 },      /* 1000 */
63
 
    { 4, 0xB, 4 },      /* 1011 */
64
 
    { 4, 0xC, 5 },      /* 1100 */
65
 
    { 4, 0xE, 6 },      /* 1110 */
66
 
    { 4, 0xF, 7 },      /* 1111 */
67
 
    { 5, 0x13, 8 },     /* 1001 1 */
68
 
    { 5, 0x14, 9 },     /* 1010 0 */
69
 
    { 5, 0x7, 10 },     /* 0011 1 */
70
 
    { 5, 0x8, 11 },     /* 0100 0 */
71
 
    { 6, 0x8, 12 },     /* 0010 00 */
72
 
    { 6, 0x3, 13 },     /* 0000 11 */
73
 
    { 6, 0x34, 14 },    /* 1101 00 */
74
 
    { 6, 0x35, 15 },    /* 1101 01 */
75
 
    { 6, 0x2A, 16 },    /* 1010 10 */
76
 
    { 6, 0x2B, 17 },    /* 1010 11 */
77
 
    { 7, 0x27, 18 },    /* 0100 111 */
78
 
    { 7, 0xC, 19 },     /* 0001 100 */
79
 
    { 7, 0x8, 20 },     /* 0001 000 */
80
 
    { 7, 0x17, 21 },    /* 0010 111 */
81
 
    { 7, 0x3, 22 },     /* 0000 011 */
82
 
    { 7, 0x4, 23 },     /* 0000 100 */
83
 
    { 7, 0x28, 24 },    /* 0101 000 */
84
 
    { 7, 0x2B, 25 },    /* 0101 011 */
85
 
    { 7, 0x13, 26 },    /* 0010 011 */
86
 
    { 7, 0x24, 27 },    /* 0100 100 */
87
 
    { 7, 0x18, 28 },    /* 0011 000 */
88
 
    { 8, 0x2, 29 },     /* 0000 0010 */
89
 
    { 8, 0x3, 30 },     /* 0000 0011 */
90
 
    { 8, 0x1A, 31 },    /* 0001 1010 */
91
 
    { 8, 0x1B, 32 },    /* 0001 1011 */
92
 
    { 8, 0x12, 33 },    /* 0001 0010 */
93
 
    { 8, 0x13, 34 },    /* 0001 0011 */
94
 
    { 8, 0x14, 35 },    /* 0001 0100 */
95
 
    { 8, 0x15, 36 },    /* 0001 0101 */
96
 
    { 8, 0x16, 37 },    /* 0001 0110 */
97
 
    { 8, 0x17, 38 },    /* 0001 0111 */
98
 
    { 8, 0x28, 39 },    /* 0010 1000 */
99
 
    { 8, 0x29, 40 },    /* 0010 1001 */
100
 
    { 8, 0x2A, 41 },    /* 0010 1010 */
101
 
    { 8, 0x2B, 42 },    /* 0010 1011 */
102
 
    { 8, 0x2C, 43 },    /* 0010 1100 */
103
 
    { 8, 0x2D, 44 },    /* 0010 1101 */
104
 
    { 8, 0x4, 45 },     /* 0000 0100 */
105
 
    { 8, 0x5, 46 },     /* 0000 0101 */
106
 
    { 8, 0xA, 47 },     /* 0000 1010 */
107
 
    { 8, 0xB, 48 },     /* 0000 1011 */
108
 
    { 8, 0x52, 49 },    /* 0101 0010 */
109
 
    { 8, 0x53, 50 },    /* 0101 0011 */
110
 
    { 8, 0x54, 51 },    /* 0101 0100 */
111
 
    { 8, 0x55, 52 },    /* 0101 0101 */
112
 
    { 8, 0x24, 53 },    /* 0010 0100 */
113
 
    { 8, 0x25, 54 },    /* 0010 0101 */
114
 
    { 8, 0x58, 55 },    /* 0101 1000 */
115
 
    { 8, 0x59, 56 },    /* 0101 1001 */
116
 
    { 8, 0x5A, 57 },    /* 0101 1010 */
117
 
    { 8, 0x5B, 58 },    /* 0101 1011 */
118
 
    { 8, 0x4A, 59 },    /* 0100 1010 */
119
 
    { 8, 0x4B, 60 },    /* 0100 1011 */
120
 
    { 8, 0x32, 61 },    /* 0011 0010 */
121
 
    { 8, 0x33, 62 },    /* 0011 0011 */
122
 
    { 8, 0x34, 63 },    /* 0011 0100 */
123
 
    { 5, 0x1B, 64 },    /* 1101 1 */
124
 
    { 5, 0x12, 128 },   /* 1001 0 */
125
 
    { 6, 0x17, 192 },   /* 0101 11 */
126
 
    { 7, 0x37, 256 },   /* 0110 111 */
127
 
    { 8, 0x36, 320 },   /* 0011 0110 */
128
 
    { 8, 0x37, 384 },   /* 0011 0111 */
129
 
    { 8, 0x64, 448 },   /* 0110 0100 */
130
 
    { 8, 0x65, 512 },   /* 0110 0101 */
131
 
    { 8, 0x68, 576 },   /* 0110 1000 */
132
 
    { 8, 0x67, 640 },   /* 0110 0111 */
133
 
    { 9, 0xCC, 704 },   /* 0110 0110 0 */
134
 
    { 9, 0xCD, 768 },   /* 0110 0110 1 */
135
 
    { 9, 0xD2, 832 },   /* 0110 1001 0 */
136
 
    { 9, 0xD3, 896 },   /* 0110 1001 1 */
137
 
    { 9, 0xD4, 960 },   /* 0110 1010 0 */
138
 
    { 9, 0xD5, 1024 },  /* 0110 1010 1 */
139
 
    { 9, 0xD6, 1088 },  /* 0110 1011 0 */
140
 
    { 9, 0xD7, 1152 },  /* 0110 1011 1 */
141
 
    { 9, 0xD8, 1216 },  /* 0110 1100 0 */
142
 
    { 9, 0xD9, 1280 },  /* 0110 1100 1 */
143
 
    { 9, 0xDA, 1344 },  /* 0110 1101 0 */
144
 
    { 9, 0xDB, 1408 },  /* 0110 1101 1 */
145
 
    { 9, 0x98, 1472 },  /* 0100 1100 0 */
146
 
    { 9, 0x99, 1536 },  /* 0100 1100 1 */
147
 
    { 9, 0x9A, 1600 },  /* 0100 1101 0 */
148
 
    { 6, 0x18, 1664 },  /* 0110 00 */
149
 
    { 9, 0x9B, 1728 },  /* 0100 1101 1 */
150
 
    { 11, 0x8, 1792 },  /* 0000 0001 000 */
151
 
    { 11, 0xC, 1856 },  /* 0000 0001 100 */
152
 
    { 11, 0xD, 1920 },  /* 0000 0001 101 */
153
 
    { 12, 0x12, 1984 }, /* 0000 0001 0010 */
154
 
    { 12, 0x13, 2048 }, /* 0000 0001 0011 */
155
 
    { 12, 0x14, 2112 }, /* 0000 0001 0100 */
156
 
    { 12, 0x15, 2176 }, /* 0000 0001 0101 */
157
 
    { 12, 0x16, 2240 }, /* 0000 0001 0110 */
158
 
    { 12, 0x17, 2304 }, /* 0000 0001 0111 */
159
 
    { 12, 0x1C, 2368 }, /* 0000 0001 1100 */
160
 
    { 12, 0x1D, 2432 }, /* 0000 0001 1101 */
161
 
    { 12, 0x1E, 2496 }, /* 0000 0001 1110 */
162
 
    { 12, 0x1F, 2560 }, /* 0000 0001 1111 */
163
 
    { 12, 0x1, G3CODE_EOL },    /* 0000 0000 0001 */
164
 
    { 9, 0x1, G3CODE_INVALID }, /* 0000 0000 1 */
165
 
    { 10, 0x1, G3CODE_INVALID },        /* 0000 0000 01 */
166
 
    { 11, 0x1, G3CODE_INVALID },        /* 0000 0000 001 */
167
 
    { 12, 0x0, G3CODE_INVALID },        /* 0000 0000 0000 */
168
 
};
169
 
 
170
 
const tableentry TIFFFaxBlackCodes[] = {
171
 
    { 10, 0x37, 0 },    /* 0000 1101 11 */
172
 
    { 3, 0x2, 1 },      /* 010 */
173
 
    { 2, 0x3, 2 },      /* 11 */
174
 
    { 2, 0x2, 3 },      /* 10 */
175
 
    { 3, 0x3, 4 },      /* 011 */
176
 
    { 4, 0x3, 5 },      /* 0011 */
177
 
    { 4, 0x2, 6 },      /* 0010 */
178
 
    { 5, 0x3, 7 },      /* 0001 1 */
179
 
    { 6, 0x5, 8 },      /* 0001 01 */
180
 
    { 6, 0x4, 9 },      /* 0001 00 */
181
 
    { 7, 0x4, 10 },     /* 0000 100 */
182
 
    { 7, 0x5, 11 },     /* 0000 101 */
183
 
    { 7, 0x7, 12 },     /* 0000 111 */
184
 
    { 8, 0x4, 13 },     /* 0000 0100 */
185
 
    { 8, 0x7, 14 },     /* 0000 0111 */
186
 
    { 9, 0x18, 15 },    /* 0000 1100 0 */
187
 
    { 10, 0x17, 16 },   /* 0000 0101 11 */
188
 
    { 10, 0x18, 17 },   /* 0000 0110 00 */
189
 
    { 10, 0x8, 18 },    /* 0000 0010 00 */
190
 
    { 11, 0x67, 19 },   /* 0000 1100 111 */
191
 
    { 11, 0x68, 20 },   /* 0000 1101 000 */
192
 
    { 11, 0x6C, 21 },   /* 0000 1101 100 */
193
 
    { 11, 0x37, 22 },   /* 0000 0110 111 */
194
 
    { 11, 0x28, 23 },   /* 0000 0101 000 */
195
 
    { 11, 0x17, 24 },   /* 0000 0010 111 */
196
 
    { 11, 0x18, 25 },   /* 0000 0011 000 */
197
 
    { 12, 0xCA, 26 },   /* 0000 1100 1010 */
198
 
    { 12, 0xCB, 27 },   /* 0000 1100 1011 */
199
 
    { 12, 0xCC, 28 },   /* 0000 1100 1100 */
200
 
    { 12, 0xCD, 29 },   /* 0000 1100 1101 */
201
 
    { 12, 0x68, 30 },   /* 0000 0110 1000 */
202
 
    { 12, 0x69, 31 },   /* 0000 0110 1001 */
203
 
    { 12, 0x6A, 32 },   /* 0000 0110 1010 */
204
 
    { 12, 0x6B, 33 },   /* 0000 0110 1011 */
205
 
    { 12, 0xD2, 34 },   /* 0000 1101 0010 */
206
 
    { 12, 0xD3, 35 },   /* 0000 1101 0011 */
207
 
    { 12, 0xD4, 36 },   /* 0000 1101 0100 */
208
 
    { 12, 0xD5, 37 },   /* 0000 1101 0101 */
209
 
    { 12, 0xD6, 38 },   /* 0000 1101 0110 */
210
 
    { 12, 0xD7, 39 },   /* 0000 1101 0111 */
211
 
    { 12, 0x6C, 40 },   /* 0000 0110 1100 */
212
 
    { 12, 0x6D, 41 },   /* 0000 0110 1101 */
213
 
    { 12, 0xDA, 42 },   /* 0000 1101 1010 */
214
 
    { 12, 0xDB, 43 },   /* 0000 1101 1011 */
215
 
    { 12, 0x54, 44 },   /* 0000 0101 0100 */
216
 
    { 12, 0x55, 45 },   /* 0000 0101 0101 */
217
 
    { 12, 0x56, 46 },   /* 0000 0101 0110 */
218
 
    { 12, 0x57, 47 },   /* 0000 0101 0111 */
219
 
    { 12, 0x64, 48 },   /* 0000 0110 0100 */
220
 
    { 12, 0x65, 49 },   /* 0000 0110 0101 */
221
 
    { 12, 0x52, 50 },   /* 0000 0101 0010 */
222
 
    { 12, 0x53, 51 },   /* 0000 0101 0011 */
223
 
    { 12, 0x24, 52 },   /* 0000 0010 0100 */
224
 
    { 12, 0x37, 53 },   /* 0000 0011 0111 */
225
 
    { 12, 0x38, 54 },   /* 0000 0011 1000 */
226
 
    { 12, 0x27, 55 },   /* 0000 0010 0111 */
227
 
    { 12, 0x28, 56 },   /* 0000 0010 1000 */
228
 
    { 12, 0x58, 57 },   /* 0000 0101 1000 */
229
 
    { 12, 0x59, 58 },   /* 0000 0101 1001 */
230
 
    { 12, 0x2B, 59 },   /* 0000 0010 1011 */
231
 
    { 12, 0x2C, 60 },   /* 0000 0010 1100 */
232
 
    { 12, 0x5A, 61 },   /* 0000 0101 1010 */
233
 
    { 12, 0x66, 62 },   /* 0000 0110 0110 */
234
 
    { 12, 0x67, 63 },   /* 0000 0110 0111 */
235
 
    { 10, 0xF, 64 },    /* 0000 0011 11 */
236
 
    { 12, 0xC8, 128 },  /* 0000 1100 1000 */
237
 
    { 12, 0xC9, 192 },  /* 0000 1100 1001 */
238
 
    { 12, 0x5B, 256 },  /* 0000 0101 1011 */
239
 
    { 12, 0x33, 320 },  /* 0000 0011 0011 */
240
 
    { 12, 0x34, 384 },  /* 0000 0011 0100 */
241
 
    { 12, 0x35, 448 },  /* 0000 0011 0101 */
242
 
    { 13, 0x6C, 512 },  /* 0000 0011 0110 0 */
243
 
    { 13, 0x6D, 576 },  /* 0000 0011 0110 1 */
244
 
    { 13, 0x4A, 640 },  /* 0000 0010 0101 0 */
245
 
    { 13, 0x4B, 704 },  /* 0000 0010 0101 1 */
246
 
    { 13, 0x4C, 768 },  /* 0000 0010 0110 0 */
247
 
    { 13, 0x4D, 832 },  /* 0000 0010 0110 1 */
248
 
    { 13, 0x72, 896 },  /* 0000 0011 1001 0 */
249
 
    { 13, 0x73, 960 },  /* 0000 0011 1001 1 */
250
 
    { 13, 0x74, 1024 }, /* 0000 0011 1010 0 */
251
 
    { 13, 0x75, 1088 }, /* 0000 0011 1010 1 */
252
 
    { 13, 0x76, 1152 }, /* 0000 0011 1011 0 */
253
 
    { 13, 0x77, 1216 }, /* 0000 0011 1011 1 */
254
 
    { 13, 0x52, 1280 }, /* 0000 0010 1001 0 */
255
 
    { 13, 0x53, 1344 }, /* 0000 0010 1001 1 */
256
 
    { 13, 0x54, 1408 }, /* 0000 0010 1010 0 */
257
 
    { 13, 0x55, 1472 }, /* 0000 0010 1010 1 */
258
 
    { 13, 0x5A, 1536 }, /* 0000 0010 1101 0 */
259
 
    { 13, 0x5B, 1600 }, /* 0000 0010 1101 1 */
260
 
    { 13, 0x64, 1664 }, /* 0000 0011 0010 0 */
261
 
    { 13, 0x65, 1728 }, /* 0000 0011 0010 1 */
262
 
    { 11, 0x8, 1792 },  /* 0000 0001 000 */
263
 
    { 11, 0xC, 1856 },  /* 0000 0001 100 */
264
 
    { 11, 0xD, 1920 },  /* 0000 0001 101 */
265
 
    { 12, 0x12, 1984 }, /* 0000 0001 0010 */
266
 
    { 12, 0x13, 2048 }, /* 0000 0001 0011 */
267
 
    { 12, 0x14, 2112 }, /* 0000 0001 0100 */
268
 
    { 12, 0x15, 2176 }, /* 0000 0001 0101 */
269
 
    { 12, 0x16, 2240 }, /* 0000 0001 0110 */
270
 
    { 12, 0x17, 2304 }, /* 0000 0001 0111 */
271
 
    { 12, 0x1C, 2368 }, /* 0000 0001 1100 */
272
 
    { 12, 0x1D, 2432 }, /* 0000 0001 1101 */
273
 
    { 12, 0x1E, 2496 }, /* 0000 0001 1110 */
274
 
    { 12, 0x1F, 2560 }, /* 0000 0001 1111 */
275
 
    { 12, 0x1, G3CODE_EOL },    /* 0000 0000 0001 */
276
 
    { 9, 0x1, G3CODE_INVALID }, /* 0000 0000 1 */
277
 
    { 10, 0x1, G3CODE_INVALID },        /* 0000 0000 01 */
278
 
    { 11, 0x1, G3CODE_INVALID },        /* 0000 0000 001 */
279
 
    { 12, 0x0, G3CODE_INVALID },        /* 0000 0000 0000 */
280
 
};
281
 
#else
282
 
extern  const tableentry TIFFFaxWhiteCodes[];
283
 
extern  const tableentry TIFFFaxBlackCodes[];
284
 
#endif
285
 
#endif /* _T4_ */
 
1
/* $Id: t4.h,v 1.1.1.1.2.1 2010-06-08 18:50:41 bfriesen Exp $ */
 
2
 
 
3
/*
 
4
 * Copyright (c) 1988-1997 Sam Leffler
 
5
 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
 
6
 *
 
7
 * Permission to use, copy, modify, distribute, and sell this software and 
 
8
 * its documentation for any purpose is hereby granted without fee, provided
 
9
 * that (i) the above copyright notices and this permission notice appear in
 
10
 * all copies of the software and related documentation, and (ii) the names of
 
11
 * Sam Leffler and Silicon Graphics may not be used in any advertising or
 
12
 * publicity relating to the software without the specific, prior written
 
13
 * permission of Sam Leffler and Silicon Graphics.
 
14
 * 
 
15
 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
 
16
 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
 
17
 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
 
18
 * 
 
19
 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
 
20
 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
 
21
 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 
22
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
 
23
 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
 
24
 * OF THIS SOFTWARE.
 
25
 */
 
26
 
 
27
#ifndef _T4_
 
28
#define _T4_
 
29
/*
 
30
 * CCITT T.4 1D Huffman runlength codes and
 
31
 * related definitions.  Given the small sizes
 
32
 * of these tables it does not seem
 
33
 * worthwhile to make code & length 8 bits.
 
34
 */
 
35
typedef struct tableentry {
 
36
    unsigned short length;      /* bit length of g3 code */
 
37
    unsigned short code;        /* g3 code */
 
38
    short       runlen;         /* run length in bits */
 
39
} tableentry;
 
40
 
 
41
#define EOL     0x001   /* EOL code value - 0000 0000 0000 1 */
 
42
 
 
43
/* status values returned instead of a run length */
 
44
#define G3CODE_EOL      -1      /* NB: ACT_EOL - ACT_WRUNT */
 
45
#define G3CODE_INVALID  -2      /* NB: ACT_INVALID - ACT_WRUNT */
 
46
#define G3CODE_EOF      -3      /* end of input data */
 
47
#define G3CODE_INCOMP   -4      /* incomplete run code */
 
48
 
 
49
/*
 
50
 * Note that these tables are ordered such that the
 
51
 * index into the table is known to be either the
 
52
 * run length, or (run length / 64) + a fixed offset.
 
53
 *
 
54
 * NB: The G3CODE_INVALID entries are only used
 
55
 *     during state generation (see mkg3states.c).
 
56
 */
 
57
#ifdef G3CODES
 
58
const tableentry TIFFFaxWhiteCodes[] = {
 
59
    { 8, 0x35, 0 },     /* 0011 0101 */
 
60
    { 6, 0x7, 1 },      /* 0001 11 */
 
61
    { 4, 0x7, 2 },      /* 0111 */
 
62
    { 4, 0x8, 3 },      /* 1000 */
 
63
    { 4, 0xB, 4 },      /* 1011 */
 
64
    { 4, 0xC, 5 },      /* 1100 */
 
65
    { 4, 0xE, 6 },      /* 1110 */
 
66
    { 4, 0xF, 7 },      /* 1111 */
 
67
    { 5, 0x13, 8 },     /* 1001 1 */
 
68
    { 5, 0x14, 9 },     /* 1010 0 */
 
69
    { 5, 0x7, 10 },     /* 0011 1 */
 
70
    { 5, 0x8, 11 },     /* 0100 0 */
 
71
    { 6, 0x8, 12 },     /* 0010 00 */
 
72
    { 6, 0x3, 13 },     /* 0000 11 */
 
73
    { 6, 0x34, 14 },    /* 1101 00 */
 
74
    { 6, 0x35, 15 },    /* 1101 01 */
 
75
    { 6, 0x2A, 16 },    /* 1010 10 */
 
76
    { 6, 0x2B, 17 },    /* 1010 11 */
 
77
    { 7, 0x27, 18 },    /* 0100 111 */
 
78
    { 7, 0xC, 19 },     /* 0001 100 */
 
79
    { 7, 0x8, 20 },     /* 0001 000 */
 
80
    { 7, 0x17, 21 },    /* 0010 111 */
 
81
    { 7, 0x3, 22 },     /* 0000 011 */
 
82
    { 7, 0x4, 23 },     /* 0000 100 */
 
83
    { 7, 0x28, 24 },    /* 0101 000 */
 
84
    { 7, 0x2B, 25 },    /* 0101 011 */
 
85
    { 7, 0x13, 26 },    /* 0010 011 */
 
86
    { 7, 0x24, 27 },    /* 0100 100 */
 
87
    { 7, 0x18, 28 },    /* 0011 000 */
 
88
    { 8, 0x2, 29 },     /* 0000 0010 */
 
89
    { 8, 0x3, 30 },     /* 0000 0011 */
 
90
    { 8, 0x1A, 31 },    /* 0001 1010 */
 
91
    { 8, 0x1B, 32 },    /* 0001 1011 */
 
92
    { 8, 0x12, 33 },    /* 0001 0010 */
 
93
    { 8, 0x13, 34 },    /* 0001 0011 */
 
94
    { 8, 0x14, 35 },    /* 0001 0100 */
 
95
    { 8, 0x15, 36 },    /* 0001 0101 */
 
96
    { 8, 0x16, 37 },    /* 0001 0110 */
 
97
    { 8, 0x17, 38 },    /* 0001 0111 */
 
98
    { 8, 0x28, 39 },    /* 0010 1000 */
 
99
    { 8, 0x29, 40 },    /* 0010 1001 */
 
100
    { 8, 0x2A, 41 },    /* 0010 1010 */
 
101
    { 8, 0x2B, 42 },    /* 0010 1011 */
 
102
    { 8, 0x2C, 43 },    /* 0010 1100 */
 
103
    { 8, 0x2D, 44 },    /* 0010 1101 */
 
104
    { 8, 0x4, 45 },     /* 0000 0100 */
 
105
    { 8, 0x5, 46 },     /* 0000 0101 */
 
106
    { 8, 0xA, 47 },     /* 0000 1010 */
 
107
    { 8, 0xB, 48 },     /* 0000 1011 */
 
108
    { 8, 0x52, 49 },    /* 0101 0010 */
 
109
    { 8, 0x53, 50 },    /* 0101 0011 */
 
110
    { 8, 0x54, 51 },    /* 0101 0100 */
 
111
    { 8, 0x55, 52 },    /* 0101 0101 */
 
112
    { 8, 0x24, 53 },    /* 0010 0100 */
 
113
    { 8, 0x25, 54 },    /* 0010 0101 */
 
114
    { 8, 0x58, 55 },    /* 0101 1000 */
 
115
    { 8, 0x59, 56 },    /* 0101 1001 */
 
116
    { 8, 0x5A, 57 },    /* 0101 1010 */
 
117
    { 8, 0x5B, 58 },    /* 0101 1011 */
 
118
    { 8, 0x4A, 59 },    /* 0100 1010 */
 
119
    { 8, 0x4B, 60 },    /* 0100 1011 */
 
120
    { 8, 0x32, 61 },    /* 0011 0010 */
 
121
    { 8, 0x33, 62 },    /* 0011 0011 */
 
122
    { 8, 0x34, 63 },    /* 0011 0100 */
 
123
    { 5, 0x1B, 64 },    /* 1101 1 */
 
124
    { 5, 0x12, 128 },   /* 1001 0 */
 
125
    { 6, 0x17, 192 },   /* 0101 11 */
 
126
    { 7, 0x37, 256 },   /* 0110 111 */
 
127
    { 8, 0x36, 320 },   /* 0011 0110 */
 
128
    { 8, 0x37, 384 },   /* 0011 0111 */
 
129
    { 8, 0x64, 448 },   /* 0110 0100 */
 
130
    { 8, 0x65, 512 },   /* 0110 0101 */
 
131
    { 8, 0x68, 576 },   /* 0110 1000 */
 
132
    { 8, 0x67, 640 },   /* 0110 0111 */
 
133
    { 9, 0xCC, 704 },   /* 0110 0110 0 */
 
134
    { 9, 0xCD, 768 },   /* 0110 0110 1 */
 
135
    { 9, 0xD2, 832 },   /* 0110 1001 0 */
 
136
    { 9, 0xD3, 896 },   /* 0110 1001 1 */
 
137
    { 9, 0xD4, 960 },   /* 0110 1010 0 */
 
138
    { 9, 0xD5, 1024 },  /* 0110 1010 1 */
 
139
    { 9, 0xD6, 1088 },  /* 0110 1011 0 */
 
140
    { 9, 0xD7, 1152 },  /* 0110 1011 1 */
 
141
    { 9, 0xD8, 1216 },  /* 0110 1100 0 */
 
142
    { 9, 0xD9, 1280 },  /* 0110 1100 1 */
 
143
    { 9, 0xDA, 1344 },  /* 0110 1101 0 */
 
144
    { 9, 0xDB, 1408 },  /* 0110 1101 1 */
 
145
    { 9, 0x98, 1472 },  /* 0100 1100 0 */
 
146
    { 9, 0x99, 1536 },  /* 0100 1100 1 */
 
147
    { 9, 0x9A, 1600 },  /* 0100 1101 0 */
 
148
    { 6, 0x18, 1664 },  /* 0110 00 */
 
149
    { 9, 0x9B, 1728 },  /* 0100 1101 1 */
 
150
    { 11, 0x8, 1792 },  /* 0000 0001 000 */
 
151
    { 11, 0xC, 1856 },  /* 0000 0001 100 */
 
152
    { 11, 0xD, 1920 },  /* 0000 0001 101 */
 
153
    { 12, 0x12, 1984 }, /* 0000 0001 0010 */
 
154
    { 12, 0x13, 2048 }, /* 0000 0001 0011 */
 
155
    { 12, 0x14, 2112 }, /* 0000 0001 0100 */
 
156
    { 12, 0x15, 2176 }, /* 0000 0001 0101 */
 
157
    { 12, 0x16, 2240 }, /* 0000 0001 0110 */
 
158
    { 12, 0x17, 2304 }, /* 0000 0001 0111 */
 
159
    { 12, 0x1C, 2368 }, /* 0000 0001 1100 */
 
160
    { 12, 0x1D, 2432 }, /* 0000 0001 1101 */
 
161
    { 12, 0x1E, 2496 }, /* 0000 0001 1110 */
 
162
    { 12, 0x1F, 2560 }, /* 0000 0001 1111 */
 
163
    { 12, 0x1, G3CODE_EOL },    /* 0000 0000 0001 */
 
164
    { 9, 0x1, G3CODE_INVALID }, /* 0000 0000 1 */
 
165
    { 10, 0x1, G3CODE_INVALID },        /* 0000 0000 01 */
 
166
    { 11, 0x1, G3CODE_INVALID },        /* 0000 0000 001 */
 
167
    { 12, 0x0, G3CODE_INVALID },        /* 0000 0000 0000 */
 
168
};
 
169
 
 
170
const tableentry TIFFFaxBlackCodes[] = {
 
171
    { 10, 0x37, 0 },    /* 0000 1101 11 */
 
172
    { 3, 0x2, 1 },      /* 010 */
 
173
    { 2, 0x3, 2 },      /* 11 */
 
174
    { 2, 0x2, 3 },      /* 10 */
 
175
    { 3, 0x3, 4 },      /* 011 */
 
176
    { 4, 0x3, 5 },      /* 0011 */
 
177
    { 4, 0x2, 6 },      /* 0010 */
 
178
    { 5, 0x3, 7 },      /* 0001 1 */
 
179
    { 6, 0x5, 8 },      /* 0001 01 */
 
180
    { 6, 0x4, 9 },      /* 0001 00 */
 
181
    { 7, 0x4, 10 },     /* 0000 100 */
 
182
    { 7, 0x5, 11 },     /* 0000 101 */
 
183
    { 7, 0x7, 12 },     /* 0000 111 */
 
184
    { 8, 0x4, 13 },     /* 0000 0100 */
 
185
    { 8, 0x7, 14 },     /* 0000 0111 */
 
186
    { 9, 0x18, 15 },    /* 0000 1100 0 */
 
187
    { 10, 0x17, 16 },   /* 0000 0101 11 */
 
188
    { 10, 0x18, 17 },   /* 0000 0110 00 */
 
189
    { 10, 0x8, 18 },    /* 0000 0010 00 */
 
190
    { 11, 0x67, 19 },   /* 0000 1100 111 */
 
191
    { 11, 0x68, 20 },   /* 0000 1101 000 */
 
192
    { 11, 0x6C, 21 },   /* 0000 1101 100 */
 
193
    { 11, 0x37, 22 },   /* 0000 0110 111 */
 
194
    { 11, 0x28, 23 },   /* 0000 0101 000 */
 
195
    { 11, 0x17, 24 },   /* 0000 0010 111 */
 
196
    { 11, 0x18, 25 },   /* 0000 0011 000 */
 
197
    { 12, 0xCA, 26 },   /* 0000 1100 1010 */
 
198
    { 12, 0xCB, 27 },   /* 0000 1100 1011 */
 
199
    { 12, 0xCC, 28 },   /* 0000 1100 1100 */
 
200
    { 12, 0xCD, 29 },   /* 0000 1100 1101 */
 
201
    { 12, 0x68, 30 },   /* 0000 0110 1000 */
 
202
    { 12, 0x69, 31 },   /* 0000 0110 1001 */
 
203
    { 12, 0x6A, 32 },   /* 0000 0110 1010 */
 
204
    { 12, 0x6B, 33 },   /* 0000 0110 1011 */
 
205
    { 12, 0xD2, 34 },   /* 0000 1101 0010 */
 
206
    { 12, 0xD3, 35 },   /* 0000 1101 0011 */
 
207
    { 12, 0xD4, 36 },   /* 0000 1101 0100 */
 
208
    { 12, 0xD5, 37 },   /* 0000 1101 0101 */
 
209
    { 12, 0xD6, 38 },   /* 0000 1101 0110 */
 
210
    { 12, 0xD7, 39 },   /* 0000 1101 0111 */
 
211
    { 12, 0x6C, 40 },   /* 0000 0110 1100 */
 
212
    { 12, 0x6D, 41 },   /* 0000 0110 1101 */
 
213
    { 12, 0xDA, 42 },   /* 0000 1101 1010 */
 
214
    { 12, 0xDB, 43 },   /* 0000 1101 1011 */
 
215
    { 12, 0x54, 44 },   /* 0000 0101 0100 */
 
216
    { 12, 0x55, 45 },   /* 0000 0101 0101 */
 
217
    { 12, 0x56, 46 },   /* 0000 0101 0110 */
 
218
    { 12, 0x57, 47 },   /* 0000 0101 0111 */
 
219
    { 12, 0x64, 48 },   /* 0000 0110 0100 */
 
220
    { 12, 0x65, 49 },   /* 0000 0110 0101 */
 
221
    { 12, 0x52, 50 },   /* 0000 0101 0010 */
 
222
    { 12, 0x53, 51 },   /* 0000 0101 0011 */
 
223
    { 12, 0x24, 52 },   /* 0000 0010 0100 */
 
224
    { 12, 0x37, 53 },   /* 0000 0011 0111 */
 
225
    { 12, 0x38, 54 },   /* 0000 0011 1000 */
 
226
    { 12, 0x27, 55 },   /* 0000 0010 0111 */
 
227
    { 12, 0x28, 56 },   /* 0000 0010 1000 */
 
228
    { 12, 0x58, 57 },   /* 0000 0101 1000 */
 
229
    { 12, 0x59, 58 },   /* 0000 0101 1001 */
 
230
    { 12, 0x2B, 59 },   /* 0000 0010 1011 */
 
231
    { 12, 0x2C, 60 },   /* 0000 0010 1100 */
 
232
    { 12, 0x5A, 61 },   /* 0000 0101 1010 */
 
233
    { 12, 0x66, 62 },   /* 0000 0110 0110 */
 
234
    { 12, 0x67, 63 },   /* 0000 0110 0111 */
 
235
    { 10, 0xF, 64 },    /* 0000 0011 11 */
 
236
    { 12, 0xC8, 128 },  /* 0000 1100 1000 */
 
237
    { 12, 0xC9, 192 },  /* 0000 1100 1001 */
 
238
    { 12, 0x5B, 256 },  /* 0000 0101 1011 */
 
239
    { 12, 0x33, 320 },  /* 0000 0011 0011 */
 
240
    { 12, 0x34, 384 },  /* 0000 0011 0100 */
 
241
    { 12, 0x35, 448 },  /* 0000 0011 0101 */
 
242
    { 13, 0x6C, 512 },  /* 0000 0011 0110 0 */
 
243
    { 13, 0x6D, 576 },  /* 0000 0011 0110 1 */
 
244
    { 13, 0x4A, 640 },  /* 0000 0010 0101 0 */
 
245
    { 13, 0x4B, 704 },  /* 0000 0010 0101 1 */
 
246
    { 13, 0x4C, 768 },  /* 0000 0010 0110 0 */
 
247
    { 13, 0x4D, 832 },  /* 0000 0010 0110 1 */
 
248
    { 13, 0x72, 896 },  /* 0000 0011 1001 0 */
 
249
    { 13, 0x73, 960 },  /* 0000 0011 1001 1 */
 
250
    { 13, 0x74, 1024 }, /* 0000 0011 1010 0 */
 
251
    { 13, 0x75, 1088 }, /* 0000 0011 1010 1 */
 
252
    { 13, 0x76, 1152 }, /* 0000 0011 1011 0 */
 
253
    { 13, 0x77, 1216 }, /* 0000 0011 1011 1 */
 
254
    { 13, 0x52, 1280 }, /* 0000 0010 1001 0 */
 
255
    { 13, 0x53, 1344 }, /* 0000 0010 1001 1 */
 
256
    { 13, 0x54, 1408 }, /* 0000 0010 1010 0 */
 
257
    { 13, 0x55, 1472 }, /* 0000 0010 1010 1 */
 
258
    { 13, 0x5A, 1536 }, /* 0000 0010 1101 0 */
 
259
    { 13, 0x5B, 1600 }, /* 0000 0010 1101 1 */
 
260
    { 13, 0x64, 1664 }, /* 0000 0011 0010 0 */
 
261
    { 13, 0x65, 1728 }, /* 0000 0011 0010 1 */
 
262
    { 11, 0x8, 1792 },  /* 0000 0001 000 */
 
263
    { 11, 0xC, 1856 },  /* 0000 0001 100 */
 
264
    { 11, 0xD, 1920 },  /* 0000 0001 101 */
 
265
    { 12, 0x12, 1984 }, /* 0000 0001 0010 */
 
266
    { 12, 0x13, 2048 }, /* 0000 0001 0011 */
 
267
    { 12, 0x14, 2112 }, /* 0000 0001 0100 */
 
268
    { 12, 0x15, 2176 }, /* 0000 0001 0101 */
 
269
    { 12, 0x16, 2240 }, /* 0000 0001 0110 */
 
270
    { 12, 0x17, 2304 }, /* 0000 0001 0111 */
 
271
    { 12, 0x1C, 2368 }, /* 0000 0001 1100 */
 
272
    { 12, 0x1D, 2432 }, /* 0000 0001 1101 */
 
273
    { 12, 0x1E, 2496 }, /* 0000 0001 1110 */
 
274
    { 12, 0x1F, 2560 }, /* 0000 0001 1111 */
 
275
    { 12, 0x1, G3CODE_EOL },    /* 0000 0000 0001 */
 
276
    { 9, 0x1, G3CODE_INVALID }, /* 0000 0000 1 */
 
277
    { 10, 0x1, G3CODE_INVALID },        /* 0000 0000 01 */
 
278
    { 11, 0x1, G3CODE_INVALID },        /* 0000 0000 001 */
 
279
    { 12, 0x0, G3CODE_INVALID },        /* 0000 0000 0000 */
 
280
};
 
281
#else
 
282
extern  const tableentry TIFFFaxWhiteCodes[];
 
283
extern  const tableentry TIFFFaxBlackCodes[];
 
284
#endif
 
285
#endif /* _T4_ */
 
286
/*
 
287
 * Local Variables:
 
288
 * mode: c
 
289
 * c-basic-offset: 8
 
290
 * fill-column: 78
 
291
 * End:
 
292
 */