#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