|
|
1.1 ! root 1: # include "monitor.h" ! 2: # include <ingres.h> ! 3: # include <aux.h> ! 4: # include <sccs.h> ! 5: ! 6: SCCSID(@(#)include.c 7.1 2/5/81) ! 7: ! 8: ! 9: ! 10: /* ! 11: ** INCLUDE FILE ! 12: ** ! 13: ** A file name, which must follow the \i, is read and inserted ! 14: ** into the text stream at this location. It may include all of ! 15: ** the standard control functions. Includes may be nested. ! 16: ** ! 17: ** If the parameter is 0, the file name is taken from the input; ! 18: ** otherwise it is taken directly from the parameter. In this ! 19: ** mode, errors are not printed. ! 20: ** ! 21: ** Prompts are turned off during the include. ! 22: */ ! 23: ! 24: include(filename) ! 25: char *filename; ! 26: { ! 27: int savendf; ! 28: FILE *saveinp; ! 29: register char *f; ! 30: register FILE *b; ! 31: extern char *getfilenm(); ! 32: ! 33: f = filename; ! 34: if (f == 0) ! 35: f = getfilenm(); ! 36: if (sequal(f, "-")) ! 37: { ! 38: /* read keyboard */ ! 39: b = stdin; ! 40: } ! 41: else if (*f == 0) ! 42: { ! 43: /* back up one level (EOF on next read) */ ! 44: GiveEof = TRUE; ! 45: return; ! 46: } ! 47: else ! 48: { ! 49: /* read file */ ! 50: if ((b = fopen(f, "r")) == NULL) ! 51: { ! 52: if (filename == 0) ! 53: printf("Cannot open \"%s\"\n", f); ! 54: return; ! 55: } ! 56: } ! 57: ! 58: /* check for too deep */ ! 59: if (Idepth >= 5) ! 60: { ! 61: printf("Include nested too deep\n"); ! 62: if (b) ! 63: fclose(b); ! 64: return; ! 65: } ! 66: Idepth++; ! 67: ! 68: /* get input from alternate file */ ! 69: savendf = Nodayfile; ! 70: if (b == stdin) ! 71: { ! 72: Nodayfile = Userdflag; ! 73: prompt("<<input>>"); ! 74: } ! 75: else ! 76: Nodayfile = -1; ! 77: saveinp = Input; ! 78: Input = b; ! 79: monitor(); ! 80: ! 81: /* done -- restore old file */ ! 82: Input = saveinp; ! 83: Nodayfile = savendf; ! 84: Idepth--; ! 85: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.