diff options
author | Todd Leonhardt <todd.leonhardt@gmail.com> | 2018-06-07 17:14:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-07 17:14:54 -0700 |
commit | fd60e40bf96e06ff9410f71acbadfb43e3527dfd (patch) | |
tree | 4feb462ba0ca571b6c24427dd7d1b7f5554ddd71 /cmd2/cmd2.py | |
parent | eb8181e7d3f900cecd1455efd75f3b5c5f6918cd (diff) | |
parent | 5aa4eb17954f046a284fb2a81d5d5abd6adc11df (diff) | |
download | cmd2-git-fd60e40bf96e06ff9410f71acbadfb43e3527dfd.tar.gz |
Merge pull request #434 from python-cmd2/fix_redirection
Fix unexpected redirection behavior
Diffstat (limited to 'cmd2/cmd2.py')
-rw-r--r-- | cmd2/cmd2.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py index bb4ac4ad..d0d8352c 100644 --- a/cmd2/cmd2.py +++ b/cmd2/cmd2.py @@ -33,7 +33,6 @@ import argparse import cmd import collections from colorama import Fore -import copy import glob import os import platform @@ -498,10 +497,11 @@ class Cmd(cmd.Cmd): # An optional header that prints above the tab-completion suggestions self.completion_header = '' - # If the tab-completion suggestions should be displayed in a way that is different than the actual match values, - # then place those results in this list. The full matches still must be returned from your completer function. - # For an example, look at path_complete() which uses this to show only the basename of paths as the - # suggestions. delimiter_complete() also populates this list. + # Use this list if you are completing strings that contain a common delimiter and you only want to + # display the final portion of the matches as the tab-completion suggestions. The full matches + # still must be returned from your completer function. For an example, look at path_complete() + # which uses this to show only the basename of paths as the suggestions. delimiter_complete() also + # populates this list. self.display_matches = [] # Used by functions like path_complete() and delimiter_complete() to properly @@ -692,6 +692,7 @@ class Cmd(cmd.Cmd): On Failure Both items are None """ + import copy unclosed_quote = '' quotes_to_try = copy.copy(constants.QUOTES) @@ -1330,7 +1331,7 @@ class Cmd(cmd.Cmd): # from text and update the indexes. This only applies if we are at the the beginning of the line. shortcut_to_restore = '' if begidx == 0: - for (shortcut, expansion) in self.shortcuts: + for (shortcut, _) in self.shortcuts: if text.startswith(shortcut): # Save the shortcut to restore later shortcut_to_restore = shortcut @@ -1439,6 +1440,7 @@ class Cmd(cmd.Cmd): # Since self.display_matches is empty, set it to self.completion_matches # before we alter them. That way the suggestions will reflect how we parsed # the token being completed and not how readline did. + import copy self.display_matches = copy.copy(self.completion_matches) # Check if we need to add an opening quote @@ -1855,7 +1857,7 @@ class Cmd(cmd.Cmd): if statement.output == constants.REDIRECTION_APPEND: mode = 'a' try: - sys.stdout = self.stdout = open(os.path.expanduser(statement.output_to), mode) + sys.stdout = self.stdout = open(statement.output_to, mode) except OSError as ex: self.perror('Not Redirecting because - {}'.format(ex), traceback_war=False) self.redirecting = False @@ -2384,7 +2386,7 @@ Usage: Usage: unalias [-a] name [name ...] fulloptions.append((opt[0], opt[1])) except IndexError: fulloptions.append((opt[0], opt[0])) - for (idx, (value, text)) in enumerate(fulloptions): + for (idx, (_, text)) in enumerate(fulloptions): self.poutput(' %2d. %s\n' % (idx + 1, text)) while True: response = input(prompt) |