This is initialize.c in view mode; [Download] [Up]
/* * initialize.c of dviamiga software package. Initializes all the data * structures either for an entire run or for one file. */ #include "structures.h" #include "paths.h" #include "strings.h" /* * These are the external variables we use. */ extern TeXfontdesctype *TeXfonts[], *TeXfontlist ; extern fontdesctype *fontlist ; extern float conv ; extern real alpha ; extern integer iconv ; extern float pxlconv ; extern float screendpi ; extern char *tfmpath, *pkpath, *vfpath, *inputspath ; extern integer dvimag, num, den ; extern struct Gadget *mygadgets ; extern integer curpos, thispage ; extern FILE *dvifile ; extern Boolean orientationset ; extern Boolean landscape ; extern Boolean usersetsizes ; extern shalfword vvmax, vvmin, hhmax, hhmin ; extern Boolean interlaceon ; extern shalfword vscreenheight, vscreen ; extern shalfword vwindow, vwindowheight ; extern Boolean pageinterrupted ; extern Boolean zoomed ; extern int rowsize, colsize ; extern int sfrgnd, sbckgnd ; extern long frgnd, bckgnd ; int wxsize, wysize, wxpos, wypos ; extern void TPSdvimag() ; extern void upwindow() ; Boolean firstpage ; extern int tracking ; extern int debugon ; extern real hsize, vsize, hmarg, vmarg, defhsize, defvsize, defhmarg, defvmarg ; /* * The external routines we use: */ extern halfword dvibyte() ; extern integer signedquad() ; extern void abortpage() ; extern void storeimagedata() ; extern void *tempbuf() ; extern void cleartheair() ; extern void configure(), setenvvars() ; extern char *getenv() ; extern void dviseek() ; extern char *strcpy() ; extern void resetsize() ; extern void newdpi() ; extern char *newstring() ; extern void freepages() ; extern void resetsizes() ; extern void free() ; extern void getdefaults() ; extern void relativepage(), skippage() ; extern void reportnewdpi() ; extern void initcolor() ; /* * Get environment variables! These override entries in ./config.h. * We substitute everything of the form ::, ^: or :$ with default, * so a user can easily build on to the existing paths. */ static char *getenvup(who, what) char *who, *what ; { char *p, *getenv() ; char *tb = tempbuf(9512L) ; if (p=getenv(who)) { register char *pp, *qq ; int lastsep = 1 ; for (pp=tb, qq=p; *qq;) { if (*qq == ':') { if (lastsep) { strcpy(pp, what) ; pp = pp + strlen(pp) ; } lastsep = 1 ; } else lastsep = 0 ; *pp++ = *qq++ ; } if (lastsep) { strcpy(pp, what) ; pp = pp + strlen(pp) ; } *pp = 0 ; return newstring(tb) ; } else return what ; } /* * Initialize sets everything up. DO NOT call cleanup unless this * routine has been called first! */ void initialize() { char *getenv() ; void *mymalloc() ; (void)tempbuf(512L) ; setenvvars() ; configure() ; getdefaults("config.ps") ; getdefaults(0L) ; reportnewdpi() ; } /* * Set all of the environment variables. */ void setenvvars() { pkpath = getenvup("TEXPKS", PKPATH) ; inputspath = getenvup("TEXINPUTS", INPUTSPATH) ; vfpath = getenvup("VFFONTS", VFPATH) ; tfmpath = getenvup("TEXFONTS", TFMPATH) ; } /* * fontinit disassociates TeXfonts from the current list of fonts, * necessary when a new magnification or dvi job is started. */ extern TeXfontdesctype *TeXfontlist ; void fontinit() { register int i ; register TeXfontdesctype *tft ; for (tft = TeXfontlist; tft; tft = tft->next) { tft->loaded = 0 ; tft->scaledsize = tft->origssize ; } for (i=0; i<256; i++) if (tft = TeXfonts[i]) tft->loaded = 0 ; } extern long fakeeof ; void dviinit() { register int i ; curpos = 0 ; dviseek(0) ; orientationset = 0 ; if (landscape || !usersetsizes) resetsizes() ; landscape = 0 ; fontinit() ; for (i=0; i<256; i++) if (TeXfonts[i]) { free(TeXfonts[i]) ; TeXfonts[i] = NULL ; } if (dvibyte()!=247) abortpage() ; if (dvibyte()!=2) abortpage() ; num = signedquad() ; den = signedquad() ; alpha = (((real)den / 7227.0) / 0x100000) * (25400000.0 / (real) num) ; dvimag = signedquad() ; TPSdvimag((real)dvimag / 1000.0) ; for (i=dvibyte(); i>0; i--) dvibyte() ; initcolor() ; newdpi() ; freepages() ; relativepage(1) ; firstpage = 1 ; skippage() ; cleartheair() ; firstpage = 0 ; pageinterrupted = 0 ; fakeeof = 2000000000 ; upwindow() ; relativepage(-1) ; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.