diff --git a/.clang-format b/.clang-format
index 0823739..23d224b 100644
--- a/.clang-format
+++ b/.clang-format
@@ -32,6 +32,7 @@
 IndentWidth: '4'
 IndentWrappedFunctionNames: false
 InsertBraces: true
+InsertNewlineAtEOF: true
 KeepEmptyLines:
   AtEndOfFile: false
   AtStartOfBlock: false
diff --git a/src/compat/compat-strtok_r.c b/src/compat/compat-strtok_r.c
index debcdd3..4240458 100644
--- a/src/compat/compat-strtok_r.c
+++ b/src/compat/compat-strtok_r.c
@@ -98,4 +98,4 @@
     }
     /* NOTREACHED */
 }
-#endif
\ No newline at end of file
+#endif
diff --git a/src/openvpn/schedule.c b/src/openvpn/schedule.c
index 6c60dc2..ff243dc 100644
--- a/src/openvpn/schedule.c
+++ b/src/openvpn/schedule.c
@@ -389,4 +389,4 @@
 {
     s->earliest_wakeup = NULL; /* invalidate cache */
     schedule_remove_node(s, e);
-}
\ No newline at end of file
+}
diff --git a/src/openvpn/siphash.c b/src/openvpn/siphash.c
index e31b708..b9fc5e3 100644
--- a/src/openvpn/siphash.c
+++ b/src/openvpn/siphash.c
@@ -46,4 +46,4 @@
     } ret;
     siphash(k, length, hash_key, ret.out, sizeof(ret.out));
     return ret.hash;
-}
\ No newline at end of file
+}
diff --git a/tests/unit_tests/openvpn/siphash_openssl.h b/tests/unit_tests/openvpn/siphash_openssl.h
index 0f1d329..49c6a9d 100644
--- a/tests/unit_tests/openvpn/siphash_openssl.h
+++ b/tests/unit_tests/openvpn/siphash_openssl.h
@@ -61,4 +61,4 @@
  */
 bool
 siphash_openssl_available(void *sip_context);
-#endif /* ifndef SIPHASH_OPENSSL_H */
\ No newline at end of file
+#endif /* ifndef SIPHASH_OPENSSL_H */
diff --git a/tests/unit_tests/openvpn/test_schedule.h b/tests/unit_tests/openvpn/test_schedule.h
index 55dc591..3705af9 100644
--- a/tests/unit_tests/openvpn/test_schedule.h
+++ b/tests/unit_tests/openvpn/test_schedule.h
@@ -24,4 +24,4 @@
 /** Runs the schedule test */
 void
 schedule_test(void **state);
-#endif
\ No newline at end of file
+#endif
