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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? patchfs.in

?? MC Linux/Unix 終端下文件管理器
?? IN
字號(hào):
#! @PERL@ -w## Written by Adam Byrtek <alpha@debian.org>, 2002## extfs to handle patches in context and unified diff formatuse bytes;use strict;use POSIX;# standard binariesmy $bzip = 'bzip2';my $gzip = 'gzip';my $file = 'file';# date parsing requires Date::Parse from TimeDate modulemy $parsedates = eval "require Date::Parse";# regular expressionsmy $unified_header=qr/^--- .*\n\+\+\+ .*\n@@ .* @@.*\n$/;my $unified_extract=qr/^--- ([^\s]+).*\n\+\+\+ ([^\s]+)\s*([^\t\n]*)/;my $unified_contents=qr/^([+\- \n]|@@ .* @@)/;my $context_header=qr/^\*\*\* .*\n--- .*\n\*{15}\n$/;my $context_extract=qr/^\*\*\* ([^\s]+).*\n--- ([^\s]+)\s*([^\t\n]*)/;my $context_contents=qr/^([!+\- \n]|-{3} .* -{4}|\*{3} .* \*{4}|\*{15})/;my $ls_extract_id=qr/^[^\s]+\s+[^\s]+\s+([^\s]+)\s+([^\s]+)/;my $basename=qr|^(.*/)*([^/]+)$|;# output unix date in a mc-readable formatsub timef{    my @time=localtime($_[0]);    return sprintf "%02d-%02d-%02d %02d:%02d", $time[4]+1, $time[3],		   $time[5]+1900, $time[2], $time[1];}# parse given string as a date and return unix timesub datetime{    # in case of problems fall back to 0 in unix time    # note: str2time interprets some wrong values (eg. " ") as 'today'    if ($parsedates && defined (my $t=str2time($_[0]))) {	return timef($t);    }    return timef(time);}# print message on stderr and exitsub error{    print STDERR $_[0], "\n";    exit 1;}# list files affected by patchsub list{    my ($archive)=(quotemeta $_[0]);    my ($state,$pos,$len,$time);    my ($f,$fsrc,$fdst,$prefix);    my ($unified,$context)=(0,0);    # use uid and gid from file    my ($uid,$gid)=(`ls -l $archive`=~/$ls_extract_id/);    import Date::Parse if ($parsedates);        # state==1 means diff contents, state==0 means comments    $state=0; $len=0; $f='';    while (<I>) {	# recognize diff type	if (!$unified && !$context) {	    $unified=1 if (/^--- /);	    $context=1 if (/^\*\*\* /);	    if (!$unified && !$context) {		$len+=length;		next;	    }	}	if (($unified && /^--- /) || ($context && /^\*\*\* [^\*]*$/)) {	    # start of new file	    if ($state==1) {		printf "-rw-r--r-- 1 %s %s %d %s %s%s\n", $uid, $gid, $len, datetime($time), $prefix, $f		  if $f;		$len=0;	    }	    $state=1;	    # parse diff header	    if ($unified) {		error "Can't parse unified diff header"		  unless ((($_.=<I>).=<I>)=~/$unified_header/);		($fsrc,$fdst,$time)=/$unified_extract/;	    } elsif ($context) {		error "Can't parse context diff header"		  unless ((($_.=<I>).=<I>)=~/$context_header/);		($fsrc,$fdst,$time)=/$context_extract/;	    }	    # select filename, conform with (diff.info)Multiple patches	    $prefix="";	    if (!$fdst && !$fsrc) {		error 'Index: not yet implemented';	    } elsif (!$fsrc || $fsrc eq '/dev/null') {		$f=$fdst; $prefix="PATCH-CREATE/";	    } elsif (!$fdst || $fdst eq '/dev/null') {		$f=$fsrc; $prefix="PATCH-REMOVE/";	    } elsif (($fdst eq "/dev/null") && ($fsrc eq "/dev/null")) {		error "Malformed diff";	    } else {		# fewest path name components		if ($fdst=~s|/|/|g < $fsrc=~s|/|/|g) {		    $f=$fdst;		} elsif ($fdst=~s|/|/|g > $fsrc=~s|/|/|g) {		    $f=$fsrc;		} else {		    # shorter base name		    if (($fdst=~/$basename/,length $2) < ($fsrc=~/$basename/,length $2)) {			$f=$fdst;		    } elsif (($fdst=~/$basename/,length $2) > ($fsrc=~/$basename/,length $2)) {			$f=$fsrc;		    } else {			# shortest names			if (length $fdst < length $fsrc) {			    $f=$fdst;			} else {			    $f=$fsrc;			}		    }		}	    }	    $f=$f.".diff";	} elsif ($state==1 && (($unified && !/$unified_contents/) || ($context && !/$context_contents/))) {	    # start of comments, end of diff contents	    printf "-rw-r--r-- 1 %s %s %d %s %s%s\n", $uid, $gid, $len, datetime($time), $prefix, $f	      if $f;	    $state=$len=0;	}	$len+=length;    }    printf "-rw-r--r-- 1 %s %s %d %s %s%s\n", $uid, $gid, $len, datetime($time), $prefix, $f      if $f;}# extract diff from patchsub copyout{    my ($file,$out)=@_;    my ($fsrc,$fdst,$found,$state,$buf);    my ($unified,$context)=(0,0);    $file=~s/^(PATCH-(CREATE|REMOVE)\/)?(.*)\.diff$/$3/;        # state==1 means diff contents, state==0 mens comments    $state=0; $found=0; $buf='';    while (<I>) {	# recognize diff type	if (!$unified && !$context) {	    $unified=1 if (/^--- /);	    $context=1 if (/^\*\*\* /);	    if (!$unified && !$context) {		$buf.=$_;		next;	    }	}	if (($unified && /^--- /) || ($context && /^\*\*\* [^\*]*$/)) {	    last if ($state==1 && $found);	    $state=1;	    # parse diff header	    if ($unified) {		error "Can't parse unified diff header"		  unless ((($_.=<I>).=<I>)=~/$unified_header/);		($fsrc,$fdst)=/$unified_extract/;	    } elsif ($context) {		error "Can't parse context diff header"		  unless ((($_.=<I>).=<I>)=~/$context_header/);		($fsrc,$fdst)=/$context_extract/;	    }	    $found=1 if (($fsrc eq $file) || ($fdst eq $file));	} elsif ($state==1 && (($unified && !/$unified_contents/) || ($context && !/$context_contents/))) {	    # start of comments, end of diff contents	    last if ($found);	    $state=0;	    $buf="";	}	$buf.=$_ if ($found || $state==0)    }    if ($found) {	open O, "> $out";	print O $buf;	close O;    }}# append diff to archivesub copyin{    my ($archive,$name,$f)=(quotemeta $_[0],$_[1],quotemeta $_[2]);    my ($cmd);    error "File must have .diff or .patch extension"      unless $name=~/\.(diff|patch)(\.(bz|bz2|gz|z|Z))?$/;    $_=`$file $f`;    if (/bzip/) {	$cmd="$bzip -dc $f";    } elsif (/gzip/) {	$cmd="$gzip -dc $f";    } else {	$cmd="cat $f";    }    $_=`$file $archive`;    if (/bzip/) {	system "$cmd | $bzip -c >> $archive";    } elsif (/gzip/) {	system "$cmd | $gzip -c >> $archive";    } else {	system "$cmd >> $archive";    }}# open (compressed) archive for readingsub openread{    my ($archive) = (quotemeta $_[0]);    $_=`$file $archive`;    if (/bzip/) {	open I, "$bzip -dc $archive |";    } elsif (/gzip/) {	open I, "$gzip -dc $archive |";    } else {	open I, "< $ARGV[1]";    }}if ($ARGV[0] eq 'list') {    openread $ARGV[1];    list $ARGV[1];    exit 0;} if ($ARGV[0] eq 'copyout') {    openread $ARGV[1];    copyout ($ARGV[2], $ARGV[3]);    exit 0;} if ($ARGV[0] eq 'copyin') {    copyin ($ARGV[1], $ARGV[2], $ARGV[3]);    exit 0;}exit 1;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re热这里只有精品视频| 国产精品美女久久久久aⅴ| 国产99久久久国产精品潘金网站| 亚洲第四色夜色| 亚洲一区二区三区在线看| 亚洲人成网站在线| 中文字幕一区二区在线播放| 国产精品水嫩水嫩| 久久久一区二区三区捆绑**| 精品99一区二区三区| 亚洲精品在线网站| 2014亚洲片线观看视频免费| 久久欧美中文字幕| 欧美国产日韩亚洲一区| 国产精品免费视频网站| 亚洲色图制服诱惑| 亚洲一区在线视频| 蜜臀av性久久久久蜜臀aⅴ| 蜜臀av一级做a爰片久久| 狠狠色丁香婷婷综合久久片| 成人深夜在线观看| 在线看一区二区| 欧美一级一区二区| 久久久午夜精品| 国产精品久久久久三级| 亚洲福利一二三区| 久久99精品久久久久久国产越南 | 日韩小视频在线观看专区| 91精品国产一区二区| 精品国产精品一区二区夜夜嗨| 久久久久久久久久美女| 亚洲特黄一级片| 日韩福利视频导航| 粉嫩av一区二区三区在线播放| av午夜精品一区二区三区| 欧洲国产伦久久久久久久| 欧美一区二区免费视频| 国产精品蜜臀av| 日韩黄色小视频| 国产大陆精品国产| 在线电影一区二区三区| 国产午夜精品一区二区三区嫩草 | 欧美午夜精品久久久久久孕妇| 日韩欧美一区二区视频| 亚洲免费观看高清| 韩国一区二区在线观看| 欧美亚洲动漫精品| 欧美精彩视频一区二区三区| 午夜精品福利一区二区三区av| 成人午夜电影久久影院| 日韩三区在线观看| 亚洲国产精品综合小说图片区| 粉嫩高潮美女一区二区三区| 欧美精品一二三四| 亚洲精品国产无套在线观| 国产综合色在线视频区| 日韩一区二区不卡| 午夜亚洲国产au精品一区二区| 成人免费毛片嘿嘿连载视频| 欧美成人高清电影在线| 亚洲一卡二卡三卡四卡五卡| caoporm超碰国产精品| wwwwxxxxx欧美| 日本午夜一本久久久综合| 在线观看视频一区二区| 中文字幕视频一区| www.性欧美| 国产精品天干天干在线综合| 国产一区二区导航在线播放| 欧美大胆人体bbbb| 毛片不卡一区二区| 欧美电影精品一区二区| 精品在线免费视频| 日韩你懂的在线播放| 秋霞影院一区二区| 欧美成人女星排行榜| 久久se精品一区精品二区| 欧美一区二区三区四区五区| 午夜天堂影视香蕉久久| 666欧美在线视频| 日韩福利视频导航| 精品国精品国产尤物美女| 精品一区二区国语对白| 精品福利一二区| 国内欧美视频一区二区| 国产欧美日韩视频一区二区| 成人av午夜电影| 色老头久久综合| 人人精品人人爱| 欧美性生活久久| 日韩专区一卡二卡| 日韩欧美视频在线 | 67194成人在线观看| 免播放器亚洲一区| 久久久久久久久伊人| 99re热这里只有精品免费视频| 亚洲另类在线视频| 91精品国产综合久久久蜜臀粉嫩| 麻豆免费看一区二区三区| 国产日韩欧美亚洲| 日本大香伊一区二区三区| 天天亚洲美女在线视频| 欧美精品一区二区久久久 | 亚洲色图欧美偷拍| 欧美日韩免费视频| 国产一区二区福利| 伊人开心综合网| 精品少妇一区二区| 黄色日韩网站视频| 国产成人在线视频播放| 亚洲欧美区自拍先锋| 欧美一区二区三区小说| 成人精品电影在线观看| 亚洲国产成人高清精品| 国产午夜精品理论片a级大结局 | 成人av网站免费| 一片黄亚洲嫩模| 国产日产欧美一区二区视频| 色婷婷精品大视频在线蜜桃视频| 捆绑紧缚一区二区三区视频| 中文字幕在线观看不卡| 日韩欧美视频在线 | 日韩精品福利网| 国产精品久久久久久妇女6080| 欧美日本在线播放| 成人动漫一区二区在线| 麻豆精品在线播放| 亚洲一级在线观看| 中文字幕一区免费在线观看| 日韩精品一区二区三区视频在线观看| 91免费国产视频网站| 国产一区二区在线视频| 日韩激情一二三区| 又紧又大又爽精品一区二区| 国产亚洲综合色| 日韩欧美国产综合在线一区二区三区| 91热门视频在线观看| 国产成人一级电影| 精品一二线国产| 日本欧美加勒比视频| 亚洲国产综合视频在线观看| 中文字幕一区二区视频| 中文字幕久久午夜不卡| 久久蜜桃av一区二区天堂 | 精品一区免费av| 视频一区二区欧美| 午夜视频在线观看一区| 五月天一区二区三区| 一区二区欧美国产| 一区二区三国产精华液| 夜色激情一区二区| 一区二区在线看| 亚洲国产另类精品专区| 亚洲一区二区三区国产| 午夜精品一区在线观看| 亚洲高清不卡在线观看| 日韩激情在线观看| 精品亚洲成a人在线观看 | 亚洲国产精品高清| 亚洲国产高清不卡| 国产精品美女久久久久久久久| 国产丝袜欧美中文另类| 国产精品区一区二区三区| 中文字幕中文在线不卡住| 综合欧美亚洲日本| 亚洲图片一区二区| 美女精品自拍一二三四| 免费国产亚洲视频| 狠狠色丁香婷婷综合| 成人动漫在线一区| 欧美专区在线观看一区| 欧美丰满嫩嫩电影| 久久亚洲一区二区三区四区| 国产精品麻豆久久久| 一区二区三区91| 久久99国产精品久久| 成人动漫av在线| 欧美日韩国产成人在线91| 欧美sm美女调教| 国产精品天天看| 日韩精彩视频在线观看| 国产91精品一区二区麻豆网站| 91美女蜜桃在线| 欧美刺激脚交jootjob| 国产欧美精品区一区二区三区 | 精品国产人成亚洲区| 中文字幕av资源一区| 亚洲综合无码一区二区| 久久99精品国产麻豆婷婷洗澡| 成人黄色大片在线观看| 91精品久久久久久久91蜜桃| 久久毛片高清国产| 亚洲午夜免费福利视频| 国产资源在线一区| 在线观看视频一区二区| 久久久午夜精品| 性做久久久久久免费观看欧美| 免费人成在线不卡| 色综合久久天天| 国产亚洲欧美日韩俺去了|