home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / DVIM72-Mac 1.9.6 / source / egblvars.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-14  |  8.1 KB  |  207 lines  |  [TEXT/R*ch]

  1. /* -*-C-*- gblvars.h */
  2. /*-->gblvars*/
  3. #if OS_THINKC
  4. #include "PrintTraps.h"
  5. #endif
  6. /**********************************************************************/
  7. /****************************** egblvars.h *******************************/
  8. /**********************************************************************/
  9.  
  10. /**********************************************************************/
  11. /*********************  General Global Variables  *********************/
  12. /**********************************************************************/
  13.  
  14. extern INT32 hxxxx;            /* current horizontal position            */
  15. extern char curpath[MAXFNAME];            /* current file area */
  16. extern char curext[MAXFNAME];            /* current file extension */
  17. extern char curname[MAXFNAME];            /* current file name */
  18.  
  19. extern UNSIGN16 debug_code;            /* 0 for no debug output */
  20.  
  21. extern char dviname[MAXFNAME];            /* DVI filespec */
  22. extern char dvoname[MAXFNAME];            /* device output filespec */
  23.  
  24. extern char fontlist[MAXSTR];            /* FONTLIST environment string */
  25. extern char fontpath[MAXFNAME];        /* font directory path */
  26.  
  27. extern char helpcmd[MAXSTR];            /* where to look for help */
  28.  
  29. extern char message[MAXMSG];            /* for formatting error messages */
  30.  
  31. extern int basemag;                    /* takes the place of preprocessor STDMAG */
  32. /***********************************************************************
  33. Magnification table for 144dpi, 200dpi, and 300dpi devices, computed
  34. to 20 figures and sorted by magnitude.
  35.  
  36.     Column 1         Column 2         Column 3
  37. 0.72*sqrt(1.2)**i  sqrt(1.2)**I  1.5*sqrt(1.2)**I    (I = -16,16)
  38.  
  39. ***********************************************************************/
  40. extern float mag_table[33];
  41.  
  42. extern INT16 mag_index;        /* set by actfact */
  43.  
  44. #define MAGTABSIZE 33 /* (sizeof(mag_table) / sizeof(float)) */
  45.  
  46. extern char g_logname[MAXSTR];        /* name of log file, if created          */
  47. extern BOOLEAN g_dolog;        /* allow log file creation          */
  48. extern FILE *g_logfp;    /* log file pointer (for errors)      */
  49. extern char g_progname[MAXSTR];    /* program name                  */
  50.  
  51. extern FILE *plotfp;    /* plot file pointer              */
  52.  
  53. extern struct char_entry
  54. {                /* character entry              */
  55.    COORDINATE wp, hp;        /* width and height in pixels          */
  56.    COORDINATE xoffp, yoffp;    /* x offset and y offset in pixels      */
  57.    long fontrp;            /* font file raster pointer          */
  58.    UNSIGN32 tfmw;        /* TFM width                  */
  59.    INT32 dx, dy;        /* character escapements          */
  60.    UNSIGN16 pxlw;        /* pixel width == round(TFM width in      */
  61.                 /* pixels for .PXL files, or          */
  62.                 /* float(char_dx)/65536.0 for .GF and .PK */
  63.                 /* files)                  */
  64.    INT16 refcount;        /* reference count for memory management  */
  65.    UNSIGN32 *rasters;        /* raster description (dynamically loaded) */
  66.  
  67.  
  68. };
  69.  
  70. extern struct font_entry
  71. {
  72.     struct font_entry *next;    /* pointer to next font entry           */
  73.     void (*charxx)();        /* pointer to chargf(), charpk(), charpxl()*/
  74.     FILE *font_file_id;        /* file identifier (NULL if none)       */
  75.     INT32 k;            /* font number                             */
  76.     UNSIGN32 c;            /* checksum                                */
  77.     UNSIGN32 d;            /* design size                             */
  78.     UNSIGN32 s;            /* scale factor                            */
  79.     INT32 font_space;        /* computed from FNT_DEF s parameter       */
  80.     UNSIGN32 font_mag;        /* computed from FNT_DEF s and d parameters*/
  81.     UNSIGN32 magnification;    /* magnification read from PXL file       */
  82.     UNSIGN32 designsize;    /* design size read from PXL file       */
  83.     UNSIGN32 hppp;        /* horizontal pixels/point * 2**16       */
  84.     UNSIGN32 vppp;        /* vertical pixels/point * 2**16       */
  85.     INT32 min_m;        /* GF bounding box values           */
  86.     INT32 max_m;
  87.     INT32 min_n;
  88.     INT32 max_n;
  89.  
  90.  
  91.     BYTE font_type;        /* GF, PK, or PXL font file           */
  92.     BYTE a;            /* length of font area in n[]              */
  93.     BYTE l;            /* length of font name in n[]              */
  94.     char n[MAXSTR];        /* font area and name                      */
  95.     char name[MAXSTR];        /* full name of PXL file           */
  96.     struct char_entry ch[NPXLCHARS];/* character information           */
  97. };
  98.  
  99. extern struct font_list
  100. {
  101.     FILE *font_id;        /* file identifier               */
  102.     INT16 use_count;        /* count of "opens"               */
  103. };
  104.  
  105. extern INT32 cache_size;        /* record of how much character raster        */
  106.                 /* is actually used                */
  107. extern float conv;            /* converts DVI units to pixels            */
  108. extern UNSIGN16 copies;        /* number of copies to print of each page   */
  109. extern INT16 cur_page_number;        /* sequential output page number in 1..N    */
  110. extern INT16 cur_index;        /* current index in page_ptr[]              */
  111.  
  112. extern COORDINATE xcp,ycp;        /* current position                */
  113. extern UNSIGN32 den;            /* denominator specified in preamble        */
  114. extern FILE *dvifp;    /* DVI file pointer                */
  115. extern struct font_entry *fontptr;    /* font_entry pointer                */
  116. extern struct font_entry *hfontptr;
  117.                 /* head font_entry pointer            */
  118.  
  119.  
  120. extern INT16 gf_index, pk_index, pxl_index;
  121.                 /* indexes into filelist[] in fontfile();   */
  122.                 /* they define the search order, and are    */
  123.                 /* in initglob().                */
  124. extern UNSIGN32 gpower[33];        /* gpower[k] = 2**k-1 (k = 0..32)        */
  125. extern COORDINATE hh;            /* current horizontal position in pixels    */
  126.  
  127. extern UNSIGN32 img_mask[32];        /* initialized at run-time so that bit k    */
  128.                 /* (counting from high end) is one        */
  129. extern UNSIGN32 img_row[(MAX_M - MIN_M + 1 + 31) >> 5];
  130.                 /* current character image row of bits        */
  131. extern INT16 max_m, min_m, max_n, min_n;
  132.                 /* current character matrix extents        */
  133. extern UNSIGN16 img_words;        /* number of words in use in img_row[]        */
  134. extern float leftmargin;        /* left margin in inches            */
  135. extern COORDINATE lmargin;        /* left margin offset in pixels            */
  136. extern INT16 nopen;            /* number of open PXL files            */
  137. extern INT16 page_count;        /* number of entries in page_ptr[]        */
  138.  
  139.  
  140. extern long page_ptr[MAXPAGE+1];    /* byte pointers to pages (reverse order)   */
  141.  
  142.  
  143. extern INT16 page_begin[MAXREQUEST+1],
  144.     page_end[MAXREQUEST+1],
  145.     page_step[MAXREQUEST+1];    /* explicit page range requests            */
  146. extern INT16 npage;            /* number of explicit page range requests   */
  147. extern struct font_list font_files[MAXOPEN+1];
  148.                 /* list of open PXL file identifiers        */
  149.  
  150. extern UNSIGN32 power[32];        /* power[k] = 1 << k                */
  151.  
  152. #if    POSTSCRIPT
  153. BOOLEAN ps_vmbug;        /* reload fonts on each page when TRUE        */
  154. #endif /* POSTSCRIPT */
  155.  
  156. extern UNSIGN32 rightones[HOST_WORD_SIZE];/* bit masks */
  157.  
  158. #if    (APPLEIMAGEWRITER | EPSON | DECLA75 | DECLN03PLUS)
  159. extern BOOLEAN runlengthcode;        /* this is runtime option '-r' */
  160. #endif /* (APPLEIMAGEWRITER | EPSON | DECLA75 | DECLN03PLUS) */
  161.  
  162. #if    (GOLDENDAWNGL100 | TOSHIBAP1351)
  163. BOOLEAN runlengthcode = FALSE;        /* this is runtime option '-r' */
  164. #endif /* (GOLDENDAWNGL100 | TOSHIBAP1351) */
  165.  
  166. extern UNSIGN32 runmag;        /* runtime magnification            */
  167. extern UNSIGN32 mag;            /* magnification specified in preamble        */
  168. extern UNSIGN32 num;            /* numerator specified in preamble        */
  169. extern struct font_entry *pfontptr;
  170.                 /* previous font_entry pointer            */
  171. extern BOOLEAN preload;        /* preload the font descriptions?        */
  172. extern FILE *fontfp;    /* font file pointer                */
  173.  
  174. extern BOOLEAN quiet;        /* suppress status display when TRUE        */
  175.  
  176. extern BOOLEAN backwards;    /* print in backwards order            */
  177.  
  178.  
  179. extern char subpath[MAXFNAME];        /* font substitution file path            */
  180. extern char subname[MAXFNAME];        /* font substitution file name field        */
  181. extern char subext[MAXFNAME];        /* font substitution file extension field   */
  182. extern char subfile[MAXFNAME];        /* font substitution filename            */
  183.  
  184. extern INT32 tex_counter[10];        /* TeX c0..c9 counters on current page      */
  185. extern float topmargin;        /* top margin in inches                */
  186. extern COORDINATE tmargin;        /* top margin offset in pixels            */
  187.  
  188. extern INT32 vxxxx;            /* current vertical position            */
  189.  
  190. #if    VIRTUAL_FONTS
  191. BOOLEAN virt_font;        /* virtual font cache flag                  */
  192. struct virt_data
  193.     {
  194.     int    cnt;
  195.     char    *ptr;
  196.     char    *base;
  197.     };
  198. struct virt_data virt_save[_NFILE];/* space for saving old FILE values      */
  199. #endif /* VIRTUAL_FONTS */
  200.  
  201. extern COORDINATE vv;            /* current vertical position in pixels        */
  202.  
  203.  
  204. #if OS_THINKC
  205. extern TPPrPort    g_print_port_p;
  206. #endif
  207.