如何防止 GNU 缩进破坏初始化分配(如“= { 0 };”)

如何防止 GNU 缩进破坏初始化分配(如“= { 0 };”)

请参阅以下示例。

$ indent --version
GNU indent 2.2.10
$ cat foo.c
void foo()
{
    struct {
        int a;
        int b;
    } v = { 0 };
}
$ indent -st foo.c
void
foo ()
{
  struct
  {
    int a;
    int b;
  } v =
  {
  0};
}
$

我不想= { 0 };被格式化为

=
{
0};

答案1

2.2.11 也存在这种情况。从代码来看,这似乎是块初始化器无法正确检测的一个错误。在这种情况下,缩进会在“{”后强制换行。我在过去几天里一直在研究这个问题,并在我的工作副本这样你的文件格式就会像这样:

$ src/indent -npro -st foo.c
void
foo ()
{
  struct
  {
    int a;
    int b;
  } v = { 0 };
}

请随意查看我的工作副本并尝试一下。否则,您可能必须等到上游修复它。

相关内容