dtcm: Coverity 89670, 88380 and 88201
[oweals/cde.git] / cde / programs / dtprintinfo / sym2num
index 8799eb372a73538fcdc38efd308b25e7cb210e70..0f554d8611654d0947faa7bd5d5f4a1b046dbbdb 100755 (executable)
 #             by gencat.
 #
 
-typeset -u CAP_SYMBOL_NAME
-
 (( $# != 2 )) && { print "usage: sym2num <symbol name> <source file>" ;\
                  exit 1 ; }
 
 SYMBOL_NAME=$1
-CAP_SYMBOL_NAME=$1   # capitalized symbol name
+CAP_SYMBOL_NAME=`echo $1 | tr '[:lower:]' '[:upper:]'`  # capitalized symbol
 SOURCE_FILE=$2
 inc_file=${SYMBOL_NAME}_msg.h     # include file
 
@@ -58,11 +56,18 @@ awk '/^\$set/ { SET_NAME=$2; SET_COUNT++; MES_COUNT=0;
 if [[ -f /usr/ccs/lib/cpp ]]   #IBM & SUN
 then
    cpp_path=/usr/ccs/lib       
+elif [[ -f /usr/libexec/cpp ]] #BSD
+then
+   cpp_path=/usr/libexec
+elif [[ -f /usr/bin/cpp ]]     #BSD
+then
+   cpp_path=/usr/bin
 elif [[ -f /lib/cpp ]]         #HP
 then
    cpp_path=/lib
 fi
    ( cat ${inc_file} | sed -n /define/p ; cat ${SOURCE_FILE} ) | \
-   ${cpp_path}/cpp -P | sed '/^$/d' | sed 's/^\([1-9][0-9]*\)[ ]*\(.*\)/\1 \2/'
+   ${cpp_path}/cpp -P | sed -e '/^$/d' -e 's/^\$$/\$ /' \
+    -e 's/\"\"$/\"/' -e 's/XDQUOTE/\"/' -e "s/XSQUOTE/\'/" \
+    -e 's/^\([1-9][0-9]*\)[ ]*[\"]*\(\"\)\(.*\)/\1 \2\3/'
 
-