Create pgjindent for java.

This commit is contained in:
Bruce Momjian 2001-09-07 21:25:44 +00:00
parent 17c03b30b0
commit 3fb3678409
3 changed files with 37 additions and 3 deletions

View File

@ -30,3 +30,9 @@ We get the list of typedef's included in pgindent by running:
Make sure to do the pgsql/bin directory, and the src/interfaces/odbc
directory. Merge the output of these and remove duplicates.
---------------------------------------------------------------------------
For java, we use astyle, http://astyle.sourceforge.net/, with the
following options:
find . -name '*.java' -type f -print | xargs -n100 pgjindent

View File

@ -24,7 +24,7 @@ fi
for FILE
do
cat $FILE |
cat "$FILE" |
# convert // comments to /* */
sed 's;^\([ ]*\)//\(.*\)$;\1/* \2 */;g' |
# mark some comments for special treatment later
@ -1319,7 +1319,7 @@ int pgindent_func_no_var_fix;\
# add space after comments that start on tab stops
sed 's,;\(/\*.*\*/\)$,; \1,' |
# work around #else indenting next line if #ifdef defines variables at top
# work around case misindenting function has no variables defined
# work around misindenting of function with no variables defined
awk '
{
if ($0 ~ "^[ ]*int[ ]*pgindent_func_no_var_fix;")
@ -1329,6 +1329,7 @@ int pgindent_func_no_var_fix;\
}
else print $0;
}' |
# remove tabs and retab with four spaces
detab -t8 -qc |
entab -t4 -qc |
# move trailing * in function return type
@ -1459,7 +1460,7 @@ int pgindent_func_no_var_fix;\
}
else print $0;
}' |
cat >/tmp/$$ && cat /tmp/$$ >$FILE
cat >/tmp/$$ && cat /tmp/$$ >"$FILE"
done
# The 'for' loop makes these backup files useless so delete them

27
src/tools/pgindent/pgjindent Executable file
View File

@ -0,0 +1,27 @@
#!/bin/sh
trap "rm -f /tmp/$$ /tmp/$$a" 0 1 2 3 15
entab </dev/null >/dev/null
if [ "$?" -ne 0 ]
then echo "Go to the src/tools/entab directory and do a 'make' and 'make install'." >&2
echo "This will put the 'entab' command in your path." >&2
echo "Then run $0 again."
exit 1
fi
astyle --version </dev/null >/dev/null 2>&1
if [ "$?" -eq 0 ]
then echo "You do not appear to have 'astyle' installed on your system." >&2
exit 1
fi
for FILE
do
astyle --style=java -b -p -j < "$FILE" >/tmp/$$ 2>/tmp/$$a
if [ "$?" -ne 0 -o -s /tmp/$$a ]
then echo "$FILE"
cat /tmp/$$a
fi
cat /tmp/$$ |
entab -t4 -qc |
cat >/tmp/$$a && cat /tmp/$$a >"$FILE"
done