summaryrefslogtreecommitdiff
path: root/apps/filetree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/filetree.c')
-rw-r--r--apps/filetree.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index 1dc510f8c7..6fb0ed5469 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -269,12 +269,16 @@ int ft_load(struct tree_context* c, const char* tempdir)
269{ 269{
270 int i; 270 int i;
271 int name_buffer_used = 0; 271 int name_buffer_used = 0;
272 bool (*callback_show_item)(char *, int, struct tree_context *) = NULL;
272 DIR *dir; 273 DIR *dir;
273 274
274 if (tempdir) 275 if (tempdir)
275 dir = opendir(tempdir); 276 dir = opendir(tempdir);
276 else 277 else
278 {
277 dir = opendir(c->currdir); 279 dir = opendir(c->currdir);
280 callback_show_item = c->browse? c->browse->callback_show_item: NULL;
281 }
278 if(!dir) 282 if(!dir)
279 return -1; /* not a directory */ 283 return -1; /* not a directory */
280 284
@@ -351,7 +355,8 @@ int ft_load(struct tree_context* c, const char* tempdir)
351 (*c->dirfilter == SHOW_LNG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LNG) || 355 (*c->dirfilter == SHOW_LNG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LNG) ||
352 (*c->dirfilter == SHOW_MOD && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_MOD) || 356 (*c->dirfilter == SHOW_MOD && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_MOD) ||
353 (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK && 357 (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK &&
354 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA)) 358 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA) ||
359 (callback_show_item && !callback_show_item(entry->d_name, dptr->attr, c)))
355 { 360 {
356 i--; 361 i--;
357 continue; 362 continue;