X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FCmdLineParser.hs;h=f6b887e2f6d156e87dd09129b4f950a011cee824;hb=2ee130cd71d175dfad4120e8ddf2db0588043696;hp=dfdea62f255da2a26337d9a51976481bc12bd93f;hpb=fc9bbbab3fe56cf0ff5723abbdb0f496d257f34e;p=ghc-hetmet.git diff --git a/compiler/main/CmdLineParser.hs b/compiler/main/CmdLineParser.hs index dfdea62..f6b887e 100644 --- a/compiler/main/CmdLineParser.hs +++ b/compiler/main/CmdLineParser.hs @@ -23,6 +23,8 @@ import Outputable import Panic import SrcLoc +import Data.List + data Flag m = Flag { flagName :: String, -- flag, without the leading - @@ -30,7 +32,9 @@ data Flag m = Flag flagDeprecated :: Deprecated -- is the flag deprecated? } -data Deprecated = Supported | Deprecated String +data Deprecated = Supported + | Deprecated String + | DeprecatedFullText String data OptKind m -- Suppose the flag is -f = NoArg (m ()) -- -f all by itself @@ -64,6 +68,8 @@ processArgs spec args = process spec args [] [] [] let warns' = case deprecated of Deprecated warning -> L loc ("Warning: " ++ dash_arg ++ " is deprecated: " ++ warning) : warns + DeprecatedFullText warning -> + L loc ("Warning: " ++ warning) : warns Supported -> warns in case processOneArg action rest arg args of Left err -> process spec args spare (L loc err : errs) warns' @@ -118,7 +124,7 @@ findArg spec arg = case [ (removeSpaces rest, optKind, flagDeprecated flag) | flag <- spec, let optKind = flagOptKind flag, - Just rest <- [maybePrefixMatch (flagName flag) arg], + Just rest <- [stripPrefix (flagName flag) arg], arg_ok optKind rest arg ] of [] -> Nothing