- char *args[10];
- register narg, f;
- int rcount;
- for (narg = 0; narg < 10;) {
- while(*line == ' ' || *line == '\t')
- line++;
- if (*line == '\0')
- break;
- args[narg++] = line;
- while(*line != '\0' && *line != ' ' && *line != '\t')
- line++;
- if (*line == '\0')
- break;
- *line++ = '\0';
- }
- if (equal(args[0], "take")) {
- if (narg < 2) {
- prf("usage: %c%%take from [to]", cmdchar);
- return;
- }
- if (narg < 3)
- args[2] = args[1];
- write(pipes[1], ">/dev/null",sizeof(">/dev/null"));
- if (efk != -1) kill(efk,SIGEMT);
- sleep(5);
- wrln("echo '%c>:", cmdchar);
- wrln(args[2]);
- wrln("'; tee /dev/null <");
- wrln(args[1]);
- wrln(";echo '%c>'\n", cmdchar);
- return;
- } else if (equal(args[0], "put")) {
- prf("%c%%put doesn't work yet (use rsh)", cmdchar);
- return;
-/*
- if (narg < 2) {
- prf("usage: %c%%put from [to]", cmdchar);
- return;
- }
- if (narg < 3)
- args[2] = args[1];
- if ((f = open(args[1], 0)) < 0) {
- prf("cannot open: %s", args[1]);
- return;
- }
- wrln("stty -echo;cat >");
- wrln(args[2]);
- wrln(";stty echo\n");
- sleep(5);
- intr = 0;
- if (!nhup)
- signal(SIGINT, sig2);
- mode(2);
- rcount = 0;
- while(!intr && rdc(f) == 1) {
- rcount++;
- if (c == tkill || c == terase)
- wrln("\\");
- if (wrc(rem) != 1) {
- sleep(2);
- if (wrc(rem) != 1) {
- prf("character missed");
- intr = 1;
- break;
- }
- }
- }
- signal(SIGINT, SIG_IGN);
- close(f);
- if (intr) {
- wrln("\n");
- prf("stopped after %d bytes", rcount);
- }
- wrln("\004");
- sleep(5);
- mode(1);
- return;
-*/
- }
- prf("%c%%%s unknown\n", cmdchar, args[0]);