Como evitar que o avanço GNU interrompa a atribuição de inicialização como “= {0};”

0

Veja o exemplo a seguir.

$ 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};
}
$

Eu não quero que = { 0 }; seja formatado para

=
{
0};
    
por pynexj 31.03.2015 / 09:37

1 resposta

1

Este também é o caso do 2.2.11. De olhar para o código, parece ser um bug com inicializadores de bloco não sendo detectados corretamente. Nesse caso, o recuo força uma nova linha após o '{'. Eu andei hackeando isso nos últimos dois dias e consertei esse bug em minha cópia de trabalho , de modo que seu arquivo fosse formatado da seguinte forma:

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

Sinta-se à vontade para fazer o checkout da minha cópia de trabalho e experimentá-la. Caso contrário, você provavelmente terá que esperar até que ele seja corrigido.

    
por 15.06.2015 / 21:18