おそらくifdefを書いたコードをチェックしている

2007年頃に作ったコード
10年経つとなかなか理解しがたい。。。

#! /bin/bash

for line in $(grep -r -l "TEST" ./aaaaaaa.c | sort | uniq)
do
	if [ $(expr "$line" : '.*\.\([^.]*\)$') = "c" ];
	then
###
		echo "ifdef TEST check for $line"
		tempstart=0
		tempelse=-1
		tempend=0
		for tempstart in $(grep -n "ifdef TEST" "$line" | sed -e "s/[:].*//")
		do
			i=1
			echo "start addr : $tempstart"
			while [ $tempstart -ge $tempend ]
			do
				tempend=$(grep -n "endif" "$line" | sed -e "s/[:].*//" | awk '(NR == '$i'){ print $1 }')
				i=$i+1
			done
			echo "end   addr : $tempend"
		done

###
		echo "ifndef TEST check for $line"
		tempstart=0
		tempelse=-1
		tempend=0
		ttt=0
		for tempstart in $(grep -n "ifndef TEST" "$line" | sed -e "s/[:].*//")
		do
			i=1
			echo "start addr : $tempstart"
			while [ $tempstart -ge $tempend ]
			do
				tempend=$(grep -n "endif" "$line" | sed -e "s/[:].*//" | awk '(NR == '$i'){ print $1 }')
				i=$i+1
			done
			echo "end   addr : $tempend"

			i=1
			while [ "$tempstart -ge $tempelse" -a "$tempelse -ge $tempend" -a -n "$ttt" ]
			do
				ttt=$(grep -n "else /\* aaaa\*/" "$line" | sed -e "s/[:].*//" | awk '(NR == '$i'){ print $1 }')
				if [ -n "$ttt" ]
				then
					tempelse=$ttt
				fi
				i=$i+1
			done
			echo "else   addr : $tempelse"
		done
	else
		echo "error"
	fi
done
exit 0

シェアする

  • このエントリーをはてなブックマークに追加

フォローする