⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 funcfix.c

📁 对C语言编写的(开源)代码进行格式化
💻 C
字号:
#! /bin/bash FILE="$1"echo "FuncFix.x file: $FILE"#sleep 3sed -n '/[a.-zA.-Z].*(.*)$/=' $FILE > pszFunc.txt       #<function line>sed -n '/^{/=' $FILE > pszLeftBracket.txt               #<left big bracket>sed -n '/^}/=' $FILE > pszRightBracket.txtawk '{print $1 + 1}' pszFunc.txt > pszFuncPlus.txt      #<the line before 'left big bracket'echo '<gen "pszLeftBigBracket.txt>-----------------------------------'echo > pszResult.txtwhile read nFuncLinedo	while read nBracketLine	do		#echo nFuncLine=$nFuncLine		#echo nBracketLine=$nBracketLine		if [ "$nFuncLine" -eq "$nBracketLine" ]		then			#echo nFuncLine=$nFuncLine			sed "1i\ $nFuncLine" pszResult.txt  > tmp			mv tmp pszResult.txt		fi	done < pszLeftBracket.txtdone < pszFuncPlus.txtsed '/^$/d' pszResult.txt > tmpmv tmp pszResult.txtcp pszResult.txt pszLeftBigBracket.txtecho '<gen "LeftBigBracket.txt over>---------------------------------'#echo '-----pszResult.txt-----'#cat pszResult.txt#echo '-----------------------'echo '<gen "{} matched file: pszResult.txt>--------------------------'sed '/^$/d' pszRightBracket.txt > tmpmv tmp pszRightBracket.txtecho > pszResult.txtwhile read nLeftBracketLinedowhile read nRightBracketLine	do	if [ "${nRightBracketLine}" -gt "${nLeftBracketLine}" ]	then		sed "$ a\ ${nRightBracketLine}" pszResult.txt > tmp		mv tmp pszResult.txt				sed "$ a\ ${nLeftBracketLine}" pszResult.txt > tmp		mv tmp pszResult.txt				break;	fi	done < pszRightBracket.txtdone < pszLeftBigBracket.txtecho '<gen "{} matched file: pszResult.txt over>---------------------'#echo '-----pszResult.txt-----'#cat pszResult.txt#echo '-----------------------'#echoecho '<check even>---------------------------------------------------'sed '/^$/d' pszResult.txt > tmpmv tmp pszResult.txtnTemp=0nCount=`wc -l pszResult.txt | awk '{print $1}'`let "nTemp=$nCount + 1"let "nCount=$nCount / 2"let "nTemp=$nTemp / 2"if [ "$nCount" -ne "$nTemp" ]then	echo "pszResult.txt: error Line number!"fiecho '<check even over>----------------------------------------------'echo '<deal period between segment: { }>-----------------------------'bFlag=0while read nLineNumberdo	if [ "$bFlag" -eq 0 ]	then		sed "${nLineNumber} s/}/\n\n	PRINT_OUT_FUNCTION();\n&/" $FILE > tmp		mv tmp $FILE				let "bFlag=1"	else		sed "${nLineNumber} s/{/&\n	PRINT_IN_FUNCTION();\n\n/" $FILE > tmp		mv tmp $FILE				let "bFlag=0"	fidone < pszResult.txt	echo "FuncFix.x file: $FILE"	#sleep 3	#such as '/* xxx xxx */'	sed 's/\/\*.*\*\///g' $FILE > tmp	mv tmp $FILE		#such as '   xxx xxx */'	sed 's/return .*\*\//\*\//g' $FILE > tmp	mv tmp $FILE		#such as 'return xxx;'	sed 's/return /{PRINT_OUT_FUNCTION(); &/g' $FILE > tmp	mv tmp $FILE	#check 'return xxx something xxx */}'	sed 's/return .*$/&}/g' $FILE > tmp	mv tmp $FILE	#such as 'return;'	sed 's/return;/PRINT_OUT_FUNCTION();return;/g' $FILE > tmp	mv tmp $FILE#check 'return xxx something xxx */} over'echo '<deal period between segment: { } over>------------------------'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -