A simple script to indent GDB source code.
authorAndrew Cagney <cagney@redhat.com>
Fri, 9 Nov 2001 04:00:00 +0000 (04:00 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 9 Nov 2001 04:00:00 +0000 (04:00 +0000)
gdb/ChangeLog
gdb/gdb_indent.sh [new file with mode: 0755]

index 7a54716e2c20b2d84e7fe4235c7fc25a55312603..b714e7878bb3208987f5832a78e05958daefffd7 100644 (file)
@@ -1,3 +1,7 @@
+2001-11-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdb_indent.sh: New file.
+
 2001-11-08  Jim Blandy  <jimb@redhat.com>
 
        * s390-tdep.c (s390_get_frame_info): Initialize got_load_addr and
diff --git a/gdb/gdb_indent.sh b/gdb/gdb_indent.sh
new file mode 100755 (executable)
index 0000000..e54e08e
--- /dev/null
@@ -0,0 +1,62 @@
+#!/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.
+
+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.
+
+case `${indent} --version 2>/dev/null < /dev/null` in
+    GNU*2.2.6 ) ;;
+    *GNU* ) echo "Incorrect version of GNU indent" 1>&2 ;;
+    * ) echo "Indent is not GNU" 1>&2 ;;
+esac
+
+
+# Check that we're in the GDB source directory
+
+case `pwd` in
+    */gdb ) ;;
+    * ) echo "Not in GDB directory" 1>&2 ; exit 1 ;;
+esac
+
+
+# Run indent per GDB specs
+
+types="-T FILE `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} "$@"