Add use of wildcard "*" for loading kips from a folder
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
#include "../mem/heap.h"
|
||||
#include "../utils/types.h"
|
||||
|
||||
char *dirlist(char *directory)
|
||||
char *dirlist(const char *directory, const char *pattern)
|
||||
{
|
||||
u8 max_entries = 61;
|
||||
|
||||
@@ -33,7 +33,7 @@ char *dirlist(char *directory)
|
||||
char *dir_entries = (char *)calloc(max_entries, 256);
|
||||
char *temp = (char *)calloc(1, 256);
|
||||
|
||||
if (!f_opendir(&dir, directory))
|
||||
if (!pattern && !f_opendir(&dir, directory))
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
@@ -47,22 +47,30 @@ char *dirlist(char *directory)
|
||||
if (k > (max_entries - 1))
|
||||
break;
|
||||
}
|
||||
else
|
||||
continue;
|
||||
}
|
||||
f_closedir(&dir);
|
||||
|
||||
if (!k)
|
||||
{
|
||||
free(temp);
|
||||
free(dir_entries);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (pattern && !f_findfirst(&dir, &fno, directory, pattern) && fno.fname[0])
|
||||
{
|
||||
do
|
||||
{
|
||||
if (!(fno.fattrib & AM_DIR))
|
||||
{
|
||||
memcpy(dir_entries + (k * 256), fno.fname, strlen(fno.fname) + 1);
|
||||
k++;
|
||||
if (k > (max_entries - 1))
|
||||
break;
|
||||
}
|
||||
res = f_findnext(&dir, &fno);
|
||||
} while (fno.fname[0] && !res);
|
||||
f_closedir(&dir);
|
||||
}
|
||||
|
||||
if (!k)
|
||||
{
|
||||
free(temp);
|
||||
free(dir_entries);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
#include "../utils/types.h"
|
||||
|
||||
char *dirlist(char *directory);
|
||||
char *dirlist(const char *directory, const char *pattern);
|
||||
|
||||
Reference in New Issue
Block a user