1: # include "ctlmod.h"
2: # include <tree.h>
3: # include <pv.h>
4: # include <sccs.h>
5:
6: SCCSID(@(#)prvect.c 8.1 12/31/84)
7:
8: /*
9: ** PRVECT -- prints parameter vector
10: **
11: ** Prvect merely prints all of the entries in a PARM. If
12: ** a tree is included in the PARM, then the tree is printed.
13: **
14: ** Parameters:
15: ** pc -- parameter count
16: ** if 0 then pv must be PV_EOF terminated.
17: ** pv -- parameter vector (PARM style).
18: ** if NULL, the current pv is printed.
19: ** routine -- header to be printed with pv.
20: **
21: ** Returns:
22: ** nothing
23: */
24:
25: prvect(pc, pv)
26: int pc;
27: register PARM *pv;
28: {
29: register int pno;
30:
31: if (pv == NULL)
32: {
33: pc = Ctx.ctx_pc;
34: pv = Ctx.ctx_pv;
35: }
36:
37: for (pno = 0; pv->pv_type != PV_EOF && pno < pc; pv++, pno++)
38: {
39: printf(" %3d ", pno);
40: pr_parm(pv);
41: }
42: }
43: /*
44: ** PR_PARM -- print a single parameter
45: **
46: ** Parameters:
47: ** pv -- ptr to the parameter to print.
48: **
49: ** Returns:
50: ** none.
51: **
52: ** Side Effects:
53: ** none.
54: */
55:
56: pr_parm(pv)
57: register PARM *pv;
58: {
59: register int i;
60: register char *p;
61:
62: printf("(len=%3d): ", pv->pv_len);
63: switch (pv->pv_type)
64: {
65: case PV_INT:
66: printf("%d\n", pv->pv_val.pv_int);
67: break;
68:
69: case PV_STR:
70: printf("\"");
71: for (p = pv->pv_val.pv_str; *p != '\0'; p++)
72: xputchar(*p);
73: printf("\"\n");
74: break;
75:
76: case PV_TUPLE:
77: p = pv->pv_val.pv_tuple;
78: for (i = pv->pv_len; i > 0; i--)
79: printf("\%o", *p++);
80: printf("\n");
81: break;
82:
83: case PV_QTREE:
84: treepr(pv->pv_val.pv_qtree);
85: break;
86:
87: default:
88: printf("Unknown type %d\n", pv->pv_type);
89: break;
90: }
91: }
Defined functions
prvect
defined in line
6; used 3 times