diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2002-02-11 13:51:40 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2002-02-11 13:51:40 +0000 |
commit | 429efbf7c2416a997d2ee5ca2d790cfdc944358b (patch) | |
tree | 13ea7ba24ad95fef48af5f6bffdee0c2f861c99d /byterun/sys.c | |
parent | 7f765d521eb9014f42fdf0a83d3c31be897d8dd6 (diff) |
Ajout Sys.executable_name, laisser Sys.argv.(0) inchange (PR#817)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4375 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/sys.c')
-rw-r--r-- | byterun/sys.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/byterun/sys.c b/byterun/sys.c index 4a2195a2e..cb70ba345 100644 --- a/byterun/sys.c +++ b/byterun/sys.c @@ -220,15 +220,24 @@ CAMLprim value sys_getenv(value var) return copy_string(res); } -char ** caml_main_argv; +char * caml_exe_name; +static char ** caml_main_argv; CAMLprim value sys_get_argv(value unit) { - return copy_string_array((char const **) caml_main_argv); + CAMLparam0 (); /* unit is unused */ + CAMLlocal3 (exe_name, argv, res); + exe_name = copy_string(caml_exe_name); + argv = copy_string_array((char const **) caml_main_argv); + res = alloc_small(2, 0); + Field(res, 0) = exe_name; + Field(res, 1) = argv; + CAMLreturn(res); } -void sys_init(char **argv) +void sys_init(char * exe_name, char **argv) { + caml_exe_name = exe_name; caml_main_argv = argv; } |