[Python-checkins] r71995 - in python/trunk/Lib/idlelib: NEWS.txt OutputWindow.py

kurt.kaiser python-checkins at python.org
Mon Apr 27 01:22:11 CEST 2009


Author: kurt.kaiser
Date: Mon Apr 27 01:22:11 2009
New Revision: 71995
Log:
Right click 'go to file/line' not working if spaces
in path. Bug 5559.
Modified:
 python/trunk/Lib/idlelib/NEWS.txt
 python/trunk/Lib/idlelib/OutputWindow.py
Modified: python/trunk/Lib/idlelib/NEWS.txt
==============================================================================
--- python/trunk/Lib/idlelib/NEWS.txt	(original)
+++ python/trunk/Lib/idlelib/NEWS.txt	Mon Apr 27 01:22:11 2009
@@ -3,6 +3,9 @@
 
 *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
 
Modified: python/trunk/Lib/idlelib/OutputWindow.py
==============================================================================
--- python/trunk/Lib/idlelib/OutputWindow.py	(original)
+++ python/trunk/Lib/idlelib/OutputWindow.py	Mon Apr 27 01:22:11 2009
@@ -63,6 +63,7 @@
 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
@@ -96,17 +97,17 @@
 
 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:
@@ -139,19 +140,3 @@
 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


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /