Figure 1: The shar_vars structure
/* ********************************************************************* */
/* Pointers To Vertical Spacing Values Shared With the Formatter Driver */
/* NOTE: All pointers in the table, and all values they point to (except */
/* "_vtab_base"), are initialized and maintained by the formatter. */
/* "Vres units" is the number of units into which a vertical inch */
/* is divided. */
/* ********************************************************************* */
struct shar_vars {
int *_pl; /* page length, in Vres units. A value of zero means
that page boundaries will be ignored. */
int *_tmarg; /* top margin, in Vres units */
int *_bmarg; /* bottom margin, in Vres units */
int *_vpos; /* vertical position where the next line is to be
be printed (in Vres units, relative to the top
of the physical page) */
int *_vtab_base; /* base vertical position for vertical tab stops.
Adjusted to reflect top margin and security label.
Set by formatter driver. Used by formatter
to calculate the new vertical position when a
vertical tab is encountered */
int *_vincr; /* vertical increment: the number of Vres units
that the command whose attribute name is pointed
to by "_vincr_cmd" will advance the page */
char *_vincr_cmd; /* pointer to the attribute name of the vertical
spacing command (e.g., a line feed, or line
feed/carrier return) that will space down the
number of Vres units specified by the the integer
pointed to by "_vincr". */
int *_vdecr; /* vertical decrement: the number of Vres units
that the command whose attribute name is pointed
to by "_vdecr_cmd" will back up the page */
char *_vdecr_cmd; /* pointer to the attribute name of the vertical
backspacing command (e.g., a reverse line feed)
that will space up the number of Vres units
specified by the the integer pointed to by
"_vdecr". */
char *_ff_cmd; /* pointer to the attribute name for the form feed
command. */
int *_ff_at_eof; /* if TRUE, output form feed at end of input file */
char *_set_cmd; /* pointer to the attribute name of the command to be
sent to the printer by the formatter driver to put
the printer in the proper state when switching back
& forth between "current" (PIO_CURR_MODE) mode and
"security label" (PIO_SECUR_MODE) mode. The command
should normally be similar to the printer
initialization and restore commands, except that the
page length should not be changed. */
int *_reserved1; /* reserved for future use; must be set to NULL */
int *_reserved2; /* reserved for future use; must be set to NULL */
char *_reserved3; /* reserved for future use; must be set to NULL */
char *_reserved4; /* reserved for future use; must be set to NULL */
};
|