/*
	this program selects numbered articles from the Trans-Pacific
	collection.  the numbers for desired articles are given in a
	file named "filelist.log."  this file has the format
	nnn
	nnn-mmm
*/
char	ls[128];
int		ll[128];
int		ul[128];
int		lp;
int		lt;
int		lc;
int		xp;
int		lx;
int		pr;
int		mx;
int		mo;
int		fn;
int		ty;
int		ta;
int		pa;		/* passed articles */
int		ps;		/* select */
int		ln;
int		ns;
{
	ps = 20;	/* one-tenth sample */
	ps = 0;		/* all articles */
	ty = 0;		/* standard mode */
	ty = 1;		/* reverse mode */
	mo = 1;
	fn = "selected.tmp"
	fn = 0;		/* stdout */
	lp = fopen(ln = "filelist.log","r");
	while(ns < 128 && rdline(ls,128,lp))	{
		if(strncmp(ls,"select",6) == 0)	{ty = 0;continue;}
		else
		if(strncmp(ls,"reject",6) == 0)	{ty = 1;continue;}
		ul[ns] = ll[ns] = atoi(ls);
		xp = index(ls,'-');
		if(xp)	ul[ns] = atoi(xp+1);
		if(ul[ns] >= mx)	mx = ul[ns];
		ns += 1;
		}
	fclose(lp);
	if(mo)	{
		setofn(fn);
		print("<atselect> %s\n",fn);
		}
	if(ps)		{
		print("1/%d sample\n",ps);
		}
	else	print("all listed articles\n");
	if(ty == 1)	{
		print("<reversed selection>\n");
		}
	else
	if(ty == 0)	{
		print("<standard selection>\n");
		}
	while(rdline(ls,128))	{
		lc += 1;
		if(!(lc % 100))	print("%6d %6d %6d\r",ta,pa,lc);
		if(strncmp(ls,".AT",3) == 0)		{
			ta += 1;
			pr = 0;
			lt = atoi(ls+3);
			if(ty == 0 && lt > mx)	exit(0);
			for(lx = 0; pr == 0 && lx < ns; lx += 1)	{
				if(lt >= ll[lx] && lt <= ul[lx])	pr = 1;
				}
			/*if(pr)	print("%s\n",ls);*/
			pr = pr - ty;
			if(pr)	{
				pa += 1;
				if(ps && pa % ps)	pr = 0;
				}
			}
		if(pr)	puts(ls);
		}
	print("articles in %d passed %d\n",ta,pa);
	exit(0);
}
