P8000/WEGA/contrib/ingres/dbs/src/pqr/rg_rept.c

45 lines
724 B
C

/*
** --- RG_REPT.C ------- REPEAT PROCESSOR -----------------------------------
**
** Version: @(#)rg_rept.c 4.0 02/05/89
**
*/
# include "rg.h"
/* the repeat table */
static REPEATYPE R_repeat[MAX_REPEAT]; /* rr_code = (char *) 0 */
/* rr_count = 0 */
rg_repeat(rc)
register char *rc;
{
register REPEATYPE *r;
register int i;
for (r = R_repeat; r->rr_count; r++)
{
if (r == &R_repeat[MAX_REPEAT])
{
rg_error("REPEAT TABLE OVERFLOW");
rg_exit(EXIT_R_CODE);
}
if (r->rr_code == rc)
break;
}
if (!r->rr_code)
{
r->rr_code = rc;
if ((i = R_val) < A_REPEAT)
i = A_REPEAT;
r->rr_count = i;
}
if (--(r->rr_count))
return (TRUE);
r->rr_code = 0;
return (FALSE);
}