xref: /netbsd-src/tests/usr.bin/indent/opt_bap.c (revision f7b95e49e6e60b33d007495fadfcfffda49d129f)
1*f7b95e49Srillig /* $NetBSD: opt_bap.c,v 1.11 2023/06/23 20:44:51 rillig Exp $ */
20c07b89fSrillig 
3ec30234bSrillig /*
46c6e6473Srillig  * Tests for the options '-bap' and '-nbap' ("blank line after procedure
56c6e6473Srillig  * body").
6ec30234bSrillig  *
7ec30234bSrillig  * The option '-bap' forces a blank line after every function body.
8ec30234bSrillig  *
9ec30234bSrillig  * The option '-nbap' keeps everything as is.
10ec30234bSrillig  */
11ec30234bSrillig 
1247306038Srillig //indent input
one_liner(void)13ec30234bSrillig static void one_liner(void){}
several_lines(void)14ec30234bSrillig static void several_lines(void)
15ec30234bSrillig {
160c07b89fSrillig 	action();
170c07b89fSrillig }
main(void)18ec30234bSrillig int main(void){}
190c07b89fSrillig int global_variable;
200c07b89fSrillig 
already_has_blank_line_below(void)210c07b89fSrillig void already_has_blank_line_below(void)
220c07b89fSrillig {
230c07b89fSrillig }
240c07b89fSrillig 
has_several_blank_lines_below(void)250c07b89fSrillig void has_several_blank_lines_below(void)
260c07b89fSrillig {
270c07b89fSrillig }
280c07b89fSrillig 
290c07b89fSrillig 
300c07b89fSrillig 
310c07b89fSrillig int		the_end;
3247306038Srillig //indent end
330c07b89fSrillig 
3447306038Srillig //indent run -bap
350c07b89fSrillig static void
one_liner(void)360c07b89fSrillig one_liner(void)
37ec30234bSrillig {
380c07b89fSrillig }
391764a17fSrillig 
400c07b89fSrillig static void
several_lines(void)410c07b89fSrillig several_lines(void)
420c07b89fSrillig {
430c07b89fSrillig 	action();
440c07b89fSrillig }
451764a17fSrillig 
460c07b89fSrillig int
main(void)470c07b89fSrillig main(void)
48ec30234bSrillig {
490c07b89fSrillig }
501764a17fSrillig 
510c07b89fSrillig int		global_variable;
520c07b89fSrillig 
530c07b89fSrillig void
already_has_blank_line_below(void)540c07b89fSrillig already_has_blank_line_below(void)
550c07b89fSrillig {
560c07b89fSrillig }
570c07b89fSrillig 
580c07b89fSrillig void
has_several_blank_lines_below(void)590c07b89fSrillig has_several_blank_lines_below(void)
600c07b89fSrillig {
610c07b89fSrillig }
620c07b89fSrillig 
630c07b89fSrillig 
640c07b89fSrillig 
650c07b89fSrillig int		the_end;
6647306038Srillig //indent end
670c07b89fSrillig 
681764a17fSrillig //indent run -nbap
691764a17fSrillig static void
one_liner(void)701764a17fSrillig one_liner(void)
711764a17fSrillig {
721764a17fSrillig }
731764a17fSrillig static void
several_lines(void)741764a17fSrillig several_lines(void)
751764a17fSrillig {
761764a17fSrillig 	action();
771764a17fSrillig }
781764a17fSrillig int
main(void)791764a17fSrillig main(void)
801764a17fSrillig {
811764a17fSrillig }
821764a17fSrillig int		global_variable;
831764a17fSrillig 
841764a17fSrillig void
already_has_blank_line_below(void)851764a17fSrillig already_has_blank_line_below(void)
861764a17fSrillig {
871764a17fSrillig }
881764a17fSrillig 
891764a17fSrillig void
has_several_blank_lines_below(void)901764a17fSrillig has_several_blank_lines_below(void)
911764a17fSrillig {
921764a17fSrillig }
931764a17fSrillig 
941764a17fSrillig 
951764a17fSrillig 
961764a17fSrillig int		the_end;
971764a17fSrillig //indent end
98fe2fb3c8Srillig 
99fe2fb3c8Srillig 
100fe2fb3c8Srillig /*
101fe2fb3c8Srillig  * Don't insert a blank line between the end of a function body and an '#endif'
102fe2fb3c8Srillig  * line, as both are closing elements.
103fe2fb3c8Srillig  */
104fe2fb3c8Srillig //indent input
105fe2fb3c8Srillig #if 0
106fe2fb3c8Srillig void
107fe2fb3c8Srillig example(void)
108fe2fb3c8Srillig {
109fe2fb3c8Srillig }
110fe2fb3c8Srillig #endif
111fe2fb3c8Srillig //indent end
112fe2fb3c8Srillig 
113fe2fb3c8Srillig //indent run-equals-input -bap
11433682259Srillig 
11533682259Srillig 
1168535e877Srillig /*
1178535e877Srillig  * A preprocessing line after the end of a function body does not force a blank
118*f7b95e49Srillig  * line, as these lines are from a different syntactic layer.
1198535e877Srillig  */
12033682259Srillig //indent input
12133682259Srillig #if 0
12233682259Srillig void
12333682259Srillig f(void)
12433682259Srillig {
12533682259Srillig }
12633682259Srillig #else
12733682259Srillig #endif
12833682259Srillig //indent end
12933682259Srillig 
1308535e877Srillig //indent run-equals-input -bacc -bap
1318535e877Srillig 
1328535e877Srillig 
1338535e877Srillig /*
1348535e877Srillig  * Do not add a blank line between the end of a function body and an '#undef',
1358535e877Srillig  * as this is a common way to undefine a function-local macro.
1368535e877Srillig  */
1378535e877Srillig //indent input
1388535e877Srillig #define replace
13933682259Srillig {
14033682259Srillig }
1418535e877Srillig #undef replace
14233682259Srillig //indent end
1438535e877Srillig 
1448535e877Srillig //indent run-equals-input -bap
1458535e877Srillig 
1468535e877Srillig //indent run-equals-input -bap -bacc
147