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