From fe2690da0a1b8556995f5a6d2368d250f504b4af Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 20 Jan 2014 00:53:46 +0200 Subject: [PATCH] unix: Implement sys.argv. --- tests/io/argv.py | 2 ++ unix/main.c | 8 ++++++++ 2 files changed, 10 insertions(+) create mode 100644 tests/io/argv.py diff --git a/tests/io/argv.py b/tests/io/argv.py new file mode 100644 index 000000000..a13f2cad2 --- /dev/null +++ b/tests/io/argv.py @@ -0,0 +1,2 @@ +import sys +print(sys.argv) diff --git a/unix/main.c b/unix/main.c index b39ed4f2c..08567c04d 100644 --- a/unix/main.c +++ b/unix/main.c @@ -216,6 +216,10 @@ int main(int argc, char **argv) { qstr_init(); rt_init(); + mp_obj_t m_sys = mp_obj_new_module(qstr_from_str_static("sys")); + mp_obj_t py_argv = mp_obj_new_list(0, NULL); + rt_store_attr(m_sys, qstr_from_str_static("argv"), py_argv); + rt_store_name(qstr_from_str_static("test"), test_obj_new(42)); rt_store_name(qstr_from_str_static("open"), (mp_obj_t)&mp_builtin_open_obj); rawsocket_init(); @@ -254,7 +258,11 @@ int main(int argc, char **argv) { return usage(); } } else { + for (int i = a; i < argc; i++) { + rt_list_append(py_argv, MP_OBJ_NEW_QSTR(qstr_from_strn_copy(argv[i], strlen(argv[i])))); + } do_file(argv[a]); + break; } } }