File: cppcheck.py

package info (click to toggle)
cppcheck 2.17.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 25,384 kB
  • sloc: cpp: 263,341; python: 19,737; ansic: 7,953; sh: 1,018; makefile: 996; xml: 994; cs: 291
file content (41 lines) | stat: -rw-r--r-- 1,060 bytes parent folder | download
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)