From b2473d58ab1a7ff0722bd27f08ce5a8856cd5502 Mon Sep 17 00:00:00 2001 From: Henrik Backe Date: Fri, 2 Sep 2005 15:05:35 +0000 Subject: [PATCH] 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 --- apps/filetree.c | 2 +- apps/filetypes.c | 9 +++--- apps/filetypes.h | 2 +- apps/tree.c | 46 ++++++++++++++--------------- firmware/export/config-fmrecorder.h | 4 +-- firmware/export/config-h100.h | 4 +-- firmware/export/config-h120.h | 4 +-- firmware/export/config-h300.h | 4 +-- firmware/export/config-iaudiox5.h | 4 +-- firmware/export/config-ondiofm.h | 4 +-- firmware/export/config-ondiosp.h | 4 +-- firmware/export/config-player.h | 4 +-- firmware/export/config-recorder.h | 4 +-- firmware/export/config-recorderv2.h | 4 +-- 14 files changed, 50 insertions(+), 49 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) 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 ace89154fc..30ab2c34e5 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 e72dd6ffd3..200d338039 100644 --- a/apps/filetypes.h +++ b/apps/filetypes.h @@ -23,7 +23,7 @@ #include #include -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 c42d18beab..eec71aeb93 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 188c60a5c2..b30b1a4332 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 bdb1b1a163..3d8a164442 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 2691a8a693..194c53b93c 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 df97fd245d..1de415830e 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 f7d18c829e..19a97b1164 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 7ec82285aa..46ef98d51c 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 478e8f2b70..120369243e 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 5163b3dc8b..d5ab70fa42 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 8abcb8b390..5d77ae6f09 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 02430e8a02..a4179c6da4 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 */