aboutsummaryrefslogtreecommitdiff
path: root/py/builtinimport.c
diff options
context:
space:
mode:
authorDelio Brignoli <brignoli.delio@gmail.com>2016-08-22 12:28:22 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-09-20 14:01:31 +0300
commit21c719bd0a0acf709de4d6dfe0d830aa60427e3f (patch)
treeb9eccf5e77711f0116bc0564877b5915be40b2f3 /py/builtinimport.c
parent34e01984368ff2c689808ef8de182d838cd96725 (diff)
builtinimport: add the module specified by -m to sys.modules as '__main__'
Diffstat (limited to 'py/builtinimport.c')
-rw-r--r--py/builtinimport.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/py/builtinimport.c b/py/builtinimport.c
index ef3545d65..3c912e2d4 100644
--- a/py/builtinimport.c
+++ b/py/builtinimport.c
@@ -448,6 +448,8 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) {
mp_obj_module_t *o = MP_OBJ_TO_PTR(module_obj);
mp_obj_dict_store(MP_OBJ_FROM_PTR(o->globals), MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR___main__));
#if MICROPY_CPYTHON_COMPAT
+ // Store module as "__main__" in the dictionary of loaded modules (returned by sys.modules).
+ mp_obj_dict_store(&MP_STATE_VM(mp_loaded_modules_dict), MP_OBJ_NEW_QSTR(MP_QSTR___main__), module_obj);
// Store real name in "__main__" attribute. Choosen semi-randonly, to reuse existing qstr's.
mp_obj_dict_store(MP_OBJ_FROM_PTR(o->globals), MP_OBJ_NEW_QSTR(MP_QSTR___main__), MP_OBJ_NEW_QSTR(mod_name));
#endif