Parece que é sizeof() que confundiu indent . Portanto, eu tenho uma solução alternativa: primeiro, altere todas as ocorrências de sizeof com SIZEOF (por exemplo, usando sed ), invoque indent e altere SIZEOF de volta para sizeof .
$ cat foo.c
void foo() {
struct_a arr[] = {
{&a, sizeof (a), 1},
{&b, sizeof (b), 1},
{&c, sizeof (c), 1},
{&d, sizeof (d), 1},
};
}
$ indent -st foo.c
void
foo ()
{
struct_a arr[] = {
{&a, sizeof (a), 1}
,
{&b, sizeof (b), 1}
,
{&c, sizeof (c), 1}
,
{&d, sizeof (d), 1}
,
};
}
$ sed s/sizeof/SIZEOF/g foo.c | indent -st | sed s/SIZEOF/sizeof/g
void
foo ()
{
struct_a arr[] = {
{&a, sizeof (a), 1},
{&b, sizeof (b), 1},
{&c, sizeof (c), 1},
{&d, sizeof (d), 1},
};
}
$