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

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

?? patch.c

?? 早期freebsd實現
?? C
?? 第 1 頁 / 共 2 頁
字號:
	s = Argv[0];	if (strEQ(s, "+")) {	    return;			/* + will be skipped by for loop */	}	if (*s != '-' || !s[1]) {	    if (filec == MAXFILEC)		fatal1("too many file arguments\n");	    filearg[filec++] = savestr(s);	}	else {	    switch (*++s) {	    case 'b':		simple_backup_suffix = savestr(nextarg());		break;	    case 'B':		origprae = savestr(nextarg());		break;	    case 'c':		diff_type = CONTEXT_DIFF;		break;	    case 'd':		if (!*++s)		    s = nextarg();		if (chdir(s) < 0)		    pfatal2("can't cd to %s", s);		break;	    case 'D':	    	do_defines = TRUE;		if (!*++s)		    s = nextarg();		if (!isalpha(*s) && '_' != *s)		    fatal1("argument to -D is not an identifier\n");		Sprintf(if_defined, "#ifdef %s\n", s);		Sprintf(not_defined, "#ifndef %s\n", s);		Sprintf(end_defined, "#endif /* %s */\n", s);		break;	    case 'e':		diff_type = ED_DIFF;		break;	    case 'E':		remove_empty_files = TRUE;		break;	    case 'f':		force = TRUE;		break;	    case 'F':		if (*++s == '=')		    s++;		maxfuzz = atoi(s);		break;	    case 'l':		canonicalize = TRUE;		break;	    case 'n':		diff_type = NORMAL_DIFF;		break;	    case 'N':		noreverse = TRUE;		break;	    case 'o':		outname = savestr(nextarg());		break;	    case 'p':		if (*++s == '=')		    s++;		strippath = atoi(s);		break;	    case 'r':		Strcpy(rejname, nextarg());		break;	    case 'R':		reverse = TRUE;		reverse_flag_specified = TRUE;		break;	    case 's':		verbose = FALSE;		break;	    case 'S':		skip_rest_of_patch = TRUE;		break;	    case 't':		batch = TRUE;		break;	    case 'u':		diff_type = UNI_DIFF;		break;	    case 'v':		version();		break;	    case 'V':#ifndef NODIR		backup_type = get_version (nextarg ());#endif		break;#ifdef DEBUGGING	    case 'x':		debug = atoi(s+1);		break;#endif	    default:		fprintf(stderr, "patch: unrecognized option `%s'\n", Argv[0]);		fprintf(stderr, "\Usage: patch [options] [origfile [patchfile]] [+ [options] [origfile]]...\n\Options:\n\       [-ceEflnNRsStuv] [-b backup-ext] [-B backup-prefix] [-d directory]\n\       [-D symbol] [-Fmax-fuzz] [-o out-file] [-p[strip-count]]\n\       [-r rej-name] [-V {numbered,existing,simple}]\n");		my_exit(1);	    }	}    }}/* Attempt to find the right place to apply this hunk of patch. */LINENUMlocate_hunk(fuzz)LINENUM fuzz;{    Reg1 LINENUM first_guess = pch_first() + last_offset;    Reg2 LINENUM offset;    LINENUM pat_lines = pch_ptrn_lines();    Reg3 LINENUM max_pos_offset = input_lines - first_guess				- pat_lines + 1;     Reg4 LINENUM max_neg_offset = first_guess - last_frozen_line - 1				+ pch_context();    if (!pat_lines)			/* null range matches always */	return first_guess;    if (max_neg_offset >= first_guess)	/* do not try lines < 0 */	max_neg_offset = first_guess - 1;    if (first_guess <= input_lines && patch_match(first_guess, Nulline, fuzz))	return first_guess;    for (offset = 1; ; offset++) {	Reg5 bool check_after = (offset <= max_pos_offset);	Reg6 bool check_before = (offset <= max_neg_offset);	if (check_after && patch_match(first_guess, offset, fuzz)) {#ifdef DEBUGGING	    if (debug & 1)		say3("Offset changing from %ld to %ld\n", last_offset, offset);#endif	    last_offset = offset;	    return first_guess+offset;	}	else if (check_before && patch_match(first_guess, -offset, fuzz)) {#ifdef DEBUGGING	    if (debug & 1)		say3("Offset changing from %ld to %ld\n", last_offset, -offset);#endif	    last_offset = -offset;	    return first_guess-offset;	}	else if (!check_before && !check_after)	    return Nulline;    }}/* We did not find the pattern, dump out the hunk so they can handle it. */voidabort_hunk(){    Reg1 LINENUM i;    Reg2 LINENUM pat_end = pch_end();    /* add in last_offset to guess the same as the previous successful hunk */    LINENUM oldfirst = pch_first() + last_offset;    LINENUM newfirst = pch_newfirst() + last_offset;    LINENUM oldlast = oldfirst + pch_ptrn_lines() - 1;    LINENUM newlast = newfirst + pch_repl_lines() - 1;    char *stars = (diff_type >= NEW_CONTEXT_DIFF ? " ****" : "");    char *minuses = (diff_type >= NEW_CONTEXT_DIFF ? " ----" : " -----");    fprintf(rejfp, "***************\n");    for (i=0; i<=pat_end; i++) {	switch (pch_char(i)) {	case '*':	    if (oldlast < oldfirst)		fprintf(rejfp, "*** 0%s\n", stars);	    else if (oldlast == oldfirst)		fprintf(rejfp, "*** %ld%s\n", oldfirst, stars);	    else		fprintf(rejfp, "*** %ld,%ld%s\n", oldfirst, oldlast, stars);	    break;	case '=':	    if (newlast < newfirst)		fprintf(rejfp, "--- 0%s\n", minuses);	    else if (newlast == newfirst)		fprintf(rejfp, "--- %ld%s\n", newfirst, minuses);	    else		fprintf(rejfp, "--- %ld,%ld%s\n", newfirst, newlast, minuses);	    break;	case '\n':	    fprintf(rejfp, "%s", pfetch(i));	    break;	case ' ': case '-': case '+': case '!':	    fprintf(rejfp, "%c %s", pch_char(i), pfetch(i));	    break;	default:	    fatal1("fatal internal error in abort_hunk\n"); 	}    }}/* We found where to apply it (we hope), so do it. */voidapply_hunk(where)LINENUM where;{    Reg1 LINENUM old = 1;    Reg2 LINENUM lastline = pch_ptrn_lines();    Reg3 LINENUM new = lastline+1;#define OUTSIDE 0#define IN_IFNDEF 1#define IN_IFDEF 2#define IN_ELSE 3    Reg4 int def_state = OUTSIDE;    Reg5 bool R_do_defines = do_defines;    Reg6 LINENUM pat_end = pch_end();    where--;    while (pch_char(new) == '=' || pch_char(new) == '\n')	new++;        while (old <= lastline) {	if (pch_char(old) == '-') {	    copy_till(where + old - 1);	    if (R_do_defines) {		if (def_state == OUTSIDE) {		    fputs(not_defined, ofp);		    def_state = IN_IFNDEF;		}		else if (def_state == IN_IFDEF) {		    fputs(else_defined, ofp);		    def_state = IN_ELSE;		}		fputs(pfetch(old), ofp);	    }	    last_frozen_line++;	    old++;	}	else if (new > pat_end) {	    break;	}	else if (pch_char(new) == '+') {	    copy_till(where + old - 1);	    if (R_do_defines) {		if (def_state == IN_IFNDEF) {		    fputs(else_defined, ofp);		    def_state = IN_ELSE;		}		else if (def_state == OUTSIDE) {		    fputs(if_defined, ofp);		    def_state = IN_IFDEF;		}	    }	    fputs(pfetch(new), ofp);	    new++;	}	else if (pch_char(new) != pch_char(old)) {	    say3("Out-of-sync patch, lines %ld,%ld--mangled text or line numbers, maybe?\n",		pch_hunk_beg() + old,		pch_hunk_beg() + new);#ifdef DEBUGGING	    say3("oldchar = '%c', newchar = '%c'\n",		pch_char(old), pch_char(new));#endif	    my_exit(1);	}	else if (pch_char(new) == '!') {	    copy_till(where + old - 1);	    if (R_do_defines) {	       fputs(not_defined, ofp);	       def_state = IN_IFNDEF;	    }	    while (pch_char(old) == '!') {		if (R_do_defines) {		    fputs(pfetch(old), ofp);		}		last_frozen_line++;		old++;	    }	    if (R_do_defines) {		fputs(else_defined, ofp);		def_state = IN_ELSE;	    }	    while (pch_char(new) == '!') {		fputs(pfetch(new), ofp);		new++;	    }	}	else {	    assert(pch_char(new) == ' ');	    old++;	    new++;	    if (R_do_defines && def_state != OUTSIDE) {		fputs(end_defined, ofp);		def_state = OUTSIDE;	    }	}    }    if (new <= pat_end && pch_char(new) == '+') {	copy_till(where + old - 1);	if (R_do_defines) {	    if (def_state == OUTSIDE) {	    	fputs(if_defined, ofp);		def_state = IN_IFDEF;	    }	    else if (def_state == IN_IFNDEF) {		fputs(else_defined, ofp);		def_state = IN_ELSE;	    }	}	while (new <= pat_end && pch_char(new) == '+') {	    fputs(pfetch(new), ofp);	    new++;	}    }    if (R_do_defines && def_state != OUTSIDE) {	fputs(end_defined, ofp);    }}/* Open the new file. */voidinit_output(name)char *name;{    ofp = fopen(name, "w");    if (ofp == Nullfp)	pfatal2("can't create %s", name);}/* Open a file to put hunks we can't locate. */voidinit_reject(name)char *name;{    rejfp = fopen(name, "w");    if (rejfp == Nullfp)	pfatal2("can't create %s", name);}/* Copy input file to output, up to wherever hunk is to be applied. */voidcopy_till(lastline)Reg1 LINENUM lastline;{    Reg2 LINENUM R_last_frozen_line = last_frozen_line;    if (R_last_frozen_line > lastline)	fatal1("misordered hunks! output would be garbled\n");    while (R_last_frozen_line < lastline) {	dump_line(++R_last_frozen_line);    }    last_frozen_line = R_last_frozen_line;}/* Finish copying the input file to the output file. */voidspew_output(){#ifdef DEBUGGING    if (debug & 256)	say3("il=%ld lfl=%ld\n",input_lines,last_frozen_line);#endif    if (input_lines)	copy_till(input_lines);		/* dump remainder of file */    Fclose(ofp);    ofp = Nullfp;}/* Copy one line from input to output. */voiddump_line(line)LINENUM line;{    Reg1 char *s;    Reg2 char R_newline = '\n';    /* Note: string is not null terminated. */    for (s=ifetch(line, 0); putc(*s, ofp) != R_newline; s++) ;}/* Does the patch pattern match at line base+offset? */boolpatch_match(base, offset, fuzz)LINENUM base;LINENUM offset;LINENUM fuzz;{    Reg1 LINENUM pline = 1 + fuzz;    Reg2 LINENUM iline;    Reg3 LINENUM pat_lines = pch_ptrn_lines() - fuzz;    for (iline=base+offset+fuzz; pline <= pat_lines; pline++,iline++) {	if (canonicalize) {	    if (!similar(ifetch(iline, (offset >= 0)),			 pfetch(pline),			 pch_line_len(pline) ))		return FALSE;	}	else if (strnNE(ifetch(iline, (offset >= 0)),		   pfetch(pline),		   pch_line_len(pline) ))	    return FALSE;    }    return TRUE;}/* Do two lines match with canonicalized white space? */boolsimilar(a,b,len)Reg1 char *a;Reg2 char *b;Reg3 int len;{    while (len) {	if (isspace(*b)) {		/* whitespace (or \n) to match? */	    if (!isspace(*a))		/* no corresponding whitespace? */		return FALSE;	    while (len && isspace(*b) && *b != '\n')		b++,len--;		/* skip pattern whitespace */	    while (isspace(*a) && *a != '\n')		a++;			/* skip target whitespace */	    if (*a == '\n' || *b == '\n')		return (*a == *b);	/* should end in sync */	}	else if (*a++ != *b++)		/* match non-whitespace chars */	    return FALSE;	else	    len--;			/* probably not necessary */    }    return TRUE;			/* actually, this is not reached */					/* since there is always a \n */}/* Exit with cleanup. */voidmy_exit(status)int status;{    Unlink(TMPINNAME);    if (!toutkeep) {	Unlink(TMPOUTNAME);    }    if (!trejkeep) {	Unlink(TMPREJNAME);    }    Unlink(TMPPATNAME);    exit(status);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成网站精品片在线观看| 亚洲一区视频在线| 日韩免费福利电影在线观看| 色综合天天综合网天天看片| 黄色精品一二区| 三级精品在线观看| 亚洲一区二区精品3399| 中文字幕一区二区日韩精品绯色| 久久久久久久久久久久久久久99 | 国产精品系列在线| 国产亚洲一区二区三区在线观看| 日韩午夜在线影院| 日韩视频免费观看高清完整版在线观看 | 91麻豆国产香蕉久久精品| 国产成人亚洲精品狼色在线| 国产成人在线视频网址| 成人在线视频一区| 色综合一个色综合亚洲| 在线国产亚洲欧美| 51精品国自产在线| ww久久中文字幕| 中文字幕乱码一区二区免费| 国产精品伦理在线| 伊人夜夜躁av伊人久久| 日韩精品电影在线| 国产在线视频不卡二| 高清国产一区二区| 在线观看不卡视频| 精品免费一区二区三区| 国产欧美一区二区精品性色| 亚洲精品第1页| 人人爽香蕉精品| 福利电影一区二区三区| 欧美中文字幕一区| 精品美女被调教视频大全网站| 国产欧美日韩亚州综合| 亚洲精品写真福利| 麻豆中文一区二区| 大陆成人av片| 欧美精品aⅴ在线视频| 久久久99精品免费观看| 一区二区久久久久| 国产一区中文字幕| 在线观看免费亚洲| 亚洲精品一区在线观看| 亚洲精品精品亚洲| 国产一区二区三区在线观看免费| 91亚洲精品久久久蜜桃网站| 日韩午夜激情av| 亚洲精品日产精品乱码不卡| 久久9热精品视频| 日本道色综合久久| 国产偷v国产偷v亚洲高清| 一区二区欧美视频| 成人亚洲精品久久久久软件| 在线成人av影院| 中文字幕综合网| 国产一区二区中文字幕| 欧美美女喷水视频| 国产精品国产a| 韩国女主播一区二区三区| 91国产免费看| 国产精品麻豆久久久| 久久黄色级2电影| 欧美在线999| 国产精品美女久久久久久2018| 日韩成人精品在线观看| 91视频你懂的| 欧美高清在线一区| 麻豆精品久久精品色综合| 欧美专区日韩专区| 自拍偷在线精品自拍偷无码专区| 国内精品久久久久影院一蜜桃| 欧美亚洲日本国产| 亚洲欧美日韩久久精品| 成人在线视频首页| 2020国产精品自拍| 美脚の诱脚舐め脚责91| 欧美喷潮久久久xxxxx| 亚洲精品视频在线| 99久久99久久免费精品蜜臀| 久久久久久久综合狠狠综合| 老司机午夜精品| 制服.丝袜.亚洲.另类.中文| 亚洲一区在线观看免费观看电影高清| 成人激情免费网站| 国产无遮挡一区二区三区毛片日本| 麻豆高清免费国产一区| 3atv一区二区三区| 日韩中文字幕亚洲一区二区va在线| 日本道精品一区二区三区| 亚洲女与黑人做爰| 99re这里都是精品| 日韩美女啊v在线免费观看| 成人av电影在线| 国产精品毛片久久久久久| 国产成人丝袜美腿| 国产视频在线观看一区二区三区| 韩日av一区二区| 精品国产免费人成在线观看| 激情深爱一区二区| 欧美精品一区二区三区蜜桃视频| 精品在线一区二区| 久久综合色综合88| 国产成人免费高清| 中文乱码免费一区二区| 风流少妇一区二区| 国产精品久久久久久妇女6080 | 欧美一级视频精品观看| 久久精品99国产精品| 欧美成人官网二区| 国产乱码精品一区二区三区av| 国产人成亚洲第一网站在线播放| 粉嫩在线一区二区三区视频| 国产成人av自拍| 国产精品国产三级国产| 在线观看欧美精品| 蜜桃视频免费观看一区| 精品国产制服丝袜高跟| 国产成人无遮挡在线视频| 亚洲欧美激情插| 欧美乱妇23p| 久久精品国产精品亚洲红杏 | 视频一区二区三区在线| 日韩一卡二卡三卡四卡| 国产成都精品91一区二区三| 最新国产成人在线观看| 欧美福利视频一区| 久国产精品韩国三级视频| 中文字幕的久久| 在线欧美小视频| 看国产成人h片视频| 国产午夜精品在线观看| 色综合久久久久网| 日韩和欧美一区二区三区| 久久综合999| 色国产综合视频| 天天av天天翘天天综合网| 日韩小视频在线观看专区| 成人一区二区三区中文字幕| 亚洲一区在线观看视频| 久久久久亚洲蜜桃| 在线看日韩精品电影| 激情欧美一区二区| 一区二区三区四区视频精品免费| 91麻豆精品国产91久久久资源速度| 国产麻豆91精品| 亚洲国产欧美另类丝袜| 久久久久久亚洲综合影院红桃| 在线精品视频一区二区| 韩国理伦片一区二区三区在线播放| 欧美国产成人精品| 欧美另类z0zxhd电影| 国产91对白在线观看九色| 亚洲专区一二三| 国产欧美综合色| 6080yy午夜一二三区久久| 波多野洁衣一区| 久草中文综合在线| 亚洲国产成人av| 国产精品久久久久久久久晋中 | 久久久久久久国产精品影院| 欧洲生活片亚洲生活在线观看| 韩日精品视频一区| 午夜在线电影亚洲一区| 亚洲日本电影在线| 久久精品一二三| 欧美一级国产精品| wwww国产精品欧美| 色老汉av一区二区三区| 亚洲欧洲精品成人久久奇米网| 国产精品乡下勾搭老头1| 亚洲精品欧美二区三区中文字幕| 久久久久久一二三区| 3d动漫精品啪啪| 欧美在线观看一二区| jizzjizzjizz欧美| 国内精品伊人久久久久av一坑| 午夜精品久久久久久久久| 亚洲欧美另类小说视频| 欧美—级在线免费片| 2021中文字幕一区亚洲| 欧美一二三区在线观看| 欧美日韩和欧美的一区二区| 91黄色激情网站| 97国产精品videossex| 国产一区二区三区av电影| 青椒成人免费视频| 亚洲一区电影777| 亚洲黄色av一区| 亚洲女爱视频在线| 中文字幕中文乱码欧美一区二区| 久久久精品国产免费观看同学| 亚洲精品在线三区| 欧美精品一区二区久久久| 日韩精品一区二区三区三区免费 | 国产精品国产三级国产普通话蜜臀| 精品国产乱码久久久久久图片 | 亚洲私人黄色宅男| 国产精品美女久久久久久久久|