Skip to content
Snippets Groups Projects
Commit 3fb36784 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Create pgjindent for java.

parent 17c03b30
No related branches found
No related tags found
No related merge requests found
...@@ -30,3 +30,9 @@ We get the list of typedef's included in pgindent by running: ...@@ -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 Make sure to do the pgsql/bin directory, and the src/interfaces/odbc
directory. Merge the output of these and remove duplicates. 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
...@@ -24,7 +24,7 @@ fi ...@@ -24,7 +24,7 @@ fi
for FILE for FILE
do do
cat $FILE | cat "$FILE" |
# convert // comments to /* */ # convert // comments to /* */
sed 's;^\([ ]*\)//\(.*\)$;\1/* \2 */;g' | sed 's;^\([ ]*\)//\(.*\)$;\1/* \2 */;g' |
# mark some comments for special treatment later # mark some comments for special treatment later
...@@ -1319,7 +1319,7 @@ int pgindent_func_no_var_fix;\ ...@@ -1319,7 +1319,7 @@ int pgindent_func_no_var_fix;\
# add space after comments that start on tab stops # add space after comments that start on tab stops
sed 's,;\(/\*.*\*/\)$,; \1,' | sed 's,;\(/\*.*\*/\)$,; \1,' |
# work around #else indenting next line if #ifdef defines variables at top # 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 ' awk '
{ {
if ($0 ~ "^[ ]*int[ ]*pgindent_func_no_var_fix;") if ($0 ~ "^[ ]*int[ ]*pgindent_func_no_var_fix;")
...@@ -1329,6 +1329,7 @@ int pgindent_func_no_var_fix;\ ...@@ -1329,6 +1329,7 @@ int pgindent_func_no_var_fix;\
} }
else print $0; else print $0;
}' | }' |
# remove tabs and retab with four spaces
detab -t8 -qc | detab -t8 -qc |
entab -t4 -qc | entab -t4 -qc |
# move trailing * in function return type # move trailing * in function return type
...@@ -1459,7 +1460,7 @@ int pgindent_func_no_var_fix;\ ...@@ -1459,7 +1460,7 @@ int pgindent_func_no_var_fix;\
} }
else print $0; else print $0;
}' | }' |
cat >/tmp/$$ && cat /tmp/$$ >$FILE cat >/tmp/$$ && cat /tmp/$$ >"$FILE"
done done
# The 'for' loop makes these backup files useless so delete them # The 'for' loop makes these backup files useless so delete them
......
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment