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

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

?? mgrep.c

?? agrep
?? C
字號:
/* Copyright (c) 1991 Sun Wu and Udi Manber.  All Rights Reserved. *//* multipattern matcher */#include <stdio.h>#include <ctype.h>#define MAXPAT  256#define MAXLINE 1024#define MAXSYM  256#define MAXMEMBER1 4096#define MAXPATFILE 260000#define BLOCKSIZE  8192#define MAXHASH    8192#define mm 	   8191#define max_num    30000  #define W_DELIM	   128#define L_DELIM    10 extern COUNT, FNAME, SILENT, FILENAMEONLY, num_of_matched;extern INVERSE;extern WORDBOUND, WHOLELINE, NOUPPER;extern unsigned char  CurrentFileName[], Progname[]; extern total_line;int LONG  = 0;int SHORT = 0;int p_size=0;unsigned char SHIFT1[MAXMEMBER1];unsigned char tr[MAXSYM];unsigned char tr1[MAXSYM];struct pat_list {	int  index;	struct pat_list *next;} *HASH[MAXHASH];struct pat_list  *pt, *qt;unsigned char buf[MAXPATFILE+BLOCKSIZE];unsigned char pat_spool[MAXPATFILE+2*max_num+MAXPAT];unsigned char *patt[max_num];unsigned char pat_len[max_num];prepf(fp)int fp;{    int length=0, i, p=1, pdx=0, num_pat;    unsigned char *pat_ptr=pat_spool, temp[10];    unsigned Mask = 15;    int num_read;    while((num_read = read(fp, buf+length, BLOCKSIZE)) > 0) {	length = length + num_read;	if(length > MAXPATFILE) {		fprintf(stderr, "%s: maximum pattern file size is %d\n", Progname, MAXPATFILE);		exit(2);	}    }    buf[length] = '\n';    i = 0; p=1;    while(i<length) {	patt[p] = pat_ptr;	if(WORDBOUND) *pat_ptr++ = W_DELIM;	if(WHOLELINE) *pat_ptr++ = L_DELIM;	while((*pat_ptr = buf[i++]) != '\n') pat_ptr++;	if(WORDBOUND) *pat_ptr++ = W_DELIM;	if(WHOLELINE) *pat_ptr++ = L_DELIM;           /* Can't be both on */	*pat_ptr++ = 0;	p++;      }    if(p>max_num) {	fprintf(stderr, "%s: maximum number of patterns is %d\n", Progname, max_num); 	exit(2);    }    for(i=1; i<20; i++) *pat_ptr = i;  /* boundary safety zone */    for(i=0; i< MAXSYM; i++) tr[i] = i;    if(NOUPPER) {	for(i='A'; i<= 'Z'; i++) tr[i] = i + 'a' - 'A';    }    if(WORDBOUND) {	for(i=0; i<128; i++) if(!isalnum(i)) tr[i] = W_DELIM;    }    for(i=0; i< MAXSYM; i++) tr1[i] = tr[i]&Mask;    num_pat = p-1;    p_size = MAXPAT;    for(i=1 ; i <= num_pat; i++) {	p = strlen(patt[i]);	pat_len[i] = p;	if(p!=0 && p < p_size) p_size = p;    }    if(p_size == 0) {	fprintf(stderr, "%s: the pattern file is empty\n");	exit(2);    }    if(length > 400 && p_size > 2) LONG = 1;    if(p_size == 1) SHORT = 1;    for(i=0; i<MAXMEMBER1; i++) SHIFT1[i] = p_size - 2;    for(i=0; i<MAXHASH; i++) {	HASH[i] = 0;    }    for(i=1; i<= num_pat; i++) f_prep(i, patt[i]);}mgrep(fd)int fd;{     register char r_newline = '\n';    unsigned char text[2*BLOCKSIZE+MAXLINE];     register int buf_end, num_read, i=0, j, start, end, residue = 0;    text[MAXLINE-1] = '\n';  /* initial case */    start = MAXLINE-1;    while( (num_read = read(fd, text+MAXLINE, BLOCKSIZE)) > 0)     {       if(INVERSE && COUNT) countline(text+MAXLINE, num_read);       buf_end = end = MAXLINE + num_read -1 ;       while(text[end]  != r_newline && end > MAXLINE) end--;       residue = buf_end - end  + 1 ;       text[start-1] = r_newline;       if(SHORT) m_short(text, start, end);       else      monkey1(text, start, end);       if(FILENAMEONLY && num_of_matched) {		printf("%s\n", CurrentFileName);		return;       }       start = MAXLINE - residue;       if(start < 0) {            start = 1;        }       strncpy(text+start, text+end, residue);    } /* end of while(num_read = ... */    text[MAXLINE] = '\n';    text[start-1] = '\n';    if(residue > 1) {        if(SHORT) m_short(text, start, end);        else      monkey1(text, start, end);    }    return;} /* end mgrep */countline(text, len)unsigned char *text; int len;{int i;	for (i=0; i<len; i++) if(text[i] == '\n') total_line++;}monkey1( text, start, end  ) int start, end; register unsigned char *text;{register unsigned char *textend;register unsigned hash, i;register unsigned char shift; register int  m1, j, Long=LONG; int pat_index, m=p_size; int MATCHED=0;register unsigned char *qx;register struct pat_list *p;unsigned char *lastout;int OUT=0;textend = text + end;m1 = m - 1;lastout = text+start+1;text = text + start + m1 ;while (text <= textend) {	hash=tr1[*text];	hash=(hash<<4)+(tr1[*(text-1)]);	if(Long) hash=(hash<<4)+(tr1[*(text-2)]);	shift = SHIFT1[hash];	if(shift == 0) {		hash=0;		for(i=0;i<=m1;i++)  {		    hash=(hash<<4)+(tr1[*(text-i)]);		}		hash=hash&mm;		p = HASH[hash];		while(p != 0) {			pat_index = p->index;			p = p->next;			qx = text-m1;			j = 0;			while(tr[patt[pat_index][j]] == tr[*(qx++)]) j++;	        	if (j > m1 ) { 			   if(pat_len[pat_index] <= j) {				if(text > textend) return;                		num_of_matched++;                		if(FILENAMEONLY || SILENT)  return;				MATCHED=1;	        		if(COUNT) {			  		while (*text != '\n') text++;				}				else {				    if(!INVERSE) {			  		if(FNAME) printf("%s: ",CurrentFileName);                          		while(*(--text) != '\n');                          		while(*(++text) != '\n') putchar(*text);			  		printf("\n");				    }				    else {			  		if(FNAME) printf("%s: ",CurrentFileName);                          		while(*(--text) != '\n');					if(lastout < text) OUT=1;					while(lastout < text) putchar(*lastout++);					if(OUT) {						putchar('\n');						OUT=0;					}                          		while(*(++text) != '\n');					lastout=text+1;				    }				}/*				else {			  		if(FNAME) printf("%s: ",CurrentFileName);                          		while(*(--text) != '\n');                          		while(*(++text) != '\n') putchar(*text);			  		printf("\n");				}*/			   }                	}			if(MATCHED) break;		}		if(!MATCHED) shift = 1;		else {			MATCHED = 0;			shift = m1;		}        }	text = text + shift;  }  if(INVERSE && !COUNT) while(lastout <= textend) putchar(*lastout++);}m_short( text, start, end  ) int start, end; register unsigned char *text;{register unsigned char *textend;register unsigned i; register int  j; register struct pat_list *p, *q;register int pat_index; int MATCHED=0;int OUT=0;unsigned char *lastout;unsigned char *qx;textend = text + end;lastout = text + start + 1;text = text + start - 1 ;while (++text <= textend) {		p = HASH[*text];		while(p != 0) {			pat_index = p->index;			p = p->next;			qx = text;			j = 0;			while(tr[patt[pat_index][j]] == tr[*(qx++)]) j++;			if(pat_len[pat_index] <= j) {				if(text >= textend) return;                		num_of_matched++;                		if(FILENAMEONLY || SILENT)  return;	        		if(COUNT) {			  		while (*text != '\n') text++;				}				else {			  	    if(FNAME) printf("%s: ",CurrentFileName);				    if(!INVERSE) {                          		while(*(--text) != '\n');                          		while(*(++text) != '\n') putchar(*text);			  		printf("\n");					MATCHED = 1;				    }				    else {                          		while(*(--text) != '\n');					if(lastout < text) OUT=1;					while(lastout < text) putchar(*lastout++);					if(OUT) {						putchar('\n');						OUT=0;					}                          		while(*(++text) != '\n');					lastout=text+1;					MATCHED = 1;				    }				}                	}			if(MATCHED) break;		}		MATCHED = 0;  } /* while */  if(INVERSE && !COUNT) while(lastout <= textend) putchar(*lastout++);}f_prep(pat_index, Pattern)unsigned char *Pattern ; int pat_index;{int i, j, m;register unsigned hash, Mask=15;	m = p_size;	for (i = m-1; i>=(1+LONG); i--) {		hash = (Pattern[i] & Mask);		hash = (hash << 4) + (Pattern[i-1]& Mask);		if(LONG) hash = (hash << 4) + (Pattern[i-2] & Mask);		if(SHIFT1[hash] >= m-1-i) SHIFT1[hash] = m-1-i;	}	if(SHORT) Mask = 255;  /* 011111111 */	hash = 0;	for(i = m-1; i>=0; i--)  {	    hash = (hash << 4) + (tr[Pattern[i]]&Mask);	}/*	if(INVERSE) hash = Pattern[1];*/	hash=hash&mm;	qt = (struct pat_list *) malloc(sizeof(struct pat_list));	qt->index = pat_index;	pt = HASH[hash];	qt->next = pt;	HASH[hash] = qt;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本在线a| 欧美日韩午夜精品| 欧美夫妻性生活| 久久夜色精品一区| 亚洲成人三级小说| 91网站黄www| 久久免费精品国产久精品久久久久| 亚洲宅男天堂在线观看无病毒| 国产精品一区一区三区| 在线不卡a资源高清| 亚洲视频每日更新| 国产成人精品免费一区二区| 日韩欧美视频一区| 亚洲成人免费观看| 色综合网站在线| 国产精品毛片a∨一区二区三区| 美国毛片一区二区| 欧美日本一道本在线视频| 亚洲少妇最新在线视频| 国产凹凸在线观看一区二区| 欧美成人精品1314www| 亚洲成人动漫av| 日本国产一区二区| 最近中文字幕一区二区三区| 国产**成人网毛片九色| 久久久久久久一区| 老司机精品视频在线| 91麻豆精品国产| 亚洲第一主播视频| 欧美四级电影在线观看| 一区二区三区四区蜜桃| 99久久99久久精品国产片果冻| 欧美电影免费观看高清完整版在线观看| 加勒比av一区二区| 中文字幕不卡在线| 国产精品99久久久久久久vr| 日韩亚洲欧美一区| 蜜臀91精品一区二区三区| 欧美高清视频一二三区| 五月天国产精品| 8x8x8国产精品| 午夜精品久久一牛影视| 欧美男男青年gay1069videost| 一区二区高清在线| 欧美影院一区二区| 亚洲国产一区二区三区| 欧美三区在线视频| 亚洲成va人在线观看| 精品视频999| 亚洲超丰满肉感bbw| 在线播放/欧美激情| 日韩精品视频网| 日韩精品一区二区三区在线播放 | 欧美日韩精品欧美日韩精品一 | 日韩成人免费电影| 欧美一区二区三区在线看| 秋霞午夜av一区二区三区| 欧美一卡在线观看| 黄色日韩网站视频| 成人av综合一区| 国产一区二区伦理| 成人h版在线观看| 精品噜噜噜噜久久久久久久久试看| 在线免费不卡电影| 欧美一级黄色录像| 亚洲综合久久久| 91视频一区二区三区| 亚洲欧美日韩中文播放 | 日本午夜一区二区| 日韩三级视频中文字幕| 国产在线视频一区二区| 国产欧美精品一区aⅴ影院 | 麻豆成人综合网| 欧美成人精品1314www| 成人中文字幕在线| 一区二区三区欧美视频| 欧美一卡在线观看| 国产成人h网站| 亚洲精品v日韩精品| 91精品国产综合久久久久久久| 极品尤物av久久免费看| 亚洲色图都市小说| 欧美一区二区三区四区五区| 国产精品一区二区不卡| 亚洲蜜臀av乱码久久精品| 99国产精品国产精品毛片| 久久久.com| 激情小说亚洲一区| 日韩理论电影院| 777亚洲妇女| 国产高清视频一区| 亚洲国产精品久久艾草纯爱 | 91原创在线视频| 日韩国产欧美在线观看| 国产精品视频一区二区三区不卡| 在线看不卡av| 国产在线一区观看| 一区av在线播放| 久久综合色婷婷| 在线精品视频免费播放| 激情六月婷婷久久| 亚洲国产精品久久人人爱蜜臀 | 日韩欧美成人午夜| 91在线码无精品| 精品一区二区三区蜜桃| 亚洲精品视频在线观看网站| 日韩美女视频在线| 日本高清不卡一区| 国产精品88av| 日韩二区三区四区| 亚洲欧美日韩国产一区二区三区| 欧美mv日韩mv国产网站app| 色婷婷一区二区三区四区| 欧美三级乱人伦电影| 国产精品高潮呻吟| 91麻豆文化传媒在线观看| 美女爽到高潮91| 亚洲精品乱码久久久久久久久| 精品国产乱码久久久久久闺蜜| 91国内精品野花午夜精品| 国产精品白丝jk白祙喷水网站| 婷婷开心激情综合| 亚洲同性gay激情无套| 久久精品亚洲麻豆av一区二区 | 国产精品一区二区三区网站| 亚洲电影第三页| 亚洲欧美另类综合偷拍| 久久夜色精品一区| 日韩欧美美女一区二区三区| 欧美区在线观看| 一本到高清视频免费精品| 成人一区二区三区| 国产自产高清不卡| 另类小说图片综合网| 亚洲国产日韩在线一区模特 | 欧美精品一区二区三区蜜桃| 欧美日韩精品一区二区天天拍小说| voyeur盗摄精品| 国产91精品一区二区麻豆网站 | 日本精品裸体写真集在线观看| 国产一二精品视频| 久久草av在线| 日本中文字幕一区二区有限公司| 一区二区三区四区五区视频在线观看| 国产精品视频线看| 久久久国产精华| 久久午夜电影网| 日韩一区二区精品在线观看| 精品亚洲国产成人av制服丝袜 | 久久这里只有精品6| 7777精品伊人久久久大香线蕉| 91国产成人在线| 91美女在线看| 色综合久久综合网97色综合| 91在线视频观看| 色综合一个色综合亚洲| 一本色道a无线码一区v| 95精品视频在线| 一本色道综合亚洲| 日本道精品一区二区三区| av电影一区二区| 99精品视频在线观看免费| 成人av网在线| 97se亚洲国产综合自在线| 色偷偷成人一区二区三区91| 91精品1区2区| 欧美性色欧美a在线播放| 欧美视频一区二区三区在线观看| 欧美三级视频在线播放| 欧美区一区二区三区| 日韩三级中文字幕| 精品国产乱码久久久久久影片| 精品国产污网站| 国产三级精品视频| 中文字幕在线不卡| 亚洲最大成人网4388xx| 午夜精品久久久久久久| 蜜臀久久99精品久久久久宅男| 黄页网站大全一区二区| 国产99久久久久久免费看农村| eeuss鲁片一区二区三区| 日本福利一区二区| 91精品国产91久久久久久一区二区| 日韩手机在线导航| 日韩精品中午字幕| 日韩欧美亚洲一区二区| 97se亚洲国产综合自在线观| 91蝌蚪porny成人天涯| 国产91精品露脸国语对白| 99精品国产热久久91蜜凸| 欧美亚洲日本一区| 欧美一卡二卡在线观看| 国产日韩亚洲欧美综合| 亚洲免费看黄网站| 日韩精品免费视频人成| 国产一区二区精品久久99| 99久久精品99国产精品| 欧美日韩一区 二区 三区 久久精品| 91精品国产综合久久久久久久 | 国产精品萝li|