Mercurial > python-cmd2
diff cmd2.py @ 50:dccf27f52f51
unifying pipe and redirect
author | catherine@localhost |
---|---|
date | Mon, 09 Jun 2008 10:05:25 -0400 |
parents | 8926b72d828e |
children | 26e33f64f68e |
line wrap: on
line diff
--- a/cmd2.py Fri Jun 06 16:51:09 2008 -0400 +++ b/cmd2.py Mon Jun 09 10:05:25 2008 -0400 @@ -234,7 +234,7 @@ """ command, args = self.extractCommand(line) - statement = ' '.join([command, args]) + statement = originalStatement = ' '.join([command, args]) if (not assumeComplete) and (command in self.multilineCommands): statement = self.finishStatement(statement) statekeeper = None @@ -246,9 +246,11 @@ self.stdout = redirect.stdin stop = cmd.Cmd.onecmd(self, statement) statekeeper.restore() - for result in redirect.communicate(): + for result in redirect.communicate(): self.stdout.write(result or '') - return stop # didn't record in history + if command not in self.excludeFromHistory: + self.history.append(originalStatement) + return stop else: statement, redirect, mode = self.parseRedirectors(statement) if redirect == self._TO_PASTE_BUFFER: @@ -273,7 +275,7 @@ stop = cmd.Cmd.onecmd(self, statement) try: if command not in self.excludeFromHistory: - self.history.append(statement) # or should we append the unmodified statement? + self.history.append(originalStatement) finally: if statekeeper: if redirect == self._TO_PASTE_BUFFER: @@ -288,6 +290,7 @@ #import pdb; pdb.set_trace() return bool(self.statementEndPattern.search(lines)) \ or lines[-3:] == 'EOF' \ + or self.findPipe(lines)[1] \ or self.parseRedirectors(lines)[1] def finishStatement(self, firstline):