|
|
1.1 root 1: # include <ingres.h>
2: # include <symbol.h>
3: # include "IIglobals.h"
4: # include <sccs.h>
5:
6: SCCSID(@(#)IIn_get.c 8.1 12/31/84)
7:
8:
9: /*
10: ** IIn_get -- Routine to check if there is a next
11: ** tuple coming up the data pipe in a retrieve.
12: ** Loads IIr_sym with the length and type of
13: ** the next domain.
14: **
15: ** Returns:
16: ** 0 -- on error or end of tuple
17: ** 1 -- otherwise
18: **
19: */
20:
21:
22: IIn_get(file_name, line_no)
23: char *file_name;
24: int line_no;
25: {
26: register struct retsym *ret;
27:
28: if (IIproc_name = file_name)
29: IIline_no = line_no;
30:
31: # ifdef xATR1
32: if (IIdebug)
33: {
34: printf("%s ent ", IIproc_name ? IIproc_name : "");
35: printf("IIn_get : IIdomains %d IIr_sym type, len %d %d IIerrflag %d\n",
36: IIdomains, IIr_sym.type, IIr_sym.len, IIerrflag);
37: }
38: # endif
39:
40: while (IIpb.pb_type != PB_REG)
41: {
42: IIreadinput(&IIpb);
43: if (bitset(IIpb.pb_stat, PB_INFO))
44: IIpb_prime(&IIpb, PB_NOTYPE);
45: else
46: return (0);
47: }
48:
49: IIdomains = 0;
50: /* in case of overflow error, a tuple has been skipped */
51: if (IIerrflag == 1001)
52: IIerrflag = 0;
53: if (IIerrflag)
54: return (0);
55:
56: ret = &IIr_sym;
57: if (ret->type && ret->type != EOTUP)
58: IIsyserr("bad type in IIn_get : %d", ret->type);
59:
60: /* read next type, length pair */
61: if (IIpb_get(&IIpb, ret, 2) != 2)
62: IIsyserr("IIrdpipe error in IIn_get");
63:
64: if (ret->type == EXIT)
65: return (0);
66:
67: return (1);
68: }
69:
70: /*
71: ** IIerrtest -- Test if an error occurred within a retrieve.
72: **
73: ** Returns:
74: ** 0 -- if not
75: ** error that occurred if not
76: **
77: ** Called By:
78: ** USER -- used to skip over C_CODE in a retrieve {}
79: ** when an error ocurred in getting the tuple.
80: ** A call to this routine is generated by equel,
81: ** because IIerrflag should not need to be vi-
82: ** sible from inside a users program.
83: **
84: */
85:
86: IIerrtest()
87: {
88: return (IIerrflag);
89: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.