diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-02-12 10:08:22 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-02-12 10:08:22 +0000 |
commit | de89f0892f6abc59e017727dc8072b7b70cd8e71 (patch) | |
tree | d2df2ecf6cc32b183faef5ea2e1acc28e15d69e8 | |
parent | ccac82c79b5a19ded67b2381c48e3e73ddd5449b (diff) | |
download | compcert-de89f0892f6abc59e017727dc8072b7b70cd8e71.tar.gz compcert-de89f0892f6abc59e017727dc8072b7b70cd8e71.zip |
Be more like gcc in the way we display or not the usage message.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2112 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
-rw-r--r-- | driver/Driver.ml | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/driver/Driver.ml b/driver/Driver.ml index 6c00cb78..e0ed27fd 100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -318,17 +318,15 @@ let rec find_action s = function let parse_cmdline spec usage = let acts = List.map (fun (pat, act) -> (Str.regexp pat, act)) spec in - let error () = - eprintf "%s" usage; - exit 2 in let rec parse i = if i < Array.length Sys.argv then begin let s = Sys.argv.(i) in match find_action s acts with | None -> if s <> "-help" && s <> "--help" - then eprintf "Unknown argument `%s'\n" s; - error () + then eprintf "Unknown argument `%s'\n" s + else printf "%s" usage; + exit 2 | Some(Set r) -> r := true; parse (i+1) | Some(Unset r) -> @@ -339,7 +337,7 @@ let parse_cmdline spec usage = if i + 1 < Array.length Sys.argv then begin fn Sys.argv.(i+1); parse (i+2) end else begin - eprintf "Option `%s' expects an argument\n" s; error() + eprintf "Option `%s' expects an argument\n" s; exit 2 end | Some(Integer fn) -> if i + 1 < Array.length Sys.argv then begin @@ -348,11 +346,11 @@ let parse_cmdline spec usage = int_of_string Sys.argv.(i+1) with Failure _ -> eprintf "Argument to option `%s' must be an integer\n" s; - error() + exit 2 in fn n; parse (i+2) end else begin - eprintf "Option `%s' expects an argument\n" s; error() + eprintf "Option `%s' expects an argument\n" s; exit 2 end end in parse 1 |