[project @ 2003-08-22 16:38:51 by sof]
authorsof <unknown>
Fri, 22 Aug 2003 16:38:51 +0000 (16:38 +0000)
committersof <unknown>
Fri, 22 Aug 2003 16:38:51 +0000 (16:38 +0000)
mkHomeModLocation: basename has to be equal to module name, not just suffix

ghc/compiler/main/Finder.lhs

index d73cba3..adc33c7 100644 (file)
@@ -281,10 +281,10 @@ mkHomeModLocation mod_name src_filename = do
    case maybePrefixMatch (reverse mod_basename) (reverse basename) of
        Just ""   ->
           mkHomeModLocationSearched mod_name "."  mod_basename extension
-       Just rest -> do
+       Just rest@(r:_) | isPathSeparator r -> do
           let path = reverse (dropWhile (=='/') rest)
           mkHomeModLocationSearched mod_name path mod_basename extension
-       Nothing   -> do
+       _ -> do
          -- hPutStrLn stderr ("Warning: " ++ src_filename ++
          --                     ": filename and module name do not match")
          let (dir,basename,ext) = splitFilename3 src_filename