blob: ecb24d756e870c94dff12534a65dcaf5cb1c35f4 (
plain)
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
42
43
44
|
#!/usr/bin/env python
# Check the style of WiredTiger C code.
from dist import source_files
import re, sys
# Complain if a function comment is missing.
def missing_comment():
for f in source_files():
skip_re = re.compile(r'DO NOT EDIT: automatically built')
func_re = re.compile(
r'(/\*(?:[^\*]|\*[^/])*\*/)?\n\w[\w \*]+\n(\w+)', re.DOTALL)
s = open(f, 'r').read()
if skip_re.search(s):
continue
for m in func_re.finditer(s):
if not m.group(1) or \
not m.group(1).startswith('/*\n * %s --\n' % m.group(2)):
print "%s:%d: missing comment for %s" % \
(f, s[:m.start(2)].count('\n'), m.group(2))
# Display lines that could be joined.
def lines_could_join():
skip_re = re.compile(r'__asm__')
match_re = re.compile('(^[ \t].*\()\n^[ \t]*([^\n]*)', re.MULTILINE)
for f in source_files():
s = open(f, 'r').read()
if skip_re.search(s):
continue
for m in match_re.finditer(s):
if len(m.group(1).expandtabs()) + \
len(m.group(2).expandtabs()) < 80:
print f + ': lines may be combined: '
print '\t' + m.group(1).lstrip() + m.group(2)
print
missing_comment()
# Don't display lines that could be joined by default; in some cases, the code
# isn't maintained by WiredTiger, or the line splitting enhances readability.
if len(sys.argv) > 1:
lines_could_join()
|