/* $NetBSD: fmt_else_comment.c,v 1.6 2023/06/23 20:44:51 rillig Exp $ */ /* * Tests for comments after 'if (expr)' and 'else'. Before 2023-05-11, if the * option '-br' was given (or rather, if '-bl' was not given), indent looked * ahead to the following significant token to see whether it was a '{', it * then moved the comments after the '{'. This token swapping was error-prone * and thus removed. * * See also: * FreeBSD r303484 * FreeBSD r309342 */ /* * Before 2023-05-11, the two 'if' statements below exercised two different * code paths, even though they look very similar. */ //indent input void t(void) { if (1) /* a */ int a; else /* b */ int b; if (1) /* a */ int a; else /* b */ int b; } //indent end //indent run void t(void) { if (1) /* a */ int a; else /* b */ int b; if (1) /* a */ int a; else /* b */ int b; } //indent end //indent input void t(void) { if (1) { } /* Old indent would remove the 3 blank lines above, awaiting "else". */ // $ 'Old' means something before 2019. if (1) { int a; } else if (0) { int b; } /* test */ else ; if (1) ; else /* Old indent would get very confused here */ // $ 'Old' means something before 2019. /* We also mustn't assume that there's only one comment */ /* before the left brace. */ { } } //indent end //indent run -bl void t(void) { if (1) { } /* * Old indent would remove the 3 blank lines above, awaiting "else". */ if (1) { int a; } else if (0) { int b; } /* test */ else ; if (1) ; else /* Old indent would get very confused here */ /* We also mustn't assume that there's only one comment */ /* before the left brace. */ { } } //indent end