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