From f8a8f0d7c0bed5fb2dab8e3c75d6ba2195ee0450 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Sat, 9 Nov 2019 16:15:44 +0100 Subject: [PATCH] feat(os): Make os.listdir() callable without args For convenience, allow calling os.listdir() without any argument. This is equivalent to calling os.listdir(""). Signed-off-by: Rahix <rahix@rahix.de> --- pycardium/modules/os.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pycardium/modules/os.c b/pycardium/modules/os.c index 384a71e2..cc4b0679 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) { -- GitLab