.\" # .\" # Copyright (c) 2014, Juniper Networks, Inc. .\" # All rights reserved. .\" # This SOFTWARE is licensed under the LICENSE provided in the .\" # ../Copyright file. By downloading, installing, copying, or .\" # using the SOFTWARE, you agree to be bound by the terms of that .\" # LICENSE. .\" # Phil Shafer, July 2014 .\" .Dd December 4, 2014 .Dt XOLINT 1 .Os .Sh NAME .Nm xolint .Nd detect errors in programs using .Xr xo_emit 3 .Sh SYNOPSIS .Nm xolint .Op Fl c .Op Fl "C " .Op Fl "d" .Op Fl "D" .Op Fl "I" .Op Fl "p" .Op Fl "V" .Op Fl "X" .Op Ar files... .Sh DESCRIPTION .Nm is a tool for reporting common mistakes in format strings in source code that invokes .Xr xo_emit 3 . It allows these errors to be diagnosed at build time, rather than waiting until runtime. .Pp .Nm takes one or more C files as arguments, and reports error, warning, or informational messages as needed. .Bl -tag -width "C " .It Fl c Invoke 'cpp' against the input file .It Fl "C " Flags that are passed to 'cpp' .It Fl "d" Enable debug output .It Fl "D" Generate documentation for all .Nm messages .It Fl "I" Generate a table of .Dv xo_info_t structures. .It Fl "p" Print the offending lines after the error message is displayed .It Fl "V" Do not report errors, but instead print a complete list of all field names, sorted alphabetically. The output can help spot inconsistencies and spelling errors. .It Fl "X" Extract samples from .Nm , suitable for internal testing. .El .Pp The output message contains the source filename and line number, the class of the message, the message, and, if .Fl p is given, the line that contains the error: .Bd -literal -offset indent % xolint -t xolint.c xolint.c: 16: error: anchor format should be "%d" 16 xo_emit("{[:/%s}"); .Ed .Sh SEE ALSO .Xr libxo 3 , .Xr xo_emit 3 .Sh HISTORY The .Nm libxo library first appeared in .Fx 11.0 . .Sh AUTHORS .Nm libxo was written by .An Phil Shafer Aq Mt phil@freebsd.org .