PageRenderTime 11ms CodeModel.GetById 1ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/src/FreeImage/Source/LibTIFF/mkspans.c

https://bitbucket.org/cabalistic/ogredeps/
C | 82 lines | 39 code | 7 blank | 36 comment | 6 complexity | a6e23cc32f4362660c8c32bf79e3ade8 MD5 | raw file
 1/* $Id: mkspans.c,v 1.22 2011/04/10 17:14:09 drolon Exp $ */
 2
 3/*
 4 * Copyright (c) 1991-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#include <string.h>
28#include <stdio.h>
29
30/*
31 * Hack program to construct tables used to find
32 * runs of zeros and ones in Group 3 Fax encoding.
33 */
34
35dumparray(name, runs)
36	char *name;
37	unsigned char runs[256];
38{
39	int i;
40	char *sep;
41	printf("static unsigned char %s[256] = {\n", name);
42	sep = "    ";
43	for (i = 0; i < 256; i++) {
44		printf("%s%d", sep, runs[i]);
45		if (((i + 1) % 16) == 0) {
46			printf(",	/* 0x%02x - 0x%02x */\n", i-15, i);
47			sep = "    ";
48		} else
49			sep = ", ";
50	}
51	printf("\n};\n");
52}
53
54main()
55{
56	unsigned char runs[2][256];
57
58	memset(runs[0], 0, 256*sizeof (char));
59	memset(runs[1], 0, 256*sizeof (char));
60	{ register int run, runlen, i;
61	  runlen = 1;
62	  for (run = 0x80; run != 0xff; run = (run>>1)|0x80) {
63		for (i = run-1; i >= 0; i--) {
64			runs[1][run|i] = runlen;
65			runs[0][(~(run|i)) & 0xff] = runlen;
66		}
67		runlen++;
68	  }
69	  runs[1][0xff] = runs[0][0] = 8;
70	}
71	dumparray("bruns", runs[0]);
72	dumparray("wruns", runs[1]);
73}
74
75/* vim: set ts=8 sts=8 sw=8 noet: */
76/*
77 * Local Variables:
78 * mode: c
79 * c-basic-offset: 8
80 * fill-column: 78
81 * End:
82 */