152 |
|
int ac, fi; |
153 |
|
{ |
154 |
|
char *newav[256], **avp; |
155 |
< |
char argbuf[2048]; |
155 |
> |
char argbuf[1024]; |
156 |
|
char newid[128]; |
157 |
|
char *oldid; |
158 |
|
register char *cp; |
179 |
|
} |
180 |
|
n = 0; /* count number of lines in file */ |
181 |
|
while (fgets(argbuf,sizeof(argbuf),argfp) != NULL) |
182 |
< |
n++; |
182 |
> |
n += argbuf[0] != '\n' & argbuf[0] != '#'; |
183 |
|
if (!n) { |
184 |
|
fprintf(stderr, "%s: empty argument file \"%s\"\n", |
185 |
|
av[0], av[fi+1]); |
188 |
|
nrept *= n; |
189 |
|
rewind(argfp); |
190 |
|
} |
191 |
< |
err = 0; /* read each arg list and call main */ |
192 |
< |
for (k = 0; fgets(argbuf,sizeof(argbuf),argfp) != NULL; k++) { |
191 |
> |
err = 0; k = 0; /* read each arg list and call main */ |
192 |
> |
while (fgets(argbuf,sizeof(argbuf),argfp) != NULL) { |
193 |
> |
if (argbuf[0] == '\n' | argbuf[0] == '#') |
194 |
> |
continue; |
195 |
|
avp = newav+2; |
196 |
|
avp[0] = av[0]; |
197 |
|
for (i = 1; i < fi; i++) |
198 |
|
avp[i] = av[i]; |
199 |
|
newac = i; |
200 |
< |
cp = argbuf; /* parse new words */ |
200 |
> |
cp = argbuf; /* parse new words */ |
201 |
> |
if (*cp == '!') cp++; |
202 |
> |
if (!strncmp(cp, "xform ", 6)) cp += 6; |
203 |
|
for ( ; ; ) { |
204 |
|
while (isspace(*cp)) /* nullify spaces */ |
205 |
|
*cp++ = '\0'; |
231 |
|
else |
232 |
|
sprintf(newid, "%s.%d", oldid, k); |
233 |
|
err |= main(newac, avp); |
234 |
+ |
k++; |
235 |
|
} |
236 |
|
fclose(argfp); |
237 |
|
return(err); |