1 /* $NetBSD: opt_ldi.c,v 1.5 2022/04/24 09:04:12 rillig Exp $ */ 2 3 /* 4 * Tests for the option '-ldi', which specifies where the variable names of 5 * locally declared variables are placed. 6 * 7 * See also: 8 * opt_di.c 9 */ 10 11 //indent input 12 int global; 13 14 void 15 function(void) 16 { 17 int local; 18 } 19 //indent end 20 21 //indent run -ldi0 22 int global; 23 24 void 25 function(void) 26 { 27 int local; 28 } 29 //indent end 30 31 //indent run -ldi8 32 int global; 33 34 void 35 function(void) 36 { 37 int local; 38 } 39 //indent end 40 41 //indent run -ldi24 42 int global; 43 44 void 45 function(void) 46 { 47 int local; 48 } 49 //indent end 50 51 52 /* 53 * A variable that has an ad-hoc struct/union/enum type does not need to be 54 * indented to the right of the keyword 'struct', it only needs a single space 55 * of indentation. 56 * 57 * Before NetBSD indent.c 1.151 from 2021-10-24, the indentation depended on 58 * the length of the keyword 'struct', 'union' or 'enum', together with type 59 * qualifiers like 'const' or the storage class like 'static'. 60 */ 61 //indent input 62 { 63 struct { 64 int member; 65 } var = { 66 3, 67 }; 68 } 69 //indent end 70 71 /* 72 * Struct members use '-di' for indentation, no matter whether they are 73 * declared globally or locally. 74 */ 75 //indent run -ldi0 76 { 77 struct { 78 int member; 79 } var = { 80 3, 81 }; 82 } 83 //indent end 84 85 //indent run -ldi16 86 { 87 struct { 88 int member; 89 } var = { 90 3, 91 }; 92 } 93 //indent end 94