xref: /netbsd-src/tests/usr.bin/indent/fmt_block.c (revision 940b85009c2e8baf9cfb91740c3b6ebec6378b06)
1*940b8500Srillig /* $NetBSD: fmt_block.c,v 1.8 2023/06/14 20:46:08 rillig Exp $ */
28c1e5e02Srillig 
36c6e6473Srillig /*
46c6e6473Srillig  * Tests for formatting blocks of statements and declarations.
56c6e6473Srillig  *
66c6e6473Srillig  * See also:
76c6e6473Srillig  *	lsym_lbrace.c
86c6e6473Srillig  *	psym_stmt.c
96c6e6473Srillig  */
106c6e6473Srillig 
1147306038Srillig //indent input
128c1e5e02Srillig void
function(void)138c1e5e02Srillig function(void)
148c1e5e02Srillig {
158c1e5e02Srillig 	if (true) {
168c1e5e02Srillig 
178c1e5e02Srillig 	}
188c1e5e02Srillig 
198c1e5e02Srillig 	{
208c1e5e02Srillig 		print("block");
218c1e5e02Srillig 	}
228c1e5e02Srillig }
2347306038Srillig //indent end
248c1e5e02Srillig 
25ff059387Srillig /*
26ff059387Srillig  * Before 2023-05-11, indent incorrectly merged the '} {' into a single line,
27ff059387Srillig  * even though they are completely unrelated.
28ff059387Srillig  */
2937331766Srillig //indent run-equals-input
306c6e6473Srillig 
316c6e6473Srillig 
326c6e6473Srillig /*
336c6e6473Srillig  * Two adjacent blocks must not be merged.  They are typically used in C90 and
346c6e6473Srillig  * earlier to declare local variables with a limited scope.
356c6e6473Srillig  */
3647306038Srillig //indent input
376c6e6473Srillig void
function(void)386c6e6473Srillig function(void)
396c6e6473Srillig {
406c6e6473Srillig 	{}{}
416c6e6473Srillig }
4247306038Srillig //indent end
436c6e6473Srillig 
4447306038Srillig //indent run
456c6e6473Srillig void
function(void)466c6e6473Srillig function(void)
476c6e6473Srillig {
486c6e6473Srillig 	{
498bd40c7aSrillig 	}
508bd40c7aSrillig 	{
516c6e6473Srillig 	}
526c6e6473Srillig }
5347306038Srillig //indent end
546c6e6473Srillig 
558bd40c7aSrillig //indent run-equals-prev-output -bl
56