*** cmd.py Thu Jun 6 10:53:26 2002 --- /usr/local/lib/python2.1/cmd.py Tue Apr 23 16:50:57 2002 *************** *** 37,42 **** --- 37,44 ---- import string, sys + __all__ = ["Cmd"] + PROMPT = '(Cmd) ' IDENTCHARS = string.letters + string.digits + '_' *************** *** 54,75 **** nohelp = "*** No help on %s" use_rawinput = 1 ! def __init__(self,stdin=None, stdout=None): ! if stdin is not None: ! self.stdin = stdin ! else: ! self.stdin = sys.stdin ! if stdout is not None: ! self.stdout = stdout ! else: ! self.stdout = sys.stdout def cmdloop(self, intro=None): self.preloop() ! if intro != None: self.intro = intro if self.intro: ! self.stdout.write("%s\n"%(str( self.intro ))) stop = None while not stop: if self.cmdqueue: --- 56,69 ---- nohelp = "*** No help on %s" use_rawinput = 1 ! def __init__(self): pass def cmdloop(self, intro=None): self.preloop() ! if intro is not None: self.intro = intro if self.intro: ! print self.intro stop = None while not stop: if self.cmdqueue: *************** *** 106,112 **** pass def onecmd(self, line): ! line = string.strip(line) if not line: return self.emptyline() elif line[0] == '?': --- 100,106 ---- pass def onecmd(self, line): ! line = line.strip() if not line: return self.emptyline() elif line[0] == '?': *************** *** 119,125 **** self.lastcmd = line i, n = 0, len(line) while i < n and line[i] in self.identchars: i = i+1 ! cmd, arg = line[:i], string.strip(line[i:]) if cmd == '': return self.default(line) else: --- 113,119 ---- self.lastcmd = line i, n = 0, len(line) while i < n and line[i] in self.identchars: i = i+1 ! cmd, arg = line[:i], line[i:].strip() if cmd == '': return self.default(line) else: *************** *** 134,143 **** return self.onecmd(self.lastcmd) def default(self, line): ! self.stdout.write('*** Unknown syntax: %s (%s)\n'%(str(line),repr(line))) def do_help(self, arg): - "show help" if arg: # XXX check arg syntax try: --- 128,136 ---- return self.onecmd(self.lastcmd) def default(self, line): ! print '*** Unknown syntax:', line def do_help(self, arg): if arg: # XXX check arg syntax try: *************** *** 146,156 **** try: doc=getattr(self, 'do_' + arg).__doc__ if doc: ! self.stdout.write("%s\n"%(str(doc))) return except: pass ! self.stdout.write("%s\n"%(str(self.nohelp % (arg,)))) return func() else: --- 139,149 ---- try: doc=getattr(self, 'do_' + arg).__doc__ if doc: ! print doc return except: pass ! print self.nohelp % (arg,) return func() else: *************** *** 186,205 **** cmds_doc.append(cmd) else: cmds_undoc.append(cmd) ! self.stdout.write("%s\n"%(str(self.doc_leader))) self.print_topics(self.doc_header, cmds_doc, 15,80) self.print_topics(self.misc_header, help.keys(),15,80) self.print_topics(self.undoc_header, cmds_undoc, 15,80) def print_topics(self, header, cmds, cmdlen, maxcol): if cmds: ! self.stdout.write("%s\n"%str(header)) if self.ruler: ! self.stdout.write("%s\n"%(str( self.ruler * len(header)))) (cmds_per_line,junk)=divmod(maxcol,cmdlen) col=cmds_per_line for cmd in cmds: ! if col==0: self.stdout.write("\n") ! self.stdout.write("%s"%(str( (("%-"+`cmdlen`+"s") % cmd) ))), col = (col+1) % cmds_per_line ! self.stdout.write("\n") --- 179,198 ---- cmds_doc.append(cmd) else: cmds_undoc.append(cmd) ! print self.doc_leader self.print_topics(self.doc_header, cmds_doc, 15,80) self.print_topics(self.misc_header, help.keys(),15,80) self.print_topics(self.undoc_header, cmds_undoc, 15,80) def print_topics(self, header, cmds, cmdlen, maxcol): if cmds: ! print header if self.ruler: ! print self.ruler * len(header) (cmds_per_line,junk)=divmod(maxcol,cmdlen) col=cmds_per_line for cmd in cmds: ! if col==0: print ! print (("%-"+`cmdlen`+"s") % cmd), col = (col+1) % cmds_per_line ! print "\n"