1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/bin/sh
- # Try to find a GNU indent. There could be a BSD indent in front of a
- # GNU gindent so when indent is found, keep looking.
- # Make certain that the script is not running in an internationalized
- # environment.
- LANG=c ; export LANG
- LC_ALL=c ; export LC_ALL
- gindent=
- indent=
- paths=`echo $PATH | sed \
- -e 's/::/:.:/g' \
- -e 's/^:/.:/' \
- -e 's/:$/:./' \
- -e 's/:/ /g'`
- for path in $paths
- do
- if test ! -n "${gindent}" -a -x ${path}/gindent
- then
- gindent=${path}/gindent
- break
- elif test ! -n "${indent}" -a -x ${path}/indent
- then
- indent=${path}/indent
- fi
- done
- if test -n "${gindent}"
- then
- indent=${gindent}
- elif test -n "${indent}"
- then
- :
- else
- echo "Indent not found" 1>&2
- fi
- # Check that the indent found is both GNU and a reasonable version.
- # Different indent versions give different indentation.
- m1=2
- m2=2
- m3=9
- version=`${indent} --version 2>/dev/null < /dev/null`
- case "${version}" in
- *GNU* ) ;;
- * ) echo "error: GNU indent $m1.$m2.$m3 expected" 1>&2 ; exit 1;;
- esac
- v1=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\1/'`
- v2=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\2/'`
- v3=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\3/'`
- if test $m1 -ne $v1 -o $m2 -ne $v2 -o $m3 -gt $v3
- then
- echo "error: Must be GNU indent version $m1.$m2.$m3 or later" 1>&2
- exit 1
- fi
- if test $m3 -ne $v3
- then
- echo "warning: GNU indent version $m1.$m2.$m3 recommended" 1>&2
- fi
- # Check that we're in the GDB source directory
- case `pwd` in
- */gdb ) ;;
- */sim/* ) ;;
- * ) echo "Not in GDB directory" 1>&2 ; exit 1 ;;
- esac
- # Run indent per GDB specs
- types="\
- -T FILE \
- -T bfd -T asection -T pid_t \
- -T prgregset_t -T fpregset_t -T gregset_t -T sigset_t \
- -T td_thrhandle_t -T td_event_msg_t -T td_thr_events_t \
- -T td_notify_t -T td_thr_iter_f -T td_thrinfo_t \
- -T caddr_t \
- `cat *.h | sed -n \
- -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_ftype\).*$/-T \1/p' \
- -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_func\).*$/-T \1/p' \
- -e 's/^typedef.*[^a-zA-Z0-9_]\([a-zA-Z0-9_]*[a-zA-Z0-9_]\);$/-T \1/p' \
- | sort -u`"
- ${indent} ${types} "$@"
|