# Configures KScope parameters # Checks that the given executable is indeed a Cscope-compatible application # and determines which options it supports. verifyCscope() { CSCOPE_EXE=`basename $CSCOPE_PATH` if [ $DEBUG ] then echo -n Checking $CSCOPE_EXE version... fi # Get the executable's version CSCOPE_VER_MAJOR=`$CSCOPE_PATH -V 2>&1 | grep -i $CSCOPE_EXE | sed -e "s/.*version \([1-9][0-9]*\)\.\([0-9]\).*/\1/"` CSCOPE_VER_MINOR=`$CSCOPE_PATH -V 2>&1 | grep -i $CSCOPE_EXE | sed -e "s/.*version \([1-9][0-9]*\)\.\([0-9]\).*/\2/"` if [ -n "$CSCOPE_VER_MAJOR" -a "$CSCOPE_VER_MINOR" ] then echo $CSCOPE_VER_MAJOR.$CSCOPE_VER_MINOR if [ $DEBUG ] then echo -n Cscope support for line mode verbose output... fi # Check for verbose output if [ "`$CSCOPE_PATH -h 2>&1 | grep "\-v"`" ] then CSCOPE_VERBOSE=Yes else CSCOPE_VERBOSE=No fi echo $CSCOPE_VERBOSE if [ $DEBUG ] then echo -n Cscope support slow path definitions... fi # Check for slow-path definitions if [ "`$CSCOPE_PATH -h 2>&1 | grep "\-D"`" ] then CSCOPE_SLOWPATH=Yes else CSCOPE_SLOWPATH=No fi echo $CSCOPE_SLOWPATH else echo ERROR if [ $DEBUG ] then echo -e "\n *** ERROR *** The \"cscope\" executable does not appear to be a Cscope compatible programme" fi fi } DEBUG=0 CSCOPE_OPTIONS_ONLY= # Parse command-line parameters # Supported options: # -d: Debug mode # -co: Check Cscope options only for opt in $@ do case "$opt" in "-d") DEBUG=1 ;; "-co") CSCOPE_OPTIONS_ONLY=1 ;; esac done if [ $DEBUG ] then echo -n Looking for cscope... fi if [ -z "$CSCOPE_PATH" ] then CSCOPE_PATH=`which cscope` fi if [ -n "$CSCOPE_PATH" -a -x "$CSCOPE_PATH" ] then echo $CSCOPE_PATH verifyCscope else echo ERROR if [ $DEBUG ] then echo -e "\n *** ERROR *** No Cscope executable found" fi fi if [ -n "$CSCOPE_OPTIONS_ONLY" ] then exit fi if [ $DEBUG ] then echo -n Looking for Ctags... fi if [ -z "$CTAGS_PATH" ] then for CTAGS_NAME in exctags ctags-exuberant exuberant-ctags ctags do CTAGS_PATH=`which $CTAGS_NAME` if [ -n "$CTAGS_PATH" -a -x "$CTAGS_PATH" ] then break fi done fi if [ -n "$CTAGS_PATH" ] then echo $CTAGS_PATH # echo -n Checking for Exuberant-Ctags compatibility... CTAGS_EXUB=`$CTAGS_PATH --help | grep -c "\-\-excmd=number"` if [ $CTAGS_EXUB -gt 0 ] then CTAGS_EXUB_PATH=$CTAGS_PATH echo Yes else echo ERROR # echo -e "\n *** ERROR *** The \"ctags\" executable does not appear to be compatible with Exuberant Ctags" fi else echo ERROR # echo -e "\n *** ERROR *** No Ctags executable found" fi # echo -n Looking for Dot... if [ -z "$DOT_PATH" ] then DOT_PATH=`which dot` fi if [ -n "$DOT_PATH" -a -x "$DOT_PATH" ] then echo $DOT_PATH # echo -n Checking if dot handles the -Tplain option... echo "digraph G {Hello->World}" | $DOT_PATH -Tplain 2>&1 /dev/null if [ $? -eq 0 ] then echo Yes else echo ERROR # echo -e "\n *** ERROR *** The \"dot\" executable does not support -Tplain" fi else echo ERROR # echo -e "\n *** ERROR *** No Dot executable found" fi