summaryrefslogtreecommitdiff
path: root/apps/filetypes.c
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2005-03-06 18:13:16 +0000
committerThom Johansen <thomj@rockbox.org>2005-03-06 18:13:16 +0000
commit7144e38b5f76016512009fe47325e6fd1f7211ae (patch)
tree399e37ce2ca1d4f2f7d2c0204272e7ebcb8c5a8e /apps/filetypes.c
parent59483d67685c85383d0f96bfd84763f157f26eab (diff)
downloadrockbox-7144e38b5f76016512009fe47325e6fd1f7211ae.tar.gz
rockbox-7144e38b5f76016512009fe47325e6fd1f7211ae.zip
"Open With" menu duplicate entry bug fixed.
Only plugins that match the target file extensions are now listed. Patch by Patr3ck. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6157 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/filetypes.c')
-rw-r--r--apps/filetypes.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/apps/filetypes.c b/apps/filetypes.c
index 68540802b0..8c19cdd32c 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -220,21 +220,28 @@ int filetype_get_attr(const char* name)
220} 220}
221 221
222/* fill a menu list with viewers (used in onplay.c) */ 222/* fill a menu list with viewers (used in onplay.c) */
223int filetype_load_menu(struct menu_item* menu,int max_items) 223int filetype_load_menu(struct menu_item* menu, int max_items,
224 char *filename)
224{ 225{
225 int i; 226 int i;
226 int cnt=0; 227 int cnt=0;
227 228
228 for (i=0; i < cnt_filetypes; i++) 229 for (i=0; i < cnt_exttypes; i++)
229 { 230 {
230 if (filetypes[i].plugin) 231 if(exttypes[i].type->plugin)
231 { 232 {
232 menu[cnt].desc = filetypes[i].plugin; 233 if (strcasecmp(&filename[strlen(filename)-
233 cnt++; 234 strlen(exttypes[i].extension)],
234 if (cnt == max_items) 235 exttypes[i].extension) == 0)
235 break; 236 {
237 menu[cnt].desc = exttypes[i].type->plugin;
238 cnt++;
239 if (cnt == max_items)
240 break;
241 }
236 } 242 }
237 } 243 }
244
238 return cnt; 245 return cnt;
239} 246}
240 247