commit b625c1dd1335e81b4e2fea566c39ed54554c1241
Author: Raniconduh <clagv.randomgames@gmail.com>
Date: Thu Jan 13 23:43:31 2022 +0000
diff --git a/src/dir.c b/src/dir.c
index 4cc6c22..e6c3a14 100644
--- a/src/dir.c
+++ b/src/dir.c
@@ -346 +3411 @@ static int cmp(const void * a, const void * b) {
return strcmp(c->name, d->name);
}
+static int acmp(const void * a, const void * b) {
+ return strcmp((*(const struct dir_entry_t**)a)->name,
+ (*(const struct dir_entry_t**)b)->name);
+}
+
int list_dir(char * dir_path) {
struct dirent * d_entry;
@@ -1636 +16817 @@ int list_dir(char * dir_path) {
closedir(dir);
qsort(dir_entries, n_dir_entries, sizeof(struct dir_entry_t*), cmp);
+ size_t d_end = 0;
+ for (size_t i = 0; i < n_dir_entries; i++) {
+ if (dir_entries[i]->file_type != FILE_DIR) {
+ d_end = i;
+ break;
+ }
+ }
+ qsort(dir_entries, d_end, sizeof(struct dir_entry_t*), acmp);
+ qsort(dir_entries + d_end, n_dir_entries - d_end,
+ sizeof(struct dir_entry_t*), acmp);
+
return 0;
}