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