version 1.11, 1998/04/25 18:47:18 |
version 1.12, 1999/09/06 13:10:48 |
|
|
#include <stdlib.h> |
#include <stdlib.h> |
#include <string.h> |
#include <string.h> |
#include <fcntl.h> |
#include <fcntl.h> |
|
#include <err.h> |
#include "mdef.h" |
#include "mdef.h" |
#include "stdd.h" |
#include "stdd.h" |
#include "extern.h" |
#include "extern.h" |
|
|
case INCLTYPE: |
case INCLTYPE: |
if (argc > 2) |
if (argc > 2) |
if (!doincl(argv[2])) |
if (!doincl(argv[2])) |
oops("%s: %s", argv[2], strerror(errno)); |
err(1, "%s", argv[2]); |
break; |
break; |
|
|
case SINCTYPE: |
case SINCTYPE: |
|
|
case PASTTYPE: |
case PASTTYPE: |
if (argc > 2) |
if (argc > 2) |
if (!dopaste(argv[2])) |
if (!dopaste(argv[2])) |
oops("%s: %s", argv[2], strerror(errno)); |
err(1, "%s", argv[2]); |
break; |
break; |
|
|
case SPASTYPE: |
case SPASTYPE: |
|
|
break; |
break; |
|
|
default: |
default: |
oops("%s: major botch.", "eval"); |
errx(1, "eval: major botch."); |
break; |
break; |
} |
} |
} |
} |
|
|
register ndptr p; |
register ndptr p; |
|
|
if (!*name) |
if (!*name) |
oops("null definition."); |
errx(1, "null definition."); |
if (STREQ(name, defn)) |
if (STREQ(name, defn)) |
oops("%s: recursive definition.", name); |
errx(1, "%s: recursive definition.", name); |
if ((p = lookup(name)) == nil) |
if ((p = lookup(name)) == nil) |
p = addent(name); |
p = addent(name); |
else if (p->defn != null) |
else if (p->defn != null) |
|
|
register ndptr p; |
register ndptr p; |
|
|
if (!*name) |
if (!*name) |
oops("null definition"); |
errx(1, "null definition"); |
if (STREQ(name, defn)) |
if (STREQ(name, defn)) |
oops("%s: recursive definition.", name); |
errx(1, "%s: recursive definition.", name); |
p = addent(name); |
p = addent(name); |
if (!*defn) |
if (!*defn) |
p->defn = null; |
p->defn = null; |
|
|
char *ifile; |
char *ifile; |
{ |
{ |
if (ilevel + 1 == MAXINP) |
if (ilevel + 1 == MAXINP) |
oops("too many include files."); |
errx(1, "too many include files."); |
if ((infile[ilevel + 1] = fopen(ifile, "r")) != NULL) { |
if ((infile[ilevel + 1] = fopen(ifile, "r")) != NULL) { |
ilevel++; |
ilevel++; |
bbase[ilevel] = bufbase = bp; |
bbase[ilevel] = bufbase = bp; |
|
|
m4temp[UNIQUE] = n + '0'; |
m4temp[UNIQUE] = n + '0'; |
if ((fd = open(m4temp, O_CREAT|O_EXCL|O_WRONLY, 0600)) < 0 || |
if ((fd = open(m4temp, O_CREAT|O_EXCL|O_WRONLY, 0600)) < 0 || |
(outfile[n] = fdopen(fd, "w")) == NULL) |
(outfile[n] = fdopen(fd, "w")) == NULL) |
oops("%s: cannot divert.", m4temp); |
err(1, "%s: cannot divert", m4temp); |
} |
} |
active = outfile[n]; |
active = outfile[n]; |
} |
} |