Home | History | Annotate | Line # | Download | only in indent
fmt_else_comment.c revision 1.4
      1  1.4  rillig /*	$NetBSD: fmt_else_comment.c,v 1.4 2022/04/24 09:04:12 rillig Exp $	*/
      2  1.1  rillig 
      3  1.2  rillig /*
      4  1.2  rillig  * Tests for comments after 'if (expr)' and 'else'. If the option '-br' is
      5  1.2  rillig  * given (or rather, if '-bl' is not given), indent looks ahead to the
      6  1.2  rillig  * following significant token to see whether it is a '{', it then moves the
      7  1.2  rillig  * comments after the '{'.
      8  1.2  rillig  *
      9  1.2  rillig  * See also:
     10  1.2  rillig  *	FreeBSD r303484
     11  1.2  rillig  *	FreeBSD r309342
     12  1.2  rillig  */
     13  1.2  rillig 
     14  1.2  rillig /*
     15  1.2  rillig  * The two 'if' statements below exercise two different code paths, even
     16  1.2  rillig  * though they look very similar.
     17  1.2  rillig  */
     18  1.4  rillig //indent input
     19  1.1  rillig void t(void) {
     20  1.1  rillig 	if (1) /* a */ int a; else /* b */ int b;
     21  1.1  rillig 
     22  1.1  rillig 	if (1) /* a */
     23  1.1  rillig 		int a;
     24  1.1  rillig 	else /* b */
     25  1.1  rillig 		int b;
     26  1.2  rillig }
     27  1.4  rillig //indent end
     28  1.1  rillig 
     29  1.4  rillig //indent run
     30  1.2  rillig void
     31  1.2  rillig t(void)
     32  1.2  rillig {
     33  1.2  rillig 	if (1)			/* a */
     34  1.2  rillig 		int		a;
     35  1.2  rillig 	else			/* b */
     36  1.2  rillig 		int		b;
     37  1.2  rillig 
     38  1.2  rillig 	if (1)			/* a */
     39  1.2  rillig 		int		a;
     40  1.2  rillig 	else			/* b */
     41  1.2  rillig 		int		b;
     42  1.2  rillig }
     43  1.4  rillig //indent end
     44  1.2  rillig 
     45  1.2  rillig 
     46  1.4  rillig //indent input
     47  1.2  rillig void t(void) {
     48  1.1  rillig 	if (1) {
     49  1.1  rillig 
     50  1.1  rillig 	}
     51  1.1  rillig 
     52  1.1  rillig 
     53  1.1  rillig 
     54  1.1  rillig 	/* Old indent would remove the 3 blank lines above, awaiting "else". */
     55  1.1  rillig 
     56  1.1  rillig 	if (1) {
     57  1.1  rillig 		int a;
     58  1.1  rillig 	}
     59  1.1  rillig 
     60  1.1  rillig 
     61  1.1  rillig 	else if (0) {
     62  1.1  rillig 		int b;
     63  1.1  rillig 	}
     64  1.1  rillig 	/* test */
     65  1.1  rillig 	else
     66  1.1  rillig 		;
     67  1.1  rillig 
     68  1.1  rillig 	if (1)
     69  1.1  rillig 		;
     70  1.1  rillig 	else /* Old indent would get very confused here */
     71  1.1  rillig 	/* We also mustn't assume that there's only one comment */
     72  1.1  rillig 	/* before the left brace. */
     73  1.1  rillig 	{
     74  1.1  rillig 
     75  1.1  rillig 
     76  1.1  rillig 	}
     77  1.1  rillig }
     78  1.4  rillig //indent end
     79  1.1  rillig 
     80  1.4  rillig //indent run -bl
     81  1.1  rillig void
     82  1.1  rillig t(void)
     83  1.1  rillig {
     84  1.1  rillig 	if (1)
     85  1.1  rillig 	{
     86  1.1  rillig 
     87  1.1  rillig 	}
     88  1.1  rillig 
     89  1.1  rillig 
     90  1.1  rillig 
     91  1.1  rillig 	/*
     92  1.1  rillig 	 * Old indent would remove the 3 blank lines above, awaiting "else".
     93  1.1  rillig 	 */
     94  1.1  rillig 
     95  1.1  rillig 	if (1)
     96  1.1  rillig 	{
     97  1.1  rillig 		int		a;
     98  1.1  rillig 	} else if (0)
     99  1.1  rillig 	{
    100  1.1  rillig 		int		b;
    101  1.1  rillig 	}
    102  1.1  rillig 	/* test */
    103  1.1  rillig 	else
    104  1.1  rillig 		;
    105  1.1  rillig 
    106  1.1  rillig 	if (1)
    107  1.1  rillig 		;
    108  1.1  rillig 	else			/* Old indent would get very confused here */
    109  1.1  rillig 		/* We also mustn't assume that there's only one comment */
    110  1.1  rillig 		/* before the left brace. */
    111  1.1  rillig 	{
    112  1.1  rillig 
    113  1.1  rillig 
    114  1.1  rillig 	}
    115  1.1  rillig }
    116  1.4  rillig //indent end
    117