Home | History | Annotate | Line # | Download | only in indent
      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