fmt_block.c revision 1.2
11.2Srillig/* $NetBSD: fmt_block.c,v 1.2 2021/11/19 22:24:29 rillig Exp $ */
21.1Srillig/* $FreeBSD$ */
31.1Srillig
41.2Srillig/*
51.2Srillig * Tests for formatting blocks of statements and declarations.
61.2Srillig *
71.2Srillig * See also:
81.2Srillig *	lsym_lbrace.c
91.2Srillig *	psym_stmt.c
101.2Srillig *	psym_stmt_list.c
111.2Srillig */
121.2Srillig
131.1Srillig#indent input
141.1Srilligvoid
151.1Srilligfunction(void)
161.1Srillig{
171.1Srillig	if (true) {
181.1Srillig
191.1Srillig	}
201.1Srillig
211.1Srillig	{
221.1Srillig		print("block");
231.1Srillig	}
241.1Srillig}
251.1Srillig#indent end
261.1Srillig
271.1Srillig#indent run
281.1Srilligvoid
291.1Srilligfunction(void)
301.1Srillig{
311.1Srillig	if (true) {
321.1Srillig
331.1Srillig/* $ FIXME: indent must not merge these braces. */
341.1Srillig	} {
351.1Srillig/* $ FIXME: the following empty line was not in the input. */
361.1Srillig
371.1Srillig		print("block");
381.1Srillig	}
391.1Srillig}
401.1Srillig#indent end
411.2Srillig
421.2Srillig
431.2Srillig/*
441.2Srillig * Two adjacent blocks must not be merged.  They are typically used in C90 and
451.2Srillig * earlier to declare local variables with a limited scope.
461.2Srillig */
471.2Srillig#indent input
481.2Srilligvoid
491.2Srilligfunction(void)
501.2Srillig{
511.2Srillig	{}{}
521.2Srillig}
531.2Srillig#indent end
541.2Srillig
551.2Srillig#indent run
561.2Srilligvoid
571.2Srilligfunction(void)
581.2Srillig{
591.2Srillig	{
601.2Srillig/* $ FIXME: '{' must start a new line. */
611.2Srillig	} {
621.2Srillig	}
631.2Srillig}
641.2Srillig#indent end
651.2Srillig
661.2Srillig/*
671.2Srillig * The buggy behavior only occurs with the default setting '-br', which
681.2Srillig * places an opening brace to the right of the preceding 'if (expr)' or
691.2Srillig * similar statements.
701.2Srillig */
711.2Srillig#indent run -bl
721.2Srilligvoid
731.2Srilligfunction(void)
741.2Srillig{
751.2Srillig	{
761.2Srillig	}
771.2Srillig	{
781.2Srillig	}
791.2Srillig}
801.2Srillig#indent end
81