diff options
author | Henrik Backe <henrik@backe.eu> | 2005-09-02 15:05:35 +0000 |
---|---|---|
committer | Henrik Backe <henrik@backe.eu> | 2005-09-02 15:05:35 +0000 |
commit | b2473d58ab1a7ff0722bd27f08ce5a8856cd5502 (patch) | |
tree | 3eca1349052d07ddf975956bdd2ab8f4bce6e309 /apps | |
parent | acf14e05693125d3768de80d99d7cfff6c2b164a (diff) | |
download | rockbox-b2473d58ab1a7ff0722bd27f08ce5a8856cd5502.tar.gz rockbox-b2473d58ab1a7ff0722bd27f08ce5a8856cd5502.zip |
Fixed associate problem with file extensions (.info files matched .nfo extension)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7456 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/filetree.c | 2 | ||||
-rw-r--r-- | apps/filetypes.c | 9 | ||||
-rw-r--r-- | apps/filetypes.h | 2 | ||||
-rw-r--r-- | apps/tree.c | 46 |
4 files changed, 30 insertions, 29 deletions
diff --git a/apps/filetree.c b/apps/filetree.c index 691a6adee6..8ecdc0c93d 100644 --- a/apps/filetree.c +++ b/apps/filetree.c | |||
@@ -240,7 +240,7 @@ int ft_load(struct tree_context* c, const char* tempdir) | |||
240 | dptr->attr = entry->attribute; | 240 | dptr->attr = entry->attribute; |
241 | 241 | ||
242 | /* check for known file types */ | 242 | /* check for known file types */ |
243 | if ( !(dptr->attr & ATTR_DIRECTORY) && (len > 4) ) | 243 | if ( !(dptr->attr & ATTR_DIRECTORY) ) |
244 | dptr->attr |= filetype_get_attr(entry->d_name); | 244 | dptr->attr |= filetype_get_attr(entry->d_name); |
245 | 245 | ||
246 | #ifdef BOOTFILE | 246 | #ifdef BOOTFILE |
diff --git a/apps/filetypes.c b/apps/filetypes.c index ace89154fc..30ab2c34e5 100644 --- a/apps/filetypes.c +++ b/apps/filetypes.c | |||
@@ -209,17 +209,18 @@ bool filetype_supported(int attr) | |||
209 | } | 209 | } |
210 | 210 | ||
211 | /* get the "dynamic" attribute for an extension */ | 211 | /* get the "dynamic" attribute for an extension */ |
212 | int filetype_get_attr(const char* name) | 212 | int filetype_get_attr(char* name) |
213 | { | 213 | { |
214 | int i; | 214 | int i; |
215 | char *cp; | ||
215 | 216 | ||
216 | for (i=0; i < cnt_exttypes; i++) | 217 | for (i=0; i < cnt_exttypes; i++) |
217 | { | 218 | { |
218 | if (exttypes[i].extension) | 219 | if (exttypes[i].extension) |
219 | { | 220 | { |
220 | if (!strcasecmp(&name[strlen(name)- | 221 | cp=strrchr(name,'.'); |
221 | strlen(exttypes[i].extension)], | 222 | if (cp) cp++; |
222 | exttypes[i].extension)) | 223 | if ((!strcasecmp(cp,exttypes[i].extension)) && (cp)) |
223 | { | 224 | { |
224 | return ((((unsigned long)exttypes[i].type - | 225 | return ((((unsigned long)exttypes[i].type - |
225 | (unsigned long)&filetypes[0]) / | 226 | (unsigned long)&filetypes[0]) / |
diff --git a/apps/filetypes.h b/apps/filetypes.h index e72dd6ffd3..200d338039 100644 --- a/apps/filetypes.h +++ b/apps/filetypes.h | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <tree.h> | 23 | #include <tree.h> |
24 | #include <menu.h> | 24 | #include <menu.h> |
25 | 25 | ||
26 | int filetype_get_attr(const char*); | 26 | int filetype_get_attr(char*); |
27 | #ifdef HAVE_LCD_BITMAP | 27 | #ifdef HAVE_LCD_BITMAP |
28 | const char* filetype_get_icon(int); | 28 | const char* filetype_get_icon(int); |
29 | #else | 29 | #else |
diff --git a/apps/tree.c b/apps/tree.c index c42d18beab..eec71aeb93 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -68,30 +68,30 @@ | |||
68 | 68 | ||
69 | /* a table for the know file types */ | 69 | /* a table for the know file types */ |
70 | const struct filetype filetypes[] = { | 70 | const struct filetype filetypes[] = { |
71 | { ".mp3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 71 | { "mp3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
72 | { ".mp2", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 72 | { "mp2", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
73 | { ".mpa", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 73 | { "mpa", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
74 | #if CONFIG_CODEC == SWCODEC | 74 | #if CONFIG_CODEC == SWCODEC |
75 | /* Temporary hack to allow playlist creation */ | 75 | /* Temporary hack to allow playlist creation */ |
76 | { ".mp1", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 76 | { "mp1", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
77 | { ".ogg", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 77 | { "ogg", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
78 | { ".wma", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 78 | { "wma", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
79 | { ".wav", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 79 | { "wav", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
80 | { ".flac", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 80 | { "flac", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
81 | { ".ac3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 81 | { "ac3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
82 | { ".a52", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 82 | { "a52", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
83 | { ".mpc", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 83 | { "mpc", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
84 | { ".wv", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, | 84 | { "wv", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA }, |
85 | #endif | 85 | #endif |
86 | { ".m3u", TREE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST }, | 86 | { "m3u", TREE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST }, |
87 | { ".cfg", TREE_ATTR_CFG, Icon_Config, VOICE_EXT_CFG }, | 87 | { "cfg", TREE_ATTR_CFG, Icon_Config, VOICE_EXT_CFG }, |
88 | { ".wps", TREE_ATTR_WPS, Icon_Wps, VOICE_EXT_WPS }, | 88 | { "wps", TREE_ATTR_WPS, Icon_Wps, VOICE_EXT_WPS }, |
89 | { ".lng", TREE_ATTR_LNG, Icon_Language, LANG_LANGUAGE }, | 89 | { "lng", TREE_ATTR_LNG, Icon_Language, LANG_LANGUAGE }, |
90 | { ".rock",TREE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK }, | 90 | { "rock",TREE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK }, |
91 | #ifdef HAVE_LCD_BITMAP | 91 | #ifdef HAVE_LCD_BITMAP |
92 | { ".fnt", TREE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT }, | 92 | { "fnt", TREE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT }, |
93 | #endif | 93 | #endif |
94 | { ".bmark",TREE_ATTR_BMARK, Icon_Bookmark, VOICE_EXT_BMARK }, | 94 | { "bmark",TREE_ATTR_BMARK, Icon_Bookmark, VOICE_EXT_BMARK }, |
95 | #ifdef BOOTFILE_EXT | 95 | #ifdef BOOTFILE_EXT |
96 | { BOOTFILE_EXT, TREE_ATTR_MOD, Icon_Firmware, VOICE_EXT_AJZ }, | 96 | { BOOTFILE_EXT, TREE_ATTR_MOD, Icon_Firmware, VOICE_EXT_AJZ }, |
97 | #endif /* #ifndef SIMULATOR */ | 97 | #endif /* #ifndef SIMULATOR */ |
@@ -1375,15 +1375,15 @@ static bool add_dir(char* dirname, int len, int fd) | |||
1375 | } | 1375 | } |
1376 | else { | 1376 | else { |
1377 | int x = strlen(entry->d_name); | 1377 | int x = strlen(entry->d_name); |
1378 | int xl; | ||
1379 | unsigned int i; | 1378 | unsigned int i; |
1379 | char *cp; | ||
1380 | 1380 | ||
1381 | /* add all supported audio files to playlists */ | 1381 | /* add all supported audio files to playlists */ |
1382 | for (i=0; i < sizeof(filetypes); i++) { | 1382 | for (i=0; i < sizeof(filetypes); i++) { |
1383 | if (filetypes[i].tree_attr == TREE_ATTR_MPA) { | 1383 | if (filetypes[i].tree_attr == TREE_ATTR_MPA) { |
1384 | xl=strlen(filetypes[i].extension); | 1384 | cp=strrchr(entry->d_name,'.'); |
1385 | if (!strcasecmp(&entry->d_name[x-xl], | 1385 | if (cp) cp++; |
1386 | filetypes[i].extension)) | 1386 | if ((!strcasecmp(cp,filetypes[i].extension)) && (cp)) |
1387 | { | 1387 | { |
1388 | char buf[8]; | 1388 | char buf[8]; |
1389 | write(fd, dirname, strlen(dirname)); | 1389 | write(fd, dirname, strlen(dirname)); |