patcheck: Allow overiding grep program(s) through environment variables.
patcheck hardcodes the binary names for grep/egrep. This makes overriding the binary names a pain, e.g. when calling a GNU version of grep on BSD systems. Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
		
							parent
							
								
									75e8fba823
								
							
						
					
					
						commit
						ff3be572ef
					
				@ -8,9 +8,11 @@ if [ $# = 0 ]; then
 | 
			
		||||
    exit
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
GREP=grep
 | 
			
		||||
EGREP=egrep
 | 
			
		||||
TMP=patcheck.tmp
 | 
			
		||||
OPT="-nH"
 | 
			
		||||
#FILES=`grep '^+++' $* | sed 's/+++ //g'`
 | 
			
		||||
#FILES=`$GREP '^+++' $* | sed 's/+++ //g'`
 | 
			
		||||
 | 
			
		||||
echo patCHeck 1e10.0
 | 
			
		||||
echo This tool is intended to help a human check/review patches it is very far from
 | 
			
		||||
@ -27,7 +29,7 @@ hiegrep(){
 | 
			
		||||
    arg="$1"
 | 
			
		||||
    msg="$2"
 | 
			
		||||
    shift 2
 | 
			
		||||
    grep $OPT '^+' $* | grep -v ':+++'| egrep --color=always -- "$arg"> $TMP && printf "\n$msg\n"
 | 
			
		||||
    $GREP $OPT '^+' $* | $GREP -v ':+++'| $EGREP --color=always -- "$arg"> $TMP && printf "\n$msg\n"
 | 
			
		||||
    cat $TMP
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -36,7 +38,7 @@ hiegrep2(){
 | 
			
		||||
    varg="$2"
 | 
			
		||||
    msg="$3"
 | 
			
		||||
    shift 3
 | 
			
		||||
    grep $OPT '^+' $* | grep -v ':+++' | egrep -v -- "$varg" | egrep --color=always -- "$arg" > $TMP && printf "\n$msg\n"
 | 
			
		||||
    $GREP $OPT '^+' $* | $GREP -v ':+++' | $EGREP -v -- "$varg" | $EGREP --color=always -- "$arg" > $TMP && printf "\n$msg\n"
 | 
			
		||||
    cat $TMP
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -60,7 +62,7 @@ hiegrep '\+= *1 *;'     'can be simplified to ++' $*
 | 
			
		||||
hiegrep '-= *1 *;'      'can be simplified to --' $*
 | 
			
		||||
hiegrep '((!|=)= *(0|NULL)[^0-9a-z]|[^0-9a-z](0|NULL) *(!|=)=)' 'x==0 / x!=0 can be simplified to !x / x' $*
 | 
			
		||||
 | 
			
		||||
egrep $OPT '^\+ *(const *|)static' $*| egrep --color=always '[^=]= *(0|NULL)[^0-9a-zA-Z]'> $TMP && printf '\nuseless 0 init\n'
 | 
			
		||||
$EGREP $OPT '^\+ *(const *|)static' $*| $EGREP --color=always '[^=]= *(0|NULL)[^0-9a-zA-Z]'> $TMP && printf '\nuseless 0 init\n'
 | 
			
		||||
cat $TMP
 | 
			
		||||
hiegrep '# *ifdef * (HAVE|CONFIG)_' 'ifdefs that should be #if' $*
 | 
			
		||||
 | 
			
		||||
@ -89,7 +91,7 @@ hiegrep2 '\.sample_fmts *= *\(' 'const' 'missing const for sample_fmts array' $*
 | 
			
		||||
hiegrep2 '\.supported_framerates *= *\(' 'const' 'missing const for supported_framerates array' $*
 | 
			
		||||
hiegrep2 '\.channel_layouts *= *\(' 'const' 'missing const for channel_layouts array' $*
 | 
			
		||||
 | 
			
		||||
#egrep $OPT '^\+.*const ' $*| grep -v 'static'> $TMP && printf '\nnon static const\n'
 | 
			
		||||
#$EGREP $OPT '^\+.*const ' $*| $GREP -v 'static'> $TMP && printf '\nnon static const\n'
 | 
			
		||||
#cat $TMP
 | 
			
		||||
 | 
			
		||||
hiegrep2 "$ERE_TYPES" '(static|av_|ff_|typedef|:\+[^a-zA-Z_])' 'Non static with no ff_/av_ prefix' $*
 | 
			
		||||
@ -104,58 +106,58 @@ hiegrep ':\+  *{ *$' '{ should be on the same line as the related previous state
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
rm $TMP
 | 
			
		||||
for i in `grep -H '^+.*@param' $*| sed 's/^\([^:]*\):.*@param\(\[.*\]\|\) *\([a-zA-Z0-9_]*\) .*$/\1:\3/'` ; do
 | 
			
		||||
for i in `$GREP -H '^+.*@param' $*| sed 's/^\([^:]*\):.*@param\(\[.*\]\|\) *\([a-zA-Z0-9_]*\) .*$/\1:\3/'` ; do
 | 
			
		||||
    doxpar=`echo $i | sed 's/^.*:\(.*\)$/\1/'`
 | 
			
		||||
    file=`echo $i | sed 's/^\([^:]*\):.*$/\1/'`
 | 
			
		||||
    grep " *$doxpar *[),]" $file | grep -v '@param' >/dev/null || grep --color=always "@param *$doxpar" $file >>$TMP
 | 
			
		||||
    $GREP " *$doxpar *[),]" $file | $GREP -v '@param' >/dev/null || $GREP --color=always "@param *$doxpar" $file >>$TMP
 | 
			
		||||
done
 | 
			
		||||
if test -e $TMP ; then
 | 
			
		||||
    printf '\nmismatching doxy params\n'
 | 
			
		||||
    cat $TMP
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
egrep -B2 $OPT '^(\+|) *('"$ERE_TYPES"'|# *define)' $* | egrep -A2 --color=always '(:|-)\+[^/]*/(\*([^*]|$)|/([^/]|$))' > $TMP && printf "\n Non doxy comments\n"
 | 
			
		||||
$EGREP -B2 $OPT '^(\+|) *('"$ERE_TYPES"'|# *define)' $* | $EGREP -A2 --color=always '(:|-)\+[^/]*/(\*([^*]|$)|/([^/]|$))' > $TMP && printf "\n Non doxy comments\n"
 | 
			
		||||
cat $TMP
 | 
			
		||||
 | 
			
		||||
rm $TMP
 | 
			
		||||
for i in \
 | 
			
		||||
    `egrep -H '^\+ *'"$ERE_TYPES" $* |\
 | 
			
		||||
    grep -v '(' | egrep -v '\Wgoto\W' |\
 | 
			
		||||
    `$EGREP -H '^\+ *'"$ERE_TYPES" $* |\
 | 
			
		||||
    $GREP -v '(' | $EGREP -v '\Wgoto\W' |\
 | 
			
		||||
    xargs -d '\n' -n 1 |\
 | 
			
		||||
    grep -o '[* ][* ]*[a-zA-Z][0-9a-zA-Z_]* *[,;=]' |\
 | 
			
		||||
    $GREP -o '[* ][* ]*[a-zA-Z][0-9a-zA-Z_]* *[,;=]' |\
 | 
			
		||||
    sed 's/.[* ]*\([a-zA-Z][0-9a-zA-Z_]*\) *[,;=]/\1/'` \
 | 
			
		||||
    ; do
 | 
			
		||||
    echo $i | grep '^NULL$' && continue
 | 
			
		||||
    egrep $i' *(\+|-|\*|/|\||&|%|)=[^=]' $* >/dev/null || echo "possibly never written:"$i >> $TMP
 | 
			
		||||
    egrep '(=|\(|return).*'$i'(==|[^=])*$'    $* >/dev/null || echo "possibly never read   :"$i >> $TMP
 | 
			
		||||
    egrep -o $i' *((\+|-|\*|/|\||&|%|)=[^=]|\+\+|--) *(0x|)[0-9]*(;|)'   $* |\
 | 
			
		||||
           egrep -v $i' *= *(0x|)[0-9]{1,};'>/dev/null || echo "possibly constant     :"$i >> $TMP
 | 
			
		||||
    echo $i | $GREP '^NULL$' && continue
 | 
			
		||||
    $EGREP $i' *(\+|-|\*|/|\||&|%|)=[^=]' $* >/dev/null || echo "possibly never written:"$i >> $TMP
 | 
			
		||||
    $EGREP '(=|\(|return).*'$i'(==|[^=])*$'    $* >/dev/null || echo "possibly never read   :"$i >> $TMP
 | 
			
		||||
    $EGREP -o $i' *((\+|-|\*|/|\||&|%|)=[^=]|\+\+|--) *(0x|)[0-9]*(;|)'   $* |\
 | 
			
		||||
           $EGREP -v $i' *= *(0x|)[0-9]{1,};'>/dev/null || echo "possibly constant     :"$i >> $TMP
 | 
			
		||||
done
 | 
			
		||||
if test -e $TMP ; then
 | 
			
		||||
    printf '\npossibly unused variables\n'
 | 
			
		||||
    cat $TMP
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
grep '^+++ .*Changelog' $* >/dev/null || printf "\nMissing changelog entry (ignore if minor change)\n"
 | 
			
		||||
$GREP '^+++ .*Changelog' $* >/dev/null || printf "\nMissing changelog entry (ignore if minor change)\n"
 | 
			
		||||
 | 
			
		||||
cat $* | tr '\n' '@' | egrep --color=always -o '(fprintf|av_log|printf)\([^)]*\)[+ ;@]*\1'  >$TMP && printf "\nMergeable calls\n"
 | 
			
		||||
cat $* | tr '\n' '@' | $EGREP --color=always -o '(fprintf|av_log|printf)\([^)]*\)[+ ;@]*\1'  >$TMP && printf "\nMergeable calls\n"
 | 
			
		||||
cat $TMP | tr '@' '\n'
 | 
			
		||||
 | 
			
		||||
cat $* | tr '\n' '@' | egrep --color=always -o '\+ *if *\( *([A-Za-z0-9_]*) *[<>]=? *[0-9]* *\) * \1 *= *[0-9]* *;[ @\\+]*else *if *\( *\1 *[<>]=? *[0-9]* *\) *\1 *= *[0-9]* *;'  >$TMP && printf "\nav_clip / av_clip_uint8 / av_clip_int16 / ...\n"
 | 
			
		||||
cat $* | tr '\n' '@' | $EGREP --color=always -o '\+ *if *\( *([A-Za-z0-9_]*) *[<>]=? *[0-9]* *\) * \1 *= *[0-9]* *;[ @\\+]*else *if *\( *\1 *[<>]=? *[0-9]* *\) *\1 *= *[0-9]* *;'  >$TMP && printf "\nav_clip / av_clip_uint8 / av_clip_int16 / ...\n"
 | 
			
		||||
cat $TMP | tr '@' '\n'
 | 
			
		||||
 | 
			
		||||
cat $* | tr '\n' '@' | egrep --color=always -o '\+ *if *\( *([A-Za-z0-9_]*) *[<>]=? *([A-Za-z0-9_]*) *\)[ @\\+]*(\1|\2) *= *(\1|\2) *;'  >$TMP && printf "\nFFMIN/FFMAX\n"
 | 
			
		||||
cat $* | tr '\n' '@' | $EGREP --color=always -o '\+ *if *\( *([A-Za-z0-9_]*) *[<>]=? *([A-Za-z0-9_]*) *\)[ @\\+]*(\1|\2) *= *(\1|\2) *;'  >$TMP && printf "\nFFMIN/FFMAX\n"
 | 
			
		||||
cat $TMP | tr '@' '\n'
 | 
			
		||||
 | 
			
		||||
cat $* | tr '\n' '@' | egrep --color=always -o '\+ *if *\( *([A-Za-z0-9_]*) *\)[ @\\+]*av_free(p|) *\( *(&|) *\1[^-.]'  >$TMP && printf "\nav_free(NULL) is safe\n"
 | 
			
		||||
cat $* | tr '\n' '@' | $EGREP --color=always -o '\+ *if *\( *([A-Za-z0-9_]*) *\)[ @\\+]*av_free(p|) *\( *(&|) *\1[^-.]'  >$TMP && printf "\nav_free(NULL) is safe\n"
 | 
			
		||||
cat $TMP | tr '@' '\n'
 | 
			
		||||
 | 
			
		||||
cat $* | tr '\n' '@' | egrep --color=always -o '[^a-zA-Z0-9_]([a-zA-Z0-9_]*) *= *av_malloc *\([^)]*\)[ @;\\+]*memset *\( *\1'  >$TMP && printf "\nav_mallocz()\n"
 | 
			
		||||
cat $* | tr '\n' '@' | $EGREP --color=always -o '[^a-zA-Z0-9_]([a-zA-Z0-9_]*) *= *av_malloc *\([^)]*\)[ @;\\+]*memset *\( *\1'  >$TMP && printf "\nav_mallocz()\n"
 | 
			
		||||
cat $TMP | tr '@' '\n'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# doesnt work
 | 
			
		||||
#cat $* | tr '\n' '@' | egrep -o '[^a-zA-Z_0-9]([a-zA-Z][a-zA-Z_0-9]*) *=[^=].*\1' | egrep -o '[^a-zA-Z_0-9]([a-zA-Z][a-zA-Z_0-9]*) *=[^=].*\1 *=[^=]'  >$TMP && printf "\nPossibly written 2x before read\n"
 | 
			
		||||
#cat $* | tr '\n' '@' | $EGREP -o '[^a-zA-Z_0-9]([a-zA-Z][a-zA-Z_0-9]*) *=[^=].*\1' | $EGREP -o '[^a-zA-Z_0-9]([a-zA-Z][a-zA-Z_0-9]*) *=[^=].*\1 *=[^=]'  >$TMP && printf "\nPossibly written 2x before read\n"
 | 
			
		||||
#cat $TMP | tr '@' '\n'
 | 
			
		||||
 | 
			
		||||
exit
 | 
			
		||||
@ -163,7 +165,7 @@ exit
 | 
			
		||||
TODO/idea list:
 | 
			
		||||
 | 
			
		||||
for all demuxers & muxers
 | 
			
		||||
    grep for "avctx->priv_data"
 | 
			
		||||
    $EGREP for "avctx->priv_data"
 | 
			
		||||
 | 
			
		||||
vertical align =
 | 
			
		||||
/* and * align
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user