aboutsummaryrefslogtreecommitdiff
path: root/doc/xolint.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/xolint.rst')
-rw-r--r--doc/xolint.rst40
1 files changed, 40 insertions, 0 deletions
diff --git a/doc/xolint.rst b/doc/xolint.rst
new file mode 100644
index 000000000000..739fa18558f7
--- /dev/null
+++ b/doc/xolint.rst
@@ -0,0 +1,40 @@
+======
+xolint
+======
+
+`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.
+
+.. _xo_info_t: :ref:`field-information`
+
+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.