xref: /netbsd-src/tests/usr.bin/indent/opt_pcs.c (revision 398514d353c4a4cdd9ab0ab83e93d73c12eb50a0)
1*398514d3Srillig /* $NetBSD: opt_pcs.c,v 1.18 2023/06/16 23:07:52 rillig Exp $ */
20c07b89fSrillig 
3ec30234bSrillig /*
4ec30234bSrillig  * Tests for the options '-pcs' and '-npcs'.
5ec30234bSrillig  *
6ec30234bSrillig  * The option '-pcs' adds a space in a function call expression, between the
7ec30234bSrillig  * function name and the opening parenthesis.
8ec30234bSrillig  *
9ec30234bSrillig  * The option '-npcs' removes any whitespace from a function call expression,
10ec30234bSrillig  * between the function name and the opening parenthesis.
11ec30234bSrillig  */
12ec30234bSrillig 
1347306038Srillig //indent input
140c07b89fSrillig void
example(void)150c07b89fSrillig example(void)
160c07b89fSrillig {
170c07b89fSrillig 	function_call();
180c07b89fSrillig 	function_call (1);
190c07b89fSrillig 	function_call   (1,2,3);
200c07b89fSrillig }
2147306038Srillig //indent end
220c07b89fSrillig 
2347306038Srillig //indent run -pcs
240c07b89fSrillig void
example(void)250c07b89fSrillig example(void)
260c07b89fSrillig {
270c07b89fSrillig 	function_call ();
280c07b89fSrillig 	function_call (1);
290c07b89fSrillig 	function_call (1, 2, 3);
300c07b89fSrillig }
3147306038Srillig //indent end
320c07b89fSrillig 
3347306038Srillig //indent run -npcs
340c07b89fSrillig void
example(void)350c07b89fSrillig example(void)
360c07b89fSrillig {
370c07b89fSrillig 	function_call();
380c07b89fSrillig 	function_call(1);
390c07b89fSrillig 	function_call(1, 2, 3);
400c07b89fSrillig }
4147306038Srillig //indent end
425c8fd3b3Srillig 
43e513df21Srillig 
4447306038Srillig //indent input
4538900eccSrillig void ( * signal ( void ( * handler ) ( int ) ) ) ( int ) ;
46e513df21Srillig int var = (function)(arg);
4747306038Srillig //indent end
48e513df21Srillig 
4947306038Srillig //indent run -di0 -pcs
5038900eccSrillig void (*signal (void (*handler) (int))) (int);
516c38484fSrillig // $ This may be a function call or a cast, depending on the context.
5238900eccSrillig int var = (function) (arg);
5347306038Srillig //indent end
5438900eccSrillig 
5547306038Srillig //indent run -di0 -npcs
5647ec159eSrillig void (*signal(void (*handler)(int)))(int);
5747ec159eSrillig int var = (function)(arg);
5847306038Srillig //indent end
59e513df21Srillig 
607a5fe476Srillig 
615c8fd3b3Srillig /*
625c8fd3b3Srillig  * The option '-pcs' also applies to 'sizeof' and 'offsetof', even though
635c8fd3b3Srillig  * these are not functions.
645c8fd3b3Srillig  */
6547306038Srillig //indent input
665c8fd3b3Srillig int sizeof_type = sizeof   (int);
675c8fd3b3Srillig int sizeof_type = sizeof(int);
685c8fd3b3Srillig int sizeof_expr = sizeof   (0);
695c8fd3b3Srillig int sizeof_expr = sizeof(0);
705c8fd3b3Srillig int sizeof_expr = sizeof   0;
715c8fd3b3Srillig 
725c8fd3b3Srillig int offset = offsetof(struct s, member);
735c8fd3b3Srillig int offset = offsetof   (struct s, member);
7447306038Srillig //indent end
755c8fd3b3Srillig 
76a12a1592Srillig /* The option '-pcs' overrides '-nbs'. */
7747306038Srillig //indent run -pcs -di0 -nbs
78a12a1592Srillig int sizeof_type = sizeof (int);
79a12a1592Srillig int sizeof_type = sizeof (int);
80a12a1592Srillig int sizeof_expr = sizeof (0);
81a12a1592Srillig int sizeof_expr = sizeof (0);
82a12a1592Srillig int sizeof_expr = sizeof 0;
83a12a1592Srillig 
84a12a1592Srillig int offset = offsetof (struct s, member);
85a12a1592Srillig int offset = offsetof (struct s, member);
8647306038Srillig //indent end
87a12a1592Srillig 
88a12a1592Srillig /*
89a12a1592Srillig  * If the option '-npcs' is given, '-bs' can still specialize it. This only
90a12a1592Srillig  * applies to 'sizeof', but not 'offsetof'.
91a12a1592Srillig  */
9247306038Srillig //indent run -npcs -di0 -bs
935c8fd3b3Srillig int sizeof_type = sizeof (int);
945c8fd3b3Srillig int sizeof_type = sizeof (int);
955c8fd3b3Srillig int sizeof_expr = sizeof (0);
965c8fd3b3Srillig int sizeof_expr = sizeof (0);
975c8fd3b3Srillig int sizeof_expr = sizeof 0;
985c8fd3b3Srillig 
995c8fd3b3Srillig int offset = offsetof(struct s, member);
1005c8fd3b3Srillig int offset = offsetof(struct s, member);
10147306038Srillig //indent end
1025c8fd3b3Srillig 
10347306038Srillig //indent run -npcs -di0
1045c8fd3b3Srillig int sizeof_type = sizeof(int);
1055c8fd3b3Srillig int sizeof_type = sizeof(int);
1065c8fd3b3Srillig int sizeof_expr = sizeof(0);
1075c8fd3b3Srillig int sizeof_expr = sizeof(0);
1085c8fd3b3Srillig int sizeof_expr = sizeof 0;
1095c8fd3b3Srillig 
1105c8fd3b3Srillig int offset = offsetof(struct s, member);
1115c8fd3b3Srillig int offset = offsetof(struct s, member);
11247306038Srillig //indent end
113d46fdfe3Srillig 
114d46fdfe3Srillig 
115d46fdfe3Srillig //indent input
116d46fdfe3Srillig int unary = +call();
117641fe745Srillig int postfix = step++();
118d46fdfe3Srillig int binary = 1 + call();
119d46fdfe3Srillig //indent end
120d46fdfe3Srillig 
121d46fdfe3Srillig //indent run-equals-input -npcs -di0
122d46fdfe3Srillig 
123d46fdfe3Srillig //indent run -pcs -di0
124d46fdfe3Srillig int unary = +call ();
125641fe745Srillig int postfix = step++ ();
126d46fdfe3Srillig int binary = 1 + call ();
127d46fdfe3Srillig //indent end
128