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