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

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

?? patchfns.in

?? linux下各種patch的管理工具
?? IN
?? 第 1 頁 / 共 2 頁
字號(hào):
#! @BASH@# This file contains the common functions used in all quilt script# It is meant to be sourced by bash scripts.#  This script is free software; you can redistribute it and/or modify#  it under the terms of the GNU General Public License version 2 as#  published by the Free Software Foundation.##  See the COPYING and AUTHORS files for more details.export TEXTDOMAIN=quiltexport TEXTDOMAINDIR=@LOCALEDIR@: ${LC_CTYPE:=$LANG}: ${LC_MESSAGES:=$LANG}ORIGINAL_LANG=$LANGexport LANG=POSIXexport QUILT_PATCHES QUILT_PC SUBDIR SERIES DBDB_VERSION=2: ${QUILT_PATCHES:=patches}: ${QUILT_PC:=.pc}# Support compatibility layerif [ -d $QUILT_DIR/compat ]then	export PATH="$QUILT_DIR/compat:$PATH"fiunset CDPATHshopt -s dotglobif [ -e "$QUILTRC" ]then	source "$QUILTRC"fi# Add default arguments for this commandif [ -n "$QUILT_COMMAND" ]; then	args="QUILT_$(echo $QUILT_COMMAND | tr a-z A-Z)_ARGS"	eval set -- ${!args} \"\$@\"	unset argsfi# ========================================================#declare -a exit_handlers##add_exit_handler() {#	exit_handlers[${#exit_handlers[@]}]=$1#}##remove_exit_handler() {#	declare -a handlers#	local h#	for h in "${exit_handlers[@]}"; do#		[ "$h" = "$1" ] && continue#		handlers[${#handlers[@]}]=$h#	done#	exit_handlers=( "${handlers[@]}" )#}##run_exit_handlers() {#	local h#	for h in "${exit_handlers[@]}"; do#		eval $h#	done#}##trap run_exit_handlers EXIT# ========================================================# Quote a string for use in a basic regular expression.quote_bre(){	echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g'}# Quote a string for use in an extended regular expression.quote_re(){	echo "$1" | sed -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g'}basename(){	local path=$1	while [ "${path:(-1)}" = "/" ]	do		path=${path%/}	done	echo "${path##*/}"}dirname(){	local path=$1	while [ "${path:(-1)}" = "/" ]	do		path=${path%/}	done	local basename="${path##*/}"	path="${path:0:${#path}-${#basename}}"	while [ "${path:(-1)}" = "/" ]	do		path=${path%/}	done	if [ -n "$path" ]	then		echo "$path"	else		if [ ${1:0:1} = "/" ]		then			echo "/"		else			echo "."		fi	fi}patch_file_name(){	echo "$QUILT_PATCHES/$1"}# The -pN option and possibly others that should be passed to patch.patch_args(){	local patch=$1	if [ -e $SERIES ]	then		awk '			{sub(/(^|[ \t]+)#.*/, "") }		$1 == "'"$patch"'" \			{ if (NF >= 2)				for (i=2; i <= NF; i++)					print $i			  else				print "-p1" ;			  exit			}		' $SERIES	fi}patch_strip_level(){	local patch=$1 i	for i in $(patch_args $patch)	do		case $i in		-p)			echo $2			return ;;		-p*)			echo ${i:2}			return ;;		esac	done	echo "1"}change_db_strip_level(){	local level=$1 patch=$2	if [ x$level != x-p1 ]	then		level="$level"	else		level=""	fi	if [ -e $SERIES ]	then		local tmpfile=$(gen_tempfile)		awk '		/^'"$(quote_re $patch)"'([ \t]|$)/ \			{ for(i=2; i<=NF; i++)				if ($i ~ /^-p/) {					$i="'"$level"'"					break				}			  if (i > NF && "'"$level"'" != "")				 $i="'"$level"'"			}			{ print }		' $SERIES > $tmpfile		if ! cmp $SERIES $tmpfile >/dev/null 2>/dev/null		then			cat $tmpfile > $SERIES		fi		rm -f $tmpfile	else		return 1	fi}patch_in_series(){	local patch=$1	if ! [ -e $SERIES ]	then		return 1	else		grep -q "^$(quote_bre $patch)\([ \t]\|$\)" $SERIES	fi}# Insert new patch after topmost patchinsert_in_series(){	local patch=$1 patch_args=$2	local next=$(patch_after "$(top_patch)") tmpfile	if [ -n "$patch_args" ]	then		patch_args=" $patch_args"	fi	tmpfile=$(gen_tempfile) || return 1	mkdir -p $(dirname $SERIES)	if [ -n "$next" ]	then		awk '		/^'"$(quote_re $next)"'([ \t]|$)/ \				{ print "'"$patch$patch_args"'" }				{ print }		' $SERIES > $tmpfile		status=$?		if [ $status -ne 0 ]		then			rm -f $tmpfile			return 1		fi	else		if [ -e $SERIES ]		then			cat $SERIES > $tmpfile		fi		echo "$patch$patch_args" >> $tmpfile	fi	cat $tmpfile > $SERIES	rm -f $tmpfile}remove_from_series(){	local patch=$1	tmpfile=$(gen_tempfile) || return 1	awk '	! /^'"$(quote_re $patch)"'([ \t]|$)/ \				{ print }	' $SERIES > $tmpfile	if [ $? -ne 0 ]	then		rm -f $tmpfile	   	return 1	fi	cat $tmpfile > $SERIES	rm -f $tmpfile}rename_in_series(){	local from=$1 to=$2	tmpfile=$(gen_tempfile) || return 1	awk '	/^'"$(quote_re $from)"'([ \t]|$)/ \		{ sub(/'"$(quote_re $from)"'/, "'"${to//\"/\\\"}"'")		  good=1 }		{ print }	END	{ exit(! good) }	' $SERIES > $tmpfile	if [ $? -ne 0 ]	then		rm -f $tmpfile		return 1	fi	cat $tmpfile > $SERIES	rm -f $tmpfile}rename_in_db(){	local from=$1 to=$2	local tmpfile	tmpfile=$(gen_tempfile) || return 1	awk '	/^'"$(quote_re $from)"'$/ \		{ sub(/'"$(quote_re $from)"'/, "'"${to//\"/\\\"}"'")		  good=1 }		{ print }	END	{ exit(! good) }	' $DB > $tmpfile	if [ $? -eq 0 ]	then		cat $tmpfile > $DB		rm -f $tmpfile	else		rm -f $tmpfile		return 1	fi}backup_file_name(){	local patch=$1	while [ $# -gt 1 ]	do		echo "$QUILT_PC/$patch/$2"		shift	done}cat_series(){	if [ -e $SERIES ]	then		sed -e '/^$/d' -e '/^#/d' -e 's/^[ '$'\t'']*//' \		    -e 's/[ '$'\t''].*//' $SERIES	else		return 1	fi}top_patch(){	local patch=$(tail -n 1 $DB 2>/dev/null)	[ -n "$patch" ] && echo "$patch"}is_numeric(){	echo $1 | grep -q '^[0-9]*$'}is_applied(){	local patch=$1	[ -e $DB ] || return 1	grep -q "^$(quote_bre $patch)\$" $DB}applied_patches(){	[ -e $DB ] || return 1	cat $DB}applied_before(){	local patch=$1	if [ -n "$patch" ]	then		awk '		$0 == "'"$patch"'"	{ exit }					{ print }		' $DB	fi}		patches_before(){	local patch=$1	if [ -n "$patch" ]	then		cat_series \		| awk '		$0 == "'"$patch"'"	{ exit }					{ print }		'	fi}patches_after(){	local patch=$1	if [ -n "$patch" ]	then		cat_series \		| awk '		seen == 1		{ print }		$0 == "'"$patch"'"	{ seen=1 }		'	else		cat_series	fi}patch_after(){	local patch="$1"	patch=$(patches_after "$patch" | head -n 1)	[ -n "$patch" ] && echo "$patch"}# List all patches that have been applied on top of patch $1patches_on_top_of(){	local patch=$1	[ -e $DB ] || return	awk '	$0 == "'"$patch"'"	{ seen=1 ; next }	seen == 1		{ print }	' $DB}# Print the name of the patch that modified the file $2 next after# patch $1, or print nothing if patch $1 is on top.next_patch_for_file(){	local patch=$1 file=$2	local patches_on_top=$(patches_on_top_of $patch)	if [ -n "$patches_on_top" ]	then		for patch in $patches_on_top		do			if [ -f $(backup_file_name $patch $file) ]			then				echo $patch				break			fi		done	fi}add_to_db(){	echo $1 >> $DB}remove_from_db(){	local patch=$1	local tmpfile	if tmpfile=$(gen_tempfile)	then		grep -v "^$(quote_bre $patch)\$" $DB > $tmpfile		cat $tmpfile > $DB		rm -f $tmpfile		[ -s $DB ] || rm -f $DB	fi}find_first_patch(){	local patch=$(cat_series | head -n 1)	if [ -z "$patch" ]	then		printf $"No patches in series\n" >&2		return 1	fi	echo "$patch"}find_top_patch(){	if ! top_patch	then		if find_first_patch > /dev/null		then			printf $"No patches applied\n" >&2		fi

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女一区二区三区| 色一情一伦一子一伦一区| 精品少妇一区二区三区免费观看 | 欧美无砖砖区免费| 香蕉久久一区二区不卡无毒影院 | av在线播放成人| 一级做a爱片久久| 欧美人牲a欧美精品| 国产制服丝袜一区| 亚洲欧洲www| 欧美男男青年gay1069videost| 美女国产一区二区三区| 久久久99精品免费观看| 色偷偷久久一区二区三区| 日韩电影在线一区二区| 国产丝袜在线精品| 一本大道综合伊人精品热热| 亚洲h动漫在线| 久久精品一区四区| 欧美午夜影院一区| 韩国理伦片一区二区三区在线播放| 国产精品视频麻豆| 欧美日韩免费视频| 国产成人在线视频网址| 日韩欧美不卡一区| 国产福利视频一区二区三区| 亚洲美女淫视频| 精品国产三级电影在线观看| 色94色欧美sute亚洲13| 久久国内精品自在自线400部| 国产精品久久久久久久久动漫 | 成a人片亚洲日本久久| 一卡二卡欧美日韩| 国产色爱av资源综合区| 欧美午夜寂寞影院| 成人免费观看视频| 六月丁香婷婷久久| 亚洲午夜一二三区视频| 国产欧美综合色| 91精品国产综合久久精品| www.欧美日韩| 国产精品一线二线三线精华| 三级一区在线视频先锋 | 一区二区视频在线看| 26uuu精品一区二区在线观看| 91国在线观看| 成人av片在线观看| 国产精品一级黄| 久久精品国产亚洲5555| 午夜精品久久久久| 亚洲成人av电影| 亚洲欧美另类小说| 亚洲欧美自拍偷拍| 日本一区二区成人| 久久久亚洲午夜电影| 欧美一二三区精品| 欧美一区二区三区思思人| 欧美日韩在线直播| 欧美性大战久久久久久久蜜臀| 91首页免费视频| 成人福利视频网站| 国产成人8x视频一区二区 | 日韩av一区二区三区| 亚洲一区在线观看网站| 一区二区三区在线不卡| 国产精品精品国产色婷婷| 中文字幕精品一区二区三区精品 | 日韩一区二区三区免费看| 91久久精品午夜一区二区| 91视频免费播放| 99精品一区二区| 99久久久国产精品| 色综合视频在线观看| 一本高清dvd不卡在线观看| 色婷婷香蕉在线一区二区| 在线视频一区二区免费| 欧美在线制服丝袜| 欧美日韩久久久| 欧美人体做爰大胆视频| 日韩一区二区中文字幕| 欧美成人福利视频| 国产欧美日韩亚州综合| 欧美国产日产图区| 最新国产の精品合集bt伙计| 亚洲天堂福利av| 亚洲特级片在线| 亚洲二区视频在线| 日本亚洲最大的色成网站www| 九九九久久久精品| 国产99久久久国产精品潘金| 99精品一区二区| 欧美日韩在线播放三区| 日韩免费一区二区| 久久九九影视网| 1024成人网| 无码av中文一区二区三区桃花岛| 免费在线观看一区二区三区| 国产精品一级片在线观看| 91色综合久久久久婷婷| 欧美精品丝袜中出| 精品国产91乱码一区二区三区| 亚洲国产精品99久久久久久久久 | 日韩免费看的电影| 亚洲国产成人私人影院tom| 亚洲卡通欧美制服中文| 日本不卡高清视频| 国产 日韩 欧美大片| 色哟哟精品一区| 精品人在线二区三区| 亚洲欧洲另类国产综合| 石原莉奈在线亚洲三区| 成人黄色av电影| 欧美一卡2卡三卡4卡5免费| 欧美国产日韩在线观看| 图片区小说区国产精品视频| 国产精品一区免费视频| 色欲综合视频天天天| 欧美成人艳星乳罩| 成人免费在线观看入口| 免费成人小视频| 天堂资源在线中文精品| 午夜激情一区二区三区| 狠狠色丁香久久婷婷综合丁香| 成人免费毛片app| 91精品国产色综合久久久蜜香臀| 国产精品美女久久久久久久久久久| 亚洲国产欧美日韩另类综合 | 日一区二区三区| 成人免费黄色大片| 欧美电视剧在线观看完整版| 一区二区视频免费在线观看| 国产成人亚洲精品狼色在线| 欧美区一区二区三区| 国产精品超碰97尤物18| 黑人巨大精品欧美黑白配亚洲| 欧美亚洲一区二区在线观看| 国产精品乱码久久久久久| 免费一区二区视频| 欧美日韩一级视频| 亚洲卡通欧美制服中文| 高清视频一区二区| 欧美精品一区二区三区一线天视频| 午夜精品久久一牛影视| 亚洲三级在线免费| www.av亚洲| 亚洲精品在线观看网站| 亚洲自拍偷拍网站| 不卡视频在线观看| 久久精品一区蜜桃臀影院| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲免费资源在线播放| 国产成人久久精品77777最新版本| 欧美一级日韩不卡播放免费| 亚洲第一二三四区| 欧美午夜免费电影| 亚洲主播在线观看| 在线视频一区二区免费| 亚洲综合男人的天堂| 在线一区二区视频| 亚洲免费观看高清完整版在线观看 | 国产人久久人人人人爽| 欧美成人精精品一区二区频| 欧美日本视频在线| 一区二区三区四区国产精品| 99精品黄色片免费大全| 国产亚洲欧洲一区高清在线观看| 看电影不卡的网站| 久久综合中文字幕| 狠狠色狠狠色综合系列| 欧美变态tickle挠乳网站| 免费成人在线影院| 精品国产百合女同互慰| 国产一区二区三区免费观看| 久久久久成人黄色影片| 国产成人免费视频| 中文字幕在线不卡一区二区三区| 成人av高清在线| 亚洲精品国久久99热| 欧美性生活久久| 免费观看30秒视频久久| 久久女同精品一区二区| www.一区二区| 亚洲自拍欧美精品| 欧美一区二区在线视频| 久久精品国产99国产精品| 久久久久九九视频| 99在线精品一区二区三区| 一区二区免费在线| 777xxx欧美| 国产乱码一区二区三区| 国产精品久久99| 在线成人免费视频| 国产福利一区在线| 一区二区三区日韩精品视频| 99精品久久久久久| 午夜精品福利一区二区蜜股av| 日韩一区二区中文字幕| 成人精品免费网站| 视频一区在线播放| 国产日产欧美一区|