-allowModule flags mod
- | mod `Set.member` excludeMods flags = False
- | Set.null (includeMods flags) = True
- | mod `Set.member` includeMods flags = True
- | otherwise = False
+allowModule flags full_mod
+ | full_mod `Set.member` excludeMods flags = False
+ | pkg_name `Set.member` excludeMods flags = False
+ | mod_name `Set.member` excludeMods flags = False
+ | Set.null (includeMods flags) = True
+ | full_mod `Set.member` includeMods flags = True
+ | pkg_name `Set.member` includeMods flags = True
+ | mod_name `Set.member` includeMods flags = True
+ | otherwise = False
+ where
+ -- pkg name always ends with '/', main
+ (pkg_name,mod_name) =
+ case span (/= ':') full_mod of
+ (p,':':m) -> (p ++ ":",m)
+ (m,[]) -> (":",m)
+ _ -> error "impossible case in allowModule"