diff --git a/MY-BASIC Quick Reference.pdf b/MY-BASIC Quick Reference.pdf index 1d20686..fbfa1ab 100644 Binary files a/MY-BASIC Quick Reference.pdf and b/MY-BASIC Quick Reference.pdf differ diff --git a/core/my_basic.c b/core/my_basic.c index 9eed3da..909fb45 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -13141,7 +13141,7 @@ _exit: } /* Get a token literally, store it in an argument if it's a variable */ -int mb_get_var(struct mb_interpreter_t* s, void** l, void** v) { +int mb_get_var(struct mb_interpreter_t* s, void** l, void** v, bool_t redir) { int result = MB_FUNC_OK; _ls_node_t* ast = 0; _object_t* obj = 0; @@ -13166,8 +13166,10 @@ int mb_get_var(struct mb_interpreter_t* s, void** l, void** v) { if(obj && obj->type == _DT_VAR) { #ifdef MB_ENABLE_CLASS - if(obj->data.variable->pathing) + if(redir && obj->data.variable->pathing) _search_var_in_scope_chain(s, obj->data.variable, &obj); +#else /* MB_ENABLE_CLASS */ + mb_unrefvar(redir); #endif /* MB_ENABLE_CLASS */ if(v) *v = obj; @@ -16737,7 +16739,7 @@ static int _core_lambda(mb_interpreter_t* s, void** l) { break; } - _mb_check_mark_exit(mb_get_var(s, l, &v), result, _error); + _mb_check_mark_exit(mb_get_var(s, l, &v, true), result, _error); if(!v || ((_object_t*)v)->type != _DT_VAR) { _handle_error_on_obj(s, SE_RN_INVALID_LAMBDA, s->source_file, DON2(l), MB_FUNC_ERR, _error, result); diff --git a/core/my_basic.h b/core/my_basic.h index 8cfa9b2..94b6567 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -617,7 +617,7 @@ MBAPI int mb_set_class_userdata(struct mb_interpreter_t* s, void** l, void* d); MBAPI int mb_get_value_by_name(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t* val); MBAPI int mb_add_var(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t val, bool_t force); -MBAPI int mb_get_var(struct mb_interpreter_t* s, void** l, void** v); +MBAPI int mb_get_var(struct mb_interpreter_t* s, void** l, void** v, bool_t redir); MBAPI int mb_get_var_name(struct mb_interpreter_t* s, void* v, char** n); MBAPI int mb_get_var_value(struct mb_interpreter_t* s, void* v, mb_value_t* val); MBAPI int mb_set_var_value(struct mb_interpreter_t* s, void* v, mb_value_t val);