home *** CD-ROM | disk | FTP | other *** search
- /*
- * This software is Copyright 1988 by Radical Eye Software.
- * All Rights Reserved.
- */
- #import <stdio.h>
- /*
- * Constants, used to expand or decrease the capacity of this program.
- * Since all memory is dynamically allocated and the constants in the
- * program are due to limitations of TeX or the printer itself, there
- * are really few changes that can be made here.
- */
- #define RASTERCHUNK (4000) /* size of chunk of raster */
- #define MINCHUNK (1000) /* anything this big gets its own chunk */
- #define MAXDRIFT (1) /* maximum drift in pixels */
- #define MAXFRAME (10) /* maximum depth of virtual font recursion */
- #define STACKSIZE (100) /* maximum stack size for dvi files */
- /*
- * Our memory type declarations.
- */
- #define MEMF_CLEAR (1)
- /*
- * No file.
- */
- #define NOFILETITLE ""
- /*
- * Type declarations. integer must be a 32-bit signed; shalfword must
- * be a sixteen-bit signed; halfword must be a sixteen-bit unsigned;
- * quarterword must be an eight-bit unsigned.
- */
- typedef long integer ;
- typedef short shalfword ;
- typedef unsigned short halfword ;
- typedef unsigned char quarterword ;
- typedef float real ;
- typedef int Boolean ;
- /*
- * A chardesc describes an individual character.
- */
- typedef struct {
- integer TFMwidth ;
- quarterword *packptr ; /* only used for virtual fonts */
- halfword pixelwidth ;
- halfword dummy ;
- } chardesctype ;
- /*
- * A fontdesc describes a font. The name of the font immediately follows
- * this structure. Set up for 128 or 256 character fonts.
- */
- typedef struct t2 {
- chardesctype *chardesc ;
- struct t2 *next ;
- halfword dpi, loadeddpi ;
- halfword alreadyscaled, virtual ;
- int maxchars, id ;
- struct resfont *resfont ;
- struct fontmap *localfonts ;
- char name[4] ;
- } fontdesctype ;
- /*
- * A TeXfontdesctype describes a TeX font, which contains a pointer
- * to a fontdesc. The name is again located in the string pool.
- * These are allocated as they are needed; they are 1048 bytes long.
- * The name immediately follows this structure.
- */
- typedef struct tfdt {
- fontdesctype *loaded ;
- struct tfdt *next ;
- integer checksum, designsize, scaledsize, thinspace, origssize ;
- integer scaledwidth[256] ;
- integer wanteddpi ;
- char name[4] ;
- } TeXfontdesctype ;
-
- /* A fontmap associates a fontdesc with a font number.
- */
- typedef struct fontmap {
- integer fontnum ;
- TeXfontdesctype *tdesc ;
- struct fontmap *next ;
- } fontmaptype ;
- /* Virtual fonts require a `macro' capability that is implemented by
- * using a stack of `frames'.
- */
- typedef struct {
- quarterword *curp, *curl ;
- TeXfontdesctype *tfnt ;
- fontdesctype *curf ;
- fontmaptype *ff ;
- } frametype ;
- /*
- * Crude, crude hack; why is this necessary?
- */
- extern int _filbuf() ;
- /*
- * This is the structure definition for resident fonts. We use
- * a small and simple hash table to handle these. We don't need
- * a big hash table.
- */
- #define RESHASHPRIME (23)
- struct resfont {
- char *Keyname, *PSname, *TeXname ;
- char *specialinstructions ;
- char *downloadheader ;
- struct resfont *next ;
- quarterword sent ;
- } ;
- #define DEBUG
- #define getenv mgetenv
-