opt_eei.c revision 1.8 1 /* $NetBSD: opt_eei.c,v 1.8 2022/04/24 09:04:12 rillig Exp $ */
2
3 /*
4 * Tests for the options '-eei' and '-neei'.
5 *
6 * The option '-eei' enables extra indentation on continuation lines of the
7 * expression part of 'if' and 'while' statements. These continuation lines
8 * are indented one extra level.
9 *
10 * The option '-neei' indents these conditions in the same way as all other
11 * continued statements.
12 */
13
14 //indent input
15 bool
16 less(int a, int b)
17 {
18 if (a <
19 b)
20 return true;
21 if (a
22 <
23 b)
24 return true;
25 }
26 //indent end
27
28 //indent run -eei
29 bool
30 less(int a, int b)
31 {
32 if (a <
33 b)
34 return true;
35 if (a
36 <
37 b)
38 return true;
39 }
40 //indent end
41
42 //indent run-equals-input -neei
43
44 /*
45 * When a single indentation level is the same as the continuation
46 * indentation, the code does not clearly show whether the 'b' belongs to the
47 * condition or the body statement.
48 */
49 //indent run -neei -i4
50 bool
51 less(int a, int b)
52 {
53 if (a <
54 b)
55 return true;
56 if (a
57 <
58 b)
59 return true;
60 }
61 //indent end
62
63 /*
64 * Adding the extra level of indentation is useful when the standard
65 * indentation is the same as the indentation of statement continuations. In
66 * such a case, the continued condition would have the same indentation as the
67 * following statement, which would be confusing.
68 */
69 //indent run -eei -i4
70 bool
71 less(int a, int b)
72 {
73 if (a <
74 b)
75 return true;
76 if (a
77 <
78 b)
79 return true;
80 }
81 //indent end
82
83 /*
84 * With an indentation size of 4, the width of the code 'if (' is exactly one
85 * indentation level. With the option '-nlp', the option '-eei' has no effect.
86 *
87 * XXX: This is unexpected since this creates the exact ambiguity that the
88 * option '-eei' is supposed to prevent.
89 */
90 //indent run -eei -i4 -nlp
91 bool
92 less(int a, int b)
93 {
94 if (a <
95 b)
96 return true;
97 if (a
98 <
99 b)
100 return true;
101 }
102 //indent end
103
104
105 /*
106 * The option '-eei' applies no matter whether the continued expression starts
107 * with a word or an operator like '&&'. The latter cannot start a statement,
108 * so there would be no ambiguity.
109 */
110 //indent input
111 {
112 if (a
113 && b)
114 stmt();
115 }
116 //indent end
117
118 /*
119 * XXX: The extra indentation is unnecessary since there is no possible
120 * confusion: the standard indentation is 8, the indentation of the continued
121 * condition could have stayed at 4.
122 */
123 //indent run -eei
124 {
125 if (a
126 && b)
127 stmt();
128 }
129 //indent end
130
131 /*
132 * The extra indentation is necessary here since otherwise the '&&' and the
133 * 'stmt()' would start at the same indentation.
134 */
135 //indent run -eei -i4
136 {
137 if (a
138 && b)
139 stmt();
140 }
141 //indent end
142
143 /*
144 * With an indentation size of 4, the width of the code 'if (' is exactly one
145 * indentation level. With the option '-nlp', the option '-eei' has no effect.
146 *
147 * XXX: This is unexpected since this creates the exact ambiguity that the
148 * option '-eei' is supposed to prevent.
149 */
150 //indent run -eei -i4 -nlp
151 {
152 if (a
153 && b)
154 stmt();
155 }
156 //indent end
157