aboutsummaryrefslogtreecommitdiff
path: root/src/filehandler.c
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-07-27 18:37:46 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-07-27 18:37:46 +0530
commitfc6632146b0d46e63e5e14b74a311ef991f7fb61 (patch)
treed326aa70cbf4b1c60869ccc919ff91ad020d0315 /src/filehandler.c
parent119012f284233587f6622669da2b76da7fd073e2 (diff)
filehandler: implement enumfilesindir()
Diffstat (limited to 'src/filehandler.c')
-rw-r--r--src/filehandler.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/filehandler.c b/src/filehandler.c
index 154e2f3..fb1cedb 100644
--- a/src/filehandler.c
+++ b/src/filehandler.c
@@ -1,6 +1,12 @@
+#define _GNU_SOURCE
+
+#include <dirent.h>
#include <filehandler.h>
+#include <list.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
+#include <util.h>
char *
fcontent(FILE *f, unsigned int size)
@@ -26,3 +32,23 @@ fsize(FILE *f)
return s + 1;
}
+
+list_t *
+enumfilesindir(char *path)
+{
+ DIR *d;
+ struct dirent *dir;
+
+ d = opendir(path);
+ if (!d)
+ return NULL;
+
+ list_t *l = list_create(sizeof(ptr_wrapper_t *));
+
+ while ((dir = readdir(d)) != NULL)
+ if (dir->d_type == DT_REG)
+ list_add(l, wrap_ptr(strdup(dir->d_name)));
+
+ closedir(d);
+ return l;
+}