Annotation of 43BSD/ingres/source/monitor/include.c, revision 1.1.1.1

1.1       root        1: # include      "monitor.h"
                      2: # include      <ingres.h>
                      3: # include      <aux.h>
                      4: # include      <sccs.h>
                      5: 
                      6: SCCSID(@(#)include.c   8.1     12/31/84)
                      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(TRUE);
                     80: 
                     81:        /* done -- restore old file */
                     82:        Input = saveinp;
                     83:        Nodayfile = savendf;
                     84:        Idepth--;
                     85: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.