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

1.1       root        1: # include      "monitor.h"
                      2: # include      <ingres.h>
                      3: # include      <aux.h>
                      4: # include      <resp.h>
                      5: # include      <symbol.h>
                      6: # include      <pv.h>
                      7: # include      <pipes.h>
                      8: # include      <setjmp.h>
                      9: # include      <sccs.h>
                     10: 
                     11: SCCSID(@(#)go.c        8.2     1/22/85)
                     12: 
                     13: 
                     14: 
                     15: /*
                     16: **  PROCESS QUERY
                     17: **
                     18: **     The appropriate messages are printed, and the query is scanned.
                     19: **     Tokens are passed to the parser.  A parser response is then
                     20: **     expected.
                     21: **
                     22: **     Trace Flags:
                     23: **             5
                     24: */
                     25: 
                     26: # define       QRYTRAP         "{querytrap}"
                     27: 
                     28: jmp_buf                GoJmpBuf;
                     29: 
                     30: go()
                     31: {
                     32:        FILE            *iop;
                     33:        auto char       c;
                     34:        register char   *p;
                     35:        extern int      fgetc();
                     36:        pb_t            pb;
                     37:        extern char     *macro();
                     38: 
                     39:        clrline(1);
                     40:        fflush(Qryiop);
                     41:        if ((iop = fopen(Qbname, "r")) == NULL)
                     42:                syserr("go: open 1");
                     43:        if (Nodayfile >= 0)
                     44:                printf("Executing . . .\n\n");
                     45: 
                     46: 
                     47:        if (!Nautoclear)
                     48:                Autoclear = 1;
                     49: 
                     50:        /* arrange to call the parser */
                     51:        initp();
                     52:        call_setup(&pb, mdPARSER, NULL);
                     53:        pb_prime(&pb, PB_REG);
                     54:        pb.pb_proc = 1;         /**** PARSER MUST BE IN PROC ONE ****/
                     55:        send_off(&pb, 0, NULL);
                     56:        pb_tput(PV_EOF, "", 0, &pb);
                     57:        macinit(fgetc, iop, 1);
                     58:        while ((c = macgetch()) > 0)
                     59:                pb_put(&c, 1, &pb);
                     60:        pb_flush(&pb);
                     61:        fclose(iop);
                     62: 
                     63:        /* wait for the response */
                     64:        setjmp(GoJmpBuf);
                     65:        readinput(&pb);
                     66: 
                     67:        if (Resp.resp_tups >= 0)
                     68:                macdefine("{tuplecount}", locv(Resp.resp_tups), TRUE);
                     69:        
                     70:        if (Error_id == 0 && (p = macro(QRYTRAP)) != NULL)
                     71:                trapquery(&Resp, p);
                     72:        
                     73:        resetp();
                     74: 
                     75:        mcall("{continuetrap}");
                     76: 
                     77:        prompt("\ncontinue");
                     78: }

unix.superglobalmegacorp.com

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