1/* $Header$ */ 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 "tiffcomp.h" 28 29/* 30 * Hack program to construct tables used to find 31 * runs of zeros and ones in Group 3 Fax encoding. 32 */ 33 34dumparray(name, runs) 35 char *name; 36 unsigned char runs[256]; 37{ 38 register int i; 39 register char *sep; 40 printf("static u_char %s[256] = {\n", name); 41 sep = " "; 42 for (i = 0; i < 256; i++) { 43 printf("%s%d", sep, runs[i]); 44 if (((i + 1) % 16) == 0) { 45 printf(", /* 0x%02x - 0x%02x */\n", i-15, i); 46 sep = " "; 47 } else 48 sep = ", "; 49 } 50 printf("\n};\n"); 51} 52 53main() 54{ 55 unsigned char runs[2][256]; 56 57 memset(runs[0], 0, 256*sizeof (char)); 58 memset(runs[1], 0, 256*sizeof (char)); 59 { register int run, runlen, i; 60 runlen = 1; 61 for (run = 0x80; run != 0xff; run = (run>>1)|0x80) { 62 for (i = run-1; i >= 0; i--) { 63 runs[1][run|i] = runlen; 64 runs[0][(~(run|i)) & 0xff] = runlen; 65 } 66 runlen++; 67 } 68 runs[1][0xff] = runs[0][0] = 8; 69 } 70 dumparray("bruns", runs[0]); 71 dumparray("wruns", runs[1]); 72} 73