summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael W. Hudson <mwh@python.net>2003-02-03 11:04:27 (GMT)
committerMichael W. Hudson <mwh@python.net>2003-02-03 11:04:27 (GMT)
commit35a92ce9da03a7a8acce565708eba96bf7cc2f1c (patch)
tree44e39759a70baffbd8c680d576e52bb89134d252
parentc064a1d7e36ba58f8402c9fd03395904adabe3e8 (diff)
downloadcpython-35a92ce9da03a7a8acce565708eba96bf7cc2f1c.zip
cpython-35a92ce9da03a7a8acce565708eba96bf7cc2f1c.tar.gz
cpython-35a92ce9da03a7a8acce565708eba96bf7cc2f1c.tar.bz2
Fix bug
[ 676342 ] after using pdb readline does not work correctly using Michael Stone's patch so the completer functionality of cmd is only setup between preloop and postloop.
-rw-r--r--Lib/cmd.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/Lib/cmd.py b/Lib/cmd.py
index f0637ed..5929903 100644
--- a/Lib/cmd.py
+++ b/Lib/cmd.py
@@ -86,13 +86,7 @@ class Cmd:
"""
self.cmdqueue = []
- if completekey:
- try:
- import readline
- readline.set_completer(self.complete)
- readline.parse_and_bind(completekey+": complete")
- except ImportError:
- pass
+ self.completekey = completekey
def cmdloop(self, intro=None):
"""Repeatedly issue a prompt, accept input, parse an initial prefix
@@ -142,14 +136,26 @@ class Cmd:
def preloop(self):
"""Hook method executed once when the cmdloop() method is called."""
- pass
+ if 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
def postloop(self):
"""Hook method executed once when the cmdloop() method is about to
return.
"""
- pass
+ if self.completekey:
+ try:
+ import readline
+ readline.set_completer(self.old_completer)
+ except ImportError:
+ pass
def parseline(self, line):
line = line.strip()