DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T t

⟦649790f31⟧ TextFile

    Length: 1823 (0x71f)
    Types: TextFile
    Names: »tanext.c«

Derivation

└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
    └─⟦this⟧ »./tex82/texware/tanext.c« 

TextFile

/*
 * Hand-coded routines for C TeX.
 * This module should contain any system-dependent code.
 */

#define	CATCHINT		/* Catch ^C's */

#define	EXTERN		/* Actually instantiate globals here */

#include <signal.h>
#include <time.h>
#include <stdio.h>
#include "site.h"

#define BUF_SIZE 100		/* should agree with tangle.web */

extern char buffer[];		/* 0..BUF_SIZE.  Input goes here */
extern char outbuf[];		/* 0..OUT_BUF_SIZE. Output from here */
extern char xord[], xchr[];	/* character translation arrays */
extern int limit;		

#ifdef	SYSV
#define	index	strchr		/* Sys V compatibility */
extern int sprintf();
#else
extern char *sprintf();
#endif

/* C library stuff that we're going to use */
#ifndef	BSD
#include <string.h>
#else
#include <strings.h>
#endif
extern char *malloc(), *index(), *getenv();

/* Local stuff */
static int gargc;
integer argc;
static char **gargv;


#define	TRUE	1
#define	FALSE	0


/*
 * Get things going under Unix: set up for rescanning the command line,
 * then call the main body.
 */
main(iargc, iargv)
int iargc;
char *iargv[];
{
    gargc=argc=iargc;
    gargv=iargv;
    main_body();
} 

/* Return the nth argument into the string s (which is indexed starting at 1) */
argv(n,s)
integer n;
char s[];
{
    (void) sprintf(s+1, "%s ", gargv[n]);
}


/* Same as in Pascal --- return TRUE if EOF or next char is newline */
eoln(f)
FILE *f;
{
    register int c;

    if (feof(f)) return(TRUE);
    c = getc(f);
    if (c != EOF)
	(void) ungetc(c, f);
    return (c == '\n' || c == EOF);
}

/* Open a file; don't return if error */
FILE *openf(name, mode)
char *name, *mode;
{
    FILE *result;
    char *index(), *cp;

    cp = index(name, ' ');
    if (cp) *cp = '\0';
    result = fopen(name, mode);
    if (result) return(result);
    perror(name);
    exit(1);
    /*NOTREACHED*/
}