From de89f0892f6abc59e017727dc8072b7b70cd8e71 Mon Sep 17 00:00:00 2001 From: xleroy Date: Tue, 12 Feb 2013 10:08:22 +0000 Subject: 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 --- driver/Driver.ml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'driver') diff --git a/driver/Driver.ml b/driver/Driver.ml index 6c00cb7..e0ed27f 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 -- cgit v1.2.3