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

unix.superglobalmegacorp.com

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