root/tests/usr.bin/indent/lsym_question.c
/* $NetBSD: lsym_question.c,v 1.5 2023/05/15 10:13:40 rillig Exp $ */

/*
 * Tests for the token lsym_question, which represents the '?' in a '?:'
 * conditional expression.
 */

//indent input
const char *result = cond ? "then" : "else";

const char *multi = cond1 ? "cond1" : cond2 ? "cond2" : cond3 ? "cond3" : "";
//indent end

//indent run-equals-input -di0


/*
 * To make them easier to read, conditional expressions can be split into
 * multiple lines.
 */
//indent input
const char *separate_lines = cond
        ? "then"
        : "else";
//indent end

//indent run -di0
const char *separate_lines = cond
// $ XXX: Continuation lines in expressions should be indented, even in column 1.
? "then"
: "else";
//indent end


/*
 * In functions, conditional expressions are indented as intended.
 */
//indent input
void
function(void)
{
        return cond
                ? "then"
                : "else";
}
//indent end

//indent run-equals-input


/*
 * In functions, conditional expressions are indented as intended.
 */
//indent input
void
function(void)
{
        const char *branch = cond
                ? "then"
                : "else";

        const char *multiple_branches = cond1
                ? "then 1"
                : cond2
                ? "then 2"
                : "else";

        const char *condensed = cond1 ? "condensed 1"
                : cond2 ? "condensed 2"
                : "condensed else";
}
//indent end

//indent run-equals-input -di0