freebsd-dev/contrib/libxo/xolint/xolint.1
Marcel Moolenaar 788ca347b8 Upgrade libxo to 0.3.2.
Obtained from:  https://github.com/Juniper/libxo/tree/0.3.2
Requested by: Phil Shafer <phil@juniper.net>

This import incorporates local change 279966.
Local change 276260 has been merged-in.
2015-04-27 17:23:19 +00:00

105 lines
2.2 KiB
Groff

.\" #
.\" # 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 <flags>"
.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 <flags>"
.It Fl c
Invoke 'cpp' against the input file
.It Fl "C <flags>"
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 ADDITIONAL DOCUMENTATION
Complete documentation can be found on github:
.Bd -literal -offset indent
http://juniper.github.io/libxo/libxo-manual.html
.Ed
.Pp
.Nm libxo
lives on github as:
.Bd -literal -offset indent
https://github.com/Juniper/libxo
.Ed
.Pp
The latest release of
.Nm libxo
is available at:
.Bd -literal -offset indent
https://github.com/Juniper/libxo/releases
.Ed
.Sh SEE ALSO
.Xr libxo 3 ,
.Xr xo_emit 3
.Sh HISTORY
The
.Nm libxo
library was added in
.Fx 11.0 .
.Sh AUTHOR
Phil Shafer