diff options
Diffstat (limited to 'apps/filetree.c')
-rw-r--r-- | apps/filetree.c | 7 |
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; |