memset(debug, 0, sizeof(debug));
cinit();
outfile = 0;
- include[ninclude++] = ".";
+ setinclude(".");
ARGBEGIN {
default:
c = ARGC();
case 'D':
p = ARGF();
- if(p)
+ if(p) {
+ if (nDlist%8 == 0)
+ Dlist = allocn(Dlist, nDlist*sizeof(char *),
+ 8*sizeof(char *));
Dlist[nDlist++] = p;
+ }
break;
case 'I':
memset(debug, 0, sizeof(debug));
cinit();
outfile = 0;
- include[ninclude++] = ".";
+ setinclude(".");
ARGBEGIN {
default:
c = ARGC();
case 'D':
p = ARGF();
- if(p)
+ if(p) {
+ if (nDlist%8 == 0)
+ Dlist = allocn(Dlist, nDlist*sizeof(char *),
+ 8*sizeof(char *));
Dlist[nDlist++] = p;
+ }
break;
case 'I':
memset(debug, 0, sizeof(debug));
cinit();
outfile = 0;
- include[ninclude++] = ".";
+ setinclude(".");
ARGBEGIN {
default:
c = ARGC();
case 'D':
p = ARGF();
- if(p)
+ if(p) {
+ if (nDlist%8 == 0)
+ Dlist = allocn(Dlist, nDlist*sizeof(char *),
+ 8*sizeof(char *));
Dlist[nDlist++] = p;
+ }
break;
case 'I':
void
main(int argc, char *argv[])
{
- char *defs[50], *p;
+ char **defs, *p;
int nproc, nout, i, c, ndef;
ensuresymb(NSYMB);
tufield = simplet((1L<<tfield->etype) | BUNSIGNED);
ndef = 0;
+ defs = nil;
outfile = 0;
- include[ninclude++] = ".";
+ setinclude(".");
ARGBEGIN {
default:
c = ARGC();
case 'D':
p = ARGF();
if(p) {
+ if(ndef%8 == 0)
+ defs = allocn(defs, ndef*sizeof(char *),
+ 8*sizeof(char *));
defs[ndef++] = p;
dodefine(p);
}
compile(char *file, char **defs, int ndef)
{
char *ofile, incfile[20];
- char *p, *av[100], opt[256];
+ char *p, **av, opt[256];
int i, c, fd[2];
static int first = 1;
close(fd[0]);
dup(fd[1], 1);
close(fd[1]);
+ av = alloc((ndef+ninclude+5)*sizeof(char *));
av[0] = CPP;
i = 1;
if(debug['.']){
if(strcmp(p, include[i]) == 0)
return;
- if(i >= ninclude)
- include[ninclude++] = p;
-
- if(ninclude > nelem(include)) {
- diag(Z, "ninclude too small %d", nelem(include));
- exits("ninclude");
- }
-
+ if(ninclude%8 == 0)
+ include = allocn(include, ninclude*sizeof(char *),
+ 8*sizeof(char *));
+ include[ninclude++] = p;
}
}
for(i=1; i < ninclude; i++)
if(strcmp(p, include[i]) == 0)
return;
-
- if(ninclude >= nelem(include)) {
- yyerror("ninclude too small %d", nelem(include));
- exits("ninclude");
- }
+
+ if(ninclude%8 == 0)
+ include = allocn(include, ninclude*sizeof(char *),
+ 8*sizeof(char *));
include[ninclude++] = p;
}