aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Haddock/Options.hs13
-rw-r--r--src/Main.hs6
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 ]