Annotation of 43BSD/ingres/source/monitor/eval.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(@(#)eval.c      8.1     12/31/84)
                      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.