summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Backe <henrik@backe.eu>2005-09-02 15:05:35 +0000
committerHenrik Backe <henrik@backe.eu>2005-09-02 15:05:35 +0000
commitb2473d58ab1a7ff0722bd27f08ce5a8856cd5502 (patch)
tree3eca1349052d07ddf975956bdd2ab8f4bce6e309
parentacf14e05693125d3768de80d99d7cfff6c2b164a (diff)
downloadrockbox-b2473d58ab1a7ff0722bd27f08ce5a8856cd5502.zip
rockbox-b2473d58ab1a7ff0722bd27f08ce5a8856cd5502.tar.gz
rockbox-b2473d58ab1a7ff0722bd27f08ce5a8856cd5502.tar.bz2
rockbox-b2473d58ab1a7ff0722bd27f08ce5a8856cd5502.tar.xz
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
-rw-r--r--apps/filetree.c2
-rw-r--r--apps/filetypes.c9
-rw-r--r--apps/filetypes.h2
-rw-r--r--apps/tree.c46
-rw-r--r--firmware/export/config-fmrecorder.h4
-rw-r--r--firmware/export/config-h100.h4
-rw-r--r--firmware/export/config-h120.h4
-rw-r--r--firmware/export/config-h300.h4
-rw-r--r--firmware/export/config-iaudiox5.h4
-rw-r--r--firmware/export/config-ondiofm.h4
-rw-r--r--firmware/export/config-ondiosp.h4
-rw-r--r--firmware/export/config-player.h4
-rw-r--r--firmware/export/config-recorder.h4
-rw-r--r--firmware/export/config-recorderv2.h4
14 files changed, 50 insertions, 49 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index 691a6ad..8ecdc0c 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -240,7 +240,7 @@ int ft_load(struct tree_context* c, const char* tempdir)
dptr->attr = entry->attribute;
/* check for known file types */
- if ( !(dptr->attr & ATTR_DIRECTORY) && (len > 4) )
+ if ( !(dptr->attr & ATTR_DIRECTORY) )
dptr->attr |= filetype_get_attr(entry->d_name);
#ifdef BOOTFILE
diff --git a/apps/filetypes.c b/apps/filetypes.c
index ace8915..30ab2c3 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -209,17 +209,18 @@ bool filetype_supported(int attr)
}
/* get the "dynamic" attribute for an extension */
-int filetype_get_attr(const char* name)
+int filetype_get_attr(char* name)
{
int i;
+ char *cp;
for (i=0; i < cnt_exttypes; i++)
{
if (exttypes[i].extension)
{
- if (!strcasecmp(&name[strlen(name)-
- strlen(exttypes[i].extension)],
- exttypes[i].extension))
+ cp=strrchr(name,'.');
+ if (cp) cp++;
+ if ((!strcasecmp(cp,exttypes[i].extension)) && (cp))
{
return ((((unsigned long)exttypes[i].type -
(unsigned long)&filetypes[0]) /
diff --git a/apps/filetypes.h b/apps/filetypes.h
index e72dd6f..200d338 100644
--- a/apps/filetypes.h
+++ b/apps/filetypes.h
@@ -23,7 +23,7 @@
#include <tree.h>
#include <menu.h>
-int filetype_get_attr(const char*);
+int filetype_get_attr(char*);
#ifdef HAVE_LCD_BITMAP
const char* filetype_get_icon(int);
#else
diff --git a/apps/tree.c b/apps/tree.c
index c42d18b..eec71ae 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -68,30 +68,30 @@
/* a table for the know file types */
const struct filetype filetypes[] = {
- { ".mp3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".mp2", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".mpa", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "mp3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "mp2", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "mpa", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
#if CONFIG_CODEC == SWCODEC
/* Temporary hack to allow playlist creation */
- { ".mp1", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".ogg", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".wma", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".wav", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".flac", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".ac3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".a52", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".mpc", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
- { ".wv", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "mp1", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "ogg", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "wma", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "wav", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "flac", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "ac3", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "a52", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "mpc", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+ { "wv", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
#endif
- { ".m3u", TREE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST },
- { ".cfg", TREE_ATTR_CFG, Icon_Config, VOICE_EXT_CFG },
- { ".wps", TREE_ATTR_WPS, Icon_Wps, VOICE_EXT_WPS },
- { ".lng", TREE_ATTR_LNG, Icon_Language, LANG_LANGUAGE },
- { ".rock",TREE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK },
+ { "m3u", TREE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST },
+ { "cfg", TREE_ATTR_CFG, Icon_Config, VOICE_EXT_CFG },
+ { "wps", TREE_ATTR_WPS, Icon_Wps, VOICE_EXT_WPS },
+ { "lng", TREE_ATTR_LNG, Icon_Language, LANG_LANGUAGE },
+ { "rock",TREE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK },
#ifdef HAVE_LCD_BITMAP
- { ".fnt", TREE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT },
+ { "fnt", TREE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT },
#endif
- { ".bmark",TREE_ATTR_BMARK, Icon_Bookmark, VOICE_EXT_BMARK },
+ { "bmark",TREE_ATTR_BMARK, Icon_Bookmark, VOICE_EXT_BMARK },
#ifdef BOOTFILE_EXT
{ BOOTFILE_EXT, TREE_ATTR_MOD, Icon_Firmware, VOICE_EXT_AJZ },
#endif /* #ifndef SIMULATOR */
@@ -1375,15 +1375,15 @@ static bool add_dir(char* dirname, int len, int fd)
}
else {
int x = strlen(entry->d_name);
- int xl;
unsigned int i;
+ char *cp;
/* add all supported audio files to playlists */
for (i=0; i < sizeof(filetypes); i++) {
if (filetypes[i].tree_attr == TREE_ATTR_MPA) {
- xl=strlen(filetypes[i].extension);
- if (!strcasecmp(&entry->d_name[x-xl],
- filetypes[i].extension))
+ cp=strrchr(entry->d_name,'.');
+ if (cp) cp++;
+ if ((!strcasecmp(cp,filetypes[i].extension)) && (cp))
{
char buf[8];
write(fd, dirname, strlen(dirname));
diff --git a/firmware/export/config-fmrecorder.h b/firmware/export/config-fmrecorder.h
index 188c60a..b30b1a4 100644
--- a/firmware/export/config-fmrecorder.h
+++ b/firmware/export/config-fmrecorder.h
@@ -88,7 +88,7 @@
#define CONFIG_LCD LCD_SSD1815
-#define BOOTFILE_EXT ".ajz"
-#define BOOTFILE "ajbrec" BOOTFILE_EXT
+#define BOOTFILE_EXT "ajz"
+#define BOOTFILE "ajbrec." BOOTFILE_EXT
#endif /* SIMULATOR */
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index bdb1b1a..3d8a164 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -94,8 +94,8 @@
/* Define this if you have adjustable CPU frequency */
#define HAVE_ADJUSTABLE_CPU_FREQ
-#define BOOTFILE_EXT ".iriver"
-#define BOOTFILE "rockbox" BOOTFILE_EXT
+#define BOOTFILE_EXT "iriver"
+#define BOOTFILE "rockbox." BOOTFILE_EXT
#endif
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index 2691a8a..194c53b 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -90,8 +90,8 @@
/* Define this if you have adjustable CPU frequency */
#define HAVE_ADJUSTABLE_CPU_FREQ
-#define BOOTFILE_EXT ".iriver"
-#define BOOTFILE "rockbox" BOOTFILE_EXT
+#define BOOTFILE_EXT "iriver"
+#define BOOTFILE "rockbox." BOOTFILE_EXT
#endif
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h
index df97fd2..1de4158 100644
--- a/firmware/export/config-h300.h
+++ b/firmware/export/config-h300.h
@@ -85,8 +85,8 @@
/* Define this if you have adjustable CPU frequency */
#define HAVE_ADJUSTABLE_CPU_FREQ
-#define BOOTFILE_EXT ".iriver"
-#define BOOTFILE "rockbox" BOOTFILE_EXT
+#define BOOTFILE_EXT "iriver"
+#define BOOTFILE "rockbox." BOOTFILE_EXT
/* Define this if you can control the S/PDIF power */
#define HAVE_SPDIF_POWER
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index f7d18c8..19a97b1 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -77,7 +77,7 @@
/* Define this if you have adjustable CPU frequency */
#define HAVE_ADJUSTABLE_CPU_FREQ
-#define BOOTFILE_EXT ".iaudio"
-#define BOOTFILE "rockbox" BOOTFILE_EXT
+#define BOOTFILE_EXT "iaudio"
+#define BOOTFILE "rockbox." BOOTFILE_EXT
#endif
diff --git a/firmware/export/config-ondiofm.h b/firmware/export/config-ondiofm.h
index 7ec8228..46ef98d 100644
--- a/firmware/export/config-ondiofm.h
+++ b/firmware/export/config-ondiofm.h
@@ -99,7 +99,7 @@
/* define this if the unit can be powered or charged via USB */
#define HAVE_USB_POWER
-#define BOOTFILE_EXT ".ajz"
-#define BOOTFILE "ajbrec" BOOTFILE_EXT
+#define BOOTFILE_EXT "ajz"
+#define BOOTFILE "ajbrec." BOOTFILE_EXT
#endif /* SIMULATOR */
diff --git a/firmware/export/config-ondiosp.h b/firmware/export/config-ondiosp.h
index 478e8f2..1203692 100644
--- a/firmware/export/config-ondiosp.h
+++ b/firmware/export/config-ondiosp.h
@@ -86,7 +86,7 @@
/* define this if the unit can be powered or charged via USB */
#define HAVE_USB_POWER
-#define BOOTFILE_EXT ".ajz"
-#define BOOTFILE "ajbrec" BOOTFILE_EXT
+#define BOOTFILE_EXT "ajz"
+#define BOOTFILE "ajbrec." BOOTFILE_EXT
#endif /* SIMULATOR */
diff --git a/firmware/export/config-player.h b/firmware/export/config-player.h
index 5163b3d..d5ab70f 100644
--- a/firmware/export/config-player.h
+++ b/firmware/export/config-player.h
@@ -75,7 +75,7 @@
#define CONFIG_LCD LCD_SSD1801
-#define BOOTFILE_EXT ".mod"
-#define BOOTFILE "archos" BOOTFILE_EXT
+#define BOOTFILE_EXT "mod"
+#define BOOTFILE "archos." BOOTFILE_EXT
#endif /* SIMULATOR */
diff --git a/firmware/export/config-recorder.h b/firmware/export/config-recorder.h
index 8abcb8b..5d77ae6 100644
--- a/firmware/export/config-recorder.h
+++ b/firmware/export/config-recorder.h
@@ -79,7 +79,7 @@
#define CONFIG_LCD LCD_SSD1815
-#define BOOTFILE_EXT ".ajz"
-#define BOOTFILE "ajbrec" BOOTFILE_EXT
+#define BOOTFILE_EXT "ajz"
+#define BOOTFILE "ajbrec." BOOTFILE_EXT
#endif /* SIMULATOR */
diff --git a/firmware/export/config-recorderv2.h b/firmware/export/config-recorderv2.h
index 02430e8..a4179c6 100644
--- a/firmware/export/config-recorderv2.h
+++ b/firmware/export/config-recorderv2.h
@@ -88,7 +88,7 @@
#define CONFIG_LCD LCD_SSD1815
-#define BOOTFILE_EXT ".ajz"
-#define BOOTFILE "ajbrec" BOOTFILE_EXT
+#define BOOTFILE_EXT "ajz"
+#define BOOTFILE "ajbrec." BOOTFILE_EXT
#endif /* SIMULATOR */