Merge branch 'handle-stdout' master
authorKim Nguyễn <kn@lri.fr>
Fri, 26 Oct 2012 12:41:52 +0000 (14:41 +0200)
committerKim Nguyễn <kn@lri.fr>
Fri, 26 Oct 2012 12:41:52 +0000 (14:41 +0200)
Allows to pass - as stdout.

1  2 
src/options.ml

diff --combined src/options.ml
@@@ -1,5 -1,27 +1,5 @@@
 -open Utils
  open Format
 -
 -let index_empty_texts = ref true
 -let sample_factor = ref 64
 -let disable_text_collection = ref false
 -let tc_threshold = ref 60000
 -
 -let query = ref ""
 -let input_file = ref ""
 -let output_file = ref None
 -let save_file = ref ""
 -let count_only = ref false
 -let time = ref false
 -let bottom_up = ref false
 -let no_jump = ref false
 -let no_cache = ref false
 -let verbose = ref false
 -let text_index_type = ref 0
 -let do_perf = ref false
 -let twopass = ref false
 -let repeat = ref 1
 -let docstats = ref false
 -let no_wrap_results = ref false
 +open Config
  
  let set_index_type = function
    | "default" -> text_index_type := 0
@@@ -21,13 -43,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());
@@@ -77,7 -99,6 +77,6 @@@ let spec = Arg.alig
      "-doc-stats", Arg.Set(docstats),
      " Compute document statistics (performs full traversal)";
  
      "-v", Arg.Set(verbose), " verbose mode"; ] @
  IFNDEF NTRACE
  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