2025-09-05 09:42:21 +02:00

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 "~:"