diff --git a/libminijail.c b/libminijail.c
index fe37666..e988c00 100644
--- a/libminijail.c
+++ b/libminijail.c
@@ -552,7 +552,8 @@
 {
 	if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL)) {
 		if ((errno == ENOSYS) && SECCOMP_SOFTFAIL) {
-			warn("not loading seccomp filter, seccomp not supported");
+			warn("not loading seccomp filter,"
+			     " seccomp not supported");
 			return;
 		}
 	}
@@ -915,7 +916,10 @@
 	if (j->mounts_head && (ret = mount_one(j, j->mounts_head)))
 		return ret;
 
-	/* Keep the fd for both old and new root. It will be used in fchdir later. */
+	/*
+	 * Keep the fd for both old and new root.
+	 * It will be used in fchdir later.
+	 */
 	oldroot = open("/", O_DIRECTORY | O_RDONLY);
 	if (oldroot < 0)
 		pdie("failed to open / for fchdir");
@@ -923,7 +927,10 @@
 	if (newroot < 0)
 		pdie("failed to open %s for fchdir", j->chrootdir);
 
-	/* To ensure chrootdir is the root of a file system, do a self bind mount. */
+	/*
+	 * To ensure chrootdir is the root of a file system,
+	 * do a self bind mount.
+	 */
 	if (mount(j->chrootdir, j->chrootdir, "bind", MS_BIND | MS_REC, ""))
 		pdie("failed to bind mount '%s'", j->chrootdir);
 	if (chdir(j->chrootdir))
@@ -1122,7 +1129,8 @@
 	 * Install the syscall filter.
 	 */
 	if (j->flags.seccomp_filter) {
-		if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, j->filter_prog)) {
+		if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER,
+			  j->filter_prog)) {
 			if ((errno == ENOSYS) && SECCOMP_SOFTFAIL) {
 				warn("seccomp not supported");
 				return;
@@ -1429,9 +1437,11 @@
 }
 
 int API minijail_run_pid_pipes_no_preload(struct minijail *j,
-					  const char *filename, char *const argv[],
+					  const char *filename,
+					  char *const argv[],
 					  pid_t *pchild_pid,
-					  int *pstdin_fd, int *pstdout_fd, int *pstderr_fd) {
+					  int *pstdin_fd, int *pstdout_fd,
+					  int *pstderr_fd) {
 	return minijail_run_internal(j, filename, argv, pchild_pid,
 				     pstdin_fd, pstdout_fd, pstderr_fd, false);
 }
diff --git a/libminijail.h b/libminijail.h
index f5c6ec7..80bffc0 100644
--- a/libminijail.h
+++ b/libminijail.h
@@ -203,7 +203,8 @@
  */
 int minijail_run_pid_pipes_no_preload(struct minijail *j, const char *filename,
 				      char *const argv[], pid_t *pchild_pid,
-				      int *pstdin_fd, int *pstdout_fd, int *pstderr_fd);
+				      int *pstdin_fd, int *pstdout_fd,
+				      int *pstderr_fd);
 
 /*
  * Kill the specified minijail. The minijail must have been created with pid
