diff Lib/cmd.py @ 9089:e71f83922392 legacy-trunk

Richard Wolff's changes: cmd.py has incorporated the changes we discussed a couple of weeks ago (a command queue, returning line from precmd, and stop from postcmd) and some changes to help that were occasioned because I wanted to inherit from pdb which inherits from cmd.py and the help routine didn't look for commands or the associated help deeply enough.
author Guido van Rossum <guido@python.org>
date Fri, 11 Sep 1998 22:33:08 +0000
parents 16f8397d8f04
children 52206532d389
line wrap: on
line diff
--- a/Lib/cmd.py	Fri Sep 11 16:21:55 1998 +0000
+++ b/Lib/cmd.py	Fri Sep 11 22:33:08 1998 +0000
@@ -131,15 +131,30 @@
 				return
 			func()
 		else:
-			names = dir(self.__class__)
+			# Inheritance says we have to look in class and
+			# base classes; order is not important.
+			names = []
+			classes = [self.__class__]
+			while classes:
+				aclass = classes[0]
+				if aclass.__bases__:
+				    classes = classes + list(aclass.__bases__)
+				names = names + dir(aclass)
+				del classes[0]
 			cmds_doc = []
 			cmds_undoc = []
 			help = {}
 			for name in names:
 				if name[:5] == 'help_':
 					help[name[5:]]=1
+			names.sort()
+			# There can be duplicates if routines overridden
+			prevname = ''
 			for name in names:
 				if name[:3] == 'do_':
+					if name == prevname:
+						continue
+					prevname = name
 					cmd=name[3:]
 					if help.has_key(cmd):
 						cmds_doc.append(cmd)