Commit 83a4946e authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Prune the .may_include files a bit; detect unused lines in them

parent adcd1d8b
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -20,8 +20,10 @@ INCLUDE_PATTERN = re.compile(r'\s*#\s*include\s+"([^"]*)"')
RULES_FNAME = ".may_include"

class Rules(object):
    def __init__(self):
    def __init__(self, dirpath):
        self.dirpath = dirpath
        self.patterns = []
        self.usedPatterns = set()

    def addPattern(self, pattern):
        self.patterns.append(pattern)
@@ -29,6 +31,7 @@ class Rules(object):
    def includeOk(self, path):
        for pattern in self.patterns:
            if fnmatch.fnmatchcase(path, pattern):
                self.usedPatterns.add(pattern)
                return True
        return False

@@ -48,8 +51,13 @@ class Rules(object):
            #print(fname)
            self.applyToLines(iter(f), " of {}".format(fname))

    def noteUnusedRules(self):
        for p in self.patterns:
            if p not in self.usedPatterns:
                print("Pattern {} in {} was never used.".format(p, self.dirpath))

def load_include_rules(fname):
    result = Rules()
    result = Rules(os.path.split(fname)[0])
    with open(fname, 'r') as f:
        for line in f:
            line = line.strip()
@@ -58,12 +66,16 @@ def load_include_rules(fname):
            result.addPattern(line)
    return result

list_unused = False

for dirpath, dirnames, fnames in os.walk("src"):
    if ".may_include" in fnames:
        rules = load_include_rules(os.path.join(dirpath, RULES_FNAME))
        for fname in fnames:
            if fname_is_c(fname):
                rules.applyToFile(os.path.join(dirpath,fname))
        if list_unused:
            rules.noteUnusedRules()

if trouble:
    err(
+0 −3
Original line number Diff line number Diff line
@@ -3,9 +3,6 @@ common/*.h
lib/*/*.h

# XXXX These all belong somewhere else
ht.h
linux_syscalls.inc
siphash.h
src/ext/timeouts/timeout.c
tor_queue.h
tor_readpassphrase.h
+0 −1
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ lib/encoding/*.h
lib/fs/*.h
lib/lock/*.h
lib/malloc/*.h
lib/err/*.h
lib/intmath/*.h
lib/sandbox/*.h
lib/string/*.h
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ lib/cc/*.h
lib/container/*.h
lib/ctime/*.h
lib/err/*.h
lib/intmath/*.h
lib/fs/*.h
lib/log/*.h
lib/malloc/*.h
+4 −4
Original line number Diff line number Diff line
orconfig.h

lib/arch/*.h
lib/cc/*.h
lib/ctime/*.h
lib/container/*.h
lib/crypt_ops/*.h
lib/intmath/*.h
lib/ctime/*.h
lib/encoding/*.h
lib/err/*.h
lib/intmath/*.h
lib/log/*.h
lib/net/*.h
lib/string/*.h
lib/testsupport/testsupport.h
lib/tls/*.h
lib/log/*.h

ciphers.inc