<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [

<!--

`xsltproc -''-nonet \
          -''-param man.charmap.use.subset "0" \
          -''-param make.year.ranges "1" \
          -''-param make.single.year.ranges "1" \
          /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
          manpage.xml'

A manual page <package>.<section> will be generated. You may view the
manual page with: nroff -man <package>.<section> | less'. A typical entry
in a Makefile or Makefile.am is:

DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl
XP     = xsltproc -''-nonet -''-param man.charmap.use.subset "0"

manpage.1: manpage.xml
        $(XP) $(DB2MAN) $<

The xsltproc binary is found in the xsltproc package. The XSL files are in
docbook-xsl. A description of the parameters you can use can be found in the
docbook-xsl-doc-* packages. Please remember that if you create the nroff
version in one of the debian/rules file targets (such as build), you will need
to include xsltproc and docbook-xsl in your Build-Depends control field.
Alternatively use the xmlto command/package. That will also automatically
pull in xsltproc and docbook-xsl.

Notes for using docbook2x: docbook2x-man does not automatically create the
AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
<refsect1> ... </refsect1>.

To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
found in the docbook-xsl-doc-html package.

Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`

General documentation about man-pages and man-page-formatting:
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/

-->

  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
  <!ENTITY dhfirstname "Reijo">
  <!ENTITY dhsurname   "Tomperi">
  <!-- dhusername could also be set to "&firstname; &surname;". -->
  <!ENTITY dhusername  "&dhfirstname; &dhsurname;">
  <!ENTITY dhemail     "aggro80@users.sourceforge.net">
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
       allowed: see man(7), man(1) and
       http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
  <!ENTITY dhsection   "1">
  <!-- TITLE should be something like "User commands" or similar (see
       http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
  <!ENTITY dhtitle     "cppcheck User Manual">
  <!ENTITY dhucpackage "CPPCHECK">
  <!ENTITY dhpackage   "cppcheck">
]>

<refentry>
  <refentryinfo>
    <title>&dhtitle;</title>
    <productname>&dhpackage;</productname>
    <authorgroup>
      <author>
       <firstname>&dhfirstname;</firstname>
        <surname>&dhsurname;</surname>
        <contrib>Wrote this manpage for the Debian system.</contrib>
        <address>
          <email>&dhemail;</email>
        </address>
      </author>
    </authorgroup>
    <copyright>
      <year>2009</year>
      <holder>&dhusername;</holder>
    </copyright>
    <legalnotice>
      <para>This manual page was written for the Debian system
        (but may be used by others).</para>
      <para>Permission is granted to copy, distribute and/or modify this
        document under the terms of the GNU General Public License,
        Version 2 or (at your option) any later version published by
        the Free Software Foundation.</para>
      <para>On Debian systems, the complete text of the GNU General Public
        License can be found in
	<filename>/usr/share/common-licenses/GPL-2</filename>.</para>
    </legalnotice>
  </refentryinfo>
  <refmeta>
    <refentrytitle>&dhucpackage;</refentrytitle>
    <manvolnum>&dhsection;</manvolnum>
  </refmeta>
  <refnamediv>
    <refname>&dhpackage;</refname>
    <refpurpose>Simple syntax checking of C/C++.</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <cmdsynopsis>
      <command>&dhpackage;</command>
      <arg choice="opt"><option>--all</option></arg>
      <arg choice="opt"><option>--auto-dealloc [file]</option></arg>
      <arg choice="opt"><option>--error-exitcode=[n]</option></arg>
      <arg choice="opt"><option>--force</option></arg>
      <arg choice="opt"><option>--help</option></arg>
      <arg choice="opt"><option>-I[dir]</option></arg>
      <arg choice="opt"><option>-j[jobs]</option></arg>
      <arg choice="opt"><option>--quiet</option></arg>
      <arg choice="opt"><option>--style</option></arg>
      <arg choice="opt"><option>--unused-functions</option></arg>
      <arg choice="opt"><option>--verbose</option></arg>
      <arg choice="opt"><option>--version</option></arg>
      <arg choice="opt"><option>--xml</option></arg>
      <arg choice="opt"><option>file or path</option></arg>
      <arg choice="plain"><option>...</option></arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1 id="description">
    <title>DESCRIPTION</title>
    <para>A tool for static C/C++ code analysis
      Intended to complement the checking of the compiler.
      Checks for: memory leaks, mismatching allocation-deallocation,
      buffer overrun, and many more.</para>
  </refsect1>
  <refsect1 id="options">
    <title>OPTIONS</title>
    <para>Analyze given C/C++ files for common errors.</para>
    <variablelist>
      <!-- Use the variablelist.term.separator and the
           variablelist.term.break.after parameters to
           control the term elements. -->
      <varlistentry>
        <term><option>-a</option></term>
        <term><option>--all</option></term>
        <listitem>
          <para>Normally a message is only shown if cppcheck is sure it has
          found a bug. When this option is given, all messages are shown.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--auto-dealloc [file]</option></term>
        <listitem>
          <para>Suppress warnings about classes that have automatic deallocation</para>
          <para>The classnames must be provided in plain text - one classname / line - in a .lst file. </para>
          <para>This option can be given several times, allowing you to provide several .lst files.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--error-exitcode=[n]</option></term>
        <listitem>
          <para>If errors are found, integer [n] is returned instead of default 0.
          EXIT_FAILURE is returned if arguments are not valid or if no input files are
          provided. Note that your operating system can modify this value, e.g.
          256 can become 0.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-f</option></term>
        <term><option>--force</option></term>
        <listitem>
          <para>Force checking of files that have a lot of configurations. Error is printed if such a file is found so there is no reason to use this by
default.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-h</option></term>
        <term><option>--help</option></term>
        <listitem>
          <para>Print help text.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-I [dir]</option></term>
        <listitem>
          <para>Give include path. Give several -I parameters to give several paths. First given path is checked first. If paths are relative to source
files, this is not needed.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-j [jobs]</option></term>
        <listitem>
          <para>Start [jobs] threads to do the checking work.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-q</option></term>
        <term><option>--quiet</option></term>
        <listitem>
          <para>Only print something when there is an error.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-s</option></term>
        <term><option>--style</option></term>
        <listitem>
          <para>Check coding style.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--unused-functions</option></term>
        <listitem>
          <para>Check if there are unused functions</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-v</option></term>
        <term><option>--verbose</option></term>
        <listitem>
          <para>More detailed error reports</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--version</option></term>
        <listitem>
          <para>Print out version information</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--xml</option></term>
        <listitem>
          <para>Write results in xml to error stream</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1 id="author">
    <title>AUTHOR</title>
    <para>The program was written by Daniel Marjamäki, Reijo Tomperi, Nicolas Le Cam, Leandro Penz, Kimmo Varis and Vesa Pikki</para>
  </refsect1>
  <refsect1 id="see_also">
    <title>SEE ALSO</title>
    <!-- In alpabetical order. -->
    <para>Full list of features: http://cppcheck.wiki.sourceforge.net/</para>
  </refsect1>
</refentry>