Annotation of 42BSD/ingres/source/support/helpr.c, revision 1.1

1.1     ! root        1: # include      <stdio.h>
        !             2: # include      <ingres.h>
        !             3: # include      <aux.h>
        !             4: # include      <access.h>
        !             5: # include      <lock.h>
        !             6: # include      <pv.h>
        !             7: # include      <sccs.h>
        !             8: 
        !             9: SCCSID(@(#)helpr.c     7.1     2/5/81)
        !            10: 
        !            11: 
        !            12: extern int     Status;
        !            13: short          tTdbu[100];
        !            14: 
        !            15: main(argc, argv)
        !            16: int    argc;
        !            17: char   *argv[];
        !            18: {
        !            19:        extern struct out_arg   Out_arg;
        !            20:        register char           **av;
        !            21:        register int            i;
        !            22:        register char           *p;
        !            23:        extern char             *Parmvect[];
        !            24:        extern char             *Flagvect[];
        !            25:        extern char             *Dbpath;
        !            26:        int                     nc;
        !            27:        PARM                    newpv[PV_MAXPC];
        !            28:        PARM                    *nv;
        !            29:        char                    *qm;
        !            30:        char                    *qmtest();
        !            31: 
        !            32:        argv[argc] = NULL;
        !            33: 
        !            34: #      ifdef xSTR1
        !            35:        tTrace(argv, 'T', tTdbu, 100);
        !            36: #      endif
        !            37: 
        !            38:        i = initucode(argc, argv, TRUE, NULL, M_SHARE);
        !            39: #      ifdef xSTR2
        !            40:        if (tTf(0, 1))
        !            41:                printf("initucode=%d, Dbpath='%s'\n", i, Dbpath);
        !            42: #      endif
        !            43:        switch (i)
        !            44:        {
        !            45:          case 0:
        !            46:          case 5:
        !            47:                break;
        !            48: 
        !            49:          case 1:
        !            50:          case 6:
        !            51:                printf("Database %s does not exist\n", Parmvect[0]);
        !            52:                exit(-1);
        !            53: 
        !            54:          case 2:
        !            55:                printf("You are not authorized to access this database\n");
        !            56:                exit(-1);
        !            57: 
        !            58:          case 3:
        !            59:                printf("You are not a valid INGRES user\n");
        !            60:                exit(-1);
        !            61: 
        !            62:          case 4:
        !            63:                printf("No database name specified\n");
        !            64:        usage:
        !            65:                printf("usage: helpr database [relname ...]\n");
        !            66:                exit(-1);
        !            67: 
        !            68:          default:
        !            69:                syserr("initucode %d", i);
        !            70:        }
        !            71: 
        !            72: /*
        !            73:        if (Flagvect[0] != NULL)
        !            74:        {
        !            75:                printf("No flags are allowed for this command\n");
        !            76:                goto usage;
        !            77:        }
        !            78: */
        !            79: 
        !            80:        if (chdir(Dbpath) < 0)
        !            81:                syserr("cannot access data base %s", p);
        !            82: #      ifdef xTTR2
        !            83:        if (tTf(1, 0))
        !            84:                printf("entered database %s\n", Dbpath);
        !            85: #      endif
        !            86: 
        !            87:        /* initialize access methods (and Admin struct) for user_ovrd test */
        !            88:        acc_init();
        !            89: #      ifdef xTTR3
        !            90:        if (tTf(2, 0))
        !            91:                printf("access methods initialized\n");
        !            92: #      endif
        !            93: 
        !            94:        set_so_buf();
        !            95: 
        !            96:        av = &Parmvect[1];      /* get first param after database name */
        !            97:        p = *av;
        !            98:        if (p == NULL)
        !            99:        {
        !           100:                /* special case of no relations specified */
        !           101:                newpv[0].pv_type = PV_STR;
        !           102:                newpv[0].pv_val.pv_str = "2";
        !           103:                newpv[1].pv_type = PV_EOF;
        !           104: #              ifdef xTTR3
        !           105:                if (tTf(3, 0))
        !           106:                        printf("calling help, no relations specified\n");
        !           107: #              endif
        !           108:                help(1, newpv);
        !           109:        }
        !           110:        else
        !           111:        {
        !           112:                do
        !           113:                {
        !           114:                        nc = 0;
        !           115:                        nv = newpv;
        !           116: 
        !           117:                        if ((qm = qmtest(p)) != NULL)
        !           118:                        {
        !           119:                                /* either help view, integrity or protect */
        !           120:                                av++;
        !           121:                                while ((p = *av++) != NULL)
        !           122:                                {
        !           123:                                        if ((i = (int) qmtest(p)) != NULL)
        !           124:                                        {
        !           125:                                                /* change of qmtest result */
        !           126:                                                qm = (char *) i;
        !           127:                                                continue;
        !           128:                                        }
        !           129:                                        (nv)->pv_type = PV_STR;
        !           130:                                        (nv++)->pv_val.pv_str = qm;
        !           131:                                        (nv)->pv_type = PV_STR;
        !           132:                                        (nv++)->pv_val.pv_str = p;
        !           133:                                        nc += 2;
        !           134:                                }
        !           135: #                              ifdef xTTR3
        !           136:                                if (tTf(3, 0))
        !           137:                                        printf("calling display\n");
        !           138: #                              endif
        !           139:                                nv->pv_type = PV_EOF;
        !           140:                                /*
        !           141:                                display(nc, newpv);
        !           142:                                */
        !           143:                        }
        !           144:                        else
        !           145:                        {
        !           146:                                /* help relname */
        !           147:                                while ((p = *av++) != NULL && qmtest(p) == NULL)
        !           148:                                {
        !           149:                                        if (sequal("all", p))
        !           150:                                        {
        !           151:                                                (nv)->pv_type = PV_STR;
        !           152:                                                (nv++)->pv_val.pv_str = "3";
        !           153:                                                nc++;
        !           154:                                        }
        !           155:                                        else
        !           156:                                        {
        !           157:                                                (nv)->pv_type = PV_STR;
        !           158:                                                (nv++)->pv_val.pv_str = "0";
        !           159:                                                (nv)->pv_type = PV_STR;
        !           160:                                                (nv++)->pv_val.pv_str = p;
        !           161:                                                nc += 2;
        !           162:                                        }
        !           163:                                }
        !           164:                                nv->pv_type = PV_EOF;
        !           165: #                              ifdef xTTR3
        !           166:                                if (tTf(3, 0))
        !           167:                                        printf("calling help\n");
        !           168: #                              endif
        !           169:                                help(nc, newpv);
        !           170:                                /* this backs av up one step, so 
        !           171:                                 * that it points at the keywords (permit,
        !           172:                                 * integrity, view) or the NULL
        !           173:                                 */
        !           174:                                --av;
        !           175:                        }
        !           176:                } while (p != NULL);
        !           177:        }
        !           178:        fflush(stdout);
        !           179:        exit(0);
        !           180: }
        !           181: 
        !           182: 
        !           183: 
        !           184: char *qmtest(p)
        !           185: register char  *p;
        !           186: {
        !           187:        if (sequal("view", p))
        !           188:                return ("4");
        !           189:        else if (sequal("permit", p))
        !           190:                return ("5");
        !           191:        else if (sequal("integrity", p))
        !           192:                return ("6");
        !           193:        else
        !           194:                return (NULL);
        !           195: }
        !           196: 
        !           197: 
        !           198: rubproc()
        !           199: {
        !           200:        exit(1);
        !           201: }

unix.superglobalmegacorp.com

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