ftp.nice.ch/pub/next/text/tex/apps/TeXview-kp0.25.s.tar.gz#/TeXview-grey/initialize.c

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 <kpathsea/tex-file.h>
#include <kpathsea/proginit.h>
#include <kpathsea/lib.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 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 bringupwindow() ;
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() ;
#if 0 /*GH*/
/*
 *   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 ;
}
#endif
/*
 *   Initialize sets everything up.  DO NOT call cleanup unless this
 *   routine has been called first!
 */

extern int actualdpi ;
Boolean generatefonts;
void initialize() {
   char *getenv() ;
   void *mymalloc() ;

   (void)tempbuf(512L) ;
   setenvvars() ;
   configure() ;
   getdefaults("config.ps") ;
   getdefaults(0L) ;
   kpse_init_prog ("XDVI", actualdpi, NULL, (generatefonts==1),"cmr10");
   reportnewdpi() ;
}

/*
 *   flight: grab environment variable (from csh!) into our env.
 */
void
xupdateenv(const char *varname) {
	string s=getenv(varname);
	if(s) xputenv(varname,s);
}
/*
 *   Set all of the environment variables.
 */
void
setenvvars() {
   xupdateenv("TETEXDIR") ;
   
   xupdateenv("TEXPKS") ;
   xupdateenv("TEXINPUTS") ;
   xupdateenv("VFFONTS") ;
   xupdateenv("TEXFONTS") ; 
   xupdateenv("TEXCONFIG") ;
   xupdateenv("DVIPSHEADERS") ;
}
/*
 *   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 ;
   bringupwindow() ;
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.