Annotation of 42BSD/ingres/source/monitor/eval.c, revision 1.1

1.1     ! root        1: # include      "monitor.h"
        !             2: # include      <ingres.h>
        !             3: # include      <aux.h>
        !             4: # include      <sccs.h>
        !             5: 
        !             6: SCCSID(@(#)eval.c      7.1     2/5/81)
        !             7: 
        !             8: 
        !             9: 
        !            10: /*
        !            11: **  DO MACRO EVALUATION OF QUERY BUFFER
        !            12: **
        !            13: **     The logical query buffer is read and passed through the macro
        !            14: **     processor.  The main purpose of this is to evaluate {define}'s.
        !            15: **     If the 'pr' flag is set, the result is printed on the terminal,
        !            16: **     and so becomes a post-evaluation version of print.
        !            17: **
        !            18: **     Uses trace flag 12
        !            19: */
        !            20: 
        !            21: eval(pr)
        !            22: int    pr;
        !            23: {
        !            24:        register FILE   *tfile;
        !            25:        register char   c;
        !            26:        extern int      fgetc();
        !            27:        char            tfilename[40];
        !            28: 
        !            29:        Autoclear = 0;
        !            30:        clrline(1);
        !            31: 
        !            32:        /* open temp file and reopen query buffer for reading */
        !            33:        if (!pr)
        !            34:        {
        !            35:                concat("/tmp/INGTQ", Fileset, tfilename);
        !            36:                if ((tfile = fopen(tfilename, "w")) == NULL)
        !            37:                        syserr("eval: open(%s)", tfilename);
        !            38:        }
        !            39:        if (freopen(Qbname, "r", Qryiop) == NULL)
        !            40:                syserr("eval: freopen 1");
        !            41: 
        !            42:        /* COPY FILE */
        !            43:        macinit(fgetc, Qryiop, 1);
        !            44:        while ((c = macgetch()) > 0)
        !            45:        {
        !            46:                if (pr)
        !            47:                        putchar(c);
        !            48:                else
        !            49:                        if (putc(c, tfile) == EOF)
        !            50:                                syserr("eval: putc");
        !            51:        }
        !            52: 
        !            53:        if (!pr)
        !            54:        {
        !            55:                /* link temp file back to query buffer */
        !            56:                fclose(tfile);
        !            57:                unlink(Qbname);
        !            58:                if (link(tfilename, Qbname))
        !            59:                        syserr("eval: link");
        !            60:                unlink(tfilename);
        !            61:        }
        !            62: 
        !            63:        /* reopen query buffer (now evaluated) */
        !            64:        if (freopen(Qbname, "a", Qryiop) == NULL)
        !            65:                syserr("eval: freopen 2");
        !            66: 
        !            67:        cgprompt();
        !            68: }

unix.superglobalmegacorp.com

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