|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)learn.c 4.4 (Berkeley) 5/15/86"; ! 3: #endif not lint ! 4: ! 5: #include "stdio.h" ! 6: #include "lrnref.h" ! 7: #include "signal.h" ! 8: ! 9: char *direct = "/usr/lib/learn"; /* CHANGE THIS ON YOUR SYSTEM */ ! 10: int more; ! 11: char *level; ! 12: int speed; ! 13: char *sname; ! 14: char *todo; ! 15: FILE *incopy = NULL; ! 16: int didok; ! 17: int sequence = 1; ! 18: int comfile = -1; ! 19: int status; ! 20: int wrong; ! 21: char *pwline; ! 22: char *dir; ! 23: FILE *scrin; ! 24: int logging = 1; /* set to 0 to turn off logging */ ! 25: int ask; ! 26: int again; ! 27: int skip; ! 28: int teed; ! 29: int total; ! 30: ! 31: main(argc,argv) ! 32: int argc; ! 33: char *argv[]; ! 34: { ! 35: extern hangup(), intrpt(); ! 36: extern char * getlogin(), *malloc(); ! 37: ! 38: speed = 0; ! 39: more = 1; ! 40: pwline = getlogin(); ! 41: #ifndef BSD4_2 ! 42: setbuf(stdout, malloc(BUFSIZ)); ! 43: setbuf(stderr, malloc(BUFSIZ)); ! 44: #endif ! 45: selsub(argc, argv); ! 46: chgenv(); ! 47: signal(SIGHUP, hangup); ! 48: signal(SIGINT, intrpt); ! 49: while (more) { ! 50: selunit(); ! 51: dounit(); ! 52: whatnow(); ! 53: } ! 54: wrapup(0); ! 55: } ! 56: ! 57: hangup() ! 58: { ! 59: wrapup(1); ! 60: } ! 61: ! 62: intrpt() ! 63: { ! 64: char response[20], *p; ! 65: ! 66: signal(SIGINT, hangup); ! 67: write(2, "\nInterrupt.\nWant to go on? ", 28); ! 68: p = response; ! 69: *p = 'n'; ! 70: while (read(0, p, 1) == 1 && *p != '\n') ! 71: p++; ! 72: if (response[0] != 'y') ! 73: wrapup(0); ! 74: ungetc('\n', stdin); ! 75: signal(SIGINT, intrpt); ! 76: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.