diff options
author | Johannes Gijsbers <jlg@dds.nl> | 2004-08-17 13:21:53 (GMT) |
---|---|---|
committer | Johannes Gijsbers <jlg@dds.nl> | 2004-08-17 13:21:53 (GMT) |
commit | e7691d36b70968ae6fd7f7d537922a6da45fc1d1 (patch) | |
tree | 275c8da9878c107085d0292dfc560b46d7d11350 /Lib/pydoc.py | |
parent | 30d00085771bdf2e989678b8d621402bff431583 (diff) | |
download | cpython-e7691d36b70968ae6fd7f7d537922a6da45fc1d1.zip cpython-e7691d36b70968ae6fd7f7d537922a6da45fc1d1.tar.gz cpython-e7691d36b70968ae6fd7f7d537922a6da45fc1d1.tar.bz2 |
Use readline/raw_input() in pydoc.Helper.interact if available and self.input
is sys.stdin. Based on a patch (#726204) by Dmitry Vasiliev and a comment from
Guido in an older patch (#549901).
Diffstat (limited to 'Lib/pydoc.py')
-rwxr-xr-x | Lib/pydoc.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py index c02c140..12ae277 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1618,16 +1618,24 @@ has the same effect as typing a particular string at the help> prompt. def interact(self): self.output.write('\n') while True: - self.output.write('help> ') - self.output.flush() try: - request = self.input.readline() + request = self.getline('help> ') if not request: break - except KeyboardInterrupt: break + except (KeyboardInterrupt, EOFError): + break request = strip(replace(request, '"', '', "'", '')) if lower(request) in ['q', 'quit']: break self.help(request) + def getline(self, prompt): + """Read one line, using raw_input when available.""" + if self.input is sys.stdin: + return raw_input(prompt) + else: + self.output.write(prompt) + self.output.flush() + return self.input.readline() + def help(self, request): if type(request) is type(''): if request == 'help': self.intro() |