fmt_block.c revision 1.6
11.6Srillig/* $NetBSD: fmt_block.c,v 1.6 2023/05/13 06:52:48 rillig Exp $ */
21.1Srillig
31.2Srillig/*
41.2Srillig * Tests for formatting blocks of statements and declarations.
51.2Srillig *
61.2Srillig * See also:
71.2Srillig *	lsym_lbrace.c
81.2Srillig *	psym_stmt.c
91.2Srillig *	psym_stmt_list.c
101.2Srillig */
111.2Srillig
121.4Srillig//indent input
131.1Srilligvoid
141.1Srilligfunction(void)
151.1Srillig{
161.1Srillig	if (true) {
171.1Srillig
181.1Srillig	}
191.1Srillig
201.1Srillig	{
211.1Srillig		print("block");
221.1Srillig	}
231.1Srillig}
241.4Srillig//indent end
251.1Srillig
261.6Srillig/*
271.6Srillig * Before 2023-05-11, indent incorrectly merged the '} {' into a single line,
281.6Srillig * even though they are completely unrelated.
291.6Srillig */
301.5Srillig//indent run-equals-input
311.2Srillig
321.2Srillig
331.2Srillig/*
341.2Srillig * Two adjacent blocks must not be merged.  They are typically used in C90 and
351.2Srillig * earlier to declare local variables with a limited scope.
361.2Srillig */
371.4Srillig//indent input
381.2Srilligvoid
391.2Srilligfunction(void)
401.2Srillig{
411.2Srillig	{}{}
421.2Srillig}
431.4Srillig//indent end
441.2Srillig
451.4Srillig//indent run
461.2Srilligvoid
471.2Srilligfunction(void)
481.2Srillig{
491.2Srillig	{
501.2Srillig/* $ FIXME: '{' must start a new line. */
511.2Srillig	} {
521.2Srillig	}
531.2Srillig}
541.4Srillig//indent end
551.2Srillig
561.2Srillig/*
571.2Srillig * The buggy behavior only occurs with the default setting '-br', which
581.2Srillig * places an opening brace to the right of the preceding 'if (expr)' or
591.2Srillig * similar statements.
601.2Srillig */
611.4Srillig//indent run -bl
621.2Srilligvoid
631.2Srilligfunction(void)
641.2Srillig{
651.2Srillig	{
661.2Srillig	}
671.2Srillig	{
681.2Srillig	}
691.2Srillig}
701.4Srillig//indent end
71