summaryrefslogtreecommitdiffstats
path: root/byterun/sys.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2002-02-11 13:51:40 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2002-02-11 13:51:40 +0000
commit429efbf7c2416a997d2ee5ca2d790cfdc944358b (patch)
tree13ea7ba24ad95fef48af5f6bffdee0c2f861c99d /byterun/sys.c
parent7f765d521eb9014f42fdf0a83d3c31be897d8dd6 (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.c15
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;
}