xref: /netbsd-src/tests/usr.bin/indent/opt_lp.c (revision 5187119b0ea6b00d0cfaa5618bbbcaed77c06074)
1 /* $NetBSD: opt_lp.c,v 1.10 2023/06/09 06:36:58 rillig Exp $ */
2 
3 /*
4  * Tests for the options '-lp' and '-nlp'.
5  *
6  * The option '-lp' lines up code surrounded by parentheses in continuation
7  * lines. With '-lp', if a line has a left parenthesis that is not closed on
8  * that line, continuation lines are lined up to start at the character
9  * position just after the left parenthesis.
10  *
11  * The option '-nlp' indents continuation lines with the continuation
12  * indentation; see '-ci'.
13  */
14 
15 //indent input
16 void
example(void)17 example(void)
18 {
19 	p1 = first_procedure(second_procedure(p2, p3),
20 	    third_procedure(p4, p5));
21 
22 	p1 = first_procedure(second_procedure(p2,
23 	    p3),
24 	    third_procedure(p4,
25 	        p5));
26 
27 	p1 = first_procedure(
28 	 second_procedure(p2, p3),
29 	 third_procedure(p4, p5));
30 }
31 //indent end
32 
33 //indent run -lp
34 void
example(void)35 example(void)
36 {
37 	p1 = first_procedure(second_procedure(p2, p3),
38 			     third_procedure(p4, p5));
39 
40 	p1 = first_procedure(second_procedure(p2,
41 					      p3),
42 			     third_procedure(p4,
43 					     p5));
44 
45 	p1 = first_procedure(
46 			     second_procedure(p2, p3),
47 			     third_procedure(p4, p5));
48 }
49 //indent end
50 
51 //indent run -nlp
52 void
example(void)53 example(void)
54 {
55 	p1 = first_procedure(second_procedure(p2, p3),
56 		third_procedure(p4, p5));
57 
58 	p1 = first_procedure(second_procedure(p2,
59 			p3),
60 		third_procedure(p4,
61 			p5));
62 
63 	p1 = first_procedure(
64 		second_procedure(p2, p3),
65 		third_procedure(p4, p5));
66 }
67 //indent end
68 
69 //indent run -nlp -ci4
70 void
example(void)71 example(void)
72 {
73 	p1 = first_procedure(second_procedure(p2, p3),
74 	    third_procedure(p4, p5));
75 
76 	p1 = first_procedure(second_procedure(p2,
77 		p3),
78 	    third_procedure(p4,
79 		p5));
80 
81 	p1 = first_procedure(
82 	    second_procedure(p2, p3),
83 	    third_procedure(p4, p5));
84 }
85 //indent end
86 
87 
88 /*
89  * Ensure that in multi-line else-if conditions, all lines are indented by the
90  * correct amount.  The 'else if' condition is tricky because it has the same
91  * indentation as the preceding 'if' condition.
92  */
93 //indent input
94 {
95 if (cond11a
96 && cond11b
97 && cond11c) {
98 stmt11;
99 } else if (cond12a
100 && cond12b
101 && cond12c) {
102 stmt12;
103 }
104 }
105 
106 {
107 if (cond21a
108 && cond21b
109 && cond21c)
110 stmt21;
111 else if (cond22a
112 && cond22b
113 && cond22c)
114 stmt22;
115 }
116 //indent end
117 
118 //indent run -ci4 -nlp
119 {
120 	if (cond11a
121 	    && cond11b
122 	    && cond11c) {
123 		stmt11;
124 	} else if (cond12a
125 	    && cond12b
126 	    && cond12c) {
127 		stmt12;
128 	}
129 }
130 
131 {
132 	if (cond21a
133 	    && cond21b
134 	    && cond21c)
135 		stmt21;
136 	else if (cond22a
137 	    && cond22b
138 	    && cond22c)
139 		stmt22;
140 }
141 //indent end
142