xref: /netbsd-src/tests/usr.bin/indent/fmt_block.c (revision 7d62b00eb9ad855ffcd7da46b41e23feb5476fac)
1 /* $NetBSD: fmt_block.c,v 1.4 2022/04/24 09:04:12 rillig Exp $ */
2 
3 /*
4  * Tests for formatting blocks of statements and declarations.
5  *
6  * See also:
7  *	lsym_lbrace.c
8  *	psym_stmt.c
9  *	psym_stmt_list.c
10  */
11 
12 //indent input
13 void
14 function(void)
15 {
16 	if (true) {
17 
18 	}
19 
20 	{
21 		print("block");
22 	}
23 }
24 //indent end
25 
26 //indent run
27 void
28 function(void)
29 {
30 	if (true) {
31 
32 /* $ FIXME: indent must not merge these braces. */
33 	} {
34 /* $ FIXME: the following empty line was not in the input. */
35 
36 		print("block");
37 	}
38 }
39 //indent end
40 
41 
42 /*
43  * Two adjacent blocks must not be merged.  They are typically used in C90 and
44  * earlier to declare local variables with a limited scope.
45  */
46 //indent input
47 void
48 function(void)
49 {
50 	{}{}
51 }
52 //indent end
53 
54 //indent run
55 void
56 function(void)
57 {
58 	{
59 /* $ FIXME: '{' must start a new line. */
60 	} {
61 	}
62 }
63 //indent end
64 
65 /*
66  * The buggy behavior only occurs with the default setting '-br', which
67  * places an opening brace to the right of the preceding 'if (expr)' or
68  * similar statements.
69  */
70 //indent run -bl
71 void
72 function(void)
73 {
74 	{
75 	}
76 	{
77 	}
78 }
79 //indent end
80