While using uncrustify, I encountered a problem with while loops. If the while loop has no body, a trailing semicolon will get pushed to the next line. On the GitHub and on this website I found no mention of this whatsoever. Is the problem related to forcing one liners in different lines?
The code I tried it with is: (This is also what it should look like in the end)
int main()
{
int i = 20000;
while(i--);
return 0;
}
But what uncrustify returns is:
int main()
{
int i = 20000;
while (i--)
;
return 0;
}
Config file: https://pastebin.com/3FUqHmp8
With an empty config file this does not happen so this behavior is caused by a option that you added in the config file that you are using (most likely one of the
nl_*
options).Post a link to your file.
Both of this options are causing this behavior:
Keep in mind that Uncrustify also considers missing braces (virtual braces) to be braces (
nl_while_brace
).Uncrustify has an option to disable handling of vbraces for spacing options but it seems that it is missing it for newline options. If you need that open up a feature or pull request on the github repository site: https://github.com/uncrustify/uncrustify.