Mercurial > sqlpython
diff cmd2.py @ 32:ebefe2d57e3b
multiline stops after line 2
author | devlinjs@FA7CZA6N1254998.wrightpatterson.afmc.ds.af.mil |
---|---|
date | Fri, 21 Dec 2007 15:31:17 -0500 |
parents | 5e2f6ec2e383 |
children | 061f40299ed5 |
line wrap: on
line diff
--- a/cmd2.py Fri Dec 21 15:06:13 2007 -0500 +++ b/cmd2.py Fri Dec 21 15:31:17 2007 -0500 @@ -94,9 +94,52 @@ if not len(line): line = 'EOF' else: - line = line[:-1] # chop \n + if line[-1] == '\n': # this was always true in Cmd + line = line[:-1] return line - + + def cmdloop(self, intro=None): + """Repeatedly issue a prompt, accept input, parse an initial prefix + off the received input, and dispatch to action methods, passing them + the remainder of the line as argument. + """ + + # An almost perfect copy from Cmd; however, the pseudo_raw_input portion + # has been split out so that it can be called separately + + self.preloop() + if self.use_rawinput and self.completekey: + try: + import readline + self.old_completer = readline.get_completer() + readline.set_completer(self.complete) + readline.parse_and_bind(self.completekey+": complete") + except ImportError: + pass + try: + if intro is not None: + self.intro = intro + if self.intro: + self.stdout.write(str(self.intro)+"\n") + stop = None + while not stop: + if self.cmdqueue: + line = self.cmdqueue.pop(0) + else: + line = self.pseudo_raw_input(self.prompt) + line = self.precmd(line) + stop = self.onecmd(line) + stop = self.postcmd(stop, line) + self.postloop() + finally: + if self.use_rawinput and self.completekey: + try: + import readline + readline.set_completer(self.old_completer) + except ImportError: + pass + + def do_EOF(self, arg): return True do_eof = do_EOF