Annotation of 43BSD/ingres/source/monitor/go.c, revision 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.