69 |
|
{ "colortext", text }, |
70 |
|
{ "brighttext", text }, |
71 |
|
{ "texfunc", addxform }, |
72 |
+ |
{ "texdata", addxform }, |
73 |
|
{ "colorfunc", addxform }, |
74 |
|
{ "brightfunc", addxform }, |
75 |
|
{ "colorpict", addxform }, |
113 |
|
FILE *fopen(); |
114 |
|
FILE *fp; |
115 |
|
int a; |
116 |
+ |
/* check for array */ |
117 |
+ |
for (a = 1; a < argc; a++) |
118 |
+ |
if (!strcmp(argv[a], "-a")) |
119 |
+ |
return(doarray(argc, argv, a)); |
120 |
|
|
116 |
– |
xav = argv; |
117 |
– |
|
121 |
|
for (a = 1; a < argc; a++) { |
122 |
|
if (argv[a][0] == '-') |
123 |
|
switch (argv[a][1]) { |
131 |
|
break; |
132 |
|
} |
133 |
|
|
134 |
+ |
xav = argv; |
135 |
|
xfa = a; |
136 |
|
|
137 |
|
totscale = 1.0; |
162 |
|
fclose(fp); |
163 |
|
} |
164 |
|
|
165 |
< |
exit(0); |
165 |
> |
return(0); |
166 |
|
} |
167 |
|
|
168 |
|
|
169 |
+ |
doarray(ac, av, ai) /* make array */ |
170 |
+ |
char **av; |
171 |
+ |
int ac, ai; |
172 |
+ |
{ |
173 |
+ |
char *newav[256], **avp; |
174 |
+ |
char newid[128], repts[32]; |
175 |
+ |
char *oldid = NULL; |
176 |
+ |
int i, err; |
177 |
+ |
|
178 |
+ |
avp = newav+2; |
179 |
+ |
avp[0] = av[0]; |
180 |
+ |
for (i = 1; i < ac; i++) |
181 |
+ |
if (!strcmp(av[i-1], "-n")) { |
182 |
+ |
oldid = av[i]; |
183 |
+ |
avp[i] = newid; |
184 |
+ |
} else |
185 |
+ |
avp[i] = av[i]; |
186 |
+ |
avp[ai] = "-i"; |
187 |
+ |
avp[ai+1] = repts; |
188 |
+ |
avp[i] = NULL; |
189 |
+ |
if (oldid == NULL) { |
190 |
+ |
newav[0] = av[0]; |
191 |
+ |
newav[1] = "-n"; |
192 |
+ |
newav[2] = newid; |
193 |
+ |
avp = newav; |
194 |
+ |
ac += 2; |
195 |
+ |
} |
196 |
+ |
err = 0; |
197 |
+ |
for (i = 0; i < atoi(av[ai+1]); i++) { |
198 |
+ |
if (oldid == NULL) |
199 |
+ |
sprintf(newid, "a%d", i); |
200 |
+ |
else |
201 |
+ |
sprintf(newid, "%s.%d", oldid, i); |
202 |
+ |
sprintf(repts, "%d", i); |
203 |
+ |
err |= main(ac, avp); |
204 |
+ |
} |
205 |
+ |
return(err); |
206 |
+ |
} |
207 |
+ |
|
208 |
+ |
|
209 |
|
xform(name, fin) /* transform stream by totxform */ |
210 |
|
char *name; |
211 |
|
register FILE *fin; |
224 |
|
} while (c != '\n'); |
225 |
|
} else if (c == '!') { /* command */ |
226 |
|
ungetc(c, fin); |
227 |
< |
if (expand) |
184 |
< |
xfcomm(name, fin); |
185 |
< |
else { |
186 |
< |
putchar('\n'); |
187 |
< |
while ((c = getc(fin)) != EOF && c != '\n') |
188 |
< |
putchar(c); |
189 |
< |
printf(" |"); |
190 |
< |
for (c = 0; c < xac; c++) |
191 |
< |
printf(" %s", xav[c]); |
192 |
< |
putchar('\n'); |
193 |
< |
} |
227 |
> |
xfcomm(name, fin); |
228 |
|
} else { /* object */ |
229 |
|
ungetc(c, fin); |
230 |
|
xfobject(name, fin); |
233 |
|
} |
234 |
|
|
235 |
|
|
236 |
< |
xfcomm(fname, fin) /* expand a command */ |
236 |
> |
xfcomm(fname, fin) /* transform a command */ |
237 |
|
FILE *fin; |
238 |
|
{ |
239 |
|
FILE *popen(); |
240 |
< |
char *fgets(); |
240 |
> |
char *fgetline(); |
241 |
|
FILE *pin; |
242 |
|
char buf[512]; |
243 |
+ |
int i; |
244 |
|
|
245 |
< |
buf[0] = '\0'; |
246 |
< |
fgets(buf, sizeof(buf), fin); |
247 |
< |
if (buf[0] && buf[strlen(buf)-1] == '\n') |
248 |
< |
buf[strlen(buf)-1] = '\0'; |
249 |
< |
if ((pin = popen(buf+1, "r")) == NULL) { |
250 |
< |
fprintf(stderr, "%s: (%s): cannot execute \"%s\"\n", |
251 |
< |
progname, fname, buf); |
252 |
< |
exit(1); |
245 |
> |
fgetline(buf, sizeof(buf), fin); |
246 |
> |
if (expand) { |
247 |
> |
if ((pin = popen(buf+1, "r")) == NULL) { |
248 |
> |
fprintf(stderr, "%s: (%s): cannot execute \"%s\"\n", |
249 |
> |
progname, fname, buf); |
250 |
> |
exit(1); |
251 |
> |
} |
252 |
> |
xform(buf, pin); |
253 |
> |
pclose(pin); |
254 |
> |
} else { |
255 |
> |
printf("\n%s | %s -e", buf, xav[0]); |
256 |
> |
for (i = 1; i < xac; i++) |
257 |
> |
printf(" %s", xav[i]); |
258 |
> |
putchar('\n'); |
259 |
|
} |
219 |
– |
xform(buf, pin); |
220 |
– |
pclose(pin); |
260 |
|
} |
261 |
|
|
262 |
|
|