diff options
author | Georg Brandl <georg@python.org> | 2009-04-27 16:58:05 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-04-27 16:58:05 (GMT) |
commit | 7b2669b8de4e6061e8e0f0697c54020eb16ffd4f (patch) | |
tree | 6ab4b199e747605f8495df561442588823bdd6ed | |
parent | 57e1b503cadb2e54d9628f666dfc8112d9ef0afd (diff) | |
download | cpython-7b2669b8de4e6061e8e0f0697c54020eb16ffd4f.zip cpython-7b2669b8de4e6061e8e0f0697c54020eb16ffd4f.tar.gz cpython-7b2669b8de4e6061e8e0f0697c54020eb16ffd4f.tar.bz2 |
Merged revisions 71995 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71995 | kurt.kaiser | 2009-04-27 01:22:11 +0200 (Mo, 27 Apr 2009) | 2 lines
Right click 'go to file/line' not working if spaces
in path. Bug 5559.
........
-rw-r--r-- | Lib/idlelib/NEWS.txt | 3 | ||||
-rw-r--r-- | Lib/idlelib/OutputWindow.py | 35 |
2 files changed, 13 insertions, 25 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 2918fe5..9bb47ba 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -30,6 +30,9 @@ What's New in IDLE 2.7? (UNRELEASED, but merged into 3.1 releases above.) *Release date: XX-XXX-2009* +- OutputWindow/PyShell right click menu "Go to file/line" wasn't working with + file paths containing spaces. Bug 5559. + - Windows: Version string for the .chm help file changed, file not being accessed Patch 5783 Guilherme Polo diff --git a/Lib/idlelib/OutputWindow.py b/Lib/idlelib/OutputWindow.py index 0782eaf..5a15873 100644 --- a/Lib/idlelib/OutputWindow.py +++ b/Lib/idlelib/OutputWindow.py @@ -58,6 +58,7 @@ class OutputWindow(EditorWindow): r'file "([^"]*)", line (\d+)', r'([^\s]+)\((\d+)\)', r'([^\s]+):\s*(\d+):', + r'^\s*(\S+.*?):\s*(\d+):', # Win path with spaces, trim leading spaces ] file_line_progs = None @@ -91,17 +92,17 @@ class OutputWindow(EditorWindow): def _file_line_helper(self, line): for prog in self.file_line_progs: - m = prog.search(line) - if m: - break + match = prog.search(line) + if match: + filename, lineno = match.group(1, 2) + try: + f = open(filename, "r") + f.close() + break + except IOError: + continue else: return None - filename, lineno = m.group(1, 2) - try: - f = open(filename, "r") - f.close() - except IOError: - return None try: return filename, int(lineno) except TypeError: @@ -134,19 +135,3 @@ class OnDemandOutputWindow: text.tag_configure(tag, **cnf) text.tag_raise('sel') self.write = self.owin.write - -#class PseudoFile: -# -# def __init__(self, owin, tags, mark="end"): -# self.owin = owin -# self.tags = tags -# self.mark = mark - -# def write(self, s): -# self.owin.write(s, self.tags, self.mark) - -# def writelines(self, l): -# map(self.write, l) - -# def flush(self): -# pass |