diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-07-17 11:25:04 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-07-17 11:25:04 +0000 |
commit | bd44e6019787a9607d3d2e9ca8900df78b8d4e10 (patch) | |
tree | afa2b993e6453b9f39875b73bdbc6fce9e0cc7db | |
parent | 208cb91192c13ac299ec7931dbf9a2c64396dce7 (diff) | |
download | rockbox-bd44e6019787a9607d3d2e9ca8900df78b8d4e10.tar.gz rockbox-bd44e6019787a9607d3d2e9ca8900df78b8d4e10.zip |
New sort: Dirs first, then files. And case insensitive.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1376 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/tree.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/apps/tree.c b/apps/tree.c index 5f54784515..d15547d048 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -108,10 +108,15 @@ extern unsigned char bitmap_icons_6x8[LastIcon][6]; | |||
108 | #define TREE_ATTR_M3U 0x80 /* unused by FAT attributes */ | 108 | #define TREE_ATTR_M3U 0x80 /* unused by FAT attributes */ |
109 | #define TREE_ATTR_MP3 0x40 /* unused by FAT attributes */ | 109 | #define TREE_ATTR_MP3 0x40 /* unused by FAT attributes */ |
110 | 110 | ||
111 | static int compare(const void* e1, const void* e2) | 111 | static int compare(const void* p1, const void* p2) |
112 | { | 112 | { |
113 | return strncmp((*(struct entry**)e1)->name, (*(struct entry**)e2)->name, | 113 | struct entry* e1 = *(struct entry**)p1; |
114 | TREE_MAX_FILENAMELEN); | 114 | struct entry* e2 = *(struct entry**)p2; |
115 | |||
116 | if (( e1->attr & ATTR_DIRECTORY ) == ( e2->attr & ATTR_DIRECTORY )) | ||
117 | return strncasecmp(e1->name, e2->name, TREE_MAX_FILENAMELEN); | ||
118 | else | ||
119 | return ( e2->attr & ATTR_DIRECTORY ) - ( e1->attr & ATTR_DIRECTORY ); | ||
115 | } | 120 | } |
116 | 121 | ||
117 | static int showdir(char *path, int start) | 122 | static int showdir(char *path, int start) |