⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hunt6.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char *sccsid = "@(#)hunt6.c	4.1	ULTRIX	7/17/90";/* Original Id: "@(#)hunt6.c	4.2 (Berkeley) 1/9/85" */#endif#include <stdio.h>#include <assert.h>#define TXTLEN 1000char *outbuf = 0;extern char *soutput;extern int soutlen, iflong;extern long indexdate;baddrop(master, nf, fc, nitem, qitem, rprog, full)union ptr {	unsigned *a; 	long *b; } master;FILE *fc;char *qitem[], *rprog;{	/* checks list of drops for real bad drops; finds items with "deliv" */	int i, g, j, need, got, na, len;	long lp;	char res[100], *ar[50], output[TXTLEN];	extern int colevel, reached;# if D1	if (iflong)		fprintf(stderr,"in baddrop, nf %d master %ld %ld %ld\n",			nf, master.b[0], master.b[1], master.b[2]);	else		fprintf(stderr,"in baddrop, nf %d master %d %d %d\n",			nf, master.a[0], master.a[1], master.a[2]);# endif	for (i=g=0; i<nf; i++)	{		lp = iflong ? master.b[i] : master.a[i];# if D1		if (iflong)			fprintf(stderr, "i %d master %lo lp %lo\n",				i, master.b[i], lp);		else			fprintf(stderr, "i %d master %o lp %lo\n",				i, master.a[i], lp);# endif		fseek (fc, lp, 0);		fgets( res, 100, fc);# if D1		fprintf(stderr, "tag %s", res);# endif		if (!auxil(res,output))		{			char *s; 			int c;# if D1			fprintf(stderr, "not auxil try rprog %c\n",				rprog? 'y': 'n');# endif			for(s=res; c= *s; s++)				if (c == ';' || c == '\n')				{					*s=0; 					break;				}			len = rprog ?			corout (res, output, rprog, 0, TXTLEN) :			findline (res, output, TXTLEN, indexdate);		}# if D1		assert (len <TXTLEN);		fprintf(stderr,"item %d of %d, tag %s len %d output\n%s\n..\n",			i, nf, res, len, output);# endif		if (len==0)			continue;		need = colevel ? reached : nitem;		na=0;		ar[na++] = "fgrep";		ar[na++] = "-r";		ar[na++] = "-n";		ar[na++] = (char *) need;		ar[na++] = "-i";		ar[na++] = output;		ar[na++] = (char *) len;		for(j=0; j<nitem; j++)			ar[na++] = qitem[j];# ifdef D1		fprintf(stderr, "calling fgrep len %d ar[4] %s %o %d \n",			len,ar[4],ar[5],ar[6]);# endif		if (fgrep(na, ar)==0)		{# ifdef D1			fprintf(stderr, "fgrep found it\n");# endif			if (iflong)				master.b[g++] = master.b[i];			else				master.a[g++] = master.a[i];			if (full >= g)				if (soutput==0)					fputs(output, stdout);				else					strcpy (soutput, output);		}# ifdef D1		fprintf(stderr, "after fgrep\n");# endif	}	return(g);}auxil( res, output)char *res, *output;{	extern FILE *fd;	long lp, c; 	int len;	if (fd==0)return(0);	while (c = *res++) 	{		if (c == ';')		{			sscanf(res, "%ld,%d", &lp, &len);			fseek (fd, lp, 0);			fgets(output, len, fd);			return(1);		}	}	return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -