diff --git a/ci-scripts/astyle-options.txt b/ci-scripts/astyle-options.txt
index 7f28bbb1f01d0a7c3bcae4c6614d9a38ed5a5db1..81c4d68ace94aad5332b9bafba07025c181c469a 100644
--- a/ci-scripts/astyle-options.txt
+++ b/ci-scripts/astyle-options.txt
@@ -7,6 +7,10 @@ convert-tabs
 indent=spaces=2
 # Indent 'switch' blocks so that the 'case X:' statements are indented in the switch block. 
 indent-switches
+# Indent preprocessor blocks at bracket level 0.
+indent-preproc-block
+# Indent multi-line preprocessor #define statements.
+indent-preproc-define
 # Indent C++ comments beginning in column one.
 indent-col1-comments
 # Pad empty lines around header blocks
@@ -14,7 +18,9 @@ break-blocks
 delete-empty-lines
 # Attach a pointer or reference operator (*, &, or ^) to the variable name (right)
 align-pointer=name
-# The code line length is 200 characters/columns 
+# The code line length is 200 characters/columns (this is the maximum allowed by astyle)
 max-code-length=200
+# If the line contains logical conditionals they will be placed first on the new line.
 break-after-logical
+# Force use of the linux end of line
 lineend=linux
diff --git a/pre-commit b/pre-commit
index 82587fce34c8bd8df74b1a87e0ce6bb19ce18679..ab54a821a5436e156a444ac7fc53f9c452eb786d 100644
--- a/pre-commit
+++ b/pre-commit
@@ -4,7 +4,7 @@
 #   cp pre-commit .git/hooks
 #   chmod +x .git/hooks/pre-commit
 
-OPTIONS="--convert-tabs --indent=spaces=2 --indent-switches --indent-col1-comments --break-blocks --delete-empty-lines --align-pointer=name --keep-one-line-blocks --keep-one-line-statements --lineend=linux"
+OPTIONS="--options=ci-scripts/astyle-options.txt"
 
 RETURN=0
 ASTYLE=$(which astyle)
@@ -28,4 +28,4 @@ if [ $RETURN -eq 1 ]; then
 	echo $OPTIONS >&2
 fi
 
-exit $RETURN
\ No newline at end of file
+exit $RETURN