/* -*-C-*- machdefs.h */ /*-->machdefs*/ /**********************************************************************/ /****************************** machdefs ******************************/ /**********************************************************************/ /*********************************************************************** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! This file should contain definitions for symbols used for all operating system / implementation dependencies, and if the driver family has already been implemented on you machine, this should be the only file requiring changes. How to change this file: * locate the operating system and implementation definitions; they are surrounded by "=====" comment strings. * comment out the definitions you do not want, and select the ones for your system * if adding a new operating system, create a new symbol OS_xxx for it and add a new #if OS_xxx ... #endif section for its changes. * if adding a new implementation for an existing operating system, create a new symbol for it and add appropriate conditionals inside its #if OS_xxx ... #end section. * if you must replace a standard C library function, replace instances of its use in the source code with an upper-case equivalent (e.g. ungetc --> UNGETC), then define the upper-case name below in the generic section, plus the operating-system section. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! List of symbols actually used for #if's [14-Aug-87] Flags and strings: ALLOW_INTERRUPT -- allow interactive interrupt ANSI_PROTOTYPES -- draft ANSI C function prototype declarations are supported ANSI_LIBRARY -- draft ANSI C library functions conformance ARITHRSHIFT -- implementation uses arithmetic (not logical) right shift DVIHELP -- how to find documentation (for usage()) DVIPREFIX -- prefix to standard 3-character extension of output and log files FASTZERO -- fast bitmap zeroing by external assembly language routine FONTLIST -- font type search list (PK, GF, PXL) FONTPATH -- font directory path HIRES -- high resolution variant of bitmap output HOST_WORD_SIZE -- host integer word size in bits PS_MAXWIDTH -- approximate line width limit for PostScript output PS_SHORTLINES -- shorter output lines in PostScript PS_XONXOFFBUG -- PostScript version 23.0 Xon/Xoff bug workaround PXLID -- TeX PXL file ID RB_OPEN -- fopen() mode flags for binary read SEGMEM -- segmented memory (Intel); bitmap is raster vector STDRES -- standard resolution (200 dpi) SUBPATH -- substitution font file path TEXFONTS -- TeX font file path environment variable TEXINPUTS -- TeX input file path environment variable USEGLOBALMAG -- allow runtime global magnification scaling VIRTUAL_FONTS -- implement virtual font caching WB_OPEN -- fopen() mode flags for binary write ZAPTHISOUT -- remove some obsolete code Alternate library routines for misfeature workarounds (these have the same names as standard library routines, but upper-cased): EXIT FOPEN FSEEK FTELL GETENV MALLOC(n) READ REWIND(fp) UNGETC C Implementations: ATT -- AT&T Unix (System III, V) BSD41 -- Berkeley 4.1BSD BSD42 -- Berkeley 4.2BSD HPUX -- HP 9000 series Unix (System V based) IBM_PC_LATTICE -- IBM PC Lattice C compiler IBM_PC_MICROSOFT-- IBM PC Microsoft Version 3.x or later C compiler IBM_PC_WIZARD -- IBM PC Wizard C compiler KCC_20 -- SRI's KCC Compiler on TOPS-20 PCC_20 -- Portable C Compiler on TOPS-20 Operating systems: OS_ATARI -- Atari 520ST+ TOS (similar to MS DOS) OS_PCDOS -- IBM (and clones) PC DOS and MS DOS OS_TOPS20 -- DEC-20 TOPS-20 OS_UNIX -- Unix (almost any variant) OS_VAXVMS -- VAX VMS Device names (defined in each DVIxxx.C file): APPLEIMAGEWRITER -- Apple ImageWriter printer BBNBITGRAPH -- BBN BitGraph terminal CANON_A2 -- Canon LBP-8 A2 laser printer DECLA75 -- DEC LA75 printer DECLN03PLUS -- DEC LN03-PLUS laser printer EPSON -- Epson 9-pin family dot-matrix printer GOLDENDAWNGL100 -- Golden Dawn GL100 laser printer HPJETPLUS -- Hewlett-Packard Laser Jet Plus (downloaded fonts) HPLASERJET -- Hewlett-Packard Laser Jet (bitmap display) IMPRESS -- imPRESS (IMAGEN laser printer) MPISPRINTER -- MPI Sprinter printer OKIDATA2410 -- OKIData 2410 printer POSTSCRIPT -- Adobe PostScript (Apple LaserWriter laser printer) PRINTRONIX -- Printronix (DEC LXY-11, C-Itoh) printer TOSHIBAP1351 -- Toshiba P-1351 dot matrix printer ***********************************************************************/ /********************************************************************** Define all symbols for devices, operating systems, and implementations to be explicitly 0, unless it is expected that they might be set at compile time. ***********************************************************************/ #define ALLOW_INTERRUPT 0 #define ANSI_PROTOTYPES 0 #ifndef ANSI_LIBRARY /* may be specified at compile time */ #define ANSI_LIBRARY 0 #endif #if ANSI_LIBRARY #undef ANSI_PROTOTYPES #define ANSI_PROTOTYPES 1 /* If library conforms, declarations do too */ #endif #define ARITHRSHIFT 1 /* most C compilers use arithmetic right shift */ #define DISKFULL(fp) (ferror(fp) && (errno == ENOSPC)) #define DVIEXT ".dvi" #define DVIPREFIX "dvi-" #define EXIT exit #define FASTZERO 0 /* The following definitions work for at least PCC-20, BSD 4.2 and 4.3, and HPUX; VAX VMS has an extra level of indirection. Check the definition of fileno(fp) in stdio.h; on PCC-20, it is #define fileno(p) ((p)->_file) */ #define FILE_CNT(fp) (fp)->_cnt #define FILE_BASE(fp) (fp)->_base #define FILE_PTR(fp) (fp)->_ptr /* #define FONTLIST 0 -- can be set at compile time */ /* #define FONTPATH 0 -- can be set at compile time */ #define FOPEN fopen #define FSEEK fseek #define FTELL ftell #define GETENV getenv #define HIRES 0 #define MALLOC(n) malloc(n) #define MAXDRIFT 2 /* we insist that abs|(hh-pixel_round(h))<=MAXDRIFT| */ /* MAXOPEN should be 6 less than the system limit on open files, allowing for files open on stdin, stdout, stderr, .dvi, .dvi-log, .dvi-xxx, plus MAXOPEN font files. It may be additionally limited by the amount of memory available for buffers (e.g. IBM PC). */ #define MAXOPEN 14 /* #define PS_MAXWIDTH 72 -- can be set at compile time */ /* #define PS_SHORTLINES 0 -- can be set at compile time */ #define PS_XONXOFFBUG 0 #define PXLID 0 #define RB_OPEN "r" /* For virtual font caching to succeed, read() must return the requested number of bytes, and preferably do this with one system call and no double buffering. */ #define READ read /* In many implementations, rewind(fp) is defined as equivalent to fseek(fp,0L,0). In some, however (e.g. PCC-20, and probably others based on PCC), it additionally discards input buffer contents, which may cause unnecessary I/O, and in the case of virtual font caching, clears the cache. Defining it in terms of fseek() should be okay, but the implementation of fseek() should be checked. */ #define REWIND(fp) FSEEK(fp,0L,0) #define SEGMEM 0 /* may be reset by dvixxx for big bitmaps */ #define STDRES 0 /* #define SUBPATH 0 -- can be set at compile time */ #define SUBEXT ".sub" #define SUBNAME "texfonts" /* #define TEXFONTS 0 -- can be set at compile time */ /* #define TEXINPUTS 0 -- can be set at compile time */ #define UNGETC ungetc #define USEGLOBALMAG 0 #define WB_OPEN "w" #define ZAPTHISOUT 0 /**********************************************************************/ /* Clear all implementation/operating-system flags--reset later */ #define ATT 0 /* define zero or one of these */ #define BSD41 0 #define BSD42 0 #define HPUX 0 #define IBM_PC_LATTICE 0 #define IBM_PC_MICROSOFT 0 #define IBM_PC_WIZARD 0 #define KCC_20 0 #define PCC_20 0 #define OS_ATARI 0 /* define one of these */ #define OS_PCDOS 0 #define OS_TOPS20 0 #define OS_UNIX 0 #define OS_VAXVMS 0 #define APPLEIMAGEWRITER 0 /* one will be defined by DVIxxx */ #define BBNBITGRAPH 0 #define CANON_A2 0 #define DECLA75 0 #define DECLN03PLUS 0 #define EPSON 0 #define GOLDENDAWNGL100 0 #define HPJETPLUS 0 #define HPLASERJET 0 #define IMPRESS 0 #define MPISPRINTER 0 #define OKIDATA2410 0 #define POSTSCRIPT 0 #define PRINTRONIX 0 #define TOSHIBAP1351 0 #define VIRTUAL_FONTS 0 /*********************************************************************** Define operating system and implementation here. Since these have all been explicitly set to 0 above, we issue #undef's to avoid compiler macro redefinition warning messages. ***********************************************************************/ /*==================== #undef PCC_20 #undef OS_TOPS20 #define PCC_20 1 #define OS_TOPS20 1 ====================*/ /*==================== #undef KCC_20 #undef OS_TOPS20 #define KCC_20 1 #define OS_TOPS20 1 ====================*/ /*==================== #undef OS_ATARI #define OS_ATARI 1 ====================*/ /*==================== #undef IBM_PC_LATTICE #undef OS_PCDOS #define IBM_PC_LATTICE 1 #define OS_PCDOS 1 ====================*/ #undef IBM_PC_MICROSOFT #undef OS_PCDOS #define IBM_PC_MICROSOFT 1 #define OS_PCDOS 1 /*==================== #undef IBM_PC_WIZARD #undef OS_PCDOS #define IBM_PC_WIZARD 1 #define OS_PCDOS 1 ====================*/ /*==================== #undef OS_VAXVMS #define OS_VAXVMS 1 ====================*/ #if (OS_ATARI | OS_PCDOS | OS_TOPS20 | OS_UNIX | OS_VAXVMS) #else #undef OS_UNIX #define OS_UNIX 1 /* provide default operating system */ #endif /**********************************************************************/ #if OS_ATARI #undef BSD42 #define BSD42 1 #undef DISKFULL #define DISKFULL(fp) ferror(fp) #define DVIHELP "type e:\\tex\\dvi.hlp" #ifdef FONTLIST /* can be set at compile time */ #else #define FONTLIST "PK-GF-PXL" /* preferred search order */ #endif /* FONTLIST */ #ifdef FONTPATH /* can be set at compile time */ #else #define FONTPATH "e:\\tex\\fonts\\" #endif #define HOST_WORD_SIZE 32 /* must be 32 or larger -- used in */ /* signex to pack 8-bit bytes back */ /* into integer values, and in dispchar */ /* and fillrect for managing character */ /* raster storage. */ #define MAXFNAME 64 /* longest host complete filename */ #ifndef PS_MAXWIDTH #define PS_MAXWIDTH 72 #endif #ifndef PS_SHORTLINES #define PS_SHORTLINES 1 #endif #ifdef SUBPATH /* can be set at compile time */ #else #define SUBPATH "e:\\tex\\inputs\\" #endif #ifdef TEXINPUTS /* can be set at compile time */ #else #define TEXINPUTS "TEXINPUTS" #endif #define TEXFONTS "TEXFONTS" #endif /* OS_ATARI */ /**********************************************************************/ #if OS_PCDOS #if IBM_PC_MICROSOFT #undef ANSI_PROTOTYPES #define ANSI_PROTOTYPES 1 /* Argument type checking in MSC Version 4.0 is selected by LINT_ARGS. MSC Version 5.0 has it selected by default. For Version 5.0, ANSI_LIBRARY should be defined at compile time so as to get ANSI-conformant library function declarations. Treating float as double eliminates lots of data conversion warnings with both Versions 4.0 and 5.0. */ #define float double #define LINT_ARGS 1 #undef MALLOC #define MALLOC(n) calloc(n,1) #endif /* IBM_PC_MICROSOFT */ #define DVIHELP "type d:\\tex\\dvi.hlp" #undef DVIPREFIX #define DVIPREFIX "" #ifdef FONTLIST /* can be set at compile time */ #else #define FONTLIST "PK-GF-PXL" /* preferred search order */ #endif /* FONTLIST */ #ifdef FONTPATH /* can be set at compile time */ #else #define FONTPATH "d:\\tex\\fonts\\" #endif /* FONTPATH */ #define HOST_WORD_SIZE 32 /* must be 32 or larger -- used in */ /* signex to pack 8-bit bytes back */ /* into integer values, and in dispchar */ /* and fillrect for managing character */ /* raster storage. */ #define MAXFNAME 64 /* longest host complete filename */ #undef MAXOPEN #define MAXOPEN 5 /* limit on number of open font files */ #ifndef PS_MAXWIDTH #define PS_MAXWIDTH 72 #endif #ifndef PS_SHORTLINES #define PS_SHORTLINES 1 #endif #undef RB_OPEN #define RB_OPEN "rb" #ifdef SUBPATH /* can be set at compile time */ #else #define SUBPATH "d:\\tex\\inputs\\" #endif #if TEXINPUTS /* can be set at compile time */ #else #define TEXINPUTS "TEXINPUTS" #endif #define TEXFONTS "TEXFONTS" #if IBM_PC_MICROSOFT #undef VIRTUAL_FONTS #define VIRTUAL_FONTS 1 #endif #undef WB_OPEN #define WB_OPEN "wb" #endif /* OS_PCDOS */ /***********************************************************************/ #if OS_TOPS20 /************************************************************************ ** ** Adapted for the DEC-20 TOPS-20 operating system with Jay Lepreau's ** PCC-20 by Nelson H.F. Beebe, College of Science Computer, ** University of Utah, Salt Lake City, UT 84112, Tel: (801) 581-5254. ** ** The PCC_20 switch is used to get around variations on the DEC-20. ** The major one is that text files have 7-bit bytes, while the .DVI ** file and the font files have 8-bit bytes. For the latter, we use a ** routine f20open which provides the necessary interface for opening ** with a ddifferent byte size. PCC-20 follows many other C compilers ** in that only the first 8 characters of identifiers are looked at, so ** massive substitutions were necessary in the file commands.h to ** shorten the long names there. ** ** The PCC_20 switch is also used to get variant font directory names ** and to select TOPS-20 jsys code. TOPS-20 is a wonderous operating ** system with capabilities far beyond most of its contemporaries. ** Like Topsy, it just grew, and consequently, its many capabilities ** are not well integrated. The terminal control jsys'es (MTOPR, ** RFMOD, SFMOD, STPAR, RFCOC, SFCOC and TLINK) are particularly poorly ** done -- RFMOD returns the JFN mode word, particular bits of which ** must be set by SFMOD, STPAR, and TLINK. Why could there not be a ** "return the terminal state" and "restore the terminal state" ** jsys'es? Some of this may in fact be already integrated into the ** PCC-20 C run-time library, but since it is totally undocumented (an ** all-too common problem with C), it is essentially unusable in that ** form. ** ** The OS_TOPS20 switch is used in one place to get ioctl.h included at ** the right point, and in several places to get error messages output ** with Tops-20 conventions in column 1: query (?) causes batch job ** abort, percent (%) flags a warning. ** ***********************************************************************/ #if KCC_20 /* KCC wants all #if symbols defined before use. */ #ifndef FONTLIST #define FONTLIST "PK-GF-PXL" #endif #ifndef FONTPATH #define FONTPATH "TEXFONTS:" #endif #ifndef SUBPATH #define SUBPATH "TEXINPUTS:" #endif #ifndef TEXFONTS #define TEXFONTS "TEXFONTS:" #endif #ifndef TEXINPUTS #define TEXINPUTS "TEXINPUTS:" #endif #undef VIRTUAL_FONTS #define VIRTUAL_FONTS 0 /* cannot support this yet */ #endif #if KCC_20 #include /* KCC-20 and PCC-20 have similar enough JSYS interfaces that we just define values for KCC-20 using PCC-20 names. */ #define JSchfdb CHFDB #define JSmtopr MTOPR #define JSrfcoc RFCOC #define JSrfmod RFMOD #define JSsfcoc SFCOC #define JSsfmod SFMOD #define JSsti STI #define JSstpar STPAR #define JStlink TLINK #define Getmask(name) ( 1?name ) #define Getshift(name) ( 0?name ) #define Absmask(name) ( (1?name) << (0?name) ) /* maybe use this one */ #define Value(name) ( (1?name) << (0?name) ) /* maybe use this one */ #define makefield(name, value) ( ((value) & Getmask(name)) << Getshift(name) ) #define getfield(var, name) ( (var) >> Getshift(name) & Getmask(name) ) #define setfield(var, name, value) ( (var) = ((var) & ~Absmask(name)) |\ makefield(name, value) ) #endif #if PCC_20 #undef ARITHRSHIFT #define ARITHRSHIFT 0 /* PCC-20 uses logical right shift */ #undef DISKFULL #define DISKFULL(fp) ferror(fp) /* PCC-20 does not always set errno */ #endif #define DVIHELP "help dvi\nor\ntype hlp:dvi.hlp\nor\nxinfo local clsc dvi" #if PCC_20 #undef FASTZERO #define FASTZERO 1 /* for fast assembly language memory zeroing */ #endif #ifdef FONTLIST /* can be set at compile time */ #else #define FONTLIST "PK-GF-PXL" /* preferred search order */ #endif /* FONTLIST */ #ifdef FONTPATH /* can be set at compile time */ #else #define FONTPATH "/texfonts/" #endif #undef FOPEN #define FOPEN f20open /* private version for 8-bit binary */ #define HOST_WORD_SIZE 36 #undef MAXFNAME #define MAXFNAME 256 /* longest host complete filename */ #ifdef KCC_20 #undef MAXOPEN #define MAXOPEN 26 #endif #ifdef PCC_20 #undef MAXOPEN #define MAXOPEN 14 #endif #ifndef PS_MAXWIDTH #define PS_MAXWIDTH 72 #endif #ifndef PS_SHORTLINES #define PS_SHORTLINES 1 #endif #undef RB_OPEN #define RB_OPEN "rb" #ifdef PCC_20 #undef READ #define READ _read /* fast version with one system call */ #endif /* and single buffering */ #ifdef SUBPATH #else #define SUBPATH "/texinputs/" #endif #ifdef TEXFONTS /* can be set at compile time */ #else #define TEXFONTS "TEXFONTS" #endif #ifdef TEXINPUTS /* can be set at compile time */ #else #define TEXINPUTS "TEXINPUTS" #endif #if PCC_20 #undef VIRTUAL_FONTS #define VIRTUAL_FONTS 1 #endif #undef WB_OPEN #define WB_OPEN "wb" /**********************************************************************/ /* The following definitions (down to the endif) are taken from */ /* monsym.h. It is too big for CPP to handle, so this kludge is */ /* necessary until CPP's tables can be enlarged. */ /* selected fields for CHFDB% */ #define CF_nud 01:35-0 /* no update directory */ #define CF_dsp 0777:35-17 /* fdb displacement */ #define CF_jfn 0777777:35-35 /* jfn */ #define FBbyv 011 /* retention+bytesize+mode,,# of pages*/ #define FB_ret 077:35-5 /* retention count */ /* tty mode definitions */ #define MOrlw 030 /* read width */ #define MOslw 031 /* set width */ #define MOrll 032 /* read length */ #define MOsll 033 /* set length */ #define MOsnt 034 /* set tty non-terminal status */ #define MOsmn 01 /* no system messages(i.e. suppress) */ #define MOsmy 00 /* yes system messages(default) */ #define MOrnt 035 /* read tty non-terminal status */ /* fields of jfn mode word */ #define TT_osp 01:35-0 /* output suppress */ #define TT_mff 01:35-1 /* mechanical formfeed present */ #define TT_tab 01:35-2 /* mechanical tab present */ #define TT_lca 01:35-3 /* lower case capabilities present */ #define TT_len 0177:35-10 /* page length */ #define TT_wid 0177:35-17 /* page width */ #define TT_wak 017:35-23 /* wakeup field */ #define TT_wk0 01:35-18 /* wakeup class 0 (unused) */ #define TT_ign 01:35-19 /* ignore tt_wak on sfmod */ #define TT_wkf 01:35-20 /* wakeup on formating control chars */ #define TT_wkn 01:35-21 /* wakeup on non-formatting controls */ #define TT_wkp 01:35-22 /* wakeup on punctuation */ #define TT_wka 01:35-23 /* wakeup on alphanumerics */ #define TT_eco 01:35-24 /* echos on */ #define TT_ecm 01:35-25 /* echo mode */ #define TT_alk 01:35-26 /* allow links */ #define TT_aad 01:35-27 /* allow advice (not implemented) */ #define TT_dam 03:35-29 /* data mode */ #define TTbin 00 /* binary */ #define TTasc 01 /* ascii */ #define TTato 02 /* ascii and translate output only */ #define TTate 03 /* ascii and translate echos only */ #define TT_uoc 01:35-30 /* upper case output control */ #define TT_lic 01:35-31 /* lower case input control */ #define TT_dum 03:35-33 /* duplex mode */ #define TTfdx 00 /* full duplex */ #define TT0dx 01 /* not used, reserved */ #define TThdx 02 /* half duplex (character) */ #define TTldx 03 /* line half duplex */ #define TT_pgm 01:35-34 /* page mode */ #define TT_car 01:35-35 /* carrier state */ /* tlink */ #define TL_cro 01:35-0 /* clear remote to object link */ #define TL_cor 01:35-1 /* clear object to remote link */ #define TL_eor 01:35-2 /* establist object to remote link */ #define TL_ero 01:35-3 /* establish remote to object link */ #define TL_sab 01:35-4 /* set accept bit for object */ #define TL_abs 01:35-5 /* accept bit state */ #define TL_sta 01:35-6 /* set or clear advice */ #define TL_aad 01:35-7 /* accept advice */ #define TL_obj 0777777:35-35 /* object designator */ #endif /* OS_TOPS20 */ /**********************************************************************/ #if OS_UNIX #undef BSD42 #define BSD42 1 /* want DVISPOOL code in dviterm.h */ #define DVIHELP "man dvi\nor\napropos dvi" #ifdef FONTLIST /* can be set at compile time */ #else #define FONTLIST "PK-GF-PXL" /* preferred search order */ #endif /* FONTLIST */ #ifdef FONTPATH /* can be set at compile time */ #else #define FONTPATH "/usr/lib/tex/fonts/" #endif #undef MAXOPEN #if HPUX #define MAXFNAME 1024 /* longest host complete filename */ #define MAXOPEN 50 #else /* NOT HPUX */ #define MAXFNAME 256 /* longest host complete filename */ #define MAXOPEN 14 #endif /* HPUX */ #ifndef PS_MAXWIDTH #define PS_MAXWIDTH 72 #endif #ifndef PS_SHORTLINES #define PS_SHORTLINES 1 /* some Unix utilities fail with long lines */ #endif #ifdef SUBPATH /* can be set at compile time */ #else #define SUBPATH "/usr/lib/tex/macros/" #endif #if TEXINPUTS /* can be set at compile time */ #else #define TEXINPUTS "TEXINPUTS" #endif #if TEXFONTS /* can be set at compile time */ #else #define TEXFONTS "TEXFONTS" #endif #define HOST_WORD_SIZE 32 /* must be 32 or larger -- used in */ /* signex to pack 8-bit bytes back */ /* into integer values, and in dispchar */ /* and fillrect for managing character */ /* raster storage. */ #endif /* OS_UNIX */ /**********************************************************************/ #if OS_VAXVMS /*********************************************************************** ** Several standard Unix library functions do not work properly with VMS ** C, or are not implemented: ** ** exit() -- wrong conventions for return code ** fseek() -- fails on record-oriented files ** ftell() -- fails on record-oriented files ** getchar() -- waits for to be typed ** getenv() -- colon- and case-sensitive ** getlogin() -- not implemented ** qsort() -- not implemented ** tell() -- not implemented ** ungetc() -- fails for any character with high-order bit set ** unlink() -- not implemented (equivalent available) ** ** The file VAXVMS.C contains workarounds; it must be compiled ** separately and loaded with each of the DVI drivers. ***********************************************************************/ #include /* need for getjpi() in openfont() */ #define DVIHELP "help dvi\nor\ntype tex_inputs:dvi.hlp" #define EXIT vms_exit #define FILE_CNT(fp) (*fp)->_cnt #define FILE_BASE(fp) (*fp)->_base #define FILE_PTR(fp) (*fp)->_ptr #ifndef FONTLIST /* can be set at compile time */ #define FONTLIST "PK-GF-PXL" /* preferred search order */ #endif /* FONTLIST */ #ifndef FONTPATH /* can be set at compile time */ #define FONTPATH "TEX_FONTS:" /* Kellerman & Smith VMS TeX */ #endif /* FONTPATH */ #define FSEEK vms_fseek #define FTELL vms_ftell #define GETENV vms_getenv #define HOST_WORD_SIZE 32 /* must be 32 or larger -- used in */ /* signex to pack 8-bit bytes back */ /* into integer values, and in dispchar */ /* and fillrect for managing character */ /* raster storage. */ #define MAXFNAME 256 /* longest host complete filename */ #undef MAXOPEN #define MAXOPEN 14 #undef RB_OPEN #define RB_OPEN "rb" #ifndef PS_MAXWIDTH #define PS_MAXWIDTH 72 #endif #ifndef PS_SHORTLINES #define PS_SHORTLINES 1 /* VMS has trouble with long lines */ #endif #define READ vms_read /* ordinary read() returns only one disk */ /* at each call */ #ifndef SUBPATH /* can be set at compile time */ #define SUBPATH "TEX_INPUTS:" /* Kellerman & Smith VMS TeX */ #endif #ifndef TEXINPUTS /* can be set at compile time */ #define TEXINPUTS "TEX_INPUTS:" #endif #ifndef TEXFONTS /* can be set at compile time */ #define TEXFONTS "TEX_FONTS:" #endif #define UNGETC vms_ungetc /* VIRTUAL_FONTS cannot be implemented yet. The code works, but the calls to FSEEK() (vms_seek) result in _filbuf() being called to refill the buffer, obviating the pre-buffering. Additional code in case 0 of vms_seek() can probably be developed to avoid this, but I have run out of time for now. */ #undef WB_OPEN #define WB_OPEN "wb" #endif /* OS_VAXVMS */ /**********************************************************************/