diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2003-05-23 14:34:23 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2003-05-23 14:34:23 +0000 |
commit | 313d77d1cb4c3d9d4165984c9e43ea077f42cbab (patch) | |
tree | c3d63223f0fff0071dd0c2e451fd33f118dd216b /stdlib/arg.ml | |
parent | 176bfafcace5305c468846c6fe725e72e72b02cb (diff) |
PR#1532
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5578 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/arg.ml')
-rw-r--r-- | stdlib/arg.ml | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/stdlib/arg.ml b/stdlib/arg.ml index 89aa5b3a8..81e94589b 100644 --- a/stdlib/arg.ml +++ b/stdlib/arg.ml @@ -77,11 +77,9 @@ let usage speclist errmsg = let current = ref 0;; -let parse_argv argv speclist anonfun errmsg = - let initpos = !current in +let parse_argv_internal argv speclist anonfun errmsg = let stop error = - let progname = - if initpos < Array.length argv then argv.(initpos) else "(?)" in + let progname = if Array.length argv > 0 then argv.(0) else "(?)" in begin match error with | Unknown "-help" -> () | Unknown "--help" -> () @@ -178,4 +176,13 @@ let parse_argv argv speclist anonfun errmsg = done; ;; +let parse_argv argv speclist anonfun errmsg = + let save_current = !current in + current := 0; + try + parse_argv_internal argv speclist anonfun errmsg; + current := save_current; + with ex -> current := save_current; raise ex +;; + let parse = parse_argv Sys.argv;; |