Module Name:    src
Committed By:   rillig
Date:           Mon Jun  5 09:41:40 UTC 2023

Modified Files:
        src/tests/usr.bin/indent: lsym_do.c
        src/usr.bin/indent: indent.c io.c

Log Message:
indent: fix formatting of 'do' statements


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/tests/usr.bin/indent/lsym_do.c
cvs rdiff -u -r1.331 -r1.332 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.195 -r1.196 src/usr.bin/indent/io.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/usr.bin/indent/lsym_do.c
diff -u src/tests/usr.bin/indent/lsym_do.c:1.9 src/tests/usr.bin/indent/lsym_do.c:1.10
--- src/tests/usr.bin/indent/lsym_do.c:1.9	Mon Jun  5 08:22:00 2023
+++ src/tests/usr.bin/indent/lsym_do.c	Mon Jun  5 09:41:40 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lsym_do.c,v 1.9 2023/06/05 08:22:00 rillig Exp $ */
+/* $NetBSD: lsym_do.c,v 1.10 2023/06/05 09:41:40 rillig Exp $ */
 
 /*
  * Tests for the token lsym_do, which represents the keyword 'do' that starts
@@ -131,25 +131,11 @@ variants(void)
 
 	word
 	do {
-	} while		(false);
-
-label:	do {
 	} while (false);
-}
-//indent end
 
-//indent run -sob
-{
-	/* */
-	do {
-	} while (false);
-// $ FIXME: This blank line is not optional and must be preserved.
-	word
-	do {
-// $ FIXME: The expression is indented too far to the right.
-	} while		(false);
-// $ FIXME: This blank line is not optional and must be preserved.
 label:	do {
 	} while (false);
 }
 //indent end
+
+//indent run-equals-prev-output -sob

Index: src/usr.bin/indent/indent.c
diff -u src/usr.bin/indent/indent.c:1.331 src/usr.bin/indent/indent.c:1.332
--- src/usr.bin/indent/indent.c:1.331	Mon Jun  5 09:10:31 2023
+++ src/usr.bin/indent/indent.c	Mon Jun  5 09:41:40 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.c,v 1.331 2023/06/05 09:10:31 rillig Exp $	*/
+/*	$NetBSD: indent.c,v 1.332 2023/06/05 09:41:40 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: indent.c,v 1.331 2023/06/05 09:10:31 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.332 2023/06/05 09:41:40 rillig Exp $");
 
 #include <sys/param.h>
 #include <err.h>
@@ -846,6 +846,7 @@ static void
 process_do(void)
 {
 	ps.in_stmt_or_decl = false;
+	ps.in_decl = false;
 
 	if (code.len > 0) {	/* make sure this starts a line */
 		if (opt.verbose)

Index: src/usr.bin/indent/io.c
diff -u src/usr.bin/indent/io.c:1.195 src/usr.bin/indent/io.c:1.196
--- src/usr.bin/indent/io.c:1.195	Mon Jun  5 07:23:03 2023
+++ src/usr.bin/indent/io.c	Mon Jun  5 09:41:40 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: io.c,v 1.195 2023/06/05 07:23:03 rillig Exp $	*/
+/*	$NetBSD: io.c,v 1.196 2023/06/05 09:41:40 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: io.c,v 1.195 2023/06/05 07:23:03 rillig Exp $");
+__RCSID("$NetBSD: io.c,v 1.196 2023/06/05 09:41:40 rillig Exp $");
 
 #include <stdio.h>
 
@@ -169,7 +169,8 @@ want_blank_line(void)
 static bool
 is_blank_line_optional(void)
 {
-	if (out.prev_line_kind == lk_stmt_head)
+	if (out.prev_line_kind == lk_stmt_head
+	    && ps.prev_lsym != lsym_semicolon)
 		return wrote_newlines >= 1;
 	if (ps.tos >= 2)
 		return wrote_newlines >= 2;

Reply via email to