diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/filetree.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/filetree.c b/apps/filetree.c index 98d59b9e9a..aaf99dce92 100644 --- a/apps/filetree.c +++ b/apps/filetree.c | |||
@@ -135,6 +135,14 @@ static int compare(const void* p1, const void* p2) | |||
135 | if (e1->attr & ATTR_DIRECTORY && e2->attr & ATTR_DIRECTORY) | 135 | if (e1->attr & ATTR_DIRECTORY && e2->attr & ATTR_DIRECTORY) |
136 | { /* two directories */ | 136 | { /* two directories */ |
137 | criteria = global_settings.sort_dir; | 137 | criteria = global_settings.sort_dir; |
138 | |||
139 | if (e1->attr & ATTR_VOLUME || e2->attr & ATTR_VOLUME) | ||
140 | { /* a volume identifier is involved */ | ||
141 | if (e1->attr & ATTR_VOLUME && e2->attr & ATTR_VOLUME) | ||
142 | criteria = 0; /* two volumes: sort alphabetically */ | ||
143 | else /* only one is a volume: volume first */ | ||
144 | return (e2->attr & ATTR_VOLUME) - (e1->attr & ATTR_VOLUME); | ||
145 | } | ||
138 | } | 146 | } |
139 | else if (!(e1->attr & ATTR_DIRECTORY) && !(e2->attr & ATTR_DIRECTORY)) | 147 | else if (!(e1->attr & ATTR_DIRECTORY) && !(e2->attr & ATTR_DIRECTORY)) |
140 | { /* two files */ | 148 | { /* two files */ |