|
|
researchv10 Norman
/*
*
* Some definitions used by the troff post-processor dimpress. The stuff at
* the beginning of the file is rather general and you probably won't have
* to change any of it. The printer dependent stuff can all be found at the
* end of the file.
*
*/
#define NFONT 60 /* max number of font positions */
/*
*
* These guys are used set the program exit status. If everything we're
* supposed to do gets finished the exit status will eventually be set to
* zero.
*
*/
#define DO_ACCT 1 /* still want to do job accounting */
#define FILE_STARTED 2 /* started file but didn't finish yet */
#define NO_ACCTFILE 8 /* couldn't open the accounting file */
/*
*
* Landscape mode has been added to the post-processor. It's set using the
* -l option.
*
*/
#define PORTRAIT 0
#define LANDSCAPE 1
/*
*
* SLOP controls how much horizontal positioning error we'll accept. It's
* used when we're printing glyphs to check if the troff and the printer
* have gotten too far out of sync.
*
*/
#define SLOP 1 /* not acccepting much error */
/*
*
* I've written the post-processor so it can handle raster files in both
* the old format and in Imagen's Rst format. Obviously different routines
* need to be called depending which style we're using. These definitions
* are used in dimpress.c to figure out which routines to call.
*
*/
#define OLD_FORMAT 0
#define RST_FORMAT 1
/*
*
* The raster files in the old format (not Imagen's) weren't portable and
* neither was much of the code used to read them. CONVINT() is a macro
* that we found was needed on 3b's, but only when we were using the old
* files.
*
*/
#ifdef u3b
#define CONVINT(C) convint(C)
#else
#define CONVINT(C) C
#endif
/*
*
* The rest of the stuff in this file deals with the different printers
* directly supported by the post-processor.
*
* There really are only five or six variables in the post-processor that
* are printer dependent. They include prname, pres, xoff, yoff, penwidth,
* and possibly bitdir.
*
* This structure keeps track of the printer dependent values. An array
* of Prdata is defined in dimpress.c and initialized using PR_INIT below.
* The values of the corresponding program variables are set in initialize()
* after the options are read.
*
*/
typedef struct {
char *prname; /* name of the printer - *realdev */
int pres; /* resolution of the printer */
float xoff; /* reasonable values for the offsets */
float yoff; /* in inches */
int penwidth; /* decent looking pen diameter */
char *bitdir; /* raster table directory */
} Prdata;
/*
*
* PR_INIT is used in dimpress.c to initialize the Prdata array. Its data
* is given next. The list of printers must be terminated by an entry with
* the prname field set to NULL.
*
*/
#define PR_INIT \
\
{ \
{ "im300", 300, .20, 0.0, 3, BITDIR }, \
{ "i300", 300, .20, 0.0, 3, BITDIR }, \
{ "i240", 240, .41, 0.0, 2, BITDIR }, \
{ "i480", 480, .41, 0.0, 4, BITDIR }, \
{ "i10", 240, .41, 0.0, 2, OLDBITDIR }, \
{ "a490", 300, .10, 0.0, 3, BITDIR }, \
{ NULL, 0, 0, 0, 0, NULL } \
}
/*
*
* This guy is used to initialize pr_num in dimpress.c. It will be the 'line'
* PR_INIT (actually the index in prdata[]) that will be used as the default
* printer.
*
*/
#define PR_NUM 0
/*
*
* Printer emulation, especially for the APS-5, is important at Murray Hill
* and our users expect we'll do the best we can in showing font and size
* changes. The next typedef is used to help us map troff fonts for other
* devices into what's available on Postscript printers.
*
*/
typedef struct {
char *name; /* font name we're looking for */
char *use; /* and this is what we should use */
} Fontmap;
/*
*
* The next definition is used to initialize the default Fontmap array in dpost.
* It's not meant to include all the fonts available on every printer. It's
* just a reasonable default that you can override with special fontmap files
* for any device. In particular if file *fontdir/devpost/fontmaps/*devname
* exists, it's used instead of the deafult map defined here. The list must end
* with an entry that has NULL defined for the name field.
*
*/
#define FONTMAP \
\
{ \
"G", "H", \
"LO", "S", \
"S2", "S", \
"GI", "HI", \
"HM", "H", \
"HK", "H", \
"HL", "H", \
"PA", "R", \
"PI", "I", \
"PB", "B", \
"PX", "BI", \
NULL, NULL, \
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.