diff options
Diffstat (limited to 'Build/source/texk/dviljk/dvi2xx.h')
-rw-r--r-- | Build/source/texk/dviljk/dvi2xx.h | 723 |
1 files changed, 0 insertions, 723 deletions
diff --git a/Build/source/texk/dviljk/dvi2xx.h b/Build/source/texk/dviljk/dvi2xx.h deleted file mode 100644 index 0a06d43ceb6..00000000000 --- a/Build/source/texk/dviljk/dvi2xx.h +++ /dev/null @@ -1,723 +0,0 @@ -/* $Id: dvi2xx.h,v 2.3 1996/05/20 11:05:57 neumann Exp $ */ -#ifndef DVI2XX_H -#define DVI2XX_H -/********************************************************************** - ************************ Global Definitions ************************ - **********************************************************************/ -/* #define IBM3812 */ -/* #define LJ */ -/* #define DRAWGLYPH */ - -#ifdef KPATHSEA -#include <kpathsea/config.h> -#include <kpathsea/c-std.h> -#include <kpathsea/c-limits.h> -#include <kpathsea/c-pathch.h> -#include <kpathsea/magstep.h> -#include <kpathsea/proginit.h> -#include <kpathsea/progname.h> -#include <kpathsea/tex-file.h> -#include <kpathsea/tex-glyph.h> -#include <kpathsea/tex-hush.h> -#include <kpathsea/tex-make.h> -#include <kpathsea/version.h> -#include <stdarg.h> -#include <c-auto.h> -#else -#include <string.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#ifdef unix -#include <limits.h> -#endif -#endif - -#include <signal.h> -#include <ctype.h> -#ifdef vms -#include <file.h> -#else -# ifndef __riscos -# include <fcntl.h> -# endif -#endif -#ifdef MSC5 -#include <dos.h> /* only for binaryopen on device */ -#endif - - -#include "config.h" -#include "commands.h" - -#define DVIFORMAT 2 -#ifndef UNKNOWN -#define UNKNOWN -1 -#endif -#define FIRSTFNTCHAR 0 - -#ifdef __riscos -# ifdef RISC_USE_OSL -# define MAXOPEN_OS 16 -# else -# define MAXOPEN_OS 8 /* don't know if this IS the maximum */ -# endif -#else -# ifdef OPEN_MAX /* ... in a friendly unix system */ -# ifndef vms -# define MAXOPEN_OS (OPEN_MAX - 8) -# else -# define MAXOPEN_OS 12 /* OPEN_MAX seems to be 8 on VMS systems */ -# endif -# else -# ifdef __DJGPP__ -# if __DJGPP_MINOR__ <= 1 - /* DJGPP needs few handles free in the first 20, or else child programs - (called by MakeTeX... scripts) won't run, since the stub loader - cannot open the .exe program. This is because DOS only copies the - first 20 handles to the child program. */ -# define MAXOPEN_OS 5 -# else - /* DJGPP v2.02 and later works around this. Assume they have at least - FILES=30 in their CONFIG.SYS (everybody should). */ -# define MAXOPEN_OS 20 -# endif -# else -# define MAXOPEN_OS 12 /* limit on number of open font files */ -# endif -# endif -#endif - -#ifdef LJ_RESIDENT_FONTS -/* we have to read tfm files as well */ -#define MAXOPEN (MAXOPEN_OS - 1) -#else -#define MAXOPEN MAXOPEN_OS -#endif - -#define NFNTCHARS LASTFNTCHAR+1 -#define STACK_SIZE 100 /* DVI-stack size */ -#define NONEXISTANT -1 /* offset for PXL files not found */ -#ifdef RISC_USE_OSL -# define NO_FILE (FPNULL-1) -#else -# define NO_FILE ((FILE *)-1) -#endif -#define NEW(A) ((A *) malloc(sizeof(A))) -#define EQ(a,b) (strcmp(a,b)==0) -#define MM_TO_PXL(x) (int)(((x)*RESOLUTION*10)/254) -#define PT_TO_PXL(x) (int)((long4)((x)*RESOLUTION*100l)/7224) -#define PT_TO_DVI(x) (long4)((x)*65536l) -#define BINOPEN(f) BOPENCMD(f,READ_BINARY) -/* SMALL_SIZE characters are loaded into font storage of the printer */ -/* LARGE_SIZE characters are rastered */ -/* HUGE_SIZE characters are not loaded into the memory of the host */ -#define SMALL_SIZE (unsigned char) 0 -#define LARGE_SIZE (unsigned char) 1 -#define HUGE_SIZE (unsigned char) 2 -#define HUGE_CHAR_PATTERN 32767l -#define BYTES_PER_PIXEL_LINE 500 /* max number of bytes per pixel line */ -#define MAX_SPECIAL_DEFPOINTS 80 /* max number of defpoint specials */ - - -#define PK_POST 245 -#define PK_PRE 247 -#define PK_ID 89 - -/* to speedup the program a little: redefinition of PixRound and PutWord */ -/*#define PIXROUND(x,c) ((((double)x+(double)(c>>1))/(double)c)+0.5)*/ -#define PIXROUND(x,c) (((x)+c)/c) -#define PUTWORD(w) EMITC( ((unsigned char)(w>>8) & 0xff)), EMITC((unsigned char)(w & 0xff)) -/*************************************************************************/ -#ifdef RISC_BUFFER -# define EMIT emsize = sprintf -# define EMFLUSH b_wrtmult(outfp,embuf,emsize) -# define EMTO embuf -# define EMIT1(a) emsize = sprintf(embuf,a), EMFLUSH -# define EMIT2(a,b) emsize = sprintf(embuf,a,b), EMFLUSH -# define EMIT3(a,b,c) emsize = sprintf(embuf,a,b,c), EMFLUSH -# define EMIT4(a,b,c,d) emsize = sprintf(embuf,a,b,c,d), EMFLUSH -#else -# ifdef RISC_USE_OSL -# define EMIT emsize = sprintf -# define EMFLUSH write_multi(embuf,1,emsize,outfp) -# define EMTO embuf -# define EMIT1(a) emsize = sprintf(embuf,a), EMFLUSH -# define EMIT2(a,b) emsize = sprintf(embuf,a,b), EMFLUSH -# define EMIT3(a,b,c) emsize = sprintf(embuf,a,b,c), EMFLUSH -# define EMIT4(a,b,c,d) emsize = sprintf(embuf,a,b,c,d), EMFLUSH -# else -# define EMIT fprintf /* output a formatted string */ -# define EMTO outfp -# define EMIT1(a) fprintf(outfp,a) -# define EMIT2(a,b) fprintf(outfp,a,b) -# define EMIT3(a,b,c) fprintf(outfp,a,b,c) -# define EMIT4(a,b,c,d) fprintf(outfp,a,b,c,d) -# endif -#endif -#ifndef vms -# ifdef RISC_BUFFER -# define EMITB(len,b) b_wrtmult(outfp,b,len) /* output binary data of len*/ -# else -# define EMITB(len,b) write_multi(b,1,len,outfp) -# endif -#else - /* VMS doesn't like to use fwrite on a file with fixed record sizes, - so use number of putc calls */ -# define EMITB(len,b) for (kk = 0;kk < len; kk++) fputc(*(b+kk),outfp); -#endif -#define EMITWORD(w) PUTWORD((w)) /* output a 2 byte word of data */ - -#define MoveOver(b) h += (long4) b -#define MoveDown(a) v += (long4) a -#define qfprintf if (!G_quiet) fprintf -#define qprintf if (!G_quiet) printf -#define LARGER(a,b) (((a)>(b)) ? (a) : (b)) - -#ifdef IBM3812 -#define PRINTER "IBM 3812 pageprinter" -#define EMITC(c) PMPoutC(c) /* output a single character */ -#define PMPcont(l) PMPout(-1,(char *)l) /* next l bytes continuous */ -#define PMPflush PMPout(0l,"") /* flush PMP-buffer */ -#define EMITL(l,d) PMPout((int)l,d) /* EMIT-logical: via PMP-buffer */ -#define hconvRESOLUTION 240 -#define vconvRESOLUTION 240 -#define CHAR_WIDTH_LARGE 100 /* limit for loading into printer font */ -#define CHAR_HEIGTH_LARGE 127 /* limit for loading into printer font */ -#define OUTBUFSIZE 20000 /* size of output buffer for PMP cmds */ - /* has to be less max(signed int) */ -#define MAXFONTSTORAGE 130000l /* font storage in the 3812 pageprinter */ -#define EMITFILE_EXTENSION ".pmp" /* default extension of emit file */ -#define XDEFAULTOFF ((int)(0.72*RESOLUTION))/* default x and y offset */ -#define YDEFAULTOFF RESOLUTION -#define CHARSTRINGMAX 80 /* bufferlength for SetString */ -#define MAX_PAGE_WIDTH 2040 -#define MAX_PAGE_HEIGHT 3360 -/**********************************************************************/ -/************** Positioning for the 3812 ****************************/ -/**********************************************************************/ -#define VERT_HALF(n) ((short)((n+1)>>1)-1) -#define HOR_HALF(n) ((short)(n>>1)) -#define MoveHor(n) if ((n)!=0) { PMPcont(3); PMPout(1,"\342"); EMITWORD((n)); } -#define MoveVert(n) if ((n)!=0) { PMPcont(3); PMPout(1,"\343"); EMITWORD((n)); } -#endif /* IBM 3812 */ - -#ifdef LJ -# ifdef LJ4 -# ifdef LJ4L -# define PRINTER "HP Laserjet 4L" -# else -# define PRINTER "HP Laserjet 4" -# endif -# else -# ifdef LJ2P -# define PRINTER "HP LaserJet IIP" -# else -# ifdef LJ2 -# define PRINTER "HP LaserJet 2" -# else -# define PRINTER "HP LaserJet" -# endif -# endif -# endif - -# ifdef LJ4 -# ifdef LJ4L -int RESOLUTION = 300; -const char *MFMODE = MFMODE300; -# else -int RESOLUTION = 600; -const char *MFMODE = MFMODE600; -# endif -# else -# define RESOLUTION 300 -# endif -# define hconvRESOLUTION RESOLUTION -# define vconvRESOLUTION RESOLUTION -# ifdef LJ2 -/* the printer limit of the LJ2P is actually 16384x16384, - * but to exploit it, one would need lots of memory in the printer - */ -# define CHAR_WIDTH_LARGE 200 /* limit for loading into printer font */ -# define CHAR_HEIGTH_LARGE 255 /* y_offset reaches the same size! */ -# else /* such as LaserJet+, Laserjet II */ -# define CHAR_WIDTH_LARGE 100 /* limit for loading into printer font */ -# define CHAR_HEIGTH_LARGE 127 /* y_offset reaches the same size! */ -# endif -# define EMITFILE_EXTENSION ".lj" /* default extension of emit file */ -# ifndef MAX_FONTS_PER_PAGE -# define MAX_FONTS_PER_PAGE 16 /* maximum number of fonts per page */ -# endif -# define HANDLE_MAX_FONTS 255 /* max nr of fonts handled (rasterfont) */ -# define FONTS_DOWNLOADABLE 32 /* max nr of fonts that can be downloaded */ -# ifdef SHARP_JX_9500 -# define MAXFONTSTORAGE (200l*1024l) /* standard user memory */ -# else -# define MAXFONTSTORAGE (395l*1024l) /* standard user memory */ -# endif -# ifdef RISC_BUFFER -# define EMITC(c) b_write(outfp,c) /* output a single character */ -# else -# define EMITC(c) write_byte(outfp,c) /* output a single character */ -# endif -# define EMITL(l,d) EMITB(l,d) /* EMIT-logical = EMITB */ - -# define XDEFAULTOFF ((int)(0.72*RESOLUTION)) -# define YDEFAULTOFF RESOLUTION -#ifdef NEVER -# define XDEFAULTOFF RESOLUTION /*x default offset on page 1in (LJ2)*/ -# define YDEFAULTOFF RESOLUTION /* y default offset on page 1inch */ -#endif -# ifndef vms -# define INT_ASCII(b,i) \ - if (i == 0) b[0] = '\0'; else sprintf((char *)b,"%hd",i) -# else -# define INT_ASCII(b,i) \ - if (i == 0) b[0] = '\0'; else sprintf((char *)b,"%d",i) -# endif -#endif - - -#ifndef SEVENBIT -#define VisChar(c) (unsigned char)(c) -#endif - -/* Used to be a function. buf is always an array, never a pointer. - Without that invariant, we would have to introduce full dynamic - memory management in this driver -- probably it would be easier to - write a new one. [27 Jun 07 -js] */ -#define GetBytes(fp,buf,n) \ - ( sizeof(buf) != sizeof(void *) && sizeof(buf) > n ? \ - (void)read_multi(buf, 1, n, fp) \ - : Fatal("Try to read %d bytes in an array of size %d", n, sizeof(buf)) ) - - -/**********************************************************************/ -/*********************** external definitions ***********************/ -/**********************************************************************/ - -#ifndef WIN32 -#ifndef _AMIGA -# ifndef unix -long access(char *, int); /* all the other ones known under RISC OS */ -# ifndef __riscos -FILEPTR BOPENCMD(); -void exit(); -int fclose(); -int fprintf(); -int fseek(); -/*char *index();*/ -int printf(); -int sscanf(); -int strcmp(); -char *strcpy(); -char *strncpy(); -# ifdef MSC5 -unsigned int strlen(); -# endif -void free(); -void setbuf(); -# endif - -# ifdef MSC5 -int intdos(); -# endif -# endif -#endif -#else /* WIN32 */ -#include <string.h> -#include <stdio.h> -#include <stdlib.h> -#endif - -#ifndef USEPXL -/* interface to gf.c */ -extern FILEPTR gfin; -extern int checksum; -extern long4 tfm_wd[], char_pointer[]; -extern char char_exists[]; -extern int num_cols, num_rows, num_bytes, x_offset, y_offset; -extern unsigned char bits[]; -extern int gf_font_max_m, gf_font_max_n, gf_font_min_n; -extern int gettochar(); -extern void readbits(); -extern void readpost(); -extern void seekpost(); -extern int seekchar(); -#endif - -/**********************************************************************/ -/********************** Special Data Structures ***********************/ -/**********************************************************************/ - -typedef enum { None, String, Integer /*, Number, Dimension*/ } ValTyp; -typedef struct { - char *Key; /* the keyword string */ - char *Val; /* the value string */ - ValTyp vt; /* the value type */ - union { /* the decoded value */ - int i; - float n; - } v; -} KeyWord; -typedef struct { - int KeyId; /* the keyword ID */ - const char *Entry; - ValTyp Typ; -} KeyDesc; - -/**********************************************************************/ -/*********************** Font Data Structures ***********************/ -/**********************************************************************/ - -struct char_entry { /* character entry */ -#ifdef USEPXL - unsigned short width, height; /* width and height in pixels */ - short xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/ -#endif - struct { - bool isloaded; - union { - long4 fileOffset; - long4 *pixptr; - } address; - } where; - long4 tfmw; /* TFM width */ - long4 cw; /* character width in pixels */ - unsigned char flag_byte; /* for PK-files */ - unsigned char charsize; -}; -struct font_entry { /* font entry */ - long4 k, c, s, d; - int a, l; - char n[STRSIZE]; /* FNT_DEF command parameters */ - long4 font_mag; /* computed from FNT_DEF s and d parameters */ - /*char psname[STRSIZE];*/ /* PostScript name of the font */ - char *name; /* full name of PXL file */ - FILEPTR font_file_id; /* file identifier (NO_FILE if none) */ -#ifdef USEPXL - long4 magnification; /* magnification read from PXL file */ - long4 designsize; /* design size read from PXL file */ -#endif - struct char_entry ch[NFNTCHARS]; /* character information */ - struct font_entry *next; - unsigned short ncdl; /* #of different chars actually downloaded */ - unsigned short plusid; /* Font id in Printer */ - bool used_on_this_page; -#ifdef LJ_RESIDENT_FONTS - bool resident_p; /* is font resident in printer? */ - char symbol_set[40]; /* symbol set value (resident fonts) */ - unsigned short resid; /* typeface id (resident fonts) */ - unsigned spacing; /* 0=monospace, 1=variable (resident fonts) */ - unsigned style; /* upright/italic/... (resident fonts) */ - int weight; /* regular/bold/... (resident fonts) */ - double pitch; /* chars per inch (monospaced resident fonts)*/ -#endif - enum PxlId { - id1001, id1002, pk89 } id; -#ifdef LJ - unsigned short max_width, max_height, max_yoff; -#endif -}; - - -struct pixel_list { - FILEPTR pixel_file_id; /* file identifier */ - int use_count; /* count of "opens" */ -}; - -#ifdef __riscos -typedef struct { - int scalex; - int scaley; - int cropl; - int cropb; - int cropr; - int cropt; -} diagtrafo; /* to be passed to diagrams */ -#endif - - -/**********************************************************************/ -/************************* Global Procedures ************************/ -/**********************************************************************/ -/* Note: Global procedures are declared here in alphabetical order, with - those which do not return values typed "void". Their bodies occur in - alphabetical order following the main() procedure. The names are - kept unique in the first 6 characters for portability. */ - -double ActualFactor(long4); -void AllDone(bool); -#ifdef MSC5 -void AssureBinary(FILEPTR); /* DOS and Microsoft C dependent !!! */ -#endif -void CloseFiles(void); -void my_CopyFile(const char *); -void CopyHPFile(char *); -void DecodeArgs(int, char *[]); -#ifdef __riscos -void diagram(char *, diagtrafo *); -void *xosfile_set_type(char *, int); -void MakeMetafontFile(char *, char *, int); -#endif -void DoBop(void); -long4 DoConv(long4, long4, int); -void DoSpecial(char *, int); -void EmitChar(long4, struct char_entry *); -void FindPostAmblePtr(long *); -void FormFeed(void); -void GetFontDef(void); -char *GetKeyStr(char *, KeyWord *); -bool GetKeyVal(KeyWord *, KeyDesc[], int, int *); -bool IsSame(const char *, const char *); -void LoadAChar(long4, register struct char_entry *); -void OpenFontFile(void); -long4 PixRound(long4, long4); -void PkRaster(struct char_entry *, int); -void RasterLine(struct char_entry *, unsigned int, - unsigned int, unsigned char *); -void RasterChar(struct char_entry *); -void ReadFontDef(long4); -void ReadPostAmble(bool); -void SetChar(long4, short, int, bool, bool); -void SetFntNum(long4, bool); -void SetPosn(long4, long4); -void SetRule(long4, long4, int); -void SetString(short, int); -long4 SignExtend(FILEPTR, int); -void SkipFontDef(void); -unsigned char skip_specials(long4 *); -#ifdef LJ4 -int CompressLine2(unsigned char *, unsigned char *, int); -int CompressLine3(unsigned char *, unsigned char *, int); -void CompressedCharLine(struct char_entry *,int,unsigned char *); -#endif -#ifdef IBM3812 -void PMPout(int, char *); -void PMPoutC(char); -#endif - -/* buffer IO */ -char b_read(FILEPTR); -#ifdef RISC_BUFFER -void b_write(FILEPTR, char); -void b_wrtmult(FILEPTR, char *, int); -void b_oflush(FILEPTR); -#endif - - -/**********************************************************************/ -/************************* Global Variables *************************/ -/**********************************************************************/ -bool ManualFeed = _FALSE; -long4 FirstPage = -1000000; /* first page to print (uses count0) */ -long4 LastPage = 1000000; /* last page to print */ -long4 PrintPages = 1000000; /* nr of pages to print */ -bool FirstPageSpecified = _FALSE; -bool LastPageSpecified = _FALSE; -#ifndef KPATHSEA -char *PXLpath = FONTAREA; -#endif -char *G_progname; /* program name */ -char *filename; /* DVI file name */ -char *rootname; /* DVI filename without extension */ -const char *HeaderFileName = ""; /* file name & path of Headerfile */ -const char *EmitFileName = ""; /* file name & path for output */ -char tmp_dir[STRSIZE] = ""; /* temporary directory for auxiliary files */ -enum { Ignore, PSFile_dvilj /*, PSFile_dvips */ } PSFileSyntaxTyp = PSFile_dvilj; -#ifdef IBM3812 -bool FirstAlternate = _FALSE; /* first page from alternate casette ? */ -#endif -bool Reverse = _FALSE; /* process DVI pages in reverse order? */ -bool Landscape = _FALSE; /* print document in ladscape mode */ -bool my_ResetPrinter = _TRUE; /* reset printer at the begin of the job */ -bool DoublePage = _FALSE; /* print on both sides of a paper */ -bool PrintSecondPart = _TRUE; /* print First Part when DoublePage */ -bool PrintFirstPart = _TRUE; /* print Second Part when DoublePage */ -bool PrintEmptyPages = _TRUE; /* print Empty pages in DoublePage mode */ -short PageParity = 1; -#ifdef MAKETEXPK -#ifdef KPATHSEA -bool makeTexPK = MAKE_TEX_PK_BY_DEFAULT; -#else -bool makeTexPK = _TRUE; -#endif -#endif - -#ifdef LJ -bool kyocera_mode = _FALSE; /* bug fixes for Kyocera F-1200 LJ-Emulation */ -bool brother_mode = _FALSE; /* bug fixes for Brother HL-8D LJ-Emulation */ -#ifdef LJ2P -int DuplexMode = 0; -#endif -#ifdef LJ4 -bool econoMode = _FALSE; -bool LJ6 = _FALSE; -#endif -bool PrintTestPage = _FALSE; /* print testpage with pagecounter after job */ -unsigned short pagesize = 0; /* page size value */ -unsigned short pgsiz_dots = 0; /* page size in dots (for rule-clipping)*/ -#endif - - -#ifndef vms -short G_errenc = 0; /* has an error been encountered? */ -#else -long4 G_errenc = SS$_NORMAL; /* has an error been encountered? */ -#endif -bool G_header = _FALSE; /* copy header file to output? */ -bool G_quiet = _FALSE; /* for quiet operation */ -bool G_verbose = _FALSE; /* inform user about pxl-files used */ -bool G_nowarn = _FALSE; /* don't print out warnings */ -short x_origin; /* x-origin in dots */ -short y_origin; /* y-origin in dots */ -short x_goffset; /* global x-offset in dots */ -short y_goffset; /* global y-offset in dots */ -unsigned short ncopies = 1; /* number of copies to print */ -long4 hconv, vconv; /* converts DVI units to pixels */ -long4 h; /* current horizontal position */ -long4 hh = 0; /* current h on device */ -long4 v; /* current vertical position */ -long4 vv = 0; /* current v on device */ -long4 mag; /* magnification specified in preamble */ -long usermag = 0; /* user specified magnification */ -int ndone = 0; /* number of pages converted */ -int nopen = 0; /* number of open PXL files */ -#ifdef vms -int kk; /* loop variable for EMITB */ -#endif -FILEPTR outfp = FPNULL; /* output file */ -FILEPTR pxlfp; /* PXL file pointer */ -FILEPTR dvifp = FPNULL; /* DVI file pointer */ -struct font_entry *prevfont = NULL; /* font_entry pointer previous font*/ -struct font_entry *fontptr; /* font_entry pointer */ -struct font_entry *hfontptr = NULL; /* font_entry pointer */ -struct font_entry *pfontptr = NULL; /* previous font_entry pointer */ -struct pixel_list pixel_files[MAXOPEN+1]; /* list of open PXL files */ -long postambleptr; /* Pointer to the postamble */ -long ppagep; /* previous page pointer */ -static int last_ry = UNKNOWN; /* last y-position on page */ -static int last_rx = UNKNOWN; /* last x-position on page */ -long4 StartPrintPages; /* notpad for double paged output */ -int WouldPrint = 0; -bool ZeroPage = _FALSE; /* Document starts with a Zero Page */ -bool EvenPage = _FALSE; /* Document starts with an even Page */ -long4 LastPtobePrinted = 0; -int G_ncdl = 0; - -long allocated_storage = 0; /* size of mallocated storage (statistics) */ -long4 power[32] ; -long4 gpower[33] ; - -unsigned char buffin[BUFFSIZE]; /* Input buffer; always used for Copy[HP]File */ -int binumber=0; /* number of valid bytes in input buffer */ -int biact=0; /* number of next byte to read from input buffer */ -#ifdef RISC_BUFFER -char buffout[BUFFSIZE]; /* Output buffer; used if RISC_BUFFER defined */ -int boact=0; /* number of next byte to write to output buffer */ -#endif - -#ifdef LJ4 -# define DEFAULT_COMPRESS_MODE 3 -# define DEFAULT_COMPRESS_WIDTH 0 -# define COMPRESS_WIDTH0 0 -# define COMPRESS_WIDTH2 72 -# define COMPRESS_WIDTH3 0 -/* Raster chars compression */ -int CompressCharWidth = -1; /* Value to be determined dependent at runtime */ -int CompressCharMode; /* Used only from within RasterChar/Line */ -int UseCompression = DEFAULT_COMPRESS_MODE; /* This performs very well with Characters */ -/* Shared by both compression types */ -unsigned char *PrevLine = NULL; /* Holds last raster line; set at runtime */ -int PrevSize = 0; /* Size of PrevLine */ -/* Downloaded chars compression */ -int CChar_Off, CChar_Last; /* For compressed character downloading */ -bool CompressFontMode = _TRUE; /* Download characters compressed */ -#endif /* LJ4 */ - -#ifdef RISC_USE_OSL -char embuf[STRSIZE]; /* Buffer for emitting stuff */ -int emsize; /* Number of bytes written in buffer */ -#else -# ifdef RISC_BUFFER -char embuf[STRSIZE]; -int emsize; -# endif -#endif - -#ifdef __riscos -#define DIAGDIRSIZE 32 -char diagdir[DIAGDIRSIZE] = "LJdiag"; /* Prefix name of directory for - cached printouts */ -bool cachediag = _FALSE; /* cache PDriver's output in document folder */ -bool printdiag = _TRUE; /* printf diagrams */ -FILEPTR metafile = FPNULL; /* Filepointer of file containing - metafont directives*/ - -char MFFileName[STRSIZE]; -int RasterMultipass = 0; -#endif - -#ifdef DEBUG -int Debug = 0; -#define DEBUG_START() do { if (Debug) { -#define DEBUG_END() fflush (stdout); } } while (0) -#define DEBUG_PRINT(str) \ - DEBUG_START (); fputs (str, stdout); DEBUG_END () -#define DEBUG_PRINT1(str, e1) \ - DEBUG_START (); printf (str, e1); DEBUG_END () -#else -#define DEBUG_PRINT(str) -#define DEBUG_PRINT1(str, e1) -#endif - -#ifdef LJ -int fonts_used_on_this_page = MAX_FONTS_PER_PAGE+1; -char rasterfont[HANDLE_MAX_FONTS]; - /* raster if fonts/page>MAX_FONTS_PER_PAGE*/ -#ifdef LJ_RESIDENT_FONTS -unsigned resident_count = 0; -#ifndef KPATHSEA -char *TFMpath = DEFAULT_TFM_PATH; -#endif -#endif -#endif - -long used_fontstorage = 0; - -#ifdef IBM3812 -char PMPformat[20]; -char CharString[CHARSTRINGMAX]; -unsigned int CharStringPos = 0; -#define CharStringOut \ - if (CharStringPos>0) { \ - PMPcont(CharStringPos+1);\ - PMPoutC((unsigned char)CharStringPos);\ - PMPout(CharStringPos, CharString); \ - CharStringPos=0; } -#endif - - -/************************timing stuff*********************/ -#ifdef TIMING -# ifdef BSD_TIME_CALLS -# ifndef vms -# include <sys/timeb.h> -# else -# include <timeb.h> -# endif -struct timeb timebuffer; -double start_time; -# else -# ifdef __riscos -# include <sys/times.h> -# else -# include <sys/time.h> -struct timeval Tp; -double start_time; -# endif -# endif -#endif /* TIMING */ - - -#endif /* DVI2XX_H */ |