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