From 1532863d8341ba0240da903533f5eb9d08987662 Mon Sep 17 00:00:00 2001 From: Craig Forbes Date: Wed, 20 Feb 2019 21:37:29 -0600 Subject: Set __file__ for the main source file (e.g. code.py, main.py) --- lib/utils/pyexec.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/utils') diff --git a/lib/utils/pyexec.c b/lib/utils/pyexec.c index e637fe544..e8a1983b0 100755 --- a/lib/utils/pyexec.c +++ b/lib/utils/pyexec.c @@ -89,6 +89,9 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input } // source is a lexer, parse and compile the script qstr source_name = lex->source_name; + if (input_kind == MP_PARSE_FILE_INPUT) { + mp_store_global(MP_QSTR___file__, MP_OBJ_NEW_QSTR(source_name)); + } mp_parse_tree_t parse_tree = mp_parse(lex, input_kind); module_fun = mp_compile(&parse_tree, source_name, MP_EMIT_OPT_NONE, exec_flags & EXEC_FLAG_IS_REPL); // Clear the parse tree because it has a heap pointer we don't need anymore. -- cgit v1.2.3