fmt_block.c revision 1.4
11.4Srillig/* $NetBSD: fmt_block.c,v 1.4 2022/04/24 09:04:12 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.4Srillig//indent run
271.1Srilligvoid
281.1Srilligfunction(void)
291.1Srillig{
301.1Srillig	if (true) {
311.1Srillig
321.1Srillig/* $ FIXME: indent must not merge these braces. */
331.1Srillig	} {
341.1Srillig/* $ FIXME: the following empty line was not in the input. */
351.1Srillig
361.1Srillig		print("block");
371.1Srillig	}
381.1Srillig}
391.4Srillig//indent end
401.2Srillig
411.2Srillig
421.2Srillig/*
431.2Srillig * Two adjacent blocks must not be merged.  They are typically used in C90 and
441.2Srillig * earlier to declare local variables with a limited scope.
451.2Srillig */
461.4Srillig//indent input
471.2Srilligvoid
481.2Srilligfunction(void)
491.2Srillig{
501.2Srillig	{}{}
511.2Srillig}
521.4Srillig//indent end
531.2Srillig
541.4Srillig//indent run
551.2Srilligvoid
561.2Srilligfunction(void)
571.2Srillig{
581.2Srillig	{
591.2Srillig/* $ FIXME: '{' must start a new line. */
601.2Srillig	} {
611.2Srillig	}
621.2Srillig}
631.4Srillig//indent end
641.2Srillig
651.2Srillig/*
661.2Srillig * The buggy behavior only occurs with the default setting '-br', which
671.2Srillig * places an opening brace to the right of the preceding 'if (expr)' or
681.2Srillig * similar statements.
691.2Srillig */
701.4Srillig//indent run -bl
711.2Srilligvoid
721.2Srilligfunction(void)
731.2Srillig{
741.2Srillig	{
751.2Srillig	}
761.2Srillig	{
771.2Srillig	}
781.2Srillig}
791.4Srillig//indent end
80