cppi man page

cppi — indent the C preprocessor directives in FILE to reflect their nesting


cppi [FILE]
cppi -c [OPTION] [FILE]...


Indent the C preprocessor directives in FILE to reflect their nesting and ensure that there is exactly one space character between each #if, #elif, #define directive and the following token, and write the result to standard output.  The number of spaces between the `#' and the following directive must correspond to the level of nesting of that directive. With no FILE, or when FILE is -, read standard input.

-a, --ansi

when checking, fail if text follows #else or #endif

-c, --check

set exit code, but don't produce any output

-l, --list-files-only

don't generate diagnostics about indentation; print to stdout only the names of files that are not properly indented

-m, --max-string-length=LENGTH

fail if there is a double-quoted string longer than LENGTH;  if LENGTH is 0 (the default), then there is no limit


display this help and exit


output version information and exit

With the -c option, don't write to stdout.  Instead, check the indentation of the specified files giving diagnostics for preprocessor lines that aren't properly indented or are otherwise invalid.

Note that --ansi without --check does not correct the problem of non-ANSI text following #else and #endif directives.

The exit code will be one of these


all directives properly indented


some cpp directive(s) improperly indented, or text follows #else/#endif (enabled with --check --ansi), or a double-quoted string is longer than the specified maximum


#if/#endif mismatch, EOF in comment or string


file (e.g. open/read/write) error

A pragma directive may have its `#' indented.


Written by Jim Meyering.

Reporting Bugs

Report bugs to <bug-cppi@gnu.org>.

See Also

The full documentation for cppi is maintained as a Texinfo manual.  If the info and cppi programs are properly installed at your site, the command

info cppi

should give you access to the complete manual.


March 2013 cppi 1.18 User Commands