xolint is a tool for reporting common mistakes in format strings in source code that invokes xo_emit. It allows these errors to be diagnosed at build time, rather than waiting until runtime.

xolint takes the one or more C files as arguments, and reports and errors, warning, or informational messages as needed:

Option Meaning
-c Invoke ‘cpp’ against the input file
-C <flags> Flags that are passed to ‘cpp
-d Enable debug output
-D Generate documentation for all xolint messages
-I Generate info table code
-p Print the offending lines after the message
-V Print vocabulary of all field names
-X Extract samples from xolint, suitable for testing

The output message will contain the source filename and line number, the class of the message, the message, and, if -p is given, the line that contains the error:

% xolint.pl -t xolint.c
xolint.c: 16: error: anchor format should be "%d"
16         xo_emit("{[:/%s}");

The “-I” option will generate a table of xo_info_t structures, suitable for inclusion in source code.

The “-V” option does not report errors, but prints a complete list of all field names, sorted alphabetically. The output can help spot inconsistencies and spelling errors.