Home | History | Annotate | Line # | Download | only in indent
opt_badp.c revision 1.13
      1  1.13  rillig /* $NetBSD: opt_badp.c,v 1.13 2023/06/26 11:01:08 rillig Exp $ */
      2   1.1  rillig 
      3   1.2  rillig /*
      4   1.2  rillig  * Tests for the options '-badp' and '-nbadp'.
      5   1.2  rillig  *
      6  1.12  rillig  * The option '-badp' forces a blank line between the first set of declarations
      7  1.12  rillig  * in a function and the next comment or statement. It produces a blank line
      8  1.12  rillig  * even if there are no declarations.
      9   1.2  rillig  */
     10   1.2  rillig 
     11  1.13  rillig 
     12  1.13  rillig /* An empty function body does not need a blank line. */
     13   1.9  rillig //indent input
     14   1.5  rillig void
     15   1.6  rillig empty(void)
     16   1.1  rillig {
     17   1.1  rillig }
     18   1.9  rillig //indent end
     19   1.5  rillig 
     20   1.9  rillig //indent run-equals-input -badp
     21   1.8  rillig 
     22   1.9  rillig //indent run-equals-input -nbadp
     23   1.1  rillig 
     24   1.5  rillig 
     25  1.13  rillig /* If an empty function body already has a blank line, it is kept. */
     26   1.9  rillig //indent input
     27   1.5  rillig void
     28   1.6  rillig blank(void)
     29   1.1  rillig {
     30   1.5  rillig 
     31   1.1  rillig }
     32   1.9  rillig //indent end
     33   1.1  rillig 
     34   1.9  rillig //indent run-equals-input -badp
     35   1.8  rillig 
     36   1.9  rillig //indent run-equals-input -nbadp
     37   1.1  rillig 
     38   1.1  rillig 
     39  1.13  rillig /*
     40  1.13  rillig  * If a function body has only declarations (doesn't occur in practice), it
     41  1.13  rillig  * does not need an empty line.
     42  1.13  rillig  */
     43   1.9  rillig //indent input
     44   1.5  rillig void
     45   1.6  rillig declaration(void)
     46   1.1  rillig {
     47   1.5  rillig 	int		decl;
     48   1.5  rillig }
     49   1.9  rillig //indent end
     50   1.1  rillig 
     51   1.9  rillig //indent run-equals-input -badp
     52   1.8  rillig 
     53   1.9  rillig //indent run-equals-input -nbadp
     54   1.1  rillig 
     55   1.1  rillig 
     56  1.13  rillig /*
     57  1.13  rillig  * A function body without declarations gets an empty line above the first
     58  1.13  rillig  * statement.
     59  1.13  rillig  */
     60   1.9  rillig //indent input
     61   1.5  rillig void
     62   1.6  rillig statement(void)
     63   1.5  rillig {
     64   1.5  rillig 	stmt();
     65   1.1  rillig }
     66   1.9  rillig //indent end
     67   1.1  rillig 
     68  1.10  rillig /* TODO: add blank line */
     69  1.10  rillig //indent run-equals-input -badp
     70   1.8  rillig 
     71   1.9  rillig //indent run-equals-input -nbadp
     72   1.5  rillig 
     73   1.1  rillig 
     74  1.13  rillig /*
     75  1.13  rillig  * A function body with a declaration and a statement gets a blank line between
     76  1.13  rillig  * those.
     77  1.13  rillig  */
     78   1.9  rillig //indent input
     79   1.5  rillig void
     80   1.6  rillig declaration_statement(void)
     81   1.5  rillig {
     82   1.5  rillig 	int		decl;
     83   1.5  rillig 	stmt();
     84   1.5  rillig }
     85   1.9  rillig //indent end
     86   1.5  rillig 
     87   1.9  rillig //indent run -badp
     88   1.5  rillig void
     89   1.6  rillig declaration_statement(void)
     90   1.1  rillig {
     91   1.5  rillig 	int		decl;
     92   1.5  rillig 	/* $ FIXME: missing empty line */
     93   1.5  rillig 	stmt();
     94   1.1  rillig }
     95   1.9  rillig //indent end
     96   1.8  rillig 
     97   1.9  rillig //indent run-equals-input -nbadp
     98   1.1  rillig 
     99   1.5  rillig 
    100  1.13  rillig /* If there already is a blank line in the right place, it is kept. */
    101   1.9  rillig //indent input
    102   1.1  rillig static void
    103   1.5  rillig declaration_blank_statement(void)
    104   1.1  rillig {
    105   1.5  rillig 	int		decl;
    106   1.1  rillig 
    107   1.5  rillig 	stmt();
    108   1.1  rillig }
    109   1.9  rillig //indent end
    110   1.5  rillig 
    111   1.9  rillig //indent run-equals-input -badp
    112   1.8  rillig 
    113   1.9  rillig //indent run-equals-input -nbadp
    114   1.1  rillig 
    115   1.5  rillig 
    116  1.13  rillig /* Additional blank lines are kept. To remove them, see the '-sob' option. */
    117   1.9  rillig //indent input
    118   1.1  rillig static void
    119   1.5  rillig declaration_blank_blank_statement(void)
    120   1.1  rillig {
    121   1.5  rillig 	int		decl;
    122   1.1  rillig 
    123   1.1  rillig 
    124   1.1  rillig 
    125   1.5  rillig 	stmt();
    126   1.1  rillig }
    127   1.9  rillig //indent end
    128   1.1  rillig 
    129   1.9  rillig //indent run-equals-input -badp
    130   1.8  rillig 
    131   1.9  rillig //indent run-equals-input -nbadp
    132  1.11  rillig 
    133  1.11  rillig 
    134  1.11  rillig /*
    135  1.13  rillig  * The blank line is only inserted at the top of a function body, not in nested
    136  1.13  rillig  * block statements.
    137  1.13  rillig  */
    138  1.13  rillig //indent input
    139  1.13  rillig static void
    140  1.13  rillig nested(void)
    141  1.13  rillig {
    142  1.13  rillig 	{
    143  1.13  rillig 		int		decl;
    144  1.13  rillig 		stmt();
    145  1.13  rillig 	}
    146  1.13  rillig }
    147  1.13  rillig //indent end
    148  1.13  rillig 
    149  1.13  rillig //indent run-equals-input -badp
    150  1.13  rillig 
    151  1.13  rillig //indent run-equals-input -nbadp
    152  1.13  rillig 
    153  1.13  rillig 
    154  1.13  rillig /*
    155  1.11  rillig  * A struct declaration or an initializer are not function bodies, so don't
    156  1.11  rillig  * add a blank line after them.
    157  1.11  rillig  */
    158  1.11  rillig //indent input
    159  1.11  rillig struct {
    160  1.11  rillig 	int member[2];
    161  1.11  rillig } s = {
    162  1.11  rillig 	{
    163  1.11  rillig 		0,
    164  1.11  rillig 		0,
    165  1.11  rillig 	}
    166  1.11  rillig };
    167  1.11  rillig //indent end
    168  1.11  rillig 
    169  1.11  rillig //indent run-equals-input -di0 -badp
    170  1.11  rillig 
    171  1.11  rillig //indent run-equals-input -di0 -nbadp
    172