diff Tools/scripts/objgraph.py @ 15930:14a27acc755a legacy-trunk

Whitespace normalization.
author Tim Peters <tim.peters@gmail.com>
date Wed, 17 Jan 2001 08:48:39 +0000
parents 73758db2f464
children 8a7a2f1f88f0
line wrap: on
line diff
--- a/Tools/scripts/objgraph.py	Wed Jan 17 08:25:11 2001 +0000
+++ b/Tools/scripts/objgraph.py	Wed Jan 17 08:48:39 2001 +0000
@@ -40,19 +40,19 @@
 # If there is no list for the key yet, it is created.
 #
 def store(dict, key, item):
-	if dict.has_key(key):
-		dict[key].append(item)
-	else:
-		dict[key] = [item]
+    if dict.has_key(key):
+        dict[key].append(item)
+    else:
+        dict[key] = [item]
 
 # Return a flattened version of a list of strings: the concatenation
 # of its elements with intervening spaces.
 #
 def flat(list):
-	s = ''
-	for item in list:
-		s = s + ' ' + item
-	return s[1:]
+    s = ''
+    for item in list:
+        s = s + ' ' + item
+    return s[1:]
 
 # Global variables mapping defined/undefined names to files and back.
 #
@@ -65,151 +65,151 @@
 # Argument is an open file.
 #
 def readinput(file):
-	while 1:
-		s = file.readline()
-		if not s:
-			break
-		# If you get any output from this line,
-		# it is probably caused by an unexpected input line:
-		if matcher.search(s) < 0: s; continue # Shouldn't happen
-		(ra, rb), (r1a, r1b), (r2a, r2b), (r3a, r3b) = matcher.regs[:4]
-		fn, name, type = s[r1a:r1b], s[r3a:r3b], s[r2a:r2b]
-		if type in definitions:
-			store(def2file, name, fn)
-			store(file2def, fn, name)
-		elif type in externals:
-			store(file2undef, fn, name)
-			store(undef2file, name, fn)
-		elif not type in ignore:
-			print fn + ':' + name + ': unknown type ' + type
+    while 1:
+        s = file.readline()
+        if not s:
+            break
+        # If you get any output from this line,
+        # it is probably caused by an unexpected input line:
+        if matcher.search(s) < 0: s; continue # Shouldn't happen
+        (ra, rb), (r1a, r1b), (r2a, r2b), (r3a, r3b) = matcher.regs[:4]
+        fn, name, type = s[r1a:r1b], s[r3a:r3b], s[r2a:r2b]
+        if type in definitions:
+            store(def2file, name, fn)
+            store(file2def, fn, name)
+        elif type in externals:
+            store(file2undef, fn, name)
+            store(undef2file, name, fn)
+        elif not type in ignore:
+            print fn + ':' + name + ': unknown type ' + type
 
 # Print all names that were undefined in some module and where they are
 # defined.
 #
 def printcallee():
-	flist = file2undef.keys()
-	flist.sort()
-	for file in flist:
-		print file + ':'
-		elist = file2undef[file]
-		elist.sort()
-		for ext in elist:
-			if len(ext) >= 8:
-				tabs = '\t'
-			else:
-				tabs = '\t\t'
-			if not def2file.has_key(ext):
-				print '\t' + ext + tabs + ' *undefined'
-			else:
-				print '\t' + ext + tabs + flat(def2file[ext])
+    flist = file2undef.keys()
+    flist.sort()
+    for file in flist:
+        print file + ':'
+        elist = file2undef[file]
+        elist.sort()
+        for ext in elist:
+            if len(ext) >= 8:
+                tabs = '\t'
+            else:
+                tabs = '\t\t'
+            if not def2file.has_key(ext):
+                print '\t' + ext + tabs + ' *undefined'
+            else:
+                print '\t' + ext + tabs + flat(def2file[ext])
 
 # Print for each module the names of the other modules that use it.
 #
 def printcaller():
-	files = file2def.keys()
-	files.sort()
-	for file in files:
-		callers = []
-		for label in file2def[file]:
-			if undef2file.has_key(label):
-				callers = callers + undef2file[label]
-		if callers:
-			callers.sort()
-			print file + ':'
-			lastfn = ''
-			for fn in callers:
-				if fn <> lastfn:
-					print '\t' + fn
-				lastfn = fn
-		else:
-			print file + ': unused'
+    files = file2def.keys()
+    files.sort()
+    for file in files:
+        callers = []
+        for label in file2def[file]:
+            if undef2file.has_key(label):
+                callers = callers + undef2file[label]
+        if callers:
+            callers.sort()
+            print file + ':'
+            lastfn = ''
+            for fn in callers:
+                if fn <> lastfn:
+                    print '\t' + fn
+                lastfn = fn
+        else:
+            print file + ': unused'
 
 # Print undefine names and where they are used.
 #
 def printundef():
-	undefs = {}
-	for file in file2undef.keys():
-		for ext in file2undef[file]:
-			if not def2file.has_key(ext):
-				store(undefs, ext, file)
-	elist = undefs.keys()
-	elist.sort()
-	for ext in elist:
-		print ext + ':'
-		flist = undefs[ext]
-		flist.sort()
-		for file in flist:
-			print '\t' + file
+    undefs = {}
+    for file in file2undef.keys():
+        for ext in file2undef[file]:
+            if not def2file.has_key(ext):
+                store(undefs, ext, file)
+    elist = undefs.keys()
+    elist.sort()
+    for ext in elist:
+        print ext + ':'
+        flist = undefs[ext]
+        flist.sort()
+        for file in flist:
+            print '\t' + file
 
 # Print warning messages about names defined in more than one file.
 #
 def warndups():
-	savestdout = sys.stdout
-	sys.stdout = sys.stderr
-	names = def2file.keys()
-	names.sort()
-	for name in names:
-		if len(def2file[name]) > 1:
-			print 'warning:', name, 'multiply defined:',
-			print flat(def2file[name])
-	sys.stdout = savestdout
+    savestdout = sys.stdout
+    sys.stdout = sys.stderr
+    names = def2file.keys()
+    names.sort()
+    for name in names:
+        if len(def2file[name]) > 1:
+            print 'warning:', name, 'multiply defined:',
+            print flat(def2file[name])
+    sys.stdout = savestdout
 
 # Main program
 #
 def main():
-	try:
-		optlist, args = getopt.getopt(sys.argv[1:], 'cdu')
-	except getopt.error:
-		sys.stdout = sys.stderr
-		print 'Usage:', os.path.basename(sys.argv[0]),
-		print           '[-cdu] [file] ...'
-		print '-c: print callers per objectfile'
-		print '-d: print callees per objectfile'
-		print '-u: print usage of undefined symbols'
-		print 'If none of -cdu is specified, all are assumed.'
-		print 'Use "nm -o" to generate the input (on IRIX: "nm -Bo"),'
-		print 'e.g.: nm -o /lib/libc.a | objgraph'
-		return 1
-	optu = optc = optd = 0
-	for opt, void in optlist:
-		if opt == '-u':
-			optu = 1
-		elif opt == '-c':
-			optc = 1
-		elif opt == '-d':
-			optd = 1
-	if optu == optc == optd == 0:
-		optu = optc = optd = 1
-	if not args:
-		args = ['-']
-	for file in args:
-		if file == '-':
-			readinput(sys.stdin)
-		else:
-			readinput(open(file, 'r'))
-	#
-	warndups()
-	#
-	more = (optu + optc + optd > 1)
-	if optd:
-		if more:
-			print '---------------All callees------------------'
-		printcallee()
-	if optu:
-		if more:
-			print '---------------Undefined callees------------'
-		printundef()
-	if optc:
-		if more:
-			print '---------------All Callers------------------'
-		printcaller()
-	return 0
+    try:
+        optlist, args = getopt.getopt(sys.argv[1:], 'cdu')
+    except getopt.error:
+        sys.stdout = sys.stderr
+        print 'Usage:', os.path.basename(sys.argv[0]),
+        print           '[-cdu] [file] ...'
+        print '-c: print callers per objectfile'
+        print '-d: print callees per objectfile'
+        print '-u: print usage of undefined symbols'
+        print 'If none of -cdu is specified, all are assumed.'
+        print 'Use "nm -o" to generate the input (on IRIX: "nm -Bo"),'
+        print 'e.g.: nm -o /lib/libc.a | objgraph'
+        return 1
+    optu = optc = optd = 0
+    for opt, void in optlist:
+        if opt == '-u':
+            optu = 1
+        elif opt == '-c':
+            optc = 1
+        elif opt == '-d':
+            optd = 1
+    if optu == optc == optd == 0:
+        optu = optc = optd = 1
+    if not args:
+        args = ['-']
+    for file in args:
+        if file == '-':
+            readinput(sys.stdin)
+        else:
+            readinput(open(file, 'r'))
+    #
+    warndups()
+    #
+    more = (optu + optc + optd > 1)
+    if optd:
+        if more:
+            print '---------------All callees------------------'
+        printcallee()
+    if optu:
+        if more:
+            print '---------------Undefined callees------------'
+        printundef()
+    if optc:
+        if more:
+            print '---------------All Callers------------------'
+        printcaller()
+    return 0
 
 # Call the main program.
 # Use its return value as exit status.
 # Catch interrupts to avoid stack trace.
 #
 try:
-	sys.exit(main())
+    sys.exit(main())
 except KeyboardInterrupt:
-	sys.exit(1)
+    sys.exit(1)