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