Module Name:    src
Committed By:   rillig
Date:           Sat Feb 12 19:46:56 UTC 2022

Modified Files:
        src/tests/usr.bin/indent: lsym_tag.c

Log Message:
tests/indent: add another test for indentation of enum constants

To prevent an overzealous quick hack for indenting enum constants in a
typedef, as part of fixing PR#55453.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/indent/lsym_tag.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_tag.c
diff -u src/tests/usr.bin/indent/lsym_tag.c:1.1 src/tests/usr.bin/indent/lsym_tag.c:1.2
--- src/tests/usr.bin/indent/lsym_tag.c:1.1	Thu Nov 18 21:19:19 2021
+++ src/tests/usr.bin/indent/lsym_tag.c	Sat Feb 12 19:46:56 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: lsym_tag.c,v 1.1 2021/11/18 21:19:19 rillig Exp $ */
+/* $NetBSD: lsym_tag.c,v 1.2 2022/02/12 19:46:56 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -6,8 +6,38 @@
  * 'struct', 'union' or 'enum' that declare, define or use a tagged type.
  */
 
+/* TODO: Add systematic tests for 'struct'. */
+/* TODO: Add systematic tests for 'union'. */
+/* TODO: Add systematic tests for 'enum'. */
+
+
 #indent input
-// TODO: add input
+int
+indent_enum_constants(void)
+{
+	enum color {
+		red,
+		green
+	};
+	enum color	colors[] = {
+		red,
+		red,
+		red,
+	};
+	/*
+	 * Ensure that the token sequence 'enum type {' only matches if there
+	 * are no other tokens in between, to prevent statement continuations
+	 * from being indented like enum constant declarations.
+	 *
+	 * See https://gnats.netbsd.org/55453.
+	 */
+	if (colors[0] == (enum color)1) {
+		return 1
+		  + 2
+		  + 3;
+	}
+	return 0;
+}
 #indent end
 
-#indent run-equals-input
+#indent run-equals-input -ci2

Reply via email to