/* Copyright (c) 1979 Regents of the University of California */
int inpipe
[2], outpipe
[2];
int inpid
, outpid
, cmdpid
;
char *nargv
[3] = { "/bin/csh", "-i", 0 };
error("Usage: dribble [ dribble.out [ command ] ] ...");
dribfil
= creat(argc
== 0 ? "dribble.out" : argv
[0], 0644);
perror(argc
== 0 ? "dribble.out" : argv
[0]);
argv
[1] = getenv("SHELL");
error("No more processes");
signal(SIGTRAP
, SIG_IGN
);
error("No more processes");
doexec(argv
[0], &argv
[0]);
signal(SIGPIPE
, badpipe
);
bufcnt
= read(outpipe
[0], linebuf
, BUFSIZ
);
write(dribfil
, linebuf
, bufcnt
);
write(1, linebuf
, bufcnt
);
bufcnt
= read(0, linebuf
, BUFSIZ
);
write(inpipe
[1], linebuf
, 3);
if (bufcnt
== 3 && linebuf
[0] == 'E' &&
linebuf
[1] == 'O' && linebuf
[2] == 'F') {
write(dribfil
, linebuf
, bufcnt
);
write(dribfil
, linebuf
, bufcnt
);
write(inpipe
[1], linebuf
, bufcnt
);
while (i
> 0 && i
!= cmdpid
);
error(cp
, a1
, a2
, a3
, a4
)
printf(cp
, a1
, a2
, a3
, a4
);
strcpy(cmdbuf
, "/usr/new/");
strcpy(cmdbuf
, "/usr/bin/");
error("%s: Cannot find", cmd
);