/*																				*/
/*																				*/
/*				File:		  	rdbuff.c										*/
/*				Returns:	  	void											*/
/*				Parameters:	key [2]										*/
/*																				*/
/*																				*/

#define min(a,b) (((a) > (b)) ? (b) : (a))

#include <stdio.h>
#include <process.h>

#include "advm.h"
#include "values.h"
#include "keys.h"

#include "get.h"
#include "keyins.h"
#include "insget.h"
#include "add.h"


void rdbuff(key)
int key [2];

	{
	int rsize = 0;
	int i;

	if (enable)
		if (!get(key, buffer))
			return;
	if (!keyins(key,&dbikey))
		{
		rsize = insget();
		for (i=0; i< min(rsize,499); i++)
			{
			array (buffer, i);
			buffer [i] = insget();
			}
		if (rsize >499)
			{
			printf("Glitch!  Buffer too small: %d.%03d %d\n",key[1],key[0],rsize);
			exit(1);
			}
		}
	array(buffer, rsize);
	buffer[rsize] = -999;
	if (!rsize)
		return;
	if (full || !enable)
		return;
	array(cachok, key[1]/1000);
	if (!cachok[key[1]/1000])
		return;
	if (add(key,buffer,rsize+1))
		full = TRUE;
	}
