| #!/bin/sh |
| # |
| # This script scans the whole source code for symbols of the form |
| # 'xxx(yyy' where: |
| # xxx is either TRACE, WARN, ERR or WARN |
| # yyy is a C identifier |
| # It outputs on the standard output a sorted list of the |
| # yyy identifiers found in the .c files. |
| # Each identifier is reported once. Header files are not scanned. |
| # |
| # The script can be given an argument that specify the files to be |
| # searched according to the following scheme: |
| # - if the argument does not contain a slash (/), the script |
| # will search the tree rooted in the current directory for |
| # files that match that description. You can also pass |
| # wildcard arguments, but remember to quote them to prevent |
| # expansion by the shell |
| # - if the argument does contain a slash, only that file is |
| # searched |
| # - if no argument is given, the argument defaults to "*.c" |
| # that is, all C files are searched. |
| # - if more than a argument is given, only the listed files are |
| # searched. Note that in this case, the script will not |
| # attempt to find them in some subdirectories, but rather |
| # it will try to open them in the current directory. |
| # Thus, if you want to disable the automatic searching when the file |
| # name does not contain a /, either prefix the filename with ./ |
| # or add /dev/null as another argument. |
| # |
| # Dimitrie O. Paun <dimi@cs.toronto.edu> |
| # Patrik Stridvall <ps@leissner.se> |
| # |
| |
| case "$#" in |
| 0 | 1) files=${1:-'*.c'} |
| if [ `echo $files | sed 's/^\(.*\)\/$/\1/g'` = "$files" ]; then |
| files=`find . -name "$files" -print` |
| fi;; |
| * ) files="$@";; |
| esac |
| |
| ( |
| grep -h "DECLARE_DEBUG_CHANNEL *(" $files /dev/null | \ |
| sed 's/.*DECLARE_DEBUG_CHANNEL( *\([A-Za-z0-9_]*\) *).*/\1/g' |
| grep -h "DEFAULT_DEBUG_CHANNEL *(" $files /dev/null | \ |
| sed 's/.*DEFAULT_DEBUG_CHANNEL( *\([A-Za-z0-9_]*\) *).*/\1/g' |
| ) | sort | uniq |