亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? asearch.c

?? Mehldau和Myer的Agrep3版本
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* Copyright (c) 1994 Sun Wu, Udi Manber, Burra Gopal.  All Rights Reserved. */
#include "agrep.h"

extern unsigned Init1, Init[], Mask[], endposition, D_endpos, AND, NO_ERR_MASK;
extern int DELIMITER, FILENAMEONLY, INVERSE;
extern CHAR CurrentFileName[];
extern int I, num_of_matched, prev_num_of_matched, TRUNCATE;

extern int CurrentByteOffset;
#ifndef __BORLANDC__
extern int errno;
#endif
extern CHAR *agrep_inbuffer;
extern int  agrep_inlen;
extern int  agrep_initialfd;
extern int  EXITONERROR;
extern int  agrep_inpointer;

extern FILE *agrep_finalfp;
extern CHAR *agrep_outbuffer;
extern int agrep_outlen;
extern int agrep_outpointer;

extern int NEW_FILE, POST_FILTER;

extern int LIMITOUTPUT, LIMITPERFILE;

#ifdef _WIN32
int  output();            /* agrep.c */
int  asearch0();          /* asearch.c */
int  fill_buf();          /* bitap.c */
#endif

int
asearch(old_D_pat, text, D)
CHAR old_D_pat[]; 
int text; 
register unsigned D;
{
	register unsigned i, c, r1, r2, CMask, r_NO_ERR, r_Init1; 
	register unsigned A0, B0, A1, B1, endpos;
	unsigned A2, B2, A3, B3, A4, B4;
	unsigned A[MaxError+1], B[MaxError+1];
	unsigned D_Mask;
	int end;
	int D_length, FIRSTROUND, ResidueSize, lasti, l, k, j=0;
	int printout_end;
	CHAR *buffer;
	/* CHAR *tempbuf = NULL; */	/* used only when text == -1 */

	if (I == 0) Init1 = (unsigned)037777777777;
	if(D > 4) {
		return asearch0(old_D_pat, text, D); 
	}

	D_length = strlen(old_D_pat);
	D_Mask = D_endpos;
	for ( i=1; i<D_length; i++) D_Mask = (D_Mask<<1) | D_Mask;
	D_Mask = ~D_Mask;

	r_Init1 = Init1; /* put Init1 in register */
	r_NO_ERR = NO_ERR_MASK; /* put NO_ERR_MASK in register */
	endpos = D_endpos;    
	FIRSTROUND = ON;
	A0 = B0 = A1 = B1 = A2 = B2 = A3 = B3 = A4 = B4 = Init[0];
	for(k=0; k<=D; k++) A[k] = B[k] = Init[0];

#if	AGREP_POINTER
	if (text != -1) {
#endif	/*AGREP_POINTER*/
		lasti = Max_record;
		alloc_buf(text, &buffer, Max_record+BlockSize+1);
		buffer[Max_record-1] = '\n';

		while ((l = fill_buf(text, buffer + Max_record, BlockSize)) > 0)
		{
			i = Max_record;
			end = Max_record + l ;
			if (FIRSTROUND) { 
				i = Max_record - 1;
				if(DELIMITER) {
					for(k=0; k<D_length; k++) {
						if(old_D_pat[k] != buffer[Max_record+k]) break;
					}
					if(k>=D_length) j--;
				}
				FIRSTROUND = OFF; 
			}
			if (l < BlockSize) {	/* copy pattern and '\0' at end of buffer */
				strncpy(buffer+end, old_D_pat, D_length);
				buffer[end+D_length] = '\0';
				end = end + D_length; 
			}

			/* ASEARCH_PROCESS: the while-loop below */
			while (i < end )
			{
				c = buffer[i];
				CMask = Mask[c];
				r1 = r_Init1 & B0;
				A0 = ((B0 >>1 ) & CMask) | r1;
				r1 = r_Init1 & B1;
				r2 =  B0 | (((A0 | B0) >> 1) & r_NO_ERR); 
				A1 = ((B1 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 1) goto Nextcharfile;
				r1 = r_Init1 & B2;
				r2 =  B1 | (((A1 | B1) >> 1) & r_NO_ERR); 
				A2 = ((B2 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 2) goto Nextcharfile;
				r1 = r_Init1 & B3;
				r2 =  B2 | (((A2 | B2) >> 1) & r_NO_ERR); 
				A3 = ((B3 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 3) goto Nextcharfile;
				r1 = r_Init1 & B4;
				r2 =  B3 | (((A3 | B3) >> 1) & r_NO_ERR); 
				A4 = ((B4 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 4) goto Nextcharfile;
Nextcharfile:
				i=i+1;
				CurrentByteOffset ++;
				if(A0 & endpos) {
					j++;  
					if (DELIMITER) CurrentByteOffset -= D_length;
					else CurrentByteOffset -= 1;
					r1 = A0;
					if ( D == 1) r1 = A1;
					if ( D == 2) r1 = A2;
					if ( D == 3) r1 = A3;
					if ( D == 4) r1 = A4;
					if(((AND == 1) && ((r1 & endposition) == endposition)) || ((AND == 0) && (r1 & endposition)) ^ INVERSE )
					{    
						if(FILENAMEONLY && (NEW_FILE || !POST_FILTER)) {
							num_of_matched++;
							if (agrep_finalfp != NULL) 
								fprintf(agrep_finalfp, "%s\n", CurrentFileName);
							else {
								int outindex;
								for(outindex=0; (outindex+agrep_outpointer<agrep_outlen) && 
										(CurrentFileName[outindex] != '\0'); outindex++) {
									agrep_outbuffer[agrep_outpointer+outindex] = CurrentFileName[outindex];
								}
								if ((CurrentFileName[outindex] != '\0') || (outindex+agrep_outpointer+1>=agrep_outlen)) {
									OUTPUT_OVERFLOW;
									/*
									if (text == -1) {
										memcpy(buffer+end-D_length, tempbuf, D_length+1);
									}
									*/
									free_buf(text, buffer);
									return -1;
								}
								else agrep_outbuffer[agrep_outpointer+outindex++] = '\n';
								agrep_outpointer += outindex;
							}
							/*
							if (text == -1) {
								memcpy(buffer+end-D_length, tempbuf, D_length+1);
							}
							*/
							free_buf(text, buffer);
							NEW_FILE = OFF;
							return 0;  
						}
						printout_end = i - D_length - 1 ; 
						if ((text != -1) && !(lasti >= Max_record + l - 1)) {
							if (-1 == output(buffer, lasti, printout_end, j)) {free_buf(text, buffer); return -1;}
						}
						else if ((text == -1) && !(lasti >= l)) {
							if (-1 == output(buffer, lasti, printout_end, j)) {free_buf(text, buffer); return -1;}
						}
						if (((LIMITOUTPUT > 0) && (LIMITOUTPUT <= num_of_matched)) ||
						    ((LIMITPERFILE > 0) && (LIMITPERFILE <= num_of_matched - prev_num_of_matched))) {
							free_buf(text, buffer);
							return 0;	/* done */
						}
					}
					lasti = i - D_length; /* point to starting position of D_pat */
					TRUNCATE = OFF;
					for(k=0; k<= D; k++) {
						B[k] = Init[0];
					}
					r1 = B[0] & Init1;
					A[0] = (((B[0]>>1) & CMask) | r1) & D_Mask;
					for(k=1; k<= D; k++) {
						r1 = Init1 & B[k];
						r2 = B[k-1] | (((A[k-1] | B[k-1])>>1)&r_NO_ERR);
						A[k] = (((B[k]>>1)&CMask) | r1 | r2) ;
					}
					A0 = A[0]; 
					B0 = B[0]; 
					A1 = A[1]; 
					B1 = B[1]; 
					A2 = A[2]; 
					B2 = B[2];
					A3 = A[3]; 
					B3 = B[3]; 
					A4 = A[4]; 
					B4 = B[4];
					if (DELIMITER) CurrentByteOffset += 1*D_length;
					else CurrentByteOffset += 1*1;
				}
				c = buffer[i];
				CMask = Mask[c];
				r1 = r_Init1 & A0;
				B0 = ((A0 >> 1 ) & CMask) | r1;
				/* printf("Mask = %o, B0 = %on", CMask, B0); */
				r1 = r_Init1 & A1;
				r2 =  A0 | (((A0 | B0) >> 1) & r_NO_ERR); 
				B1 = ((A1 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 1) goto Nextchar1file;
				r1 = r_Init1 & A2;
				r2 =  A1 | (((A1 | B1) >> 1) & r_NO_ERR); 
				B2 = ((A2 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 2) goto Nextchar1file;
				r1 = r_Init1 & A3;
				r2 =  A2 | (((A2 | B2) >> 1) & r_NO_ERR); 
				B3 = ((A3 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 3) goto Nextchar1file;
				r1 = r_Init1 & A4;
				r2 =  A3 | (((A3 | B3) >> 1) & r_NO_ERR); 
				B4 = ((A4 >>1 ) & CMask) | r2 | r1 ;  
				if(D == 4) goto Nextchar1file;
Nextchar1file:
				i=i+1;
				CurrentByteOffset ++;
				if(B0 & endpos) {
					j++;  
					if (DELIMITER) CurrentByteOffset -= D_length;
					else CurrentByteOffset -= 1;
					r1 = B0;
					if ( D == 1) r1 = B1;
					if ( D == 2) r1 = B2;
					if ( D == 3) r1 = B3;
					if ( D == 4) r1 = B4;
					if(((AND == 1) && ((r1 & endposition) == endposition)) || ((AND == 0) && (r1 & endposition)) ^ INVERSE )
					{ 
						if(FILENAMEONLY && (NEW_FILE || !POST_FILTER)) {
							num_of_matched++;
							free_buf(text, buffer);
							if (agrep_finalfp != NULL) 
								fprintf(agrep_finalfp, "%s\n", CurrentFileName);
							else {
								int outindex;
								for(outindex=0; (outindex+agrep_outpointer<agrep_outlen) && 
										(CurrentFileName[outindex] != '\0'); outindex++) {
									agrep_outbuffer[agrep_outpointer+outindex] = CurrentFileName[outindex];
								}
								if ((CurrentFileName[outindex] != '\0') || (outindex+agrep_outpointer+1>=agrep_outlen)) {
									OUTPUT_OVERFLOW;
									/*
									if (text == -1) {
										memcpy(buffer+end-D_length, tempbuf, D_length+1);
									}
									*/
									free_buf(text, buffer);
									return -1;
								}
								else agrep_outbuffer[agrep_outpointer+outindex++] = '\n';
								agrep_outpointer += outindex;
							}
							/*
							if (text == -1) {
								memcpy(buffer+end-D_length, tempbuf, D_length+1);
							}
							*/
							free_buf(text, buffer);
							NEW_FILE = OFF;
							return 0; 
						}
						printout_end = i - D_length - 1 ; 
						if((text != -1) && !(lasti >= Max_record + l - 1)) {
							if (-1 == output(buffer, lasti, printout_end, j)) {free_buf(text, buffer); return -1;}
						}
						else if ((text == -1) && !(lasti >= l)) {
							if (-1 == output(buffer, lasti, printout_end, j)) {free_buf(text, buffer); return -1;}
						}
						if (((LIMITOUTPUT > 0) && (LIMITOUTPUT <= num_of_matched)) ||
						    ((LIMITPERFILE > 0) && (LIMITPERFILE <= num_of_matched - prev_num_of_matched))) {
							free_buf(text, buffer);
							return 0;	/* done */
						}
					}
					lasti = i - D_length ;
					TRUNCATE = OFF;
					for(k=0; k<= D; k++) {
						A[k] = Init[0];
					}
					r1 = A[0] & Init1; 
					B[0] = (((A[0]>>1)&CMask) | r1) & D_Mask;
					for(k=1; k<= D; k++) {
						r1 = Init1 & A[k];
						r2 = A[k-1] | (((A[k-1] | B[k-1])>>1)&r_NO_ERR);
						B[k] = (((A[k]>>1)&CMask) | r1 | r2) ;
					}
					A0 = A[0]; 
					B0 = B[0]; 
					A1 = A[1]; 
					B1 = B[1]; 
					A2 = A[2]; 
					B2 = B[2];
					A3 = A[3]; 
					B3 = B[3]; 
					A4 = A[4]; 
					B4 = B[4];
					if (DELIMITER) CurrentByteOffset += 1*D_length;
					else CurrentByteOffset += 1*1;
				}
			}

			if(l < BlockSize) {
				lasti = Max_record ;
			}
			else {
				ResidueSize = Max_record + l - lasti;
				if(ResidueSize > Max_record) {
					ResidueSize = Max_record;
					TRUNCATE = ON;         
				}
				strncpy(buffer+Max_record-ResidueSize, buffer+lasti, ResidueSize);
				lasti = Max_record - ResidueSize;
				if(lasti == 0)     lasti = 1; 
			}
		}
		free_buf(text, buffer);
		return 0;
#if	AGREP_POINTER
	}
	else {
		lasti = 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩五月天| 亚洲在线一区二区三区| 精品国产免费久久| 欧美一区二区三区日韩视频| 91精品在线免费| 欧美一级一区二区| 日韩色视频在线观看| 欧美不卡一区二区| 久久久99久久| 国产精品美女一区二区在线观看| 国产午夜精品久久久久久免费视| 国产女同互慰高潮91漫画| 国产欧美日韩在线看| 国产精品福利电影一区二区三区四区| 国产精品麻豆视频| 亚洲激情综合网| 亚洲成av人片在www色猫咪| 日日骚欧美日韩| 免费看日韩a级影片| 国产精品综合av一区二区国产馆| 国产91综合一区在线观看| 成a人片亚洲日本久久| 91亚洲男人天堂| 欧美日韩成人高清| 日韩欧美国产一二三区| 国产日本欧美一区二区| 亚洲欧洲色图综合| 亚洲国产cao| 六月丁香婷婷色狠狠久久| 国产乱子轮精品视频| 99久久综合狠狠综合久久| 欧美在线三级电影| 日韩精品中午字幕| 一色屋精品亚洲香蕉网站| 亚洲国产欧美一区二区三区丁香婷| 日韩电影在线观看一区| 国产成人av影院| 欧美中文字幕久久| 精品精品欲导航| 综合激情网...| 青青草成人在线观看| 不卡高清视频专区| 欧美伦理电影网| 欧美国产亚洲另类动漫| 亚洲二区视频在线| 国产成都精品91一区二区三| 欧美伊人精品成人久久综合97| 日韩欧美区一区二| 亚洲色图视频网站| 激情久久五月天| 欧美午夜精品一区二区三区| 精品久久久久久综合日本欧美| 亚洲三级在线免费| 久久99蜜桃精品| 在线视频你懂得一区| 久久综合丝袜日本网| 亚洲午夜av在线| 成人91在线观看| 精品国产免费久久| 五月天一区二区| 91麻豆国产香蕉久久精品| 欧美精品一区二区久久久| 亚洲一区二区精品3399| 国产99久久精品| 欧美刺激脚交jootjob| 一区二区在线观看av| 国产精品77777竹菊影视小说| 欧美日韩精品系列| 亚洲免费视频成人| 成熟亚洲日本毛茸茸凸凹| 欧美一卡二卡三卡四卡| 洋洋成人永久网站入口| 豆国产96在线|亚洲| 日韩欧美在线影院| 香蕉成人伊视频在线观看| 不卡的看片网站| 久久―日本道色综合久久 | 免费人成在线不卡| 在线免费观看一区| 国产精品久久久久久久久免费丝袜 | 久久亚洲一区二区三区四区| 亚洲国产精品一区二区尤物区| av一区二区三区在线| 国产清纯白嫩初高生在线观看91| 久久超级碰视频| 欧美一区二区私人影院日本| 亚洲一二三四久久| 99精品黄色片免费大全| 国产精品丝袜在线| 国产精品白丝jk黑袜喷水| 日韩欧美www| 琪琪久久久久日韩精品| 欧美日韩日日骚| 亚洲一卡二卡三卡四卡| 日本伦理一区二区| 一区二区三区资源| 色综合欧美在线视频区| 亚洲人午夜精品天堂一二香蕉| av一区二区三区四区| 亚洲欧洲一区二区在线播放| 成人国产精品免费观看动漫 | 五月天精品一区二区三区| 日本国产一区二区| 亚洲精品乱码久久久久久| 91免费精品国自产拍在线不卡| 国产精品福利在线播放| 色综合天天综合| 亚洲激情五月婷婷| 欧洲精品中文字幕| 性做久久久久久免费观看| 欧美精品久久99久久在免费线| 午夜免费久久看| 日韩欧美国产wwwww| 国产麻豆成人传媒免费观看| 欧美激情一二三区| 99在线精品视频| 亚洲黄色小视频| 欧美精品高清视频| 久久91精品国产91久久小草| 久久久久国产免费免费| 成人18视频日本| 亚洲一区二区三区免费视频| 欧美精品在线一区二区三区| 蜜桃av一区二区三区电影| 精品国产乱子伦一区| 成人av网址在线观看| 亚洲福利视频三区| 日韩一区二区三区四区| 国产一区二区三区免费| 国产精品乱码久久久久久| 色域天天综合网| 视频一区视频二区在线观看| 精品乱人伦一区二区三区| 成人免费毛片片v| 亚洲福利视频一区二区| 2021久久国产精品不只是精品| 成人深夜视频在线观看| 一级特黄大欧美久久久| 日韩精品自拍偷拍| 99视频热这里只有精品免费| 婷婷激情综合网| 久久久精品黄色| 欧洲人成人精品| 国产老肥熟一区二区三区| 中文字幕亚洲成人| 91精品国产入口| 成人app在线| 蜜桃在线一区二区三区| 综合久久久久久| 欧美成人精品二区三区99精品| 99国产精品99久久久久久| 日本伊人色综合网| 综合电影一区二区三区| 日韩精品一区二区三区视频| 一本一道久久a久久精品综合蜜臀| 日本aⅴ精品一区二区三区 | 国产成人在线看| 亚洲国产精品天堂| 中文字幕av免费专区久久| 欧美一区二区视频网站| 99在线精品视频| 国产自产视频一区二区三区| 亚洲一区二区三区国产| 亚洲国产精品成人综合| 欧美一区欧美二区| 在线观看欧美日本| 成人三级伦理片| 麻豆国产欧美日韩综合精品二区| 亚洲激情第一区| 国产亚洲欧美一区在线观看| 欧美伦理影视网| 色综合久久中文综合久久牛| 国产精品一二二区| 欧美a级理论片| 亚洲成人免费av| 亚洲女子a中天字幕| 久久久天堂av| 日韩女优制服丝袜电影| 精品视频一区三区九区| 99精品欧美一区二区蜜桃免费| 国产美女视频91| 另类综合日韩欧美亚洲| 一区二区在线观看视频| 日韩久久一区二区| 国产精品久久久久国产精品日日| 2023国产精品| 精品国产一区久久| 日韩欧美高清在线| 91精品国产91久久久久久最新毛片| 色噜噜夜夜夜综合网| 成人久久久精品乱码一区二区三区| 蜜臀av一区二区在线免费观看 | 亚洲成a人在线观看| 亚洲欧美日本韩国| 中文字幕一区二区日韩精品绯色| 久久精品综合网| 久久婷婷一区二区三区| 日韩精品在线看片z| 欧美tickling挠脚心丨vk| 欧美一激情一区二区三区|