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.
This commit is contained in:
parent
c064a1d7e3
commit
35a92ce9da
24
Lib/cmd.py
24
Lib/cmd.py
|
@ -86,13 +86,7 @@ class Cmd:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
self.cmdqueue = []
|
self.cmdqueue = []
|
||||||
if completekey:
|
self.completekey = completekey
|
||||||
try:
|
|
||||||
import readline
|
|
||||||
readline.set_completer(self.complete)
|
|
||||||
readline.parse_and_bind(completekey+": complete")
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def cmdloop(self, intro=None):
|
def cmdloop(self, intro=None):
|
||||||
"""Repeatedly issue a prompt, accept input, parse an initial prefix
|
"""Repeatedly issue a prompt, accept input, parse an initial prefix
|
||||||
|
@ -142,14 +136,26 @@ class Cmd:
|
||||||
|
|
||||||
def preloop(self):
|
def preloop(self):
|
||||||
"""Hook method executed once when the cmdloop() method is called."""
|
"""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):
|
def postloop(self):
|
||||||
"""Hook method executed once when the cmdloop() method is about to
|
"""Hook method executed once when the cmdloop() method is about to
|
||||||
return.
|
return.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
pass
|
if self.completekey:
|
||||||
|
try:
|
||||||
|
import readline
|
||||||
|
readline.set_completer(self.old_completer)
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
def parseline(self, line):
|
def parseline(self, line):
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
|
|
Loading…
Reference in New Issue