trac #1789 (warnings for missing import lists)
[ghc-hetmet.git] / compiler / main / CmdLineParser.hs
index dfdea62..f6b887e 100644 (file)
@@ -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