12345678910111213141516171819202122232425262728293031 |
- #!/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 "~:"
|