diff options
-rw-r--r-- | src/Haddock/Options.hs | 13 | ||||
-rw-r--r-- | src/Main.hs | 6 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/Haddock/Options.hs b/src/Haddock/Options.hs index 3292ba16..537bffac 100644 --- a/src/Haddock/Options.hs +++ b/src/Haddock/Options.hs @@ -229,13 +229,16 @@ optLaTeXStyle :: [Flag] -> Maybe String optLaTeXStyle flags = optLast [ str | Flag_LaTeXStyle str <- flags ] -qualification :: [Flag] -> QualOption +qualification :: [Flag] -> Either String QualOption qualification flags = case map (map Char.toLower) [ str | Flag_Qualification str <- flags ] of - "full":_ -> OptFullQual - "local":_ -> OptLocalQual - "relative":_ -> OptRelativeQual - _ -> OptNoQual + [] -> Right OptNoQual + ["none"] -> Right OptNoQual + ["full"] -> Right OptFullQual + ["local"] -> Right OptLocalQual + ["relative"] -> Right OptRelativeQual + [arg] -> Left $ "unknown qualification type " ++ show arg + _:_ -> Left "qualification option given multiple times" verbosity :: [Flag] -> Verbosity diff --git a/src/Main.hs b/src/Main.hs index e423cf03..7d83866a 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -189,6 +189,11 @@ renderStep flags pkgs interfaces = do render :: [Flag] -> [Interface] -> [InstalledInterface] -> SrcMap -> IO () render flags ifaces installedIfaces srcMap = do + opt_qualification <- + case qualification flags of + Left msg -> throwE msg + Right q -> return q + let title = fromMaybe "" (optTitle flags) unicode = Flag_UseUnicode `elem` flags @@ -198,7 +203,6 @@ render flags ifaces installedIfaces srcMap = do opt_index_url = optIndexUrl flags odir = outputDir flags opt_latex_style = optLaTeXStyle flags - opt_qualification = qualification flags visibleIfaces = [ i | i <- ifaces, OptHide `notElem` ifaceOptions i ] |