diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 9 | ||||
| -rw-r--r-- | src/scanner.c | 4 |
2 files changed, 5 insertions, 8 deletions
| @@ -22,13 +22,6 @@ int printnames(void *data) { | |||
| 22 | return 0; | 22 | return 0; |
| 23 | } | 23 | } |
| 24 | int main() { | 24 | int main() { |
| 25 | // error(1, ENOTSUP, "No main file lol"); | 25 | error(1, ENOTSUP, "No main file lol"); |
| 26 | |||
| 27 | // Test code to showcase the scanner function | ||
| 28 | |||
| 29 | dlinkedlist *ll = scandirlist(".", lol, alphasort); | ||
| 30 | dlinkedlist_foreach(ll, printnames); | ||
| 31 | dlinkedlist_free(ll); | ||
| 32 | |||
| 33 | return 0; | 26 | return 0; |
| 34 | } \ No newline at end of file | 27 | } \ No newline at end of file |
diff --git a/src/scanner.c b/src/scanner.c index 7c65df4..1c4d2b1 100644 --- a/src/scanner.c +++ b/src/scanner.c | |||
| @@ -22,6 +22,10 @@ dlinkedlist * scandirlist(const char * const dir, int (*selector)(const struct d | |||
| 22 | for(int i = 0; i < numentries; i++) | 22 | for(int i = 0; i < numentries; i++) |
| 23 | if(dlinkedlist_append(list, (void *)(namelist[i]), free) < 0) { | 23 | if(dlinkedlist_append(list, (void *)(namelist[i]), free) < 0) { |
| 24 | dlinkedlist_free(list); | 24 | dlinkedlist_free(list); |
| 25 | for(int j = i; j < numentries; j++) | ||
| 26 | free(namelist[j]); | ||
| 27 | |||
| 28 | free(namelist); | ||
| 25 | RETURNWERR(errno, NULL); | 29 | RETURNWERR(errno, NULL); |
| 26 | } | 30 | } |
| 27 | free(namelist); | 31 | free(namelist); |
