From d2bc23b6767ab5e3d5e4c930fbcc918cc6932707 Mon Sep 17 00:00:00 2001 From: Nate Bargmann Date: Fri, 22 May 2020 07:36:24 -0500 Subject: [PATCH] Remove bashisms from shell scripts Replace backticks in bootstrap with POSIX subshell substitution. Restructure cppcheck.sh to help readability and remove bashisms. --- bootstrap | 6 +-- cppcheck.sh | 104 +++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 101 insertions(+), 9 deletions(-) diff --git a/bootstrap b/bootstrap index 51f349a9e..db85b1e9d 100755 --- a/bootstrap +++ b/bootstrap @@ -12,13 +12,13 @@ AUTOMAKE=automake # Check if we compile on OSX and resolve the name conflict with # Apple's tool for creating Mach-O dynamic libraries. -case `uname` in Darwin*) LIBTOOLIZE=glibtoolize ;; esac +case $(uname) in Darwin*) LIBTOOLIZE=glibtoolize ;; esac # variables below this line should not need modification -SRCDIR=`dirname "$0"` +SRCDIR=$(dirname "$0") test -z "$SRCDIR" && SRCDIR=. -ORIGDIR=`pwd` +ORIGDIR=$(pwd) PROJECT=hamlib diff --git a/cppcheck.sh b/cppcheck.sh index eb09e6f10..a73f6fbdf 100755 --- a/cppcheck.sh +++ b/cppcheck.sh @@ -1,16 +1,108 @@ +#!/bin/sh + # Author Michael Black W9MDB # This SUPPRESS setting results in no warnings as of 2020-01-14 # There are things that could still be done...especialy in the C++ area echo "See cppcheck.log when done" echo "There should be no errors or warnings" echo "This takes several hours to run" + # We do suppress some errors which are expected or other code # There are quite a few C++ items to take care of still if anybody cares -SUPPRESS="-i c++/rigclass.cc -i c++/rotclass.cc -i c++/ampclass.cc -i bindings -i lib/getopt.c -i lib/getopt_long.c --suppress=*:extra/gnuradio/demod.h --suppress=*:extra/gnuradio/HrAGC.h --suppress=*:extra/gnuradio/nfm.h --suppress=*:extra/gnuradio/am.h --suppress=*:extra/gnuradio/ssb.h --suppress=*:extra/gnuradio/wfm.h --suppress=*:extra/gnuradio/wfm.h --suppress=*:extra/gnuradio/HrAGC.h --suppress=knownConditionTrueFalse:tests/rotctl.c --suppress=knownConditionTrueFalse:tests/rigctl.c --suppress=knownConditionTrueFalse:tests/ampctl.c --suppress=knownConditionTrueFalse:tests/rotctl_parse.c --suppress=knownConditionTrueFalse:tests/rigctl_parse.c --suppress=knownConditionTrueFalse:tests/ampctl_parse.c" -#CHECK="-D RIG_LEVEL_LINEOUT=1 -D SIGPIPE -D SIGINT -D IPV6_V6ONLY -D RIG_MODE_WFM -D ABI_VERSION=4 -D F_SETSIG=1 -U O_ASYNC -U SA_SIGINFO -U HASH_BLOOM -U HASH_EMIT_KEYS -U HASH_FUNCTION -U __USEP5P6__" -CHECK="-Duint64_t -D HAVE_CONFIG_H -D HAMLIB_EXPORT -D HAMLIB_EXPORT_VAR -D __WORDSIZE -D BACKEND_EXPORT -D PRId64 -D DECLARE_INITRIG_BACKEND -D DECLARE_INITRROT_BACKEND -D DECLARE_INITAMP_BACKEND -U RIG_LEVEL_LINEOUT -U O_ASYNC -U F_SETSIG -U SA_SIGINFO -U SIGPIPE -U gai_strerror -U CMSPAR -U TIOCCBRK -U TIOCSBRK -U TIOCMBIC -U TIOCMBIS -U HASH_BLOOM -U HASH_EMIT_KEYS -U HASH_FUNCTION -U IPV6_V6ONLY -D SIGINT -D WIN32 -D HAVE_SIGNAL" -if [ "$1" == "" ];then -cppcheck --inline-suppr -I src -I include --include=include/config.h --include=include/hamlib/rig.h -q --force --enable=all --std=c99 $SUPPRESS $CHECK . &>cppcheck.log +SUPPRESS="\ +-i c++/rigclass.cc \ +-i c++/rotclass.cc \ +-i c++/ampclass.cc \ +-i bindings \ +-i lib/getopt.c \ +-i lib/getopt_long.c \ +--suppress=*:extra/gnuradio/demod.h \ +--suppress=*:extra/gnuradio/HrAGC.h \ +--suppress=*:extra/gnuradio/nfm.h \ +--suppress=*:extra/gnuradio/am.h \ +--suppress=*:extra/gnuradio/ssb.h \ +--suppress=*:extra/gnuradio/wfm.h \ +--suppress=*:extra/gnuradio/wfm.h \ +--suppress=*:extra/gnuradio/HrAGC.h \ +--suppress=knownConditionTrueFalse:tests/rotctl.c \ +--suppress=knownConditionTrueFalse:tests/rigctl.c \ +--suppress=knownConditionTrueFalse:tests/ampctl.c \ +--suppress=knownConditionTrueFalse:tests/rotctl_parse.c \ +--suppress=knownConditionTrueFalse:tests/rigctl_parse.c \ +--suppress=knownConditionTrueFalse:tests/ampctl_parse.c" + +#CHECK="\ +#-D RIG_LEVEL_LINEOUT=1 \ +#-D SIGPIPE \ +#-D SIGINT \ +# -D IPV6_V6ONLY \ +# -D RIG_MODE_WFM \ +# -D ABI_VERSION=4 \ +# -D F_SETSIG=1 \ +# -U O_ASYNC \ +# -U SA_SIGINFO \ +# -U HASH_BLOOM \ +# -U HASH_EMIT_KEYS \ +# -U HASH_FUNCTION \ +# -U __USEP5P6__" + +CHECK="\ +-Duint64_t \ +-D HAVE_CONFIG_H \ +-D HAMLIB_EXPORT \ +-D HAMLIB_EXPORT_VAR \ +-D __WORDSIZE \ +-D BACKEND_EXPORT \ +-D PRId64 \ +-D DECLARE_INITRIG_BACKEND \ +-D DECLARE_INITRROT_BACKEND \ +-D DECLARE_INITAMP_BACKEND \ +-U RIG_LEVEL_LINEOUT \ +-U O_ASYNC \ +-U F_SETSIG \ +-U SA_SIGINFO \ +-U SIGPIPE \ +-U gai_strerror \ +-U CMSPAR \ +-U TIOCCBRK \ +-U TIOCSBRK \ +-U TIOCMBIC \ +-U TIOCMBIS \ +-U HASH_BLOOM \ +-U HASH_EMIT_KEYS \ +-U HASH_FUNCTION \ +-U IPV6_V6ONLY \ +-D SIGINT \ +-D WIN32 \ +-D HAVE_SIGNAL" + +# If no directory or file name provided, scan the entire project. +if test $# -eq 0 ; then + cppcheck --inline-suppr \ + -I src \ + -I include \ + --include=include/config.h \ + --include=include/hamlib/rig.h \ + -q \ + --force \ + --enable=all \ + --std=c99 \ + $SUPPRESS \ + $CHECK \ + . \ + >cppcheck.log 2>&1 else -cppcheck --check-config --inline-suppr -I src -I include --include=include/config.h --include=include/hamlib/rig.h -q --force --enable=all --std=c99 $SUPPRESS $CHECK $1 + cppcheck --check-config \ + --inline-suppr \ + -I src \ + -I include \ + --include=include/config.h \ + --include=include/hamlib/rig.h \ + -q \ + --force \ + --enable=all \ + --std=c99 \ + $SUPPRESS \ + $CHECK \ + $1 fi