32 lines
1.1 KiB
Bash
Executable File
32 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# check the propper syntax of C preprocessor directives.
|
|
# for example:
|
|
#if defined key_traldf_c3d && key_traldf_smag
|
|
# is not good and should be
|
|
#if defined key_traldf_c3d && defined key_traldf_smag
|
|
#
|
|
# use: go to TOOLS/MISCELLANEOUS/ and simply execute:
|
|
# ./chk_ifdef.sh
|
|
#
|
|
set -u
|
|
#
|
|
grep -r "^ *#if" ../../NEMO | grep -v "~:" > tmp$$ # get each lines of the code starting with #if
|
|
grep -r "^ *#elif" ../../NEMO | grep -v "~:" >> tmp$$ # get each lines of the code starting with #elif
|
|
#
|
|
for ll in $( seq 1 $( cat tmp$$ | wc -l ) ) # for each of these lines
|
|
do
|
|
lll=$( sed -n -e "${ll}p" tmp$$ )
|
|
nbdef=$( echo $lll | grep -o defined | wc -l ) # number of occurences of "defined"
|
|
nband=$( echo $lll | grep -o "&&" | wc -l ) # number of occurences of "&&"
|
|
nbor=$( echo $lll | grep -o "||" | wc -l ) # number of occurences of "||"
|
|
[ $nbdef -ne $(( $nband + $nbor + 1 )) ] && echo $lll # print bad line
|
|
done
|
|
rm -f tmp$$
|
|
|
|
#
|
|
# add other basic tests
|
|
#
|
|
grep -ir ":,:.*ji,jj" * | grep -v "~:"
|
|
grep -ir "ji,jj.*:,:" * | grep -v "~:"
|