def main(): logging.basicConfig(stream=sys.stderr, level=logging.DEBUG) #Configurator().default() if (len(sys.argv) < 2): print("Call: %s <output from FindIncludeGuards.sh>" % (sys.argv[0], )) exit() # TODO move i files_to_guards = dict([ (path_name, guard) for (path_name, guard) in csv.reader(open(sys.argv[1]), delimiter=':') ]) #duplicates = CollectionTools.find_duplicates(files_to_guards.itervalues(), lambda x: len(x)==0 or x == '#pragma once') duplicates_dict = CollectionTools.find_duplicate_values( files_to_guards.iteritems(), lambda x: len(x) == 0 or x == '#pragma once') correct, pragma_once, missing, irregular, ms_generated, guard = check_include_guards( files_to_guards, path_name, guard) print( "%i correct (%i of which using #pragma once before or without a guard), %i missing guard or malformed structure, %i irregular (%i of which are MS generated)" % (correct, pragma_once, missing, irregular, ms_generated)) #print("%i duplicates: %s" % (len(duplicates), ",".join(duplicates))) print("%i duplicates" % (len(duplicates_dict))) for guard in sorted(duplicates_dict.keys()): print("%s:%s" % (guard, ",".join(sorted(duplicates_dict[guard]))))
def determine_duplicates(): header_to_module_map = config_file_to_module_map_supply( ).get_module_to_header_file_map() duplicates = CollectionTools.find_duplicate_values(header_to_module_map) return duplicates