File: cppcheck.py

package info (click to toggle)
cppcheck 2.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 26,132 kB
  • sloc: cpp: 268,935; python: 20,890; ansic: 8,090; sh: 1,045; makefile: 1,008; xml: 1,005; cs: 291
file content (41 lines) | stat: -rw-r--r-- 1,060 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

import cppcheckdata
import sys
import os

__checkers__ = []

def checker(f):
    __checkers__.append(f)
    return f


__errorid__ = ''
__addon_name__ = ''
def reportError(location, severity, message, errorId=None):
    cppcheckdata.reportError(location, severity, message, __addon_name__, errorId or __errorid__)

def runcheckers():
    # If there are no checkers then don't run
    if len(__checkers__) == 0:
        return
    global __addon_name__
    global __errorid__
    addon = sys.argv[0]
    parser = cppcheckdata.ArgumentParser()
    args = parser.parse_args()

    __addon_name__ = os.path.splitext(os.path.basename(addon))[0]

    for dumpfile in args.dumpfile:
        if not args.quiet:
            print('Checking %s...' % dumpfile)

        data = cppcheckdata.CppcheckData(dumpfile)

        for cfg in data.iterconfigurations():
            if not args.quiet:
                print('Checking %s, config %s...' % (dumpfile, cfg.name))
            for c in __checkers__:
                __errorid__ = c.__name__
                c(cfg, data)