1 1.8 rillig /* $NetBSD: opt_di.c,v 1.8 2022/04/24 09:04:12 rillig Exp $ */ 2 1.1 rillig 3 1.2 rillig /* 4 1.6 rillig * Test the option '-di', which specifies the indentation of the first 5 1.6 rillig * variable name in a declaration. 6 1.2 rillig */ 7 1.2 rillig 8 1.8 rillig //indent input 9 1.1 rillig int space; 10 1.1 rillig int tab; 11 1.1 rillig int tab16; 12 1.1 rillig 13 1.1 rillig struct long_name long_name; 14 1.8 rillig //indent end 15 1.1 rillig 16 1.8 rillig //indent run -di8 17 1.1 rillig int space; 18 1.1 rillig int tab; 19 1.1 rillig int tab16; 20 1.1 rillig 21 1.1 rillig struct long_name long_name; 22 1.8 rillig //indent end 23 1.2 rillig 24 1.2 rillig 25 1.2 rillig /* 26 1.2 rillig * The declarator can be a simple variable name. It can also be prefixed by 27 1.2 rillig * asterisks, for pointer variables. These asterisks are placed to the left of 28 1.2 rillig * the indentation line, so that the variable names are aligned. 29 1.2 rillig * 30 1.2 rillig * There can be multiple declarators in a single declaration, separated by 31 1.2 rillig * commas. Only the first of them is aligned to the indentation given by 32 1.2 rillig * '-di', the others are separated with a single space. 33 1.2 rillig */ 34 1.8 rillig //indent input 35 1.2 rillig int var; 36 1.2 rillig int *ptr, *****ptr; 37 1.8 rillig //indent end 38 1.2 rillig 39 1.8 rillig //indent run -di12 40 1.2 rillig int var; 41 1.2 rillig int *ptr, *****ptr; 42 1.8 rillig //indent end 43 1.2 rillig 44 1.2 rillig 45 1.2 rillig /* 46 1.2 rillig * Test the various values for indenting. 47 1.2 rillig */ 48 1.8 rillig //indent input 49 1.2 rillig int decl ; 50 1.8 rillig //indent end 51 1.2 rillig 52 1.2 rillig /* 53 1.2 rillig * An indentation of 0 columns uses a single space between the declaration 54 1.2 rillig * specifiers (in this case 'int') and the declarator. 55 1.2 rillig */ 56 1.8 rillig //indent run -di0 57 1.2 rillig int decl; 58 1.8 rillig //indent end 59 1.2 rillig 60 1.2 rillig /* 61 1.2 rillig * An indentation of 7 columns uses spaces for indentation since in the 62 1.2 rillig * default configuration, the next tab stop would be at indentation 8. 63 1.2 rillig */ 64 1.8 rillig //indent run -di7 65 1.2 rillig int decl; 66 1.8 rillig //indent end 67 1.2 rillig 68 1.2 rillig /* The indentation consists of a single tab. */ 69 1.8 rillig //indent run -di8 70 1.2 rillig int decl; 71 1.8 rillig //indent end 72 1.2 rillig 73 1.2 rillig /* The indentation consists of a tab and a space. */ 74 1.8 rillig //indent run -di9 75 1.2 rillig int decl; 76 1.8 rillig //indent end 77 1.2 rillig 78 1.8 rillig //indent run -di16 79 1.2 rillig int decl; 80 1.8 rillig //indent end 81 1.2 rillig 82 1.2 rillig 83 1.2 rillig /* 84 1.2 rillig * Ensure that all whitespace is normalized to be indented by 8 columns, 85 1.2 rillig * which in the default configuration amounts to a single tab. 86 1.2 rillig */ 87 1.8 rillig //indent input 88 1.2 rillig int space; 89 1.2 rillig int tab; 90 1.2 rillig int tab16; 91 1.2 rillig struct long_name long_name; 92 1.8 rillig //indent end 93 1.2 rillig 94 1.8 rillig //indent run -di8 95 1.2 rillig int space; 96 1.2 rillig int tab; 97 1.2 rillig int tab16; 98 1.2 rillig struct long_name long_name; 99 1.8 rillig //indent end 100 1.3 rillig 101 1.3 rillig 102 1.4 rillig /* 103 1.4 rillig * A variable that has an ad-hoc struct/union/enum type does not need to be 104 1.4 rillig * indented to the right of the keyword 'struct', it only needs a single space 105 1.4 rillig * of indentation. 106 1.4 rillig * 107 1.4 rillig * Before NetBSD indent.c 1.151 from 2021-10-24, the indentation depended on 108 1.4 rillig * the length of the keyword 'struct', 'union' or 'enum', together with type 109 1.4 rillig * qualifiers like 'const' or the storage class like 'static'. 110 1.4 rillig */ 111 1.8 rillig //indent input 112 1.3 rillig struct { 113 1.3 rillig int member; 114 1.3 rillig } var = { 115 1.3 rillig 3, 116 1.3 rillig }; 117 1.8 rillig //indent end 118 1.3 rillig 119 1.8 rillig //indent run-equals-input -di0 120 1.3 rillig 121 1.8 rillig //indent run 122 1.3 rillig struct { 123 1.3 rillig int member; 124 1.3 rillig } var = { 125 1.3 rillig 3, 126 1.3 rillig }; 127 1.8 rillig //indent end 128