summaryrefslogtreecommitdiff
path: root/apps/filetree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/filetree.c')
-rw-r--r--apps/filetree.c8
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 */