|
|
1.1 ! root 1: #include <stdio.h> ! 2: ! 3: int dbg; ! 4: int jpflag; ! 5: char foo; ! 6: ! 7: main(argc, argv) ! 8: char *argv[]; ! 9: { ! 10: FILE *f, *popen(); ! 11: FILE *tojerq, *fromjerq; ! 12: int c; ! 13: char buf[100], fname[100]; ! 14: ! 15: while (argc > 1 && argv[1][0] == '-') { ! 16: switch (argv[1][1]) { ! 17: case 'd': ! 18: dbg = 1; ! 19: break; ! 20: case 'j': ! 21: jpflag = 1; ! 22: break; ! 23: } ! 24: argc--; ! 25: argv++; ! 26: } ! 27: if (argc > 1) ! 28: strcpy(fname, argv[1]); ! 29: if (jpflag == 0) ! 30: system("run /usr/cvw/ideal/idfilt/iderq"); ! 31: /* ! 32: if ((pfp = popen("/usr/cvw/ideal/ideal -n >/dev/tty5", "w")) == NULL) { ! 33: fprintf(stderr, "jdeal: can't open ideal\n"); ! 34: exit(2); ! 35: } ! 36: */ ! 37: if ((tojerq = fopen ("/dev/tty5", "w")) == NULL) { ! 38: fprintf (stderr, "jdeal: can't talk to jerq\n"); ! 39: exit(2); ! 40: } ! 41: if ((fromjerq = fopen ("/dev/tty5", "r")) == NULL) { ! 42: fprintf (stderr, "jdeal: can't hear jerq\n"); ! 43: exit (3); ! 44: } ! 45: while (fgets(buf, sizeof buf, stdin) != NULL) { ! 46: switch (buf[0]) { ! 47: case 'q': ! 48: exit(0); ! 49: break; ! 50: case '\n': ! 51: case 'p': ! 52: f = fopen(fname, "r"); ! 53: fprintf (stderr, "got here\n"); ! 54: while (((foo = getc(fromjerq)) != EOF) && ((c = getc(f)) != EOF)) { ! 55: fprintf (stderr, "%c", c); ! 56: putc(c, tojerq); ! 57: } ! 58: fflush(tojerq); ! 59: fclose(f); ! 60: break; ! 61: case 'e': ! 62: if (sscanf(buf, "%*s %s", fname) > 0) ! 63: printf("editing file %s\n", fname); ! 64: else ! 65: sprintf(buf, "e %s", fname); ! 66: system(buf); ! 67: break; ! 68: case 'f': ! 69: sscanf(buf, "%*s %s", fname); ! 70: printf("%s\n", fname); ! 71: break; ! 72: case '!': ! 73: system(buf+1); ! 74: printf("!\n"); ! 75: break; ! 76: default: ! 77: printf("eh?\n"); ! 78: break; ! 79: } ! 80: } ! 81: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.