/* $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