diff options
Diffstat (limited to 'apps/tree.c')
-rw-r--r-- | apps/tree.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/apps/tree.c b/apps/tree.c index 87a039223e..71af90f017 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -302,6 +302,13 @@ static int compare(const void* p1, const void* p2) | |||
302 | if (e1->attr & ATTR_DIRECTORY && e2->attr & ATTR_DIRECTORY) | 302 | if (e1->attr & ATTR_DIRECTORY && e2->attr & ATTR_DIRECTORY) |
303 | { /* two directories */ | 303 | { /* two directories */ |
304 | criteria = global_settings.sort_dir; | 304 | criteria = global_settings.sort_dir; |
305 | if (e1->attr & ATTR_VOLUME || e2->attr & ATTR_VOLUME) | ||
306 | { /* a volume identifier is involved */ | ||
307 | if (e1->attr & ATTR_VOLUME && e2->attr & ATTR_VOLUME) | ||
308 | criteria = 0; /* two volumes: sort alphabetically */ | ||
309 | else /* only one is a volume: volume first */ | ||
310 | return (e2->attr & ATTR_VOLUME) - (e1->attr & ATTR_VOLUME); | ||
311 | } | ||
305 | } | 312 | } |
306 | else if (!(e1->attr & ATTR_DIRECTORY) && !(e2->attr & ATTR_DIRECTORY)) | 313 | else if (!(e1->attr & ATTR_DIRECTORY) && !(e2->attr & ATTR_DIRECTORY)) |
307 | { /* two files */ | 314 | { /* two files */ |