#1309567: fix linecache behavior of stripping subdirectories from paths when looking for relative filename matches. Also add a linecache test suite.
diff --git a/Lib/linecache.py b/Lib/linecache.py
index 48f7dda..e7c33e1 100644
--- a/Lib/linecache.py
+++ b/Lib/linecache.py
@@ -79,7 +79,7 @@
try:
stat = os.stat(fullname)
except os.error, msg:
- basename = os.path.split(filename)[1]
+ basename = filename
# Try for a __loader__, if available
if module_globals and '__loader__' in module_globals:
@@ -103,7 +103,10 @@
)
return cache[filename][2]
- # Try looking through the module search path.
+ # Try looking through the module search path, which is only useful
+ # when handling a relative filename.
+ if os.path.isabs(filename):
+ return []
for dirname in sys.path:
# When using imputil, sys.path may contain things other than