summaryrefslogtreecommitdiff
path: root/cmd2/cmd2.py
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2018-06-07 17:14:54 -0700
committerGitHub <noreply@github.com>2018-06-07 17:14:54 -0700
commitfd60e40bf96e06ff9410f71acbadfb43e3527dfd (patch)
tree4feb462ba0ca571b6c24427dd7d1b7f5554ddd71 /cmd2/cmd2.py
parenteb8181e7d3f900cecd1455efd75f3b5c5f6918cd (diff)
parent5aa4eb17954f046a284fb2a81d5d5abd6adc11df (diff)
downloadcmd2-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.py18
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)