X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=test%2Flistused.sh;h=2151653e5807440f5036406298f760c98207857d;hb=HEAD;hp=70352faab716ac945effb4b18559d20e99569258;hpb=a8987e73ec254703634802b4f7ee30d3a485524d;p=ncurses.git diff --git a/test/listused.sh b/test/listused.sh index 70352faa..45653ebd 100755 --- a/test/listused.sh +++ b/test/listused.sh @@ -1,11 +1,42 @@ #!/bin/sh -# $Id: listused.sh,v 1.5 2003/07/05 19:02:41 tom Exp $ -# A very simple script to list entrypoints that are used by either a test +############################################################################## +# Copyright 2020-2021,2022 Thomas E. Dickey # +# Copyright 2003-2006,2010 Free Software Foundation, Inc. # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the "Software"), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, distribute # +# with modifications, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the # +# following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # +# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +# Except as contained in this notice, the name(s) of the above copyright # +# holders shall not be used in advertising or otherwise to promote the sale, # +# use or other dealings in this Software without prior written # +# authorization. # +############################################################################## +# $Id: listused.sh,v 1.12 2022/07/16 16:33:38 tom Exp $ +# A very simple script to list all entrypoints that are used by either a test # program, or within the libraries. This relies on the output format of 'nm', # and assumes that the libraries are configured with TRACE defined, and using # these options: # --disable-macros +# --enable-opaque-curses +# --enable-sp-funcs # --enable-widec +# --without-gpm # Static libraries are used, to provide some filtering based on internal usage # of the different symbols. @@ -36,7 +67,7 @@ do ;; *) NAME=../objects/${name}.o - if test -f $NAME + if test -f "$NAME" then PROGS="$PROGS $NAME" fi @@ -47,19 +78,19 @@ done # For each library - for lib in ../lib/*.a do - LIB=`basename $lib .a` + LIB=`basename "$lib" .a` case $LIB in *_*|*+*) continue ;; esac - tmp=`echo $LIB|sed -e 's/w$//'` + tmp=`echo "$LIB"|sed -e 's/w$//'` echo echo "${tmp}:" - echo $tmp |sed -e 's/./-/g' + echo "$tmp" |sed -e 's/./-/g' # Construct a list of public externals provided by the library. - WANT=`nm $NM_OPTS $lib |\ + WANT=`nm $NM_OPTS "$lib" |\ sed -e 's/^[^ ]*//' \ -e 's/^ *//' \ -e '/^[ a-z] /d' \ @@ -82,7 +113,7 @@ do tags=$prog ;; *) - TEST=`nm $NM_OPTS $prog |\ + TEST=`nm $NM_OPTS "$prog" |\ sed -e 's/^[^ ]*//' \ -e 's/^ *//' \ -e '/^[ a-z] /d' \ @@ -94,7 +125,7 @@ do -e '/^[^_]/d'` if test -n "$TEST" then - have=`basename $prog .o` + have=`basename "$prog" .o` if test -n "$HAVE" then if test "$last" = "$tags" @@ -116,13 +147,13 @@ do if test -z "$HAVE" then for tmp in ../lib/*.a - do + do case $tmp in *_*|*+*) continue ;; esac - TEST=`nm $NM_OPTS $tmp |\ + TEST=`nm $NM_OPTS "$tmp" |\ sed -e 's/^[^ ]*//' \ -e 's/^ *//' \ -e '/^[ a-z] /d' \ @@ -135,20 +166,20 @@ do -e '/^[^_]/d'` if test -n "$TEST" then - tmp=`basename $tmp .a |sed -e 's/w$//'` - HAVE=`echo $tmp | sed -e 's/lib/lib: /'` + tmp=`basename "$tmp" .a |sed -e 's/w$//'` + HAVE=`echo "$tmp" | sed -e 's/lib/lib: /'` break fi done fi test -z "$HAVE" && HAVE="-" - lenn=`expr 39 - length $name` - lenn=`expr $lenn / 8` + lenn=`expr 39 - length "$name"` + lenn=`expr "$lenn" / 8` tabs= - while test $lenn != 0 + while test "$lenn" != 0 do tabs="${tabs} " - lenn=`expr $lenn - 1` + lenn=`expr "$lenn" - 1` done echo "${name}${tabs}${HAVE}" done