|
|
1.1 ! root 1: ! 2: /* ! 3: * ! 4: * Some definitions used by the troff post-processor dimpress. The stuff at ! 5: * the beginning of the file is rather general and you probably won't have ! 6: * to change any of it. The printer dependent stuff can all be found at the ! 7: * end of the file. ! 8: * ! 9: */ ! 10: ! 11: ! 12: #define NFONT 60 /* max number of font positions */ ! 13: ! 14: ! 15: /* ! 16: * ! 17: * These guys are used set the program exit status. If everything we're ! 18: * supposed to do gets finished the exit status will eventually be set to ! 19: * zero. ! 20: * ! 21: */ ! 22: ! 23: ! 24: #define DO_ACCT 1 /* still want to do job accounting */ ! 25: #define FILE_STARTED 2 /* started file but didn't finish yet */ ! 26: #define NO_ACCTFILE 8 /* couldn't open the accounting file */ ! 27: ! 28: ! 29: /* ! 30: * ! 31: * Landscape mode has been added to the post-processor. It's set using the ! 32: * -l option. ! 33: * ! 34: */ ! 35: ! 36: ! 37: #define PORTRAIT 0 ! 38: #define LANDSCAPE 1 ! 39: ! 40: ! 41: /* ! 42: * ! 43: * SLOP controls how much horizontal positioning error we'll accept. It's ! 44: * used when we're printing glyphs to check if the troff and the printer ! 45: * have gotten too far out of sync. ! 46: * ! 47: */ ! 48: ! 49: ! 50: #define SLOP 1 /* not acccepting much error */ ! 51: ! 52: ! 53: /* ! 54: * ! 55: * I've written the post-processor so it can handle raster files in both ! 56: * the old format and in Imagen's Rst format. Obviously different routines ! 57: * need to be called depending which style we're using. These definitions ! 58: * are used in dimpress.c to figure out which routines to call. ! 59: * ! 60: */ ! 61: ! 62: ! 63: #define OLD_FORMAT 0 ! 64: #define RST_FORMAT 1 ! 65: ! 66: ! 67: /* ! 68: * ! 69: * The raster files in the old format (not Imagen's) weren't portable and ! 70: * neither was much of the code used to read them. CONVINT() is a macro ! 71: * that we found was needed on 3b's, but only when we were using the old ! 72: * files. ! 73: * ! 74: */ ! 75: ! 76: ! 77: #ifdef u3b ! 78: #define CONVINT(C) convint(C) ! 79: #else ! 80: #define CONVINT(C) C ! 81: #endif ! 82: ! 83: ! 84: /* ! 85: * ! 86: * The rest of the stuff in this file deals with the different printers ! 87: * directly supported by the post-processor. ! 88: * ! 89: * There really are only five or six variables in the post-processor that ! 90: * are printer dependent. They include prname, pres, xoff, yoff, penwidth, ! 91: * and possibly bitdir. ! 92: * ! 93: * This structure keeps track of the printer dependent values. An array ! 94: * of Prdata is defined in dimpress.c and initialized using PR_INIT below. ! 95: * The values of the corresponding program variables are set in initialize() ! 96: * after the options are read. ! 97: * ! 98: */ ! 99: ! 100: ! 101: typedef struct { ! 102: ! 103: char *prname; /* name of the printer - *realdev */ ! 104: int pres; /* resolution of the printer */ ! 105: float xoff; /* reasonable values for the offsets */ ! 106: float yoff; /* in inches */ ! 107: int penwidth; /* decent looking pen diameter */ ! 108: char *bitdir; /* raster table directory */ ! 109: ! 110: } Prdata; ! 111: ! 112: ! 113: /* ! 114: * ! 115: * PR_INIT is used in dimpress.c to initialize the Prdata array. Its data ! 116: * is given next. The list of printers must be terminated by an entry with ! 117: * the prname field set to NULL. ! 118: * ! 119: */ ! 120: ! 121: ! 122: #define PR_INIT \ ! 123: \ ! 124: { \ ! 125: { "im300", 300, .20, 0.0, 3, BITDIR }, \ ! 126: { "i300", 300, .20, 0.0, 3, BITDIR }, \ ! 127: { "i240", 240, .41, 0.0, 2, BITDIR }, \ ! 128: { "i480", 480, .41, 0.0, 4, BITDIR }, \ ! 129: { "i10", 240, .41, 0.0, 2, OLDBITDIR }, \ ! 130: { "a490", 300, .10, 0.0, 3, BITDIR }, \ ! 131: { NULL, 0, 0, 0, 0, NULL } \ ! 132: } ! 133: ! 134: ! 135: /* ! 136: * ! 137: * This guy is used to initialize pr_num in dimpress.c. It will be the 'line' ! 138: * PR_INIT (actually the index in prdata[]) that will be used as the default ! 139: * printer. ! 140: * ! 141: */ ! 142: ! 143: ! 144: #define PR_NUM 0 ! 145: ! 146: ! 147: /* ! 148: * ! 149: * Printer emulation, especially for the APS-5, is important at Murray Hill ! 150: * and our users expect we'll do the best we can in showing font and size ! 151: * changes. The next typedef is used to help us map troff fonts for other ! 152: * devices into what's available on Postscript printers. ! 153: * ! 154: */ ! 155: ! 156: ! 157: typedef struct { ! 158: ! 159: char *name; /* font name we're looking for */ ! 160: char *use; /* and this is what we should use */ ! 161: ! 162: } Fontmap; ! 163: ! 164: ! 165: /* ! 166: * ! 167: * The next definition is used to initialize the default Fontmap array in dpost. ! 168: * It's not meant to include all the fonts available on every printer. It's ! 169: * just a reasonable default that you can override with special fontmap files ! 170: * for any device. In particular if file *fontdir/devpost/fontmaps/*devname ! 171: * exists, it's used instead of the deafult map defined here. The list must end ! 172: * with an entry that has NULL defined for the name field. ! 173: * ! 174: */ ! 175: ! 176: ! 177: #define FONTMAP \ ! 178: \ ! 179: { \ ! 180: "G", "H", \ ! 181: "LO", "S", \ ! 182: "S2", "S", \ ! 183: "GI", "HI", \ ! 184: "HM", "H", \ ! 185: "HK", "H", \ ! 186: "HL", "H", \ ! 187: "PA", "R", \ ! 188: "PI", "I", \ ! 189: "PB", "B", \ ! 190: "PX", "BI", \ ! 191: NULL, NULL, \ ! 192: } ! 193: ! 194:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.