projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 3 development
[unix-history]
/
usr
/
src
/
cmd
/
cc.c
diff --git
a/usr/src/cmd/cc.c
b/usr/src/cmd/cc.c
index
a09c294
..
ce5137b
100644
(file)
--- a/
usr/src/cmd/cc.c
+++ b/
usr/src/cmd/cc.c
@@
-9,7
+9,7
@@
# define MAXFIL 100
# define MAXLIB 100
# define MAXOPT 100
# define MAXFIL 100
# define MAXLIB 100
# define MAXOPT 100
-char
*tmp0
;
+char
tmp0[30]
;
char *tmp1;
char *tmp2;
char *tmp3;
char *tmp1;
char *tmp2;
char *tmp3;
@@
-25,6
+25,7
@@
char *av[50];
char *clist[MAXFIL];
char *llist[MAXLIB];
char *alist[20];
char *clist[MAXFIL];
char *llist[MAXLIB];
char *alist[20];
+int Wflag;
int dflag;
int pflag;
int sflag;
int dflag;
int pflag;
int sflag;
@@
-64,6
+65,7
@@
char *argv[]; {
break;
case 'o':
if (++i < argc) {
break;
case 'o':
if (++i < argc) {
+ char t;
outfile = argv[i];
if ((t=getsuf(outfile))=='c'||t=='o') {
error("Would overwrite %s", outfile);
outfile = argv[i];
if ((t=getsuf(outfile))=='c'||t=='o') {
error("Would overwrite %s", outfile);
@@
-80,6
+82,10
@@
char *argv[]; {
case 'g':
gflag++;
break;
case 'g':
gflag++;
break;
+ case 'W': /* deprecated */
+ case 'w':
+ Wflag++;
+ break;
case 'E':
exflag++;
case 'P':
case 'E':
exflag++;
case 'P':
@@
-193,7
+199,8
@@
char *argv[]; {
if(nc==0)
goto nocom;
if (pflag==0) {
if(nc==0)
goto nocom;
if (pflag==0) {
- tmp0 = copy("/tmp/ctm0a");
+ FILE *c;
+ sprintf(tmp0,"/tmp/ctm%05.5da",getpid());
while((c=fopen(tmp0, "r")) != NULL) {
fclose(c);
tmp0[9]++;
while((c=fopen(tmp0, "r")) != NULL) {
fclose(c);
tmp0[9]++;
@@
-205,17
+212,19
@@
char *argv[]; {
signal(SIGINT, idexit);
if (signal(SIGTERM, SIG_IGN) != SIG_IGN) /* terminate */
signal(SIGTERM, idexit);
signal(SIGINT, idexit);
if (signal(SIGTERM, SIG_IGN) != SIG_IGN) /* terminate */
signal(SIGTERM, idexit);
- (tmp1 = copy(tmp0))[
8
] = '1';
- (tmp2 = copy(tmp0))[
8
] = '2';
- (tmp3 = copy(tmp0))[
8
] = '3';
+ (tmp1 = copy(tmp0))[
13
] = '1';
+ (tmp2 = copy(tmp0))[
13
] = '2';
+ (tmp3 = copy(tmp0))[
13
] = '3';
if (oflag)
if (oflag)
- (tmp5 = copy(tmp0))[
8
] = '5';
+ (tmp5 = copy(tmp0))[
13
] = '5';
if (pflag==0)
if (pflag==0)
- (tmp4 = copy(tmp0))[
8
] = '4';
+ (tmp4 = copy(tmp0))[
13
] = '4';
pvt = pv;
for (i=0; i<nc; i++) {
pvt = pv;
for (i=0; i<nc; i++) {
- if (nc>1)
+ if (nc>1)
{
printf("%s:\n", clist[i]);
printf("%s:\n", clist[i]);
+ fflush(stdout);
+ }
if (getsuf(clist[i])=='s') {
assource = clist[i];
goto assemble;
if (getsuf(clist[i])=='s') {
assource = clist[i];
goto assemble;
@@
-253,10
+262,20
@@
char *argv[]; {
av[3] = 0;
if (gflag) {
int i;
av[3] = 0;
if (gflag) {
int i;
+
i = av[3] ? 4 : 3;
av[i++] = "-Xg";
av[i] = 0;
}
i = av[3] ? 4 : 3;
av[i++] = "-Xg";
av[i] = 0;
}
+ if (Wflag) {
+ int i;
+
+ for (i = 3; i < 10 && av[i] != 0; i++)
+ ;
+ av[i] = "-W";
+ av[++i] = 0;
+ }
+
if (callsys(pass0, av)) {
cflag++;
eflag++;
if (callsys(pass0, av)) {
cflag++;
eflag++;
@@
-338,7
+357,7
@@
dexit()
cunlink(tmp3);
cunlink(tmp4);
cunlink(tmp5);
cunlink(tmp3);
cunlink(tmp4);
cunlink(tmp5);
- cunlink(tmp0);
+ cunlink(tmp0);
}
exit(eflag);
}
}
exit(eflag);
}
@@
-393,10
+412,11
@@
callsys(f, v)
char f[], *v[]; {
int t, status;
char f[], *v[]; {
int t, status;
- if ((t=fork())==0) {
+ if ((t=
v
fork())==0) {
execv(f, v);
printf("Can't find %s\n", f);
execv(f, v);
printf("Can't find %s\n", f);
- exit(100);
+ fflush(stdout);
+ _exit(100);
} else
if (t == -1) {
printf("Try again\n");
} else
if (t == -1) {
printf("Try again\n");