diff --git a/pycardium/modules/os.c b/pycardium/modules/os.c index 384a71e24385e638133a75f9de3d253f7ad2ec68..cc4b067996e5c505cfa0a71f3ae9e478fc99ddfb 100644 --- a/pycardium/modules/os.c +++ b/pycardium/modules/os.c @@ -91,10 +91,16 @@ static mp_obj_t mp_os_reset(void) } static MP_DEFINE_CONST_FUN_OBJ_0(reset_obj, mp_os_reset); -static mp_obj_t mp_os_listdir(mp_obj_t py_path) +static mp_obj_t mp_os_listdir(size_t n_args, const mp_obj_t *args) { - const char *path = mp_obj_str_get_str(py_path); - int fd = epic_file_opendir(path); + const char *path; + if (n_args == 1) { + path = mp_obj_str_get_str(args[0]); + } else { + path = ""; + } + + int fd = epic_file_opendir(path); if (fd < 0) { mp_raise_OSError(-fd); @@ -118,7 +124,7 @@ static mp_obj_t mp_os_listdir(mp_obj_t py_path) epic_file_close(fd); return MP_OBJ_FROM_PTR(list); } -static MP_DEFINE_CONST_FUN_OBJ_1(listdir_obj, mp_os_listdir); +static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(listdir_obj, 0, 1, mp_os_listdir); static mp_obj_t mp_os_unlink(mp_obj_t py_path) {