Rules:
3.4.a. Each indentation level should align at a multiple of 4 characters from the start of the line.
3.4.b. Within a switch statement, the case labels shall be aligned; the contents of each case block shall be indented once from there.
3.4.c. Whenever a line of code is too long to fit within the maximum line width, indent the second and any subsequent lines in the most readable manner possible
Example:
sys_error_handler(int err)
{
switch (err)
{
case ERR_THE_FIRST:
...
break;
default:
...
break;
}
// Purposefully misaligned indentation; see why?
if ((first_very_long_comparison_here
&& second_very_long_comparison_here)
|| third_very_long_comparison_here)
{
...
}
}
Reasoning: Fewer indentation spaces increase the risk of visual confusion while more spaces increases the likelihood of line wraps.
Enforcement: A tool, such as a code beautifier, shall be available to programmers to convert indentations of other sizes in an automated manner. This tool shall be used on all new or modified files prior to each build.