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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? agrep.c

?? Mehldau和Myer的Agrep3版本
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	int MM, base;
	unsigned V[WORD];

	base = WORD - M;
	temp = Bit[base]; 
	Bit[base] = 0;
	for (i=0; i<WORD; i++) V[i] = 0;
	for (i=1; i<M; i++)
	{  
		j=0;
		while (table[i][j] > 0 && j < 10) {
			V[i] = V[i] | Bit[base + table[i][j++]];
		}
	}
	Bit[base]=temp;
	if(M <= SHORTREG)
	{
		k = exponen(M);
		pp = 2*k;
		for(i=k; i<pp ; i++)
		{   
			n = i;
			Next[i]= (k>>1);
			for(j=M; j>=1; j--)
			{
				if(n & Bit[WORD]) Next[i] = Next[i] | V[j];
				n = (n>>1);
			}
		}      
		return;
	}
	if(M > MAXREG) fprintf(stderr, "%s: regular expression too long\n", Progname);
	MM = M;
	if(M & 1) M=M+1;
	k = exponen(M/2);
	pp = 2*k;
	mid = MM/2;
	for(i=k; i<pp ; i++)
	{     
		n = i;
		Next[i]= (Bit[base]>>1);
		for(j=MM; j>mid ; j--)
		{
			if(n & Bit[WORD]) Next[i] = Next[i] | V[j-mid];
			n = (n>>1);
		}
		n=i-k;
		Next1[i-k] = 0;
		for(j = 0; j<mid; j++)
		{
			if(n & Bit[WORD]) Next1[i-k] = Next1[i-k] | V[MM-j];
			n = (n>>1);
		}
	}      
	return;
}

int exponen(m)
int m;
{ 
	int i, ex;
	ex= 1;
	for (i=0; i<m; i++) ex <<= 1;	/* was ex *= 2 */
	return(ex);
}

int re1(Text, M, D)
int Text, M, D;
{
	register unsigned i, c, r0, r1, r2, r3, CMask, Newline, Init0, r_NO_ERR; 
	register unsigned end;
	register unsigned hh, LL=0, k;  /* Lower part */
	int  FIRST_TIME=ON, num_read , j=0, base;
	unsigned A[MaxRerror+1], B[MaxRerror+1];
	unsigned Next[MaxNext], Next1[MaxNext];
	CHAR *buffer;
	int FIRST_LOOP = 1;

	r_NO_ERR = NO_ERR_MASK;
	if(M > 30) {
		fprintf(stderr, "%s: regular expression too long\n", Progname);
		if (!EXITONERROR){
			errno = AGREP_ERROR;
			return -1;
		}
		else exit(2);
	}
	base = WORD - M;
	hh = M/2;
	for(i=WORD, j=0; j < hh ; i--, j++) LL = LL | Bit[i];
	if(FIRST_IN_RE) compute_next(M, Next, Next1); 
	/*SUN: try: change to memory allocation */
	FIRST_IN_RE = 0;
	Newline = '\n';
	Init[0] = Bit[base];
	if(HEAD) Init[0] = Init[0] | Bit[base+1];
	for(i=1; i<= D; i++) Init[i] = Init[i-1] | Next[Init[i-1]>>hh] | Next1[Init[i-1]&LL];
	Init1 = Init[0] | 1; 
	Init0 = Init[0];
	r2 = r3 = Init[0];
	for(k=0; k<= D; k++) { 
		A[k] = B[k] = Init[k]; 
	}

	if ( D == 0 )
	{
#if	AGREP_POINTER
	    if (Text != -1)
	    {
#endif	/*AGREP_POINTER*/
		alloc_buf(Text, &buffer, BlockSize+Maxline+1);
		while ((num_read = fill_buf(Text, buffer + Maxline, BlockSize)) > 0)
		{
			i=Maxline; 
			end = num_read + Maxline;
			if((num_read < BlockSize) && buffer[end-1] != '\n') buffer[end] = '\n';
			if(FIRST_LOOP) {         /* if first time in the loop add a newline */
				buffer[i-1] = '\n';  /* in front the  text.  */
				i--;
				CurrentByteOffset --;
				FIRST_LOOP = 0;
			}

			/* RE1_PROCESS_WHEN_DZERO: the while-loop below */
			while ( i < end )
			{
				c = buffer[i++];
				CurrentByteOffset ++;
				CMask = Mask[c];
				if(c != Newline)
				{
					if(CMask != 0) {
						r1 = Init1 & r3;
						r2 = ((Next[r3>>hh] | Next1[r3&LL]) & CMask) | r1;
					}
					else  {
						r2 = r3 & Init1;
					}
				}
				else {
					j++;
					if (DELIMITER) CurrentByteOffset -= D_length;
					else CurrentByteOffset -= 1;
					r1 = Init1 & r3;            /* match against endofline */
					r2 = ((Next[r3>>hh] | Next1[r3&LL]) & CMask) | r1;
					if(TAIL) r2 = (Next[r2>>hh] | Next1[r2&LL]) | r2;                                        /* epsilon move */
					if(( r2 & 1 ) ^ 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;
									free_buf(Text, buffer);
									return -1;
								}
								else agrep_outbuffer[agrep_outpointer+outindex++] = '\n';
								agrep_outpointer += outindex;
							}

							free_buf(Text, buffer);
							NEW_FILE = OFF;
							return 0;
						}
						if (-1 == r_output(buffer, i-1, 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 */
						}
					}
					r3 = Init0;
					r2 = ((Next[r3>>hh] | Next1[r3&LL]) & CMask) | Init0;
					/* match begin of line */
					if (DELIMITER) CurrentByteOffset += 1*D_length;
					else CurrentByteOffset += 1*1;
				}
				c = buffer[i++];
				CurrentByteOffset ++;
				CMask = Mask[c];
				if(c != Newline)
				{
					if(CMask != 0) {
						r1 = Init1 & r2;
						r3 = ((Next[r2>>hh] | Next1[r2&LL]) & CMask) | r1;
					}
					else   r3 = r2 & Init1;
				} /* if(NOT Newline) */
				else {
					j++;
					if (DELIMITER) CurrentByteOffset -= D_length;
					else CurrentByteOffset -= 1;
					r1 = Init1 & r2;            /* match against endofline */
					r3 = ((Next[r2>>hh] | Next1[r2&LL]) & CMask) | r1;
					if(TAIL) r3 = ( Next[r3>>hh] | Next1[r3&LL] ) | r3;
					/* epsilon move */
					if(( r3 & 1 ) ^ 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;
									free_buf(Text, buffer);
									return -1;
								}
								else agrep_outbuffer[agrep_outpointer+outindex++] = '\n';
								agrep_outpointer += outindex;
							}

							free_buf(Text, buffer);
							NEW_FILE = OFF;
							return 0;
						}
						if (-1 == r_output(buffer, i-1, 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 */
						}
					}
					r2 = Init0;
					r3 = ((Next[r2>>hh] | Next1[r2&LL]) & CMask) | Init0;
					/* match begin of line */
					if (DELIMITER) CurrentByteOffset += 1*D_length;
					else CurrentByteOffset += 1*1;
				}
			} /* while i < end ... */

			strncpy(buffer, buffer+num_read, Maxline);
		} /* end while fill_buf()... */

		free_buf(Text, buffer);
		return 0;
#if	AGREP_POINTER
	    }
	    else {	/* within the memory buffer: assume it starts with a newline at position 0, the actual pattern follows that, and it ends with a '\n' */
		num_read = agrep_inlen;
		buffer = (CHAR *)agrep_inbuffer;
		end = num_read;
		/* buffer[end-1] = '\n';*/ /* at end of the text. */
		/* buffer[0] = '\n';*/  /* in front of the  text. */
		i = 0;

			/* An exact copy of the above RE1_PROCESS_WHEN_DZERO: the while-loop below */
			while ( i < end )
			{
				c = buffer[i++];
				CurrentByteOffset ++;
				CMask = Mask[c];
				if(c != Newline)
				{
					if(CMask != 0) {
						r1 = Init1 & r3;
						r2 = ((Next[r3>>hh] | Next1[r3&LL]) & CMask) | r1;
					}
					else  {
						r2 = r3 & Init1;
					}
				}
				else {
					j++;
					if (DELIMITER) CurrentByteOffset -= D_length;
					else CurrentByteOffset -= 1;
					r1 = Init1 & r3;            /* match against endofline */
					r2 = ((Next[r3>>hh] | Next1[r3&LL]) & CMask) | r1;
					if(TAIL) r2 = (Next[r2>>hh] | Next1[r2&LL]) | r2;                                        /* epsilon move */
					if(( r2 & 1 ) ^ 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;
									free_buf(Text, buffer);
									return -1;
								}
								else agrep_outbuffer[agrep_outpointer+outindex++] = '\n';
								agrep_outpointer += outindex;
							}

							free_buf(Text, buffer);
							NEW_FILE = OFF;
							return 0;
						}
						if (-1 == r_output(buffer, i-1, 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 */
						}
					}
					r3 = Init0;
					r2 = ((Next[r3>>hh] | Next1[r3&LL]) & CMask) | Init0;
					/* match begin of line */
					if (DELIMITER) CurrentByteOffset += 1*D_length;
					else CurrentByteOffset += 1*1;
				}
				c = buffer[i++];
				CurrentByteOffset ++;
				CMask = Mask[c];
				if(c != Newline)
				{
					if(CMask != 0) {
						r1 = Init1 & r2;
						r3 = ((Next[r2>>hh] | Next1[r2&LL]) & CMask) | r1;
					}
					else   r3 = r2 & Init1;
				} /* if(NOT Newline) */
				else {
					j++;
					if (DELIMITER) CurrentByteOffset -= D_length;
					else CurrentByteOffset -= 1;
					r1 = Init1 & r2;            /* match against endofline */
					r3 = ((Next[r2>>hh] | Next1[r2&LL]) & CMask) | r1;
					if(TAIL) r3 = ( Next[r3>>hh] | Next1[r3&LL] ) | r3;
					/* epsilon move */
					if(( r3 & 1 ) ^ 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;
									free_buf(Text, buffer);
									return -1;
								}
								else agrep_outbuffer[agrep_outpointer+outindex++] = '\n';
								agrep_outpointer += outindex;
							}

							free_buf(Text, buffer);
							NEW_FILE = OFF;
							return 0;
						}
						if (-1 == r_output(buffer, i-1, 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 */
						}
					}
					r2 = Init0;
					r3 = ((Next[r2>>hh] | Next1[r2&LL]) & CMask) | Init0;
					/* match begin of line */
					if (DELIMITER) CurrentByteOffset += 1*D_length;
					else CurrentByteOffset += 1*1;
				}
			} /* while i < end ... */

		return 0;
	    }
#endif	/*AGREP_POINTER*/
	} /*  end if (D == 0) */

#if	AGREP_POINTER
	if (Text != -1)
	{
#endif	/*AGREP_POINTER*/
		while ((num_read = fill_buf(Text, buffer + Maxline, BlockSize)) > 0)
		{
			i=Maxline; 
			end = Maxline + num_read;
			if((num_read < BlockSize) && buffer[end-1] != '\n') buffer[end] = '\n';
			if(FIRST_TIME) {         /* if first time in the loop add a newline */
				buffer[i-1] = '\n';  /* in front the  text.  */
				i--;
				CurrentByteOffset --;
				FIRST_TIME = 0;
			}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩高清一区二区不卡| 国产精品丝袜一区| 欧美精品一区二区三区很污很色的| 久久久高清一区二区三区| 亚洲视频中文字幕| 精品亚洲成av人在线观看| 9人人澡人人爽人人精品| 日韩欧美在线不卡| 亚洲国产精品一区二区尤物区| 国内一区二区视频| 91麻豆精品91久久久久久清纯| 亚洲精品乱码久久久久久久久 | 中文天堂在线一区| 日本午夜精品视频在线观看| 色狠狠综合天天综合综合| 日本一区二区成人在线| 经典三级在线一区| 91精品午夜视频| 亚洲成在人线在线播放| 色菇凉天天综合网| 一区二区三区免费网站| 97久久精品人人做人人爽| 国产色综合久久| 国产精品一区免费视频| 亚洲精品在线观看视频| 美女脱光内衣内裤视频久久网站| 欧美日韩在线直播| 亚洲国产美国国产综合一区二区| 91国偷自产一区二区三区观看 | 久久在线免费观看| 日日摸夜夜添夜夜添亚洲女人| 欧美午夜不卡视频| 亚洲国产精品久久久久秋霞影院 | 91精品婷婷国产综合久久竹菊| 亚洲综合区在线| 欧美日韩一卡二卡三卡| 亚洲一区影音先锋| 欧美日韩亚洲综合在线| 午夜精品一区二区三区电影天堂| 欧美人xxxx| 久久爱www久久做| 久久久久青草大香线综合精品| 九色综合狠狠综合久久| 国产欧美一区二区精品性色| 国产精品乡下勾搭老头1| 欧美极品少妇xxxxⅹ高跟鞋| 丁香六月久久综合狠狠色| 亚洲同性gay激情无套| 91福利国产精品| 青青国产91久久久久久| 欧美精品一区二区高清在线观看 | 国产精品免费视频一区| 99re66热这里只有精品3直播| 国产精品人人做人人爽人人添| 成人美女在线视频| 亚洲精品免费在线观看| 欧美疯狂做受xxxx富婆| 国产一区二区视频在线| 国产精品麻豆久久久| 99国产精品视频免费观看| 一区二区三区中文字幕精品精品| 欧美日韩一区二区三区在线| 精品无人码麻豆乱码1区2区 | 在线观看av不卡| 蜜桃av一区二区三区电影| 国产欧美一区二区精品婷婷| 91丨porny丨蝌蚪视频| 日韩和欧美一区二区| 国产精品污www在线观看| 在线看不卡av| 高清成人免费视频| 香蕉影视欧美成人| 久久精品人人做| 欧美日韩高清在线播放| 成人av在线电影| 青青草视频一区| 中文字幕一区二区5566日韩| 欧美电影影音先锋| av成人动漫在线观看| 久久91精品国产91久久小草| 伊人一区二区三区| 国产日韩欧美亚洲| 91精品国产高清一区二区三区蜜臀| 国产成人精品免费网站| 日韩1区2区日韩1区2区| 一区二区三区日韩欧美| 国产日韩影视精品| 欧美一级片免费看| 在线观看亚洲一区| 国产激情视频一区二区在线观看 | 精品国偷自产国产一区| 在线免费不卡电影| 9人人澡人人爽人人精品| 久草在线在线精品观看| 日韩和欧美的一区| 亚洲高清不卡在线| 亚洲欧美日韩精品久久久久| 久久人人97超碰com| 欧美一区二区三区日韩| 色婷婷综合久久| 97精品国产97久久久久久久久久久久| 久久精品国产在热久久| 亚洲成av人片在线观看| 一区二区三区在线观看视频| 国产精品成人网| 欧美国产成人精品| 精品日韩在线观看| 久久综合久色欧美综合狠狠| 日韩一卡二卡三卡| 欧美一区二区三区人| 4438亚洲最大| 欧美二区乱c少妇| 欧美一区二区三区系列电影| 欧美一区二区三区在线看| 日韩欧美第一区| 精品久久久久一区二区国产| 欧美成人aa大片| 久久色成人在线| 中文天堂在线一区| 亚洲特黄一级片| 一片黄亚洲嫩模| 亚洲成a人v欧美综合天堂下载| 亚洲成人av一区| 日本不卡一区二区三区| 欧美aaaaaa午夜精品| 麻豆精品在线看| 国产精选一区二区三区| 国产91精品免费| 91天堂素人约啪| 欧美日韩不卡视频| 精品国产一二三| 中文字幕一区二区视频| 亚洲精品中文在线影院| 亚洲一二三四在线| 青草av.久久免费一区| 国产在线精品一区二区夜色| 成人中文字幕合集| 91成人免费在线视频| 91麻豆精品国产91久久久使用方法 | 欧美精品一区男女天堂| 亚洲国产成人午夜在线一区| 亚洲欧美一区二区三区国产精品 | 欧美剧在线免费观看网站| 日韩欧美亚洲一区二区| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久久久久亚洲伦 | 亚洲黄色尤物视频| 午夜精品久久久久久久99水蜜桃| 青青草国产成人av片免费| 成人免费高清视频| 在线不卡的av| 中文无字幕一区二区三区| 亚洲综合色在线| 国产a久久麻豆| 欧美日韩亚洲国产综合| 国产午夜精品一区二区三区视频| 亚洲女子a中天字幕| 美脚の诱脚舐め脚责91| 99精品一区二区| 精品电影一区二区三区| 亚洲欧洲制服丝袜| 国产一区二区三区综合| 欧美亚洲国产一区在线观看网站| 精品少妇一区二区三区日产乱码| 亚洲激情图片qvod| 国产精品一区二区黑丝| 欧美日韩精品一区二区在线播放| 国产精品网站一区| 久久成人av少妇免费| 在线国产亚洲欧美| 中文字幕二三区不卡| 日韩不卡在线观看日韩不卡视频| 99久久综合国产精品| 久久亚洲春色中文字幕久久久| 亚洲欧洲av在线| 国产精品一区二区三区网站| 欧美电影一区二区| 一区二区三区久久| 成人网页在线观看| 精品久久人人做人人爽| 亚洲一区在线观看视频| 波多野结衣亚洲| 国产精品人人做人人爽人人添| 精品一区二区三区免费| 欧美久久高跟鞋激| 亚洲国产精品久久艾草纯爱| 91丨九色丨尤物| 国产精品成人免费| www.av精品| 综合欧美一区二区三区| 99天天综合性| 国产精品高潮呻吟久久| 福利一区福利二区| 国产欧美一区二区精品忘忧草| 毛片一区二区三区| 日韩精品一区二区三区视频| 日韩 欧美一区二区三区| 6080午夜不卡| 久久精品国产99久久6| 日韩免费观看2025年上映的电影|