GNU 代码风格的 GNU 缩进问题

GNU Indent issue with GNU code style

我使用 brew 安装了 indent 多亏了命令 brew install gnu-indent 所以现在我已经在我的 MacOS X 上安装了 gnu-indent-2.2.10,非常好。我的问题是当我想使用 GNU 代码风格缩进文件时。

我的意思是我想转换这个:

while (foo) {
}

进入这个:

while (foo) 
  {
  }

因此,根据文档,我使用参数 -bl -bli2 启动了 indent,以便 GNU 代码样式具有 2 个空格,大括号被缩进,但我实际得到的是:

while (foo) 
{
}

就像,我用了 -bl -bli0 我在 -bli 后面放的任何东西,我得到了相同的结果。

也就是说假设test.c的内容是:

while (foo) {
}

如果我启动 indent test.c -st -bl -bli2 > test.outtest.out 就在我这边:

while (foo)
{
}

我是不是遗漏了什么或者是 GNU indent 中的错误?

更新:

它似乎与 Mac OS X 相关,因为它在 Debian 8GNU indent 2.2.11 以及 Ubuntu 14.04GNU indent [=33= 上按预期工作] 和 2.2.10-2.

我终于意识到我没有使用来自 brew 的 indent 版本,而是来自 XCode,问题来自 XCode 的版本,它不像 GNU indent。如果我使用 gindent 而不是 indent 启动相同的命令,它会按预期工作。我的意思是如果我启动 gindent test.c -st -bl -bli2 > test.out,我会得到预期的结果:

while (foo)
  {
  }