X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Foptions.ml;h=fbbd73e44b68ddcb7b7fbd1a7d5e153f0e8e3279;hb=refs%2Fheads%2Fmaster;hp=babad16e9603b557200773183860499658adcff0;hpb=107df590ff69de765445e22caffd416ef13288d3;p=SXSI%2Fxpathcomp.git diff --git a/src/options.ml b/src/options.ml index babad16..fbbd73e 100644 --- a/src/options.ml +++ b/src/options.ml @@ -1,4 +1,3 @@ -open Utils open Format open Config @@ -22,13 +21,13 @@ let set_logger s = List.iter (fun t -> if t = "" then () else - match String.explode t ':' with + match Utils.String.explode t ':' with [ tr; lvl ] -> let l = try int_of_string lvl with _ -> raise (Arg.Bad (lvl)) in if Logger.is_logger tr then Logger.activate tr l else raise (Arg.Bad (t)) | _ -> raise (Arg.Bad (t)) - ) (String.explode s ',') + ) (Utils.String.explode s ',') let pretty_loggers () = ignore(flush_str_formatter()); @@ -78,7 +77,6 @@ let spec = Arg.align "-doc-stats", Arg.Set(docstats), " Compute document statistics (performs full traversal)"; - "-v", Arg.Set(verbose), " verbose mode"; ] @ IFNDEF NTRACE THEN [ @@ -89,12 +87,22 @@ THEN [ ELSE [] END +let real_spec = + spec @ [ + "-", Arg.Unit (fun () -> anon_fun "-"), ""; + ] + let parse_cmdline() = - let _ = Arg.parse spec anon_fun usage_msg + let _ = + try + Arg.parse_argv Sys.argv real_spec anon_fun usage_msg; + if (!pos > 3 || !pos < 2) then raise (Arg.Bad "Invalid number of arguments") + with + Arg.Bad s | Arg.Help s -> + eprintf "%s\n" (Arg.usage_string spec usage_msg); + exit 1 in - if (!pos > 3 || !pos < 2) - then begin Arg.usage spec usage_msg; exit 1 end; Logger.set_verbose !verbose